[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
DOUG_LEA_MALLOC + REL_ALLOC leads to binary incompatibility across libc
DOUG_LEA_MALLOC + REL_ALLOC leads to binary incompatibility across libc updates
Mon, 29 Apr 2002 16:01:37 -0400
when compiling emacs21 on the GNU/Hurd system, it will be compiled
with DOUG_LEA_MALLOC and REL_ALLOC (because the src/s/gnu.h file
does not undefine it like it is done on src/s/gnu-linux.h for
the GNU/Linux platform).
This leads to a binary incompatibility across libc updates,
because the symbol real_morecore will have the address of
__default_morecore compiled into the binary with a fixed value,
and it will not be relocated. I was able to reproduce this on
GNU/Linux by removing the #undef REL_ALLOC in src/s/gnu-linux.h:
Fatal error (11).Segmentation fault
(Feel free to play with the files on fencepost if you have an account).
So, maybe adding the same #undef REL_ALLOC in src/s/gnu.h is a good work
around, I don't know. Maybe this should really work and we want
REL_ALLOC, I don't know either. However, I positively tested that
#undef REL_ALLOC in src/s/gnu.h fixes this incompatibility, so at least
I could verify that the behaviour is the same on both GNU systems.
|[Prev in Thread]
||[Next in Thread]|
- DOUG_LEA_MALLOC + REL_ALLOC leads to binary incompatibility across libc updates,
Marcus Brinkmann <=