[dmd-internals] [D-Programming-Language/dmd] 313132: new runtime registration for executables and share...
GitHub
noreply at github.com
Thu Oct 18 20:53:50 PDT 2012
Branch: refs/heads/master
Home: https://github.com/D-Programming-Language/dmd
Commit: 313132b6e20c119fa64c6164574818421cb522ce
https://github.com/D-Programming-Language/dmd/commit/313132b6e20c119fa64c6164574818421cb522ce
Author: Martin Nowak <dawg at dawgfoto.de>
Date: 2012-10-18 (Thu, 18 Oct 2012)
Changed paths:
M src/backend/elfobj.c
M src/backend/melf.h
Log Message:
-----------
new runtime registration for executables and shared libraries
- Put ModuleInfos and EH tables in bracketed sections. This
works because the linker will preserve the order of first
occurence for non-standard sections. Use local zero sized
symbols as brackets to refer to the start and end.
- Pass ModuleInfos along with EH tables to a new druntime
function _d_dso_registry. We output a function, a ctor
entry, a dtor entry and a local data record in a COMDAT
section group. The linker will merge multiple occurences
per executable/shared library, thus resulting in only one
registration.
- We can't create brackets for .bss, .data, .tbss and .tdata
as these sections are already known to the linker. Thus it
would merge input sections in link order. Creating custom
input sections for those is not desirable because COMDAT
through section prefixes (.data.TypeInfo) won't get merged
into a single output section. The needed segments can be
obtained by reading the program headers.
- Until REQUIRE_DSO_REGISTRY is set in elfobj.c any
generated object remains compatible with the old mechanism
that uses global bracket symbols.
Commit: d64c579ea87b9c4f511b13a2a0bcc109ce1f7f1b
https://github.com/D-Programming-Language/dmd/commit/d64c579ea87b9c4f511b13a2a0bcc109ce1f7f1b
Author: dawg <dawg at dawgfoto.de>
Date: 2012-10-18 (Thu, 18 Oct 2012)
Changed paths:
M test/runnable/testthread.d
Log Message:
-----------
fix TLS layout in test
Commit: a1cda0731007443b893efd26fb51f54efb8e1f1d
https://github.com/D-Programming-Language/dmd/commit/a1cda0731007443b893efd26fb51f54efb8e1f1d
Author: Walter Bright <walter at walterbright.com>
Date: 2012-10-18 (Thu, 18 Oct 2012)
Changed paths:
M src/backend/elfobj.c
M src/backend/melf.h
M test/runnable/testthread.d
Log Message:
-----------
Merge pull request #1043 from dawgfoto/SharedRuntime
new runtime registration for executables and shared libraries
Compare: https://github.com/D-Programming-Language/dmd/compare/881f9fcb7405...a1cda0731007
More information about the dmd-internals
mailing list