Subject: bug#22585: error: #error "alignas not defined"

From: Han Boetes <[email-masked]>
Date: Sun, 7 Feb 2016 18:02:29 +0100

I think I pressed the wrong button... Anyway...

I just checked out emacs from git and ran bootstrap which
failed. After running a consecutive run of gmake, this is the output:

gmake -C lib all
gmake[1]: Entering directory '/mega/home/han/src/Emacs/openbsd/lib'
gmake  all-am
gmake[2]: Entering directory '/mega/home/han/src/Emacs/openbsd/lib'
gmake[2]: Nothing to be done for 'all-am'.
gmake[2]: Leaving directory '/mega/home/han/src/Emacs/openbsd/lib'
gmake[1]: Leaving directory '/mega/home/han/src/Emacs/openbsd/lib'
gmake -C lib-src all
gmake[1]: Entering directory '/mega/home/han/src/Emacs/openbsd/lib-src'
gmake[1]: Nothing to be done for 'all'.
gmake[1]: Leaving directory '/mega/home/han/src/Emacs/openbsd/lib-src'
gmake -C src VCSWITNESS='$(srcdir)/../.git/logs/HEAD' all
gmake[1]: Entering directory '/mega/home/han/src/Emacs/openbsd/src'
  CC       dispnew.o
In file included from /mega/home/han/src/Emacs/emacs/src/dispnew.c:26:0:
/mega/home/han/src/Emacs/emacs/src/lisp.h:281:3: error: #error "alignas not defined"
 # error "alignas not defined"
   ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
./globals.h:928:29: note: in expansion of macro 'GCALIGNMENT'
 struct Lisp_Symbol alignas (GCALIGNMENT) lispsym[947];
                             ^
/mega/home/han/src/Emacs/emacs/src/lisp.h: In function 'XSYMBOL':
/mega/home/han/src/Emacs/emacs/src/lisp.h:361:20: error: 'lispsym' undeclared (first use in this function)
         + (char *) lispsym))
                    ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:875:10: note: in expansion of macro 'lisp_h_XSYMBOL'
   return lisp_h_XSYMBOL (a);
          ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:361:20: note: each undeclared identifier is reported only once for each function it appears in
         + (char *) lispsym))
                    ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:875:10: note: in expansion of macro 'lisp_h_XSYMBOL'
   return lisp_h_XSYMBOL (a);
          ^
/mega/home/han/src/Emacs/emacs/src/lisp.h: In function 'make_lisp_symbol':
/mega/home/han/src/Emacs/emacs/src/lisp.h:1122:63: error: 'lispsym' undeclared (first use in this function)
   Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *) lispsym));
                                                               ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:731:18: note: in definition of macro 'TAG_PTR'
    ? (intptr_t) (ptr) + (tag) \
                  ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:1122:24: note: in expansion of macro 'TAG_SYMOFFSET'
   Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *) lispsym));
                        ^
In file included from /mega/home/han/src/Emacs/emacs/src/dispnew.c:26:0:
/mega/home/han/src/Emacs/emacs/src/lisp.h: In function 'builtin_lisp_symbol':
/mega/home/han/src/Emacs/emacs/src/lisp.h:1130:28: error: 'lispsym' undeclared (first use in this function)
   return make_lisp_symbol (lispsym + index);
                            ^
In file included from /mega/home/han/src/Emacs/emacs/src/dispnew.c:26:0:
/mega/home/han/src/Emacs/emacs/src/lisp.h: At top level:
/mega/home/han/src/Emacs/emacs/src/lisp.h:741:69: error: 'lispsym' undeclared here (not in a function)
 #define XLI_BUILTIN_LISPSYM(iname) TAG_SYMOFFSET ((iname) * sizeof *lispsym)
                                                                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:731:18: note: in definition of macro 'TAG_PTR'
    ? (intptr_t) (ptr) + (tag) \
                  ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:741:36: note: in expansion of macro 'TAG_SYMOFFSET'
 #define XLI_BUILTIN_LISPSYM(iname) TAG_SYMOFFSET ((iname) * sizeof *lispsym)
                                    ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:1590:22: note: in expansion of macro 'XLI_BUILTIN_LISPSYM'
 enum { NIL_IS_ZERO = XLI_BUILTIN_LISPSYM (iQnil) == 0 };
                      ^
In file included from /mega/home/han/src/Emacs/emacs/src/lisp.h:33:0,
                 from /mega/home/han/src/Emacs/emacs/src/dispnew.c:26:
