forked from pool/binutils
This commit is contained in:
commit
9209b74914
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
11
README.First-for.SuSE.packagers
Normal file
11
README.First-for.SuSE.packagers
Normal file
@ -0,0 +1,11 @@
|
||||
IMPORTANT: Please change binutils.spec and then run ./pre_checkin.sh!
|
||||
Do not change cross-*.spec directly!
|
||||
|
||||
The spec file triggers by it's %name if it compiles the native or the
|
||||
cross version and pre_checkin.sh (called automatically by checkin too)
|
||||
copies over the binutils.spec and changes the Name field, so you shouldn't
|
||||
need to worry too much about the cross packages
|
||||
|
||||
Thanks,
|
||||
Stephan Kulow
|
||||
|
3
binutils-2.18.50.tar.bz2
Normal file
3
binutils-2.18.50.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1eb2afd4447eb861ffd930a37aac375ea014793216b69740908e641cea0e3f85
|
||||
size 14653027
|
118
binutils-skip-rpaths.patch
Normal file
118
binutils-skip-rpaths.patch
Normal file
@ -0,0 +1,118 @@
|
||||
--- ld/emultempl/elf32.em
|
||||
+++ ld/emultempl/elf32.em
|
||||
@@ -1377,15 +1377,46 @@ if test x"$LDEMUL_BEFORE_ALLOCATION" !=
|
||||
else
|
||||
ELF_INTERPRETER_SET_DEFAULT=
|
||||
fi
|
||||
+
|
||||
+ libpath_nl=
|
||||
+ for path in $NATIVE_LIB_DIRS; do
|
||||
+ libpath_nl="$libpath_nl\n$path"
|
||||
+ done
|
||||
+
|
||||
fragment <<EOF
|
||||
|
||||
+static int
|
||||
+gld${EMULATION_NAME}_is_contained (const char *path, const char *dc)
|
||||
+{
|
||||
+ while (*dc)
|
||||
+ {
|
||||
+ const char *pc = path;
|
||||
+
|
||||
+ while (*dc && *pc && *dc == *pc && *dc != '\n'
|
||||
+ && *pc != ':' && *dc != '=')
|
||||
+ {
|
||||
+ dc++;
|
||||
+ pc++;
|
||||
+ }
|
||||
+ if ((*pc == 0 || *pc == ':') && (*dc == '\n' || *dc == '=' || *dc == 0))
|
||||
+ return 1;
|
||||
+
|
||||
+ while (*dc && *dc != '\n')
|
||||
+ dc++;
|
||||
+ if (*dc == '\n')
|
||||
+ dc++;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/* This is called after the sections have been attached to output
|
||||
sections, but before any sizes or addresses have been set. */
|
||||
|
||||
static void
|
||||
gld${EMULATION_NAME}_before_allocation (void)
|
||||
{
|
||||
- const char *rpath;
|
||||
+ char *rpath;
|
||||
asection *sinterp;
|
||||
|
||||
if (link_info.hash->type == bfd_link_elf_hash_table)
|
||||
@@ -1400,7 +1431,66 @@ gld${EMULATION_NAME}_before_allocation (
|
||||
by dynamic linking. */
|
||||
rpath = command_line.rpath;
|
||||
if (rpath == NULL)
|
||||
- rpath = (const char *) getenv ("LD_RUN_PATH");
|
||||
+ rpath = getenv ("LD_RUN_PATH");
|
||||
+
|
||||
+ if (rpath != NULL && getenv ("SUSE_IGNORED_RPATHS"))
|
||||
+ {
|
||||
+ char *dirs = 0;
|
||||
+ FILE *ldso = fopen (getenv ("SUSE_IGNORED_RPATHS"), "r");
|
||||
+ if (ldso)
|
||||
+ {
|
||||
+ off_t endcur = 0;
|
||||
+ fseek (ldso, 0, SEEK_END);
|
||||
+ endcur = ftell (ldso);
|
||||
+ fseek (ldso, 0, SEEK_SET);
|
||||
+ dirs = xmalloc (endcur);
|
||||
+ if (fread (dirs, 1, endcur, ldso) != (size_t) endcur)
|
||||
+ {
|
||||
+ free (dirs);
|
||||
+ dirs = NULL;
|
||||
+ }
|
||||
+ }
|
||||
+ if (dirs)
|
||||
+ {
|
||||
+ char *cr;
|
||||
+ rpath = xstrdup (rpath);
|
||||
+ cr = rpath; /* cursor read */
|
||||
+
|
||||
+ while (*cr)
|
||||
+ {
|
||||
+ if (gld${EMULATION_NAME}_is_contained (cr, dirs)
|
||||
+ || gld${EMULATION_NAME}_is_contained (cr, "$libpath_nl"))
|
||||
+ {
|
||||
+ char *cc = cr, *cw = cr;
|
||||
+ while (*cc && *cc != ':')
|
||||
+ cc++;
|
||||
+ if (*cc == ':')
|
||||
+ {
|
||||
+ cc++;
|
||||
+ for (; *cc; cc++, cw++)
|
||||
+ *cw = *cc;
|
||||
+ }
|
||||
+ else if (cw > rpath)
|
||||
+ cw[-1] = 0;
|
||||
+
|
||||
+ *cw = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ while (*cr && *cr != ':')
|
||||
+ cr++;
|
||||
+ if (*cr == ':')
|
||||
+ cr++;
|
||||
+ }
|
||||
+ }
|
||||
+ if (*rpath == '\0')
|
||||
+ {
|
||||
+ free (rpath);
|
||||
+ rpath = NULL;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (! (bfd_elf_size_dynamic_sections
|
||||
(output_bfd, command_line.soname, rpath,
|
||||
command_line.filter_shlib,
|
1820
binutils.changes
Normal file
1820
binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1282
binutils.spec
Normal file
1282
binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-alpha-binutils.changes
Normal file
1820
cross-alpha-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-alpha-binutils.spec
Normal file
1211
cross-alpha-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-arm-binutils.changes
Normal file
1820
cross-arm-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-arm-binutils.spec
Normal file
1211
cross-arm-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-avr-binutils.changes
Normal file
1820
cross-avr-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-avr-binutils.spec
Normal file
1211
cross-avr-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
35
cross-avr-nesc-as.patch
Normal file
35
cross-avr-nesc-as.patch
Normal file
@ -0,0 +1,35 @@
|
||||
--- gas/config/tc-avr-nesc.h
|
||||
+++ gas/config/tc-avr-nesc.h
|
||||
@@ -109,8 +109,12 @@
|
||||
would print `12 34 56 78'. The default value is 4. */
|
||||
#define LISTING_WORD_SIZE 2
|
||||
|
||||
-/* AVR port uses `$' as a logical line separator. */
|
||||
-#define LEX_DOLLAR 0
|
||||
+/* AVR port uses `$' as a logical line separator and doesn't
|
||||
+ allow it in symbols. We allow it in the middle of symbols.
|
||||
+ We also hack get_symbol_end to disallow it at the end of a symbol. */
|
||||
+#define LEX_DOLLAR 1
|
||||
+#define TC_EOL_IN_INSN(PTR) (*(PTR) == '$' && is_part_of_name((PTR)[-1]) && is_part_of_name((PTR)[1]))
|
||||
+#define TC_FORBID_DOLLAR_AT_END
|
||||
|
||||
/* An `.lcomm' directive with no explicit alignment parameter will
|
||||
use this macro to set P2VAR to the alignment that a request for
|
||||
--- gas/expr.c
|
||||
+++ gas/expr.c
|
||||
@@ -2165,6 +2165,15 @@
|
||||
;
|
||||
if (is_name_ender (c))
|
||||
c = *input_line_pointer++;
|
||||
+#ifdef TC_FORBID_DOLLAR_AT_END
|
||||
+ /* This is for the Atmel AVR platforms. We want to allow $ in symbols
|
||||
+ but also as a line separator. Yucky. */
|
||||
+ if (input_line_pointer[-2] == '$')
|
||||
+ {
|
||||
+ input_line_pointer--;
|
||||
+ c = '$';
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
*--input_line_pointer = 0;
|
||||
return (c);
|
18
cross-avr-omit_section_dynsym.patch
Normal file
18
cross-avr-omit_section_dynsym.patch
Normal file
@ -0,0 +1,18 @@
|
||||
Index: bfd/elf32-avr.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/bfd/elf32-avr.c,v
|
||||
retrieving revision 1.27
|
||||
diff -c -3 -p -r1.27 elf32-avr.c
|
||||
*** bfd/elf32-avr.c 28 Sep 2006 13:27:33 -0000 1.27
|
||||
--- bfd/elf32-avr.c 19 Jan 2007 12:22:49 -0000
|
||||
*************** elf32_avr_build_stubs (struct bfd_link_i
|
||||
*** 2915,2920 ****
|
||||
--- 2915,2922 ----
|
||||
#define elf_backend_final_write_processing \
|
||||
bfd_elf_avr_final_write_processing
|
||||
#define elf_backend_object_p elf32_avr_object_p
|
||||
+ #define elf_backend_omit_section_dynsym \
|
||||
+ ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
|
||||
|
||||
#define bfd_elf32_bfd_relax_section elf32_avr_relax_section
|
||||
#define bfd_elf32_bfd_get_relocated_section_contents \
|
1820
cross-hppa-binutils.changes
Normal file
1820
cross-hppa-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-hppa-binutils.spec
Normal file
1211
cross-hppa-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-hppa64-binutils.changes
Normal file
1820
cross-hppa64-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-hppa64-binutils.spec
Normal file
1211
cross-hppa64-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-i386-binutils.changes
Normal file
1820
cross-i386-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-i386-binutils.spec
Normal file
1211
cross-i386-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-ia64-binutils.changes
Normal file
1820
cross-ia64-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-ia64-binutils.spec
Normal file
1211
cross-ia64-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-mips-binutils.changes
Normal file
1820
cross-mips-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-mips-binutils.spec
Normal file
1211
cross-mips-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-ppc-binutils.changes
Normal file
1820
cross-ppc-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-ppc-binutils.spec
Normal file
1211
cross-ppc-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-ppc64-binutils.changes
Normal file
1820
cross-ppc64-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-ppc64-binutils.spec
Normal file
1211
cross-ppc64-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-s390-binutils.changes
Normal file
1820
cross-s390-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-s390-binutils.spec
Normal file
1211
cross-s390-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-s390x-binutils.changes
Normal file
1820
cross-s390x-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-s390x-binutils.spec
Normal file
1211
cross-s390x-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-sh4-binutils.changes
Normal file
1820
cross-sh4-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1210
cross-sh4-binutils.spec
Normal file
1210
cross-sh4-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-sparc-binutils.changes
Normal file
1820
cross-sparc-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-sparc-binutils.spec
Normal file
1211
cross-sparc-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-spu-binutils.changes
Normal file
1820
cross-spu-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-spu-binutils.spec
Normal file
1211
cross-spu-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
1820
cross-x86_64-binutils.changes
Normal file
1820
cross-x86_64-binutils.changes
Normal file
File diff suppressed because it is too large
Load Diff
1211
cross-x86_64-binutils.spec
Normal file
1211
cross-x86_64-binutils.spec
Normal file
File diff suppressed because it is too large
Load Diff
65
enable-targets.diff
Normal file
65
enable-targets.diff
Normal file
@ -0,0 +1,65 @@
|
||||
--- ld/configure
|
||||
+++ ld/configure
|
||||
@@ -857,6 +857,7 @@
|
||||
--enable-fast-install=PKGS optimize for fast installation default=yes
|
||||
--disable-libtool-lock avoid locking (might break parallel builds)
|
||||
--enable-targets alternative target configurations
|
||||
+ --enable-ld-targets alternative target configurations
|
||||
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
|
||||
--enable-werror treat compile warnings as errors
|
||||
--enable-build-warnings enable build-time compiler warnings
|
||||
@@ -4172,6 +4173,19 @@
|
||||
no) enable_targets= ;;
|
||||
*) enable_targets=$enableval ;;
|
||||
esac
|
||||
+fi; # Check whether --enable-ld-targets or --disable-ld-targets was given.
|
||||
+if test "${enable_ld_targets+set}" = set; then
|
||||
+ enableval="$enable_ld_targets"
|
||||
+ case "${enableval}" in
|
||||
+ yes | "") { { echo "$as_me:$LINENO: error: enable-ld-targets option must specify target names or 'all'" >&5
|
||||
+echo "$as_me: error: enable-ld-targets option must specify target names or 'all'" >&2;}
|
||||
+ { (exit 1); exit 1; }; }
|
||||
+ ;;
|
||||
+ no) enable_ld_targets= ;;
|
||||
+ *) enable_ld_targets=$enableval ;;
|
||||
+esac
|
||||
+else
|
||||
+ enable_ld_targets=$enable_targets
|
||||
fi; # Check whether --enable-64-bit-bfd or --disable-64-bit-bfd was given.
|
||||
if test "${enable_64_bit_bfd+set}" = set; then
|
||||
enableval="$enable_64_bit_bfd"
|
||||
@@ -7430,7 +7444,7 @@
|
||||
|
||||
rm -f tdirs
|
||||
|
||||
-for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
|
||||
+for targ_alias in `echo $target_alias $enable_ld_targets | sed 's/,/ /g'`
|
||||
do
|
||||
if test "$targ_alias" = "all"; then
|
||||
all_targets=true
|
||||
--- ld/configure.in
|
||||
+++ ld/configure.in
|
||||
@@ -22,6 +22,14 @@
|
||||
no) enable_targets= ;;
|
||||
*) enable_targets=$enableval ;;
|
||||
esac])dnl
|
||||
+AC_ARG_ENABLE(ld-targets,
|
||||
+[ --enable-ld-targets alternative target configurations],
|
||||
+[case "${enableval}" in
|
||||
+ yes | "") AC_ERROR(enable-ld-targets option must specify target names or 'all')
|
||||
+ ;;
|
||||
+ no) enable_ld_targets= ;;
|
||||
+ *) enable_ld_targets=$enableval ;;
|
||||
+esac], [enable_ld_targets=$enable_targets])dnl
|
||||
AC_ARG_ENABLE(64-bit-bfd,
|
||||
[ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)],
|
||||
[case "${enableval}" in
|
||||
@@ -152,7 +160,7 @@
|
||||
dnl file.
|
||||
rm -f tdirs
|
||||
|
||||
-for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
|
||||
+for targ_alias in `echo $target_alias $enable_ld_targets | sed 's/,/ /g'`
|
||||
do
|
||||
if test "$targ_alias" = "all"; then
|
||||
all_targets=true
|
21
ld-dtags.diff
Normal file
21
ld-dtags.diff
Normal file
@ -0,0 +1,21 @@
|
||||
--- binutils-2.17.50/ld/ld.texinfo
|
||||
+++ binutils-2.17.50/ld/ld.texinfo
|
||||
@@ -1941,7 +1941,7 @@
|
||||
systems may not understand them. If you specify
|
||||
@option{--enable-new-dtags}, the dynamic tags will be created as needed.
|
||||
If you specify @option{--disable-new-dtags}, no new dynamic tags will be
|
||||
-created. By default, the new dynamic tags are not created. Note that
|
||||
+created. By default, the new dynamic tags are created. Note that
|
||||
those options are only available for ELF systems.
|
||||
|
||||
@kindex --hash-size=@var{number}
|
||||
--- binutils-2.17.50/ld/ldmain.c
|
||||
+++ binutils-2.17.50/ld/ldmain.c
|
||||
@@ -263,6 +263,7 @@
|
||||
|
||||
link_info.allow_undefined_version = TRUE;
|
||||
link_info.keep_memory = TRUE;
|
||||
+ link_info.new_dtags = TRUE;
|
||||
link_info.combreloc = TRUE;
|
||||
link_info.strip_discarded = TRUE;
|
||||
link_info.callbacks = &link_callbacks;
|
57
ld-relro.diff
Normal file
57
ld-relro.diff
Normal file
@ -0,0 +1,57 @@
|
||||
--- ld/lexsup.c
|
||||
+++ ld/lexsup.c
|
||||
@@ -643,6 +643,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ optarg = "relro";
|
||||
+ ldemul_handle_option ('z');
|
||||
+
|
||||
last_optind = -1;
|
||||
while (1)
|
||||
{
|
||||
--- ld/testsuite/config/default.exp
|
||||
+++ ld/testsuite/config/default.exp
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
|
||||
if ![info exists ld] then {
|
||||
- set ld [findfile $base_dir/ld-new $base_dir/ld-new [transform ld]]
|
||||
+ set ld "[findfile $base_dir/ld-new $base_dir/ld-new [transform ld]] -znorelro"
|
||||
}
|
||||
|
||||
if ![info exists as] then {
|
||||
@@ -67,7 +67,7 @@
|
||||
catch "exec mkdir tmpdir/ld" status
|
||||
catch "exec ln -s ../../ld-new tmpdir/ld/ld" status
|
||||
}
|
||||
-set gcc_ld_flag "-B[pwd]/tmpdir/ld/"
|
||||
+set gcc_ld_flag "-B[pwd]/tmpdir/ld/ -Wl,-z,norelro"
|
||||
|
||||
# load the linker path
|
||||
if {[file exists tmpdir/libpath.exp]} {
|
||||
@@ -261,7 +261,7 @@
|
||||
}
|
||||
|
||||
if ![info exists LD] then {
|
||||
- set LD [findfile $base_dir/ld-new ./ld-new [transform ld]]
|
||||
+ set LD "[findfile $base_dir/ld-new ./ld-new [transform ld]] -znorelro"
|
||||
}
|
||||
|
||||
if ![info exists LDFLAGS] then {
|
||||
--- ld/testsuite/ld-bootstrap/bootstrap.exp
|
||||
+++ ld/testsuite/ld-bootstrap/bootstrap.exp
|
||||
@@ -53,7 +53,12 @@
|
||||
|
||||
# This test can only be run if we have the ld build directory,
|
||||
# since we need the object files.
|
||||
- if {$ld != "$objdir/ld-new"} {
|
||||
+ set ldexe $ld
|
||||
+ set ldparm [string first " " $ld]
|
||||
+ if { $ldparm > 0 } then {
|
||||
+ set ldexe [string range $ld 0 $ldparm]
|
||||
+ }
|
||||
+ if {$ldexe != "$objdir/ld-new"} {
|
||||
untested $testname
|
||||
continue
|
||||
}
|
4
mips-pic.patch
Normal file
4
mips-pic.patch
Normal file
@ -0,0 +1,4 @@
|
||||
--- /dev/null 2002-05-17 19:01:52.000000000 +0000
|
||||
+++ config/mh-mipspic 2002-05-17 19:08:03.000000000 +0000
|
||||
@@ -0,0 +1 @@
|
||||
+PICFLAG=-fPIC
|
15
pre_checkin.sh
Normal file
15
pre_checkin.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# the script takes binutils* and creates the cross-* packages
|
||||
|
||||
for arch in hppa hppa64 mips arm i386 x86_64 s390 s390x sh4 ppc ppc64 ia64 sparc avr alpha spu; do
|
||||
|
||||
echo -n "Building package for $arch --> cross-$arch-binutils ..."
|
||||
|
||||
ln -f binutils.changes cross-$arch-binutils.changes
|
||||
sed -e "s/^Name:.*binutils\$/Name: cross-$arch-binutils/" \
|
||||
-e '/ devel$/,/^$/d' \
|
||||
< binutils.spec > cross-$arch-binutils.spec
|
||||
|
||||
echo " done."
|
||||
done
|
21
s390-biarch.diff
Normal file
21
s390-biarch.diff
Normal file
@ -0,0 +1,21 @@
|
||||
--- ld/emulparams/elf_s390.sh
|
||||
+++ ld/emulparams/elf_s390.sh
|
||||
@@ -11,3 +11,18 @@
|
||||
GENERATE_SHLIB_SCRIPT=yes
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
+
|
||||
+# Treat a host that matches the target with the possible exception of "x"
|
||||
+# in the name as if it were native.
|
||||
+if test `echo "$host" | sed -e s/x//` = `echo "$target" | sed -e s/x//`; then
|
||||
+ case " $EMULATION_LIBPATH " in
|
||||
+ *" ${EMULATION_NAME} "*)
|
||||
+ NATIVE=yes
|
||||
+ ;;
|
||||
+ esac
|
||||
+fi
|
||||
+
|
||||
+# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
|
||||
+case "$EMULATION_NAME" in
|
||||
+ *64*) LIBPATH_SUFFIX=64 ;;
|
||||
+esac
|
152
s390-pic-dso.diff
Normal file
152
s390-pic-dso.diff
Normal file
@ -0,0 +1,152 @@
|
||||
--- bfd/elf32-s390.c
|
||||
+++ bfd/elf32-s390.c
|
||||
@@ -2543,13 +2543,30 @@
|
||||
unresolved_reloc = FALSE;
|
||||
break;
|
||||
|
||||
- case R_390_8:
|
||||
- case R_390_16:
|
||||
- case R_390_32:
|
||||
case R_390_PC16:
|
||||
case R_390_PC16DBL:
|
||||
case R_390_PC32DBL:
|
||||
case R_390_PC32:
|
||||
+ /* This is strictly required only for PC32DLB, which
|
||||
+ is not handled by ld.so, but let's be helpful to the user also
|
||||
+ in the other cases. */
|
||||
+ if (info->shared
|
||||
+ && !SYMBOL_REFERENCES_LOCAL (info, h)
|
||||
+ && (input_section->flags & SEC_ALLOC) != 0
|
||||
+ && (input_section->flags & SEC_READONLY) != 0)
|
||||
+ {
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"),
|
||||
+ input_bfd, elf_howto_table[r_type].name,
|
||||
+ h->root.root.string);
|
||||
+ bfd_set_error (bfd_error_bad_value);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ /* Fall through. */
|
||||
+
|
||||
+ case R_390_8:
|
||||
+ case R_390_16:
|
||||
+ case R_390_32:
|
||||
if ((input_section->flags & SEC_ALLOC) == 0)
|
||||
break;
|
||||
|
||||
--- bfd/elf64-s390.c
|
||||
+++ bfd/elf64-s390.c
|
||||
@@ -2520,15 +2520,32 @@
|
||||
unresolved_reloc = FALSE;
|
||||
break;
|
||||
|
||||
- case R_390_8:
|
||||
- case R_390_16:
|
||||
- case R_390_32:
|
||||
- case R_390_64:
|
||||
case R_390_PC16:
|
||||
case R_390_PC16DBL:
|
||||
case R_390_PC32:
|
||||
case R_390_PC32DBL:
|
||||
case R_390_PC64:
|
||||
+ /* This is strictly required only for PC32DLB, which
|
||||
+ is not handled by ld.so, but let's be helpful to the user also
|
||||
+ in the other cases. */
|
||||
+ if (info->shared
|
||||
+ && !SYMBOL_REFERENCES_LOCAL (info, h)
|
||||
+ && (input_section->flags & SEC_ALLOC) != 0
|
||||
+ && (input_section->flags & SEC_READONLY) != 0)
|
||||
+ {
|
||||
+ (*_bfd_error_handler)
|
||||
+ (_("%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"),
|
||||
+ input_bfd, elf_howto_table[r_type].name,
|
||||
+ h->root.root.string);
|
||||
+ bfd_set_error (bfd_error_bad_value);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ /* Fall through. */
|
||||
+
|
||||
+ case R_390_8:
|
||||
+ case R_390_16:
|
||||
+ case R_390_32:
|
||||
+ case R_390_64:
|
||||
if ((input_section->flags & SEC_ALLOC) == 0)
|
||||
break;
|
||||
|
||||
--- ld/testsuite/ld-elfvers/vers.exp
|
||||
+++ ld/testsuite/ld-elfvers/vers.exp
|
||||
@@ -94,6 +94,7 @@
|
||||
|
||||
case $target_triplet in {
|
||||
{ ia64-*-* } { set as_options "-x" }
|
||||
+ { s390-*-linux-* } { set as_options "-march=z900" }
|
||||
default { set as_options "" }
|
||||
}
|
||||
|
||||
@@ -764,8 +765,9 @@
|
||||
pass $test
|
||||
}
|
||||
|
||||
-if [istarget x86_64-*-linux*] {
|
||||
- # x86_64 doesn't like non-pic shared libraries
|
||||
+if { [istarget x86_64-*-linux*] \
|
||||
+ || [istarget s390*-*-linux*] } {
|
||||
+ # x86_64 and s390 doesn't like non-pic shared libraries
|
||||
set pic "yes"
|
||||
} else {
|
||||
set pic "no"
|
||||
--- ld/testsuite/ld-elfvsb/elfvsb.exp
|
||||
+++ ld/testsuite/ld-elfvsb/elfvsb.exp
|
||||
@@ -265,6 +265,7 @@
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
}
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
if { ![istarget hppa*64*-*-linux*] } {
|
||||
setup_xfail "hppa*-*-linux*"
|
||||
@@ -303,6 +304,7 @@
|
||||
setup_xfail "alpha*-*-linux*"
|
||||
setup_xfail "mips*-*-linux*"
|
||||
}
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
if { ![istarget hppa*64*-*-linux*] } {
|
||||
setup_xfail "hppa*-*-linux*"
|
||||
@@ -369,6 +371,7 @@
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
}
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
if { ![istarget hppa*64*-*-linux*] } {
|
||||
setup_xfail "hppa*-*-linux*"
|
||||
--- ld/testsuite/ld-shared/shared.exp
|
||||
+++ ld/testsuite/ld-shared/shared.exp
|
||||
@@ -208,7 +208,7 @@
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
- setup_xfail "s390x-*-linux*"
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o shared
|
||||
|
||||
# Test ELF shared library relocations with a non-zero load
|
||||
@@ -228,7 +228,7 @@
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
- setup_xfail "s390x-*-linux*"
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
shared_test shnp "shared (non PIC, load offset)" \
|
||||
mainnp.o sh1np.o sh2np.o shared \
|
||||
"-T $srcdir/$subdir/elf-offset.ld"
|
||||
@@ -277,7 +277,7 @@
|
||||
setup_xfail "sparc*-*-linux*"
|
||||
}
|
||||
setup_xfail "x86_64-*-linux*"
|
||||
- setup_xfail "s390x-*-linux*"
|
||||
+ setup_xfail "s390*-*-linux*"
|
||||
shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o shared
|
||||
}
|
||||
} else {
|
5
s390-pic.patch
Normal file
5
s390-pic.patch
Normal file
@ -0,0 +1,5 @@
|
||||
--- config/mh-s390pic
|
||||
+++ config/mh-s390pic
|
||||
@@ -1 +1 @@
|
||||
-PICFLAG=-fpic
|
||||
+PICFLAG=-fPIC
|
32
testsuite.diff
Normal file
32
testsuite.diff
Normal file
@ -0,0 +1,32 @@
|
||||
--- binutils/testsuite/binutils-all/windres/windres.exp
|
||||
+++ binutils/testsuite/binutils-all/windres/windres.exp
|
||||
@@ -46,6 +46,7 @@
|
||||
set wr "$wr --include-dir $srcdir/../../winsup/w32api/include"
|
||||
set target_xfail "no"
|
||||
} else {
|
||||
+ return
|
||||
send_log "\nWarning: Assuming windres can find the win32 headers\n\n"
|
||||
}
|
||||
|
||||
--- ld/testsuite/ld-srec/srec.exp
|
||||
+++ ld/testsuite/ld-srec/srec.exp
|
||||
@@ -17,6 +17,9 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
+# Too fragile.
|
||||
+return
|
||||
+
|
||||
# Get the offset from an S-record line to the start of the data.
|
||||
|
||||
proc srec_off { l } {
|
||||
--- ld/testsuite/ld-undefined/undefined.exp
|
||||
+++ ld/testsuite/ld-undefined/undefined.exp
|
||||
@@ -127,6 +127,6 @@
|
||||
# the function. Therefore the line number in the error message is 8 instead
|
||||
# of 9. On 64 bit s/390 this works because of the new brasl instruction that
|
||||
# doesn't need a literal pool entry.
|
||||
-setup_xfail s390-*-*
|
||||
+#setup_xfail s390-*-*
|
||||
|
||||
checkund $ml $testline
|
27
unit-at-a-time.patch
Normal file
27
unit-at-a-time.patch
Normal file
@ -0,0 +1,27 @@
|
||||
Index: selective.exp
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/ld/testsuite/ld-selective/selective.exp,v
|
||||
retrieving revision 1.26
|
||||
diff -c -3 -p -r1.26 selective.exp
|
||||
*** ld/testsuite/ld-selective/selective.exp 10 Aug 2002 12:48:52 -0000 1.26
|
||||
--- ld/testsuite/ld-selective/selective.exp 19 Aug 2003 08:00:20 -0000
|
||||
*************** set seltests {
|
||||
*** 59,66 ****
|
||||
{A::foo() B::foo() dropme1() dropme2()} {*-*-*}}
|
||||
}
|
||||
|
||||
! set cflags "-w -O -ffunction-sections -fdata-sections"
|
||||
! set cxxflags "-fvtable-gc -fno-exceptions -fno-rtti"
|
||||
set ldflags "--gc-sections -Bstatic"
|
||||
|
||||
if [istarget sh64*-*-elf] {
|
||||
--- 59,66 ----
|
||||
{A::foo() B::foo() dropme1() dropme2()} {*-*-*}}
|
||||
}
|
||||
|
||||
! set cflags "-w -O -ffunction-sections -fdata-sections -fno-unit-at-a-time"
|
||||
! set cxxflags "-fvtable-gc -fno-exceptions -fno-rtti -fno-unit-at-a-time"
|
||||
set ldflags "--gc-sections -Bstatic"
|
||||
|
||||
if [istarget sh64*-*-elf] {
|
||||
|
39
use-hashtype-both-by-default.diff
Normal file
39
use-hashtype-both-by-default.diff
Normal file
@ -0,0 +1,39 @@
|
||||
--- ld/ldmain.c
|
||||
+++ ld/ldmain.c
|
||||
@@ -267,6 +267,7 @@
|
||||
link_info.combreloc = TRUE;
|
||||
link_info.strip_discarded = TRUE;
|
||||
link_info.emit_hash = TRUE;
|
||||
+ link_info.emit_gnu_hash = TRUE;
|
||||
link_info.callbacks = &link_callbacks;
|
||||
link_info.input_bfds_tail = &link_info.input_bfds;
|
||||
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
|
||||
--- ld/testsuite/config/default.exp
|
||||
+++ ld/testsuite/config/default.exp
|
||||
@@ -20,7 +20,7 @@
|
||||
#
|
||||
|
||||
if ![info exists ld] then {
|
||||
- set ld "[findfile $base_dir/ld-new $base_dir/ld-new [transform ld]] -znorelro"
|
||||
+ set ld "[findfile $base_dir/ld-new $base_dir/ld-new [transform ld]] -znorelro --hash-style=sysv"
|
||||
}
|
||||
|
||||
if ![info exists as] then {
|
||||
@@ -67,7 +67,7 @@
|
||||
catch "exec mkdir tmpdir/ld" status
|
||||
catch "exec ln -s ../../ld-new tmpdir/ld/ld" status
|
||||
}
|
||||
-set gcc_ld_flag "-B[pwd]/tmpdir/ld/ -Wl,-z,norelro"
|
||||
+set gcc_ld_flag "-B[pwd]/tmpdir/ld/ -Wl,-z,norelro -Wl,--hash-style=sysv"
|
||||
|
||||
# load the linker path
|
||||
if {[file exists tmpdir/libpath.exp]} {
|
||||
@@ -261,7 +261,7 @@
|
||||
}
|
||||
|
||||
if ![info exists LD] then {
|
||||
- set LD "[findfile $base_dir/ld-new ./ld-new [transform ld]] -znorelro"
|
||||
+ set LD "[findfile $base_dir/ld-new ./ld-new [transform ld]] -znorelro --hash-style=sysv"
|
||||
}
|
||||
|
||||
if ![info exists LDFLAGS] then {
|
13
x86-64-biarch.patch
Normal file
13
x86-64-biarch.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: ld/emulparams/elf_i386.sh
|
||||
================================================================================
|
||||
--- ld/emulparams/elf_i386.sh
|
||||
+++ ld/emulparams/elf_i386.sh
|
||||
@@ -12,3 +12,8 @@
|
||||
GENERATE_PIE_SCRIPT=yes
|
||||
NO_SMALL_DATA=yes
|
||||
SEPARATE_GOTPLT=12
|
||||
+
|
||||
+# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
|
||||
+case "$EMULATION_NAME" in
|
||||
+ *64*) LIBPATH_SUFFIX=64 ;;
|
||||
+esac
|
Loading…
Reference in New Issue
Block a user