Browse Source

cleanup patch and add workaround for Fedora

master
parent
commit
b659e89a7a
  1. 68
      binutils/binutils.patch
  2. 2
      binutils/binutils.spec

68
binutils/binutils.patch

@ -1,3 +1,7 @@
Use the platform specific ELF branding expected under FreeBSD.
This is similar to what the vendor ld(1) does on this platform.
Index: bfd/elf.c
--- bfd/elf.c.orig 2002-07-30 20:19:42.000000000 +0200
+++ bfd/elf.c 2002-08-22 17:41:47.000000000 +0200
@@ -4235,6 +4235,12 @@
@ -13,7 +17,13 @@
switch (bfd_get_arch (abfd))
{
case bfd_arch_unknown:
--- bfd/elf64-sparc.c.dist 2003-06-20 09:42:19.000000000 +0200
-----------------------------------------------------------------------------
Fix the linker under Solaris/SPARC.
Index: bfd/elf64-sparc.c
--- bfd/elf64-sparc.c.orig 2003-06-20 09:42:19.000000000 +0200
+++ bfd/elf64-sparc.c 2003-06-20 09:42:40.000000000 +0200
@@ -2684,7 +2684,7 @@
overflows. We don't, but this breaks stabs debugging
@ -24,6 +34,11 @@
&& _bfd_elf_section_offset (output_bfd, info, input_section,
rel->r_offset) == (bfd_vma) -1)
break;
-----------------------------------------------------------------------------
Support FreeBSD 4.10 by fixing platform detection.
Index: bfd/configure
--- bfd/configure.orig 2003-06-12 16:25:46.000000000 +0200
+++ bfd/configure 2004-04-30 22:01:31.000000000 +0200
@ -38,3 +53,54 @@ Index: bfd/configure
i[3456]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234]* | i[34567]86-*-freebsd*aout*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386bsd.h"'
-----------------------------------------------------------------------------
Accept (and ignore) --as-needed/--no-as-needed options from GNU binutils
2.15 in our GNU binutils 2.14 to resolve a chicken and egg problem under
platforms (like Fedora Core 2) which already run GNU binutils 2.15: the
vendor cc(1) knows that it has ld(1) from GNU binutils 2.15 and hence
always uses the --as-needed option when calling ld(1). Unfortunately,
between having built "binutils" and "gcc" packages, this will break
OpenPKG because the vendor cc(1) would run the OpenPKG ld(1) with an
option is (still) does not understand. The only workaround is to let our
ld(1) accept and ignore this option. Once our cc(1) from "gcc" package
is installed, the problem is gone, because our "gcc" package correctly
detects that our ld(1) still does ot understand --as-needed.
Index: ld/lexsup.c
--- ld/lexsup.c.orig 2003-03-31 20:12:52.000000000 +0200
+++ ld/lexsup.c 2004-05-05 16:52:46.000000000 +0200
@@ -112,7 +112,9 @@
#define OPTION_SPLIT_BY_RELOC (OPTION_WARN_SECTION_ALIGN + 1)
#define OPTION_SPLIT_BY_FILE (OPTION_SPLIT_BY_RELOC + 1)
#define OPTION_WHOLE_ARCHIVE (OPTION_SPLIT_BY_FILE + 1)
-#define OPTION_WRAP (OPTION_WHOLE_ARCHIVE + 1)
+#define OPTION_AS_NEEDED (OPTION_WHOLE_ARCHIVE + 1)
+#define OPTION_NO_AS_NEEDED (OPTION_AS_NEEDED + 1)
+#define OPTION_WRAP (OPTION_NO_AS_NEEDED + 1)
#define OPTION_FORCE_EXE_SUFFIX (OPTION_WRAP + 1)
#define OPTION_GC_SECTIONS (OPTION_FORCE_EXE_SUFFIX + 1)
#define OPTION_NO_GC_SECTIONS (OPTION_GC_SECTIONS + 1)
@@ -423,6 +425,10 @@
TWO_DASHES },
{ {"whole-archive", no_argument, NULL, OPTION_WHOLE_ARCHIVE},
'\0', NULL, N_("Include all objects from following archives"), TWO_DASHES },
+ { {"as-needed", no_argument, NULL, OPTION_AS_NEEDED},
+ '\0', NULL, N_("Only set DT_NEEDED for following dynamic libs if used"), TWO_DASHES },
+ { {"no-as-needed", no_argument, NULL, OPTION_NO_AS_NEEDED},
+ '\0', NULL, N_("Always set DT_NEEDED for following dynamic libs"), TWO_DASHES },
{ {"wrap", required_argument, NULL, OPTION_WRAP},
'\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
{ {"mpc860c0", optional_argument, NULL, OPTION_MPC860C0},
@@ -823,6 +829,10 @@
case OPTION_NO_WHOLE_ARCHIVE:
whole_archive = FALSE;
break;
+ case OPTION_AS_NEEDED:
+ case OPTION_NO_AS_NEEDED:
+ einfo("%P: warning: options --as-needed and --no-as-needed still not supported\n");
+ break;
case 'O':
/* FIXME "-O<non-digits> <value>" used to set the address of
section <non-digits>. Was this for compatibility with

2
binutils/binutils.spec

@ -34,7 +34,7 @@ Class: CORE
Group: Utility
License: GPL
Version: 2.14
Release: 20040430
Release: 20040506
# list of sources
Source0: ftp://sources.redhat.com/pub/binutils/releases/binutils-%{version}.tar.bz2

Loading…
Cancel
Save