This patch has been backported from upstream to fix m68k build
failures:
Properly align global lispsym
* lib-src/make-docfile.c (close_emacs_globals): Wrap struct
Lisp_Symbols inside struct.
* src/alloc.c (sweep_symbols): Update use of lispsym.
* src/lisp.h (builtin_lisp_symbol): Likewise.
Origin: backport, commit:
7a4d9f6304cffa39642507609605bcbfa40d4675
Bug-Debian: http://bugs.debian.org/868868
Forwarded: not-needed
Gbp-Pq: Name 0009-A-memory-alignment-problem-causing-m68k-failures-has.patch
"#ifndef DEFINE_SYMBOLS\n"
"extern\n"
"#endif\n"
- "struct Lisp_Symbol alignas (GCALIGNMENT) lispsym[%td];\n"),
+ "struct {\n"
+ " struct Lisp_Symbol alignas (GCALIGNMENT) s;\n"
+ "} lispsym[%td];\n"),
num_symbols);
}
symbol_free_list = NULL;
for (int i = 0; i < ARRAYELTS (lispsym); i++)
- lispsym[i].gcmarkbit = 0;
+ lispsym[i].s.gcmarkbit = 0;
for (sblk = symbol_block; sblk; sblk = *sprev)
{
INLINE Lisp_Object
builtin_lisp_symbol (int index)
{
- return make_lisp_symbol (lispsym + index);
+ return make_lisp_symbol (&lispsym[index].s);
}
#define XSETINT(a, b) ((a) = make_number (b))