From Alt-linux "defaults" patch. This patch passes test suites. robert diff -Naur binutils-2.19.51.orig/ld/ldmain.c binutils-2.19.51/ld/ldmain.c --- binutils-2.19.51.orig/ld/ldmain.c 2009-09-02 07:25:35.000000000 +0000 +++ binutils-2.19.51/ld/ldmain.c 2009-10-12 11:06:54.039320775 +0000 @@ -260,6 +260,7 @@ interface by default. */ demangling = getenv ("COLLECT_NO_DEMANGLE") == NULL; + link_info.optimize = TRUE; link_info.allow_undefined_version = TRUE; link_info.keep_memory = TRUE; link_info.combreloc = TRUE; diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-arm/arm-elf.exp binutils-2.19.51/ld/testsuite/ld-arm/arm-elf.exp --- binutils-2.19.51.orig/ld/testsuite/ld-arm/arm-elf.exp 2009-09-02 07:25:37.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-arm/arm-elf.exp 2009-10-12 11:06:16.898883458 +0000 @@ -89,21 +89,21 @@ {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s} {{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}} "arm-app-abs32"} - {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "-mthumb-interwork" + {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld -O0" "-mthumb-interwork" {mixed-lib.s} {{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}} "armthumb-lib.so"} - {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" "" + {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx -O0" "" {mixed-lib.s} {{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r} {readelf -Ds mixed-lib.sym}} "mixed-lib.so"} - {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" "" + {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld -O0" "" {mixed-app.s} {{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r} {readelf -Ds mixed-app.sym}} "mixed-app"} - {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" + {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx -O0" "" {mixed-app.s} {{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r} {readelf -Ds mixed-app.sym}} @@ -132,7 +132,7 @@ {"TLS shared library" "-shared -T arm-lib.ld" "" {tls-lib.s} {{objdump -fdw tls-lib.d} {objdump -Rw tls-lib.r}} "tls-lib.so"} - {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so" "" {tls-app.s} + {"TLS dynamic application" "-T arm-dyn.ld tmpdir/tls-lib.so -O0" "" {tls-app.s} {{objdump -fdw tls-app.d} {objdump -Rw tls-app.r}} "tls-app"} {"Thumb entry point" "-T arm.ld" "" {thumb-entry.s} @@ -220,7 +220,7 @@ {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" {arm-pic-veneer.s} {{objdump -d arm-pic-veneer.d}} "arm-pic-veneer"} - {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" + {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx -O0" "" {preempt-app.s} {{readelf -Ds preempt-app.sym}} "preempt-app"} @@ -403,18 +403,18 @@ {{objdump -d farcall-group-limit.d}} "farcall-group-limit"} - {"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" + {"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000 -O0" "" {farcall-mixed-app.s} {{objdump -fdw farcall-mixed-app.d} {objdump -Rw farcall-mixed-app.r} {readelf -Ds farcall-mixed-app.sym}} "farcall-mixed-app"} - {"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" "" + {"Mixed ARM/Thumb arch5 dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000 -O0" "" {farcall-mixed-app.s} {{objdump -fdw farcall-mixed-app-v5.d} {objdump -Rw farcall-mixed-app.r} {readelf -Ds farcall-mixed-app.sym}} "farcall-mixed-app-v5"} - {"Mixed ARM/Thumb shared library with long branches" "-shared -T arm-lib.ld" "" + {"Mixed ARM/Thumb shared library with long branches" "-shared -T arm-lib.ld -O0" "" {farcall-mixed-lib1.s farcall-mixed-lib2.s} {{objdump -fdw farcall-mixed-lib.d}} "farcall-mixed-lib.so"} diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-elf/hash.d binutils-2.19.51/ld/testsuite/ld-elf/hash.d --- binutils-2.19.51.orig/ld/testsuite/ld-elf/hash.d 2007-10-09 13:32:50.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-elf/hash.d 2009-10-12 11:06:16.890884399 +0000 @@ -1,6 +1,6 @@ #source: start.s #readelf: -d -s -D -#ld: -shared --hash-style=gnu +#ld: -O0 -shared --hash-style=gnu #target: *-*-linux* #notarget: mips*-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-i386/hidden2.d binutils-2.19.51/ld/testsuite/ld-i386/hidden2.d --- binutils-2.19.51.orig/ld/testsuite/ld-i386/hidden2.d 2008-03-16 22:26:23.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-i386/hidden2.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,5 +1,5 @@ #as: --32 -#ld: -shared -melf_i386 +#ld: -O0 -shared -melf_i386 #objdump: -drw .*: +file format .* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-i386/i386.exp binutils-2.19.51/ld/testsuite/ld-i386/i386.exp --- binutils-2.19.51.orig/ld/testsuite/ld-i386/i386.exp 2009-09-02 07:25:40.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-i386/i386.exp 2009-10-12 11:08:55.817854586 +0000 @@ -122,7 +122,7 @@ {{readelf -Ssrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"TLS descriptor -fpic -shared transitions" "-shared -melf_i386" + {"TLS descriptor -fpic -shared transitions" "-shared -melf_i386 -O0" "--32" {tlsdesc.s tlspic2.s} {{readelf -Ssrl tlsdesc.rd} {objdump -drj.text tlsdesc.dd} {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td}} diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d --- binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d 2009-07-10 14:30:21.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-1-local-x86.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,4 +1,4 @@ -#ld: -shared +#ld: -shared -O0 #objdump: -dw #target: x86_64-*-* i?86-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-1-x86.d binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-1-x86.d --- binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-1-x86.d 2009-07-10 14:30:21.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-1-x86.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,4 +1,4 @@ -#ld: -shared +#ld: -shared -O0 #objdump: -dw #target: x86_64-*-* i?86-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d --- binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d 2009-07-10 14:03:03.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,5 +1,5 @@ #as: --64 -#ld: -shared -melf_x86_64 +#ld: -shared -melf_x86_64 -O0 #objdump: -dw #target: x86_64-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d --- binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d 2009-07-10 14:03:03.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-2-x86-64.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,5 +1,5 @@ #as: --64 -#ld: -shared -melf_x86_64 +#ld: -shared -melf_x86_64 -O0 #objdump: -dw #target: x86_64-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-3a-x86.d binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-3a-x86.d --- binutils-2.19.51.orig/ld/testsuite/ld-ifunc/ifunc-3a-x86.d 2009-07-10 14:30:21.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-ifunc/ifunc-3a-x86.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,5 +1,5 @@ #source: ifunc-3-x86.s -#ld: -shared +#ld: -shared -O0 #objdump: -dw #target: x86_64-*-* i?86-*-* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-x86-64/hidden2.d binutils-2.19.51/ld/testsuite/ld-x86-64/hidden2.d --- binutils-2.19.51.orig/ld/testsuite/ld-x86-64/hidden2.d 2008-03-16 22:26:23.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-x86-64/hidden2.d 2009-10-12 11:06:16.894887888 +0000 @@ -1,5 +1,5 @@ #as: --64 -#ld: -shared -melf_x86_64 +#ld: -O0 -shared -melf_x86_64 #objdump: -drw .*: +file format .* diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.19.51/ld/testsuite/ld-x86-64/x86-64.exp --- binutils-2.19.51.orig/ld/testsuite/ld-x86-64/x86-64.exp 2009-09-02 07:25:42.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-x86-64/x86-64.exp 2009-10-12 11:06:16.894887888 +0000 @@ -42,7 +42,7 @@ {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} - {"TLS descriptor -fpic -shared transitions" "-shared -melf_x86_64" + {"TLS descriptor -fpic -shared transitions" "-shared -melf_x86_64 -O0" "--64" {tlsdesc.s tlspic2.s} {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd} {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td} @@ -60,7 +60,7 @@ {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} "tlsbindesc"} {"TLS with global dynamic and descriptors" - "-shared -melf_x86_64" "--64" {tlsgdesc.s} + "-shared -melf_x86_64 -O0" "--64" {tlsgdesc.s} {{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text tlsgdesc.dd}} "libtlsgdesc.so"} {"TLS in debug sections" "-melf_x86_64"