This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Fix build with --enable-elf-stt-common
- From: Nix <nix at esperi dot org dot uk>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sourceware dot org
- Date: Wed, 19 Nov 2008 22:08:15 +0000
- Subject: Re: [PATCH] Fix build with --enable-elf-stt-common
- References: <87abbxx9ai.fsf@hades.wkstn.nix> <4923E695.1030301@redhat.com>
On 19 Nov 2008, Nick Clifton uttered the following:
> Hi Nix,
>
>> The fix is obvious, if inelegant; however, this makes me wonder how
>> often --enable-elf-stt-common is tested.
>
> Obviously not very often. I have now added a build configured with --enable-elf-stt-common to my binutils build farm, so it will
> get tested in the future.
Great!
For me there are additional test failures with this option (under glibc
2.8, which does appear to have at least *some* support for STT_COMMON in
its dynamic loader):
Running: tmpdir/dl2a > tmpdir/dl2a.out
diff tmpdir/dl2a.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl2a.out
1c1
< OK2
---
> OK1
3c3
< OK2
---
> OK1
child process exited abnormally
FAIL: Run with libdl2a.so
Running: tmpdir/dl2c > tmpdir/dl2c.out
diff tmpdir/dl2c.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl2b.out
1c1
< OK2
---
> OK1
3c3
< OK2
---
> OK1
child process exited abnormally
FAIL: Run with libdl2c.so
Running: tmpdir/dl4b > tmpdir/dl4b.out
diff tmpdir/dl4b.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl4a.out
1,2c1,2
< bar OK2
< bar OK4
---
> bar OK1
> bar OK3
5,6c5,6
< OK2
< OK4
---
> OK1
> OK3
child process exited abnormally
FAIL: Run with libdl4b.so
Running: tmpdir/dl4d > tmpdir/dl4d.out
diff tmpdir/dl4d.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl4b.out
1,2c1,2
< bar OK2
< bar OK4
---
> bar OK1
> bar OK3
5,6c5,6
< OK2
< OK4
---
> OK1
> OK3
child process exited abnormally
FAIL: Run with libdl4d.so
diff tmpdir/dl4e.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl4a.out
1,2c1,2
< bar OK2
< bar OK4
---
> bar OK1
> bar OK3
5,6c5,6
< OK2
< OK4
---
> OK1
> OK3
child process exited abnormally
FAIL: Run with libdl4e.so
Running: tmpdir/dl4f > tmpdir/dl4f.out
diff tmpdir/dl4f.out /usr/packages/binutils/2.19/ld/testsuite/ld-elf/dl4a.out
1,2c1,2
< bar OK2
< bar OK4
---
> bar OK1
> bar OK3
5,6c5,6
< OK2
< OK4
---
> OK1
> OK3
child process exited abnormally
FAIL: Run with libdl4f.so
These are the failures I'd expect if STT_COMMON symbols simply aren't
being treated as common across shared library boundaries. glibc bug,
perhaps? (I haven't tried glibc 2.9 yet, or even looked to see if this
bug has been fixed there. Maybe when my network connection stays up for
longer than a minute at a time I can look at that...)