]> granicus.if.org Git - gc/commit
Fix data roots registration for Android/x86 and NDK ARM 'gold' linker
authorIvan Maidanski <ivmai@mail.ru>
Thu, 26 Dec 2013 21:41:05 +0000 (01:41 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 26 Dec 2013 21:41:05 +0000 (01:41 +0400)
commitb746e637bf21f652b078b822e969e783075450f9
treef6ac57b0930c18cefb6bd7fa4600ac50d469f806
parent60cbd25851cf8343f504ffb56fd847483bd20322
Fix data roots registration for Android/x86 and NDK ARM 'gold' linker

* include/gc.h (_etext, __dso_handle): Declare weak symbol (only if
Android).
* os_dep.c (_etext, __dso_handle): Likewise.
* include/gc.h (GC_INIT_CONF_ROOTS): If __data_start is incorrect
(less than _etext or missing but __dso_handle (which is typically
located at data section start) is greater than _etext as observed for
code produced by "gold" linker of Android NDK r9b) then use
__dso_handle as the lowest bound of registered data root instead of
__data_start (only if Android); update comment.
* os_dep.c (GC_init_linux_data_start): Likewise.
* os_dep.c (__data_start, data_start): Reformat code.
include/gc.h
os_dep.c