DragonFly added support for ELF preinit, init, and fini arrays

Konstantin Belousov kostikbel at gmail.com
Sat Feb 18 21:38:39 UTC 2012


On Sat, Feb 18, 2012 at 07:53:22AM +0100, John Marino wrote:
> On 2/16/2012 9:27 PM, Konstantin Belousov wrote:
> >On Thu, Feb 16, 2012 at 05:51:21PM +0100, John Marino wrote:
> >>One obvious case for the immediate use is the building of gold linker in
> >>binutils 2.22.  By default, it moves constructors into the init array,
> >>so gold will segfault if it was linked with itself.  (The workaround is
> >>to patch option.h file to change the ctors-in-init-array to false before
> >>building gold so it has the same behavior as gnu ld).
> >Linking gold with gold is quite a work to setup a test case.
> >Could you provide me with isolated test cases like you did for the
> >exception handling ?
> Hi Konstantin,
> I have attached 5 small tests, where 4 of them are from glibc.  They 
> should be sufficient by themselves to check your patch.  However, if you 
> feel you need more then I could extract a few tests from the gnu ld 
> testsuite.

Thank you, it was very useful. It seems that test4 needed some adjustments
to actually provide the required dso for tests.

Now, the patch at http://people.freebsd.org/~kib/misc/init_array.2.patch
passes your tests and allows to boot world built with pre-patched csu
into multiuser mode.

I decided to move the calls to initializers for main binary into rtld,
and used the brand note to distinguish old and new csu.

ATM patch is only for i386 and amd64, I will port to other architectures
after some feedback.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20120218/d98d7343/attachment.pgp


More information about the freebsd-toolchain mailing list