unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#35711: emacs crashes on m68k after d2f1971dd5
@ 2019-05-13 12:15 John Paul Adrian Glaubitz
  2019-05-13 19:47 ` Paul Eggert
  0 siblings, 1 reply; 6+ messages in thread
From: John Paul Adrian Glaubitz @ 2019-05-13 12:15 UTC (permalink / raw)
  To: 35711; +Cc: Andreas Schwab, Michael Karcher, Paul Eggert

[-- Attachment #1: Type: text/plain, Size: 1714 bytes --]

Hello!

The commit [1] "Port flexible array members to GCC + valgrind" (d2f1971dd5)
broke emacs on m68k. This is because the new code aligns blocks of 1-byte
strings to 16 bit on m68k which is the default alignment on m68k.

The crash on m68k looks like this [2]:

/bin/mkdir -p ../etc
/usr/bin/make -C ../lisp update-subdirs
make[4]: Entering directory '/<<BUILDDIR>>/emacs-26.1+1/debian/build-gtk/lisp'
make[4]: Leaving directory '/<<BUILDDIR>>/emacs-26.1+1/debian/build-gtk/lisp'
./temacs --batch  --load loadup bootstrap
Loading loadup.el (source)...
Using load-path (/<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/emacs-lisp /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/progmodes /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/language /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/international /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/textmodes /<<BUILDDIR>>/emacs-26.1+1/debian/build-src/lisp/vc)
Loading emacs-lisp/byte-run (source)...
Loading emacs-lisp/backquote (source)...
Loading subr (source)...
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
make[3]: *** [Makefile:738: bootstrap-emacs] Segmentation fault

The attached patch by Michael Karcher fixes the problem.

Thanks,
Adrian

> [1] http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=d2f1971dd570439da4198fa76603b53b072060f8
> [2] https://buildd.debian.org/status/fetch.php?pkg=emacs&arch=m68k&ver=1%3A26.1%2B1-3.2&stamp=1549253883&raw=0

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913

[-- Attachment #2: fix-m68k-crash.patch --]
[-- Type: text/x-patch, Size: 1065 bytes --]

--- emacs-26.1+1.orig/src/alloc.c
+++ emacs-26.1+1/src/alloc.c
@@ -1766,14 +1766,14 @@ static char const string_overrun_cookie[
 
 /* The 'max' reserves space for the nbytes union member even when NBYTES + 1 is
    less than the size of that member.  The 'max' is not needed when
-   SDATA_DATA_OFFSET is a multiple of FLEXALIGNOF (struct sdata),
-   because then the alignment code reserves enough space.  */
+   the tail padding of "struct sdata" with a single payload byte is big enough
+   to accomodate the full union "sdata". */
 
 #define SDATA_SIZE(NBYTES)				      \
      ((SDATA_DATA_OFFSET				      \
-       + (SDATA_DATA_OFFSET % FLEXALIGNOF (struct sdata) == 0 \
-	  ? NBYTES					      \
-	  : max (NBYTES, FLEXALIGNOF (struct sdata) - 1))     \
+       + (FLEXSIZEOF (struct sdata, data, 1) < sizeof (sdata) \
+	  ? max (NBYTES, sizeof (sdata) - SDATA_DATA_OFFSET - 1) \
+	  : NBYTES)                                           \
        + 1						      \
        + FLEXALIGNOF (struct sdata) - 1)		      \
       & ~(FLEXALIGNOF (struct sdata) - 1))

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-05-14 18:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-13 12:15 bug#35711: emacs crashes on m68k after d2f1971dd5 John Paul Adrian Glaubitz
2019-05-13 19:47 ` Paul Eggert
2019-05-14  6:01   ` John Paul Adrian Glaubitz
2019-05-14  6:04     ` Paul Eggert
2019-05-14  9:10       ` John Paul Adrian Glaubitz
2019-05-14 18:10         ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).