aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorPo Lu2025-03-09 23:02:21 +0800
committerPo Lu2025-03-09 23:07:33 +0800
commita5f8ce9f1eae29f87fe13adb61bd4e15faa628a2 (patch)
tree602dba32bf3efcd7743f0d2df5e73339d98a5b2e /src/eval.c
parent57cef07710d91988b6332ad3ed2f5c4b4b371585 (diff)
downloademacs-a5f8ce9f1eae29f87fe13adb61bd4e15faa628a2.tar.gz
emacs-a5f8ce9f1eae29f87fe13adb61bd4e15faa628a2.zip
Re-port to 32-bit systems without alignment primitives
* configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG): New variables. (emacs_cv_alignas_unavailable): Define if alignas and structure alignment primitives are unavailable. In such an environment, the MSB tagging scheme must be enabled, as must the GNU malloc. * msdos/sed2v2.inp: Adjust correspondingly. * src/alloc.c (union emacs_align_type): Remove types which contain flexible array members. The address of a field subsequent to an aggregate with flexible array members cannot validly be taken. (mark_memory) [!USE_LSB_TAG && !WIDE_EMACS_INT]: Strip type bits before scanning memory. * src/emacs.c (main): * src/eval.c (Fautoload_do_load): * src/fns.c (Frequire): Rename a number of illogically named fields. * src/lisp.h (ALIGNOF_EMACS_INT): Define to the natural alignment of EMACS_INT. (IDEAL_GCALIGNMENT): New macro. (USE_LSB_TAG): Disable if no alignment specifiers are available, WIDE_EMACS_INT is undefined, and the natural alignment of EMACS_INT falls short of LSB tagging's requirements. (gflags): Rename illogically named fields and don't define them as bitfields, which runs afoul of certain compiler issues. (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p) (dumped_with_pdumper_p): Adjust accordingly. * src/pdumper.c (VM_SUPPORTED): Define to 0 when !USE_LSB_TAG. It is better to read dump files into the heap by hand than to be supplied with an address that is not representable. (_dump_object_start_pseudovector): Rename to dump_object_start_pseudovector, to avoid encroaching on reserved names. (START_DUMP_PVEC): Adjust correspondingly. (dump_mmap_contiguous_vm): Preserve errno around failure cleanup. (dump_bitset_bit_set_p): Work around certain compiler issues. (pdumper_load) [!USE_LSB_TAG]: Reject dump file allocations that are not representable as Lisp_Objects. Tested on i386-unknown-solaris2.10, sparc-sun-solaris2.10.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index a514bb4b8f9..5de723cf3bc 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2389,7 +2389,7 @@ it defines a macro. */)
2389 { 2389 {
2390 /* Avoid landing here recursively while outputting the 2390 /* Avoid landing here recursively while outputting the
2391 backtrace from the error. */ 2391 backtrace from the error. */
2392 gflags.will_dump_ = false; 2392 gflags.will_dump = false;
2393 error ("Attempt to autoload %s while preparing to dump", 2393 error ("Attempt to autoload %s while preparing to dump",
2394 SDATA (SYMBOL_NAME (funname))); 2394 SDATA (SYMBOL_NAME (funname)));
2395 } 2395 }