From Alt-linux defaults and no_warn_shared_textrel patches. 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:12:08.004803009 +0000 @@ -264,6 +264,7 @@ link_info.keep_memory = TRUE; link_info.combreloc = TRUE; link_info.strip_discarded = TRUE; + link_info.warn_shared_textrel = TRUE; link_info.emit_hash = TRUE; link_info.callbacks = &link_callbacks; link_info.input_bfds_tail = &link_info.input_bfds; diff -Naur binutils-2.19.51.orig/ld/lexsup.c binutils-2.19.51/ld/lexsup.c --- binutils-2.19.51.orig/ld/lexsup.c 2009-09-02 07:25:35.000000000 +0000 +++ binutils-2.19.51/ld/lexsup.c 2009-10-12 11:17:02.727991990 +0000 @@ -164,6 +164,7 @@ OPTION_WARN_UNRESOLVED_SYMBOLS, OPTION_ERROR_UNRESOLVED_SYMBOLS, OPTION_WARN_SHARED_TEXTREL, + OPTION_NO_WARN_SHARED_TEXTREL, OPTION_WARN_ALTERNATE_EM, OPTION_REDUCE_MEMORY_OVERHEADS, OPTION_DEFAULT_SCRIPT @@ -559,6 +560,9 @@ { {"warn-shared-textrel", no_argument, NULL, OPTION_WARN_SHARED_TEXTREL}, '\0', NULL, N_("Warn if shared object has DT_TEXTREL"), TWO_DASHES }, + { {"no-warn-shared-textrel", no_argument, NULL, OPTION_NO_WARN_SHARED_TEXTREL}, + '\0', NULL, N_("Do not warn if shared object has DT_TEXTREL"), + TWO_DASHES }, { {"warn-alternate-em", no_argument, NULL, OPTION_WARN_ALTERNATE_EM}, '\0', NULL, N_("Warn if an object has alternate ELF machine code"), TWO_DASHES }, @@ -1369,6 +1373,9 @@ case OPTION_WARN_SHARED_TEXTREL: link_info.warn_shared_textrel = TRUE; break; + case OPTION_NO_WARN_SHARED_TEXTREL: + link_info.warn_shared_textrel = FALSE; + break; case OPTION_WARN_ALTERNATE_EM: link_info.warn_alternate_em = TRUE; break; diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-elf/eh6.d binutils-2.19.51/ld/testsuite/ld-elf/eh6.d --- binutils-2.19.51.orig/ld/testsuite/ld-elf/eh6.d 2008-10-06 16:27:35.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-elf/eh6.d 2009-10-12 11:13:48.620811051 +0000 @@ -1,5 +1,5 @@ #source: eh6.s -#ld: --gc-sections -shared +#ld: --gc-sections -shared --no-warn-shared-textrel #readelf: -wf #target: x86_64-*-linux-gnu i?86-*-linux-gnu diff -Naur binutils-2.19.51.orig/ld/testsuite/ld-elfvers/vers.exp binutils-2.19.51/ld/testsuite/ld-elfvers/vers.exp --- binutils-2.19.51.orig/ld/testsuite/ld-elfvers/vers.exp 2009-09-02 07:25:39.000000000 +0000 +++ binutils-2.19.51/ld/testsuite/ld-elfvers/vers.exp 2009-10-12 11:14:31.305907914 +0000 @@ -570,7 +570,7 @@ proc build_vers_lib_no_pic { test source libname other mapfile verexp versymexp symexp } { global shared - build_binary $shared "" $test $source $libname $other $mapfile $verexp $versymexp $symexp "" + build_binary $shared "" $test $source $libname $other $mapfile $verexp $versymexp $symexp "--no-warn-shared-textrel" } proc build_vers_lib_pic { test source libname other mapfile verexp versymexp symexp } { 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:16:08.497514440 +0000 @@ -139,7 +139,7 @@ {{readelf -Ssrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} "tlsbindesc"} - {"TLS -fno-pic -shared" "-shared -melf_i386" + {"TLS -fno-pic -shared" "-shared -melf_i386 --no-warn-shared-textrel" "--32" {tlsnopic1.s tlsnopic2.s} {{readelf -Ssrl tlsnopic.rd} {objdump -drj.text tlsnopic.dd} {objdump -sj.got tlsnopic.sd}} "libtlsnopic.so"} @@ -152,7 +152,7 @@ {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} {"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s} {{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"} - {"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32" + {"Reloc section order" "-shared -melf_i386 -z nocombreloc --no-warn-shared-textrel" "--32" {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} {"Basic --emit-relocs support" "-shared -melf_i386 --emit-relocs" "--32" {emit-relocs.s} {{readelf --relocs emit-relocs.d}} "emit-relocs.so"}