From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2281 invoked by alias); 5 Jul 2011 18:29:30 -0000 Received: (qmail 2272 invoked by uid 22791); 5 Jul 2011 18:29:29 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=BAYES_00,TW_FN,TW_FX,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from hall.aurel32.net (HELO hall.aurel32.net) (88.191.126.93) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 05 Jul 2011 18:29:13 +0000 Received: from [2001:470:d4ed:0:5e26:aff:fe2b:6f5b] (helo=volta.aurel32.net) by hall.aurel32.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1QeAMu-0006OV-9o; Tue, 05 Jul 2011 20:29:08 +0200 Received: from aurel32 by volta.aurel32.net with local (Exim 4.76) (envelope-from ) id 1QeAMt-00053A-3u; Tue, 05 Jul 2011 20:29:07 +0200 Date: Tue, 05 Jul 2011 19:06:00 -0000 From: Aurelien Jarno To: Tristan Gingold Cc: Nick Clifton , binutils Development Subject: Re: Ping [Patch v2] bfd elfxx-ia64: share code between elf32 and elf64 Message-ID: <20110705182906.GB19197@volta.aurel32.net> References: <1149AB82-D754-4792-98C1-C677ABE5E712@adacore.com> <9F58AE27-C095-4B50-B3D4-1DF60454A382@adacore.com> <6ACB9B6C-7640-473A-9047-7AFB4C789D49@adacore.com> <4DDBB7CD.40902@redhat.com> <9C0F5E39-7514-4996-AA9B-26478EEAAD79@adacore.com> <4DDCADE9.4020405@redhat.com> <049A78A6-0E98-4631-BB9B-27A6B9527D37@adacore.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <049A78A6-0E98-4631-BB9B-27A6B9527D37@adacore.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-07/txt/msg00056.txt.bz2 Hello Tristan, On Wed, May 25, 2011 at 02:02:49PM +0200, Tristan Gingold wrote: > > On May 25, 2011, at 9:21 AM, Nick Clifton wrote: > > > Hi Tristan, > > > >> bfd/ > >> 2011-05-17 Tristan Gingold > >> > >> * 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. > > > > Approved - please apply. > > Thanks, committed. > This patch seems to break libc on ia64. ld-2.13.so produced with binutils using this patch works when called as a standalone, but just segfault 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 | I don't know what is the best way to proceed for debugging this issue. I can provide you the correct and the broken ld.so if it can help. Thanks, Aurelien -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net