Hello community, here is the log from the commit of package binutils checked in at Fri Mar 31 16:00:31 CEST 2006. -------- --- binutils/binutils.changes 2006-03-31 15:34:15.000000000 +0200 +++ binutils/binutils.changes 2006-03-31 15:49:22.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Mar 31 15:49:12 CEST 2006 - matz@suse.de + +- Also disallow linking non-PIC .o files into shared libraries on + s390x. + +------------------------------------------------------------------- cross-alpha-binutils.changes: same change cross-arm-binutils.changes: same change cross-avr-binutils.changes: same change cross-hppa-binutils.changes: same change cross-i386-binutils.changes: same change cross-ia64-binutils.changes: same change cross-mips-binutils.changes: same change cross-ppc-binutils.changes: same change cross-ppc64-binutils.changes: same change cross-s390-binutils.changes: same change cross-s390x-binutils.changes: same change cross-sparc-binutils.changes: same change cross-x86_64-binutils.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ binutils.spec ++++++ --- /var/tmp/diff_new_pack.L4Q19h/_old 2006-03-31 15:59:59.000000000 +0200 +++ /var/tmp/diff_new_pack.L4Q19h/_new 2006-03-31 15:59:59.000000000 +0200 @@ -49,7 +49,7 @@ %endif Autoreqprov: on Version: 2.16.91.0.5 -Release: 10 +Release: 11 Summary: GNU Binutils Source: ftp://ftp.kernel.org/pub/linux/devel/binutils/binutils-%{version}.tar.bz2 Source1: pre_checkin.sh @@ -415,6 +415,9 @@ %endif %changelog -n binutils +* Fri Mar 31 2006 - matz@suse.de +- Also disallow linking non-PIC .o files into shared libraries on + s390x. * Fri Mar 31 2006 - schwab@suse.de - Fix bfd_find_nearest_line so that gcc -frepo works again. * Wed Feb 15 2006 - matz@suse.de cross-alpha-binutils.spec: same change cross-arm-binutils.spec: same change cross-avr-binutils.spec: same change cross-hppa-binutils.spec: same change cross-i386-binutils.spec: same change cross-ia64-binutils.spec: same change cross-mips-binutils.spec: same change cross-ppc-binutils.spec: same change cross-ppc64-binutils.spec: same change cross-s390-binutils.spec: same change cross-s390x-binutils.spec: same change cross-sparc-binutils.spec: same change cross-x86_64-binutils.spec: same change ++++++ s390-pic-dso.diff ++++++ --- /var/tmp/diff_new_pack.L4Q19h/_old 2006-03-31 16:00:00.000000000 +0200 +++ /var/tmp/diff_new_pack.L4Q19h/_new 2006-03-31 16:00:00.000000000 +0200 @@ -33,7 +33,7 @@ setup_xfail "sparc*-*-linux*" } } -+ setup_xfail "s390-*-linux*" ++ setup_xfail "s390*-*-linux*" setup_xfail "x86_64-*-linux*" if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" @@ -41,7 +41,7 @@ setup_xfail "alpha*-*-linux*" setup_xfail "mips*-*-linux*" } -+ setup_xfail "s390-*-linux*" ++ setup_xfail "s390*-*-linux*" setup_xfail "x86_64-*-linux*" if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" @@ -49,7 +49,7 @@ setup_xfail "sparc*-*-linux*" } } -+ setup_xfail "s390-*-linux*" ++ setup_xfail "s390*-*-linux*" setup_xfail "x86_64-*-linux*" if { ![istarget hppa*64*-*-linux*] } { setup_xfail "hppa*-*-linux*" @@ -89,6 +89,45 @@ /* r_symndx will be zero only for relocs against symbols from removed linkonce sections, or sections discarded by a linker script. */ +--- bfd/elf64-s390.c.mm ++++ bfd/elf64-s390.c +@@ -2522,15 +2522,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: + /* r_symndx will be zero only for relocs against symbols + from removed linkonce sections, or sections discarded by + a linker script. */ --- ./ld/testsuite/ld-elfvers/vers.exp.mm 2006-02-06 17:13:27.000000000 +0000 +++ ./ld/testsuite/ld-elfvers/vers.exp 2006-02-06 17:37:33.000000000 +0000 @@ -94,6 +94,7 @@ if [istarget mips*-*-*] { @@ -106,7 +145,7 @@ -if [istarget x86_64-*-linux*] { - # x86_64 doesn't like non-pic shared libraries +if { [istarget x86_64-*-linux*] \ -+ || [istarget s390-*-linux*] } { ++ || [istarget s390*-*-linux*] } { + # x86_64 and s390 doesn't like non-pic shared libraries set pic "yes" } else { ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...