c23092887fce8bf97ff33f72adf2d454946e7271 |
|
28-Aug-2012 |
Ard Biesheuvel <ard.biesheuvel@gmail.com> |
ARM: remove dummy entries from .so init_array/fini_array The runtime linker parses the ELF section headers to discover the size of the init_array and fini_array, so there is no point in putting NULL terminators at the end. Change-Id: I3246cd585efce9314155600277dd829e9f37d04f Signed-off-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>
|
6eee1fc68f366651379e776e4e3408069772562f |
|
10-Aug-2012 |
Nick Kralevich <nnk@google.com> |
crtend*: Add GNU_STACK note Add a GNU_STACK marker to crtend* files. This tells the linker that these files do not require an executable stack. When linking, a missing GNU_STACK marker in any .o file can prevent the compiler from automatically marking the final executable as NX safe (executable stack not required). In Android, we normally work around this by adding -Wa,--noexecstack / -Wl,-z,noexecstack. For files like crtend.S / crtend_so.S, which are included in every executable / shared library, it's better to add the GNU_STACK note directly to the assembly file. This allows the compiler to automatically mark the final executable as NX safe without any special command line options. References: http://www.gentoo.org/proj/en/hardened/gnu-stack.xml Change-Id: I07bd058f9f60ddd8b146e0fb36ba26ff84c0357d
|
3b43f87d2949a340e2c19cb735af7727157d8274 |
|
02-Jul-2010 |
David 'Digit' Turner <digit@android.com> |
Allow dlclose() to properly call static C++ destructors. With this patch _and_ an upcoming build/ patch, the destruction of static C++ objects contained in shared libraries will happen properly when dlclose() is called. Note that this change introduces crtbegin_so.S and crtend_so.S which are currently ignored by the build system. + move definition of __dso_handle to the right place (before that, all shared libraries used the __dso_handle global variable from the C library). Note that we keep a 'weak' __dso_handle in aeabi.c to avoid breaking the build until the next patch to build/core/combo/ appears. We will be able to remove that later. + move bionic/aeabi.c to arch-arm/bionic/ (its proper location) NOTE: The NDK will need to be modified to enable this feature in the shared libraries that are generated through it. Change-Id: I99cd801375bbaef0581175893d1aa0943211b9bc
|
6a9b888d7c4b246f6f66360789c72b754ff85021 |
|
18-Jun-2010 |
David 'Digit' Turner <digit@google.com> |
Allow static C++ destructors to be properly called on dlclose(). With this patch, _and_ an upcoming build/ patch, the destruction of static C++ objects contained in shared libraries will happen properly when dlclose() is called. Note that this change introduces crtbegin_so.S and crtend_so.S which are currently ignored by the build system. + move definition of __dso_handle to the right place (before that, all shared libraries used the __dso_handle global variable from the C library). Note that we keep a 'weak' __dso_handle in aeabi.c to avoid breaking the build until the next patch to build/core/combo/ appears. We will be able to remove that later. + move bionic/aeabi.c to arch-arm/bionic/ (its proper location) Change-Id: Ie771aa204e3acbdf02fd30ebd4150373a1398f39 NOTE: The NDK will need to be modified to enable this feature in the shared libraries that are generated through it.
|