svn commit: r212373 - head/lib/libelf

Kai Wang kaiwang27 at gmail.com
Fri Sep 10 09:59:32 UTC 2010


On Thu, Sep 09, 2010 at 07:54:02PM -0700, Steve Kargl wrote:
> On Thu, Sep 09, 2010 at 06:51:50PM +0000, Kai Wang wrote:
> > Author: kaiw
> > Date: Thu Sep  9 18:51:50 2010
> > New Revision: 212373
> > URL: http://svn.freebsd.org/changeset/base/212373
> > 
> > Log:
> >   libelf is overly strict about the type and alignment of Elf_Data
> >   objects inside one ELF section, which prevents the creation of a ELF
> >   section with mixed data types. For example, gcc LTO use libelf to
> >   create a .gnu_lto_XXX section that contains integers and a string
> >   table, which doesn't work with our libelf implementation.
> >   
> >   The changes made in this commit include:
> >   * Allow Elf_Data type to be different than section type.
> >   * Relax Elf_Data alignment check.
> >   * Align each Elf_Data by their own alignment instead of section alignment.
> >   
> >   MFC after:   1 month
> > 
> > Modified:
> >   head/lib/libelf/elf_update.c
> > 
> 
> libelf still doesn't work with GCC.  All testsuite failures
> are of the form
> 
> collect2: lto-wrapper returned 1 exit status
> compiler exited with status 1
> output is:
> lto1: error: could not open ELF file: Request error: invalid ELF_C_* argument
> lto-wrapper: /usr/home/sgk/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran returned 1 exit status
> collect2: lto-wrapper returned 1 exit status

Hi Steve,

It seems that your lto1 was compiled with our libelf header but linked
to GNU libelf.  (I think "invalid ELF_C_* argument" is GNU libelf error
message)

Could you please check the value of "ldd /path/to/lto1" ?

Thanks,
Kai


More information about the svn-src-head mailing list