http://sourceware.org/bugzilla/show_bug.cgi?id=12978
Summary: ld generates broken ld.so on ia64 Product: binutils Version: 2.22 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sources.redhat.com ReportedBy: aurel...@aurel32.net Host: ia64-unknown-linux-gnu Target: ia64-unknown-linux-gnu Build: ia64-unknown-linux-gnu ld from binutils HEAD produces broken ld.so on ia64. The resulting binary works when called as a standalone, but just segfaults when used with other binaries: | $ ./ld.so | Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...] | You have invoked `ld.so', the helper program for shared library executables. | This program usually lives in the file `/lib/ld.so', and special directives | in executable files using ELF shared libraries tell the system's program | loader to load the helper program from this file. This helper program loads | the shared libraries needed by the program executable, prepares the program | to run, and runs it. You may invoke this helper program directly from the | command line to load and run an ELF executable file; this is like executing | that file itself, but always uses this helper program from the file you | specified, instead of the helper program file specified in the executable | file you run. This is mostly of use for maintainers to test new versions | of this helper program; chances are you did not intend to run this program. | | --list list all dependencies and how they are resolved | --verify verify that given object really is a dynamically linked | object we can handle | --library-path PATH use given PATH instead of content of the environment | variable LD_LIBRARY_PATH | --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names | in LIST | --audit LIST use objects named in LIST as auditors | $ ./ld.so /bin/ls | Segmentation fault The issue has been introduced by the following changes: | 2011-05-25 Tristan Gingold <ging...@adacore.com> | | * configure.in (bfd_elf32_ia64_big_vec, bfd_elf32_ia64_hpux_big_vec) | (bfd_elf64_ia64_big_vec, bfd_elf64_ia64_hpux_big_vec) | (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_vms_vec): Add elfxx-ia64.lo | * Makefile.am (BFD64_BACKENDS): Add elfxx-ia64.lo | (BFD64_BACKENDS_CFILES): Add elfxx-ia64.c | (elf32-ia64.c): Created from elfnn-ia64.c | (elf64-ia64.c): Likewise. | * elfxx-ia64.h: New file. | * elfxx-ia64.c: Split with elfnn-ia64.c. Keep only the following | functions.Includes elfxx-ia64.h. | (elfNN_ia64_reloc): Renames to ia64_elf_reloc. Adjust error message. | (IA64_HOWTO): Adjust. | (lookup_howto): Renames to ia64_elf_lookup_howto. Make it public. | (elfNN_ia64_reloc_type_lookup): Renames to | ia64_elf_reloc_type_lookup. Make it public. Adjust calls. | (elfNN_ia64_reloc_name_lookup): Renames to | ia64_elf_reloc_name_lookup. Make it public. | (elfNN_ia64_relax_br): Renames to ia64_elf_relax_br. Make it public. | (elfNN_ia64_relax_brl): Renames to ia64_elf_relax_brl. Make it | public. | (elfNN_ia64_relax_ldxmov): Renames to ia64_elf_relax_ldxmov. | Move it and make it public. Move prototype to elfxx-ia64.h | (elfNN_ia64_install_value): Renames to ia64_elf_install_value. | Move prototype to elfxx-ia64.h | * elfnn-ia64.c: New file, split from elfxx-ia64.c. | (elfNN_ia64_info_to_howto): Adjust calls. | (elfNN_ia64_relax_section): Adjust calls. | (count_dyn_reloc): Fix typo. | (elfNN_ia64_relocate_section): Adjust calls. | (elfNN_ia64_finish_dynamic_symbol): Likewise. | (bfd_elfNN_bfd_reloc_type_lookup) | (bfd_elfNN_bfd_reloc_name_lookup): Adjust macros. | * configure: Regenerate. | * Makefile.in: Regenerate. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils