diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-10-07 00:23:44 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-10-07 00:23:44 -0700 |
commit | 7c5ee88ecb336a2deac1c1b98753f08ef0a2bd1c (patch) | |
tree | 10a208e0778b6ca9d376b8c879ff23b28deb1d30 /configure.in | |
parent | 21ce8245145810da59c854a172900894f22c175c (diff) | |
download | emacs-7c5ee88ecb336a2deac1c1b98753f08ef0a2bd1c.tar.gz emacs-7c5ee88ecb336a2deac1c1b98753f08ef0a2bd1c.tar.bz2 emacs-7c5ee88ecb336a2deac1c1b98753f08ef0a2bd1c.zip |
Fix alignment-related core dump during GC.
* configure.in (GC_LISP_OBJECT_ALIGNMENT): Remove.
This is now done by src/alloc.c.
* src/alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
this makes Emacs dump core during garbage collection on rare
occasions. sizeof is obviously inferior to offsetof here, so
stick with offsetof.
(GC_POINTER_ALIGNMENT): New macro.
(mark_memory): Omit 3rd (offset) arg; caller changed.
Don't assume EMACS_INT alignment is the same as pointer alignment.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/configure.in b/configure.in index b8de80baf5d..57cc4dcded8 100644 --- a/configure.in +++ b/configure.in @@ -3663,9 +3663,6 @@ AH_BOTTOM([ /* GC_SETJMP_WORKS is nearly always appropriate for GCC. */ # define GC_SETJMP_WORKS 1 # endif -# ifndef GC_LISP_OBJECT_ALIGNMENT -# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object)) -# endif #endif #endif /* EMACS_CONFIG_H */ |