GC_INNER void GC_init_linux_data_start(void)
{
+ if (GC_no_dls) {
+ /* Not needed, avoids the SIGSEGV caused by */
+ /* GC_find_limit which complicates debugging. */
+ return;
+ }
# if defined(LINUX) || defined(HURD)
/* Try the easy approaches first: */
/* hanging from it. We're on thin ice here ... */
extern caddr_t sbrk(int);
+ GC_ASSERT(DATASTART);
GC_add_roots_inner(DATASTART, (ptr_t)sbrk(0), FALSE);
# else
+ GC_ASSERT(DATASTART);
GC_add_roots_inner(DATASTART, (ptr_t)(DATAEND), FALSE);
# if defined(DATASTART2)
GC_add_roots_inner(DATASTART2, (ptr_t)(DATAEND2), FALSE);