/mega/home/han/src/Emacs/emacs/src/lisp.h: In function 'memclear':
/mega/home/han/src/Emacs/emacs/lib/verify.h:207:21: error: static assertion failed: "verify (NIL_IS_ZERO)"
 # define _GL_VERIFY _Static_assert
                     ^
/mega/home/han/src/Emacs/emacs/lib/verify.h:251:19: note: in expansion of macro '_GL_VERIFY'
 #define verify(R) _GL_VERIFY (R, "verify (" #R ")")
                   ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:1598:3: note: in expansion of macro 'verify'
   verify (NIL_IS_ZERO);
   ^
In file included from /mega/home/han/src/Emacs/emacs/src/dispnew.c:26:0:
/mega/home/han/src/Emacs/emacs/src/dispnew.c: At top level:
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:3011:1: note: in expansion of macro 'DEFUN'
 DEFUN ("redraw-frame", Fredraw_frame, Sredraw_frame, 0, 1, 0,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:3020:1: note: in expansion of macro 'DEFUN'
 DEFUN ("redraw-display", Fredraw_display, Sredraw_display, 0, 0, "",
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5549:1: note: in expansion of macro 'DEFUN'
 DEFUN ("open-termscript", Fopen_termscript, Sopen_termscript,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5582:1: note: in expansion of macro 'DEFUN'
 DEFUN ("send-string-to-terminal", Fsend_string_to_terminal,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5625:1: note: in expansion of macro 'DEFUN'
 DEFUN ("ding", Fding, Sding, 0, 1, 0,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5665:1: note: in expansion of macro 'DEFUN'
 DEFUN ("sleep-for", Fsleep_for, Ssleep_for, 1, 2, 0,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5765:1: note: in expansion of macro 'DEFUN'
 DEFUN ("redisplay", Fredisplay, Sredisplay, 0, 1, 0,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:5805:1: note: in expansion of macro 'DEFUN'
 DEFUN ("frame-or-buffer-changed-p", Fframe_or_buffer_changed_p,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6137:1: note: in expansion of macro 'DEFUN'
 DEFUN ("internal-show-cursor", Finternal_show_cursor,
 ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:243:21: error: expected declaration specifiers or '...' before numeric constant
 #define GCALIGNMENT 8
                     ^
/mega/home/han/src/Emacs/emacs/src/lisp.h:2978:37: note: in expansion of macro 'GCALIGNMENT'
    static struct Lisp_Subr alignas (GCALIGNMENT) sname =  \
                                     ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6153:1: note: in expansion of macro 'DEFUN'
 DEFUN ("internal-show-cursor-p", Finternal_show_cursor_p,
 ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c: In function 'syms_of_display':
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6169:13: error: 'Sredraw_frame' undeclared (first use in this function)
   defsubr (&Sredraw_frame);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6170:13: error: 'Sredraw_display' undeclared (first use in this function)
   defsubr (&Sredraw_display);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6171:13: error: 'Sframe_or_buffer_changed_p' undeclared (first use in this function)
   defsubr (&Sframe_or_buffer_changed_p);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6172:13: error: 'Sopen_termscript' undeclared (first use in this function)
   defsubr (&Sopen_termscript);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6173:13: error: 'Sding' undeclared (first use in this function)
   defsubr (&Sding);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6174:13: error: 'Sredisplay' undeclared (first use in this function)
   defsubr (&Sredisplay);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6175:13: error: 'Ssleep_for' undeclared (first use in this function)
   defsubr (&Ssleep_for);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6176:13: error: 'Ssend_string_to_terminal' undeclared (first use in this function)
   defsubr (&Ssend_string_to_terminal);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6177:13: error: 'Sinternal_show_cursor' undeclared (first use in this function)
   defsubr (&Sinternal_show_cursor);
             ^
/mega/home/han/src/Emacs/emacs/src/dispnew.c:6178:13: error: 'Sinternal_show_cursor_p' undeclared (first use in this function)
   defsubr (&Sinternal_show_cursor_p);
             ^
Makefile:379: recipe for target 'dispnew.o' failed
gmake[1]: *** [dispnew.o] Error 1
gmake[1]: Leaving directory '/mega/home/han/src/Emacs/openbsd/src'
Makefile:394: recipe for target 'src' failed
gmake: *** [src] Error 2