elfutils 0.180 released
Mark Wielaard
mark@klomp.org
Thu Jun 11 19:07:55 GMT 2020
Hi Martin,
On Thu, 2020-06-11 at 20:51 +0200, Martin Liška wrote:
> On 6/11/20 8:31 PM, Martin Liška wrote:
> > On 6/11/20 7:48 PM, Mark Wielaard wrote:
> > > ELFUTILS 0.180 -http://elfutils.org/
> >
> > Thank you for the release. I'm seeing a linking error during test
> > build:
> >
> > [ 84s] gcc -D_GNU_SOURCE -DHAVE_CONFIG_H
> > -DLOCALEDIR='"/usr/share/locale"' -I. -I.. \
> > [ 84s] -I. -I. -I../lib -I.. -I../libasm -I../libdw
> > -I../libdwfl -I../libdwelf -I../libebl -I../libelf -I../lib -I.. \
> > [ 84s] -g -O0 ../libelf/libelf.so -o test-nlist test-nlist.c
> > [ 84s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-
> > suse-linux/bin/ld: /tmp/ccyqAIyN.o: in function `main':
> > [ 84s] /home/abuild/rpmbuild/BUILD/elfutils-0.180/tests/test-
> > nlist.c:49: undefined reference to `nlist'
> > [ 84s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-
> > suse-linux/bin/ld: /home/abuild/rpmbuild/BUILD/elfutils-
> > 0.180/tests/test-nlist.c:50: undefined reference to `nlist'
> > [ 84s] collect2: error: ld returned 1 exit status
> > [ 84s] make[2]: *** [Makefile:4516: test-nlist] Error 1
> > [ 84s] make[2]: *** Waiting for unfinished jobs....
> >
>
> Small analysis:
>
> $ gcc test-nlist.c -I../libelf -c
> $ gcc test-nlist.o ../libelf/libelf.so
> $ gcc ../libelf/libelf.so test-nlist.o
> /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-
> linux/bin/ld: test-nlist.o: in function `main':
> test-nlist.c:(.text+0x91): undefined reference to `nlist'
> /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-
> linux/bin/ld: test-nlist.c:(.text+0xab): undefined reference to
> `nlist'
> collect2: error: ld returned 1 exit status
>
> apparently gold is fine:
>
> $ gcc ../libelf/libelf.so test-nlist.o -fuse-ld=gold
> [ok]
>
> $ objdump -t test-nlist.o | grep nlist
> test-nlist.o: file format elf64-x86-64
> 0000000000000000 l df *ABS* 0000000000000000 test-nlist.c
> 0000000000000000 *UND* 0000000000000000 nlist
>
> $ objdump -t ../libelf/libelf.so | grep nlist
> 0000000000000000 l df *ABS* 0000000000000000 n
> list.c
> 00000000000113a0 l F .text 00000000000000f1 n
> list_fshash_lookup
> 00000000000114a0 g F .text 0000000000000388 n
> list
>
> May it be related to some order mentioned in
> 51cfbaabefd6d5ebdd7513b876daf78d07470f8c?
Interesting. I saw the same when I tried to generate the coverage
report: https://sourceware.org/elfutils/coverage/
I first assume the ordering was the issue, so I added the LD_ADD later,
then I saw that it was missing the coverage CFLAGS and so added those.
Assuming that was the issue. What happens if you apply:
commit 3eaa4421b2422452b40547aab3e8da0749990ef9
Which has:
- $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $<
+ $(test_nlist_CFLAGS) $(GCOV_FLAGS) -o $@ $< $(test_nlist_LDADD)
Note that beside the GCOV_FLAGS, it also puts LDADD at the end.
Cheers,
Mark
More information about the Elfutils-devel
mailing list