#
354b60af |
|
26-Jan-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
runtime_loader: Rework static initialization handling. Previously, static initializers were just in ".ctors", which was handled by GCC's crtbeginS, and that was injected in-between crti and crtn. Now, however, binutils puts static initializers into init_array/fini_array by default, which runtime_loader handles, but of course as initialize_after and terminate_after are supposed to be called *after* all static initializers are called; and since runtime_loader called init_array after _init, they were not. Now, we get rid of the __haiku_init_before/etc. functions, and move their functionality inside runtime_loader. This is a "soft" ABI breakage, which is mitigated by adding another ABI breakage (runtime_loader now returns NULL for the initialize_before/etc. symbols, as otherwise old applications would have their initialize_before/etc. called twice; once by runtime_loader, and then once by __haiku_init_before/etc.) I don't see or know of any reason why an application would want to get those symbols at runtime, though, so this shouldn't have any adverse effects. Change-Id: I42344c63f69c6f8ef260f6c3ca30202b6dfb153e Reviewed-on: https://review.haiku-os.org/c/907 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
25dc253d |
|
22-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Merged weak-symbols branch. * Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp * Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c154b946 |
|
21-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added haiku_version_glue.o "glue code" containing the Haiku/ABI version symbols recently introduced. Until init_term_dyn.o is linked into kernel add-ons, too, we link with haiku_version_glue.o, so we have those symbols in kernel add-ons as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
51c706f7 |
|
12-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added variables to the glue code that identify the Haiku version and ABI. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30728 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34a95562 |
|
05-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
Made our glue code compatible to BeOS again. IOW executables compiled for Haiku will now run under BeOS as well (as long as they don't use any functions that are not available under R5). The solution is a bit messy, but we have to live with it :-) The runtime loader now patches the __gRuntimeLoader symbol in libroot.so to point to its exported structure instead of passing it to the init functions as an argument. (Hax0red by axeld and bonefish on stippi's assimilated machine -- resistence is futile) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15848 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5af32e75 |
|
13-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed src/kernel to src/system. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
25dc253d6ab28ce204fa4de2d3e7a27d167fc817 |
|
22-Nov-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Merged weak-symbols branch. * Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp * Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c154b94624d37e53245540edfcdc6625e906987f |
|
21-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added haiku_version_glue.o "glue code" containing the Haiku/ABI version symbols recently introduced. Until init_term_dyn.o is linked into kernel add-ons, too, we link with haiku_version_glue.o, so we have those symbols in kernel add-ons as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
51c706f70c909cdb34c6bb6aaf8b2d09762f090b |
|
12-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added variables to the glue code that identify the Haiku version and ABI. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30728 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34a9556215f39bb00d4bb6cf2376543aca82436d |
|
05-Jan-2006 |
Stephan Aßmus <superstippi@gmx.de> |
Made our glue code compatible to BeOS again. IOW executables compiled for Haiku will now run under BeOS as well (as long as they don't use any functions that are not available under R5). The solution is a bit messy, but we have to live with it :-) The runtime loader now patches the __gRuntimeLoader symbol in libroot.so to point to its exported structure instead of passing it to the init functions as an argument. (Hax0red by axeld and bonefish on stippi's assimilated machine -- resistence is futile) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15848 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5af32e752606778be5dd7379f319fe43cb3f6b8c |
|
13-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed src/kernel to src/system. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|