Prevent unrelocated symbols with position from being dumped
* src/pdumper.c (dump_builtin_symbol_p): Test BARE_SYMBOL_P \(object) rather than SYMBOLP to avoid depending on the value of symbols_with_pos_enabled or depositing non-relocated references to vectorlikes in the dump file. Clarify commentary.
This commit is contained in:
parent
c0cb59578b
commit
0fc2fc9a4d
1 changed files with 9 additions and 3 deletions
|
@ -727,12 +727,18 @@ emacs_offset (const void *emacs_ptr)
|
|||
return ptrdiff_t_to_dump_off (emacs_ptr_relative);
|
||||
}
|
||||
|
||||
/* Return whether OBJECT is a symbol the storage of which is built
|
||||
into Emacs (and so is invariant across ASLR). */
|
||||
/* Return whether OBJECT is a symbol the storage of which is built into
|
||||
Emacs (and hence is implicitly offset from an address in the Emacs
|
||||
image). */
|
||||
|
||||
static bool
|
||||
dump_builtin_symbol_p (Lisp_Object object)
|
||||
{
|
||||
return SYMBOLP (object) && c_symbol_p (XSYMBOL (object));
|
||||
/* Symbols with position cannot be dumped, but not returning true for
|
||||
them avoids producing references to unrelocated Lisp_Objects in
|
||||
fixup processing or depending on the value of
|
||||
symbols_with_pos_enabled. */
|
||||
return BARE_SYMBOL_P (object) && c_symbol_p (XSYMBOL (object));
|
||||
}
|
||||
|
||||
/* Return whether OBJECT has the same bit pattern in all Emacs
|
||||
|
|
Loading…
Add table
Reference in a new issue