[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: stdalign test with HP-UX cc
From: |
Bruno Haible |
Subject: |
Re: stdalign test with HP-UX cc |
Date: |
Thu, 16 Mar 2017 22:29:09 +0100 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-66-generic; KDE/5.18.0; x86_64; ; ) |
Hi Paul,
> Bruno Haible wrote:
> > Since I don't have access to a newer HP-UX cc compiler, I propose to just
> > disable this definition for HP-UX cc. This patch fixes the error.
>
> That sounds too drastic; I worry that it would break GNU Emacs, which relies
> on
> having alignas.
>
> Does Emacs 25.1 build with that compiler?
No, Emacs 25.1 cannot be built with this compiler.
==== 1st attempt
$ CC="cc -Ae -D_XOPEN_SOURCE=500"
$ export CC
$ ./configure --prefix=$HOME/prefix-hpux113-cc --with-x-toolkit=no
--with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no
$ gmake
...
CC strftime.o
cc: "time-internal.h", line 48: error 1681: Usage of `flexible array members'
needs option `-AC99'
cc: "time-internal.h", line 48: error 1578: Size of struct or union member is
unknown.
==== 2nd attempt
$ CC="cc -Ae -D_XOPEN_SOURCE=500 -AC99"
$ export CC
$ ./configure --prefix=$HOME/prefix-hpux113-cc --with-x-toolkit=no
--with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no
$ gmake
...
CCLD ebrowse
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
cc: "ebrowse.c", line 281: error 1687: Illegal use of flexible array: structs
with FAMs cannot be members of other structs.
Now, let's pick a source file that uses 'alignas':
$ cd src
$ gmake buffer.o
GEN lisp.mk
gmake -C ../lib-src make-docfile
gmake[1]: Entering directory `/home/haible/emacs-25.1/lib-src'
CCLD make-docfile
gmake[1]: Leaving directory `/home/haible/emacs-25.1/lib-src'
GEN globals.h
CC buffer.o
cc: "globals.h", line 1030: error 1000: Unexpected symbol: "8".
cc: "globals.h", line 1030: error 1670: Illegal attribute __aligned__ specified.
cc: "lisp.h", line 852: error 1669: Illegal version declaration for "XSYMBOL".
cc: "lisp.h", line 1454: warning 604: Pointers are not assignment-compatible.
cc: "lisp.h", line 1532: warning 604: Pointers are not assignment-compatible.
cc: "lisp.h", line 1688: warning 604: Pointers are not assignment-compatible.
cc: "lisp.h", line 3342: warning 604: Pointers are not assignment-compatible.
cc: "lisp.h", line 3342: warning 563: Argument #1 is not the correct type.
cc: "dispextern.h", line 2234: error 1687: Illegal use of flexible array:
structs with FAMs cannot be members of other structs.
cc: "buffer.c", line 65: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 65: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 88: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 88: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 370: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 370: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 379: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 379: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 437: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 437: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 451: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 451: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 496: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 496: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 733: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 733: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 880: error 1669: Illegal version declaration for
"delete_all_overlays".
cc: "buffer.c", line 912: error 1669: Illegal version declaration for
"reset_buffer".
cc: "buffer.c", line 1042: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1042: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1097: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1097: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1106: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1106: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1114: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1114: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1125: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1125: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1238: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1238: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1271: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1271: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1281: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1281: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1303: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1303: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1325: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1325: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1375: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1375: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1386: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1386: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1401: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1401: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1467: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1467: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1556: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1556: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1582: error 1669: Illegal version declaration for
"compact_buffer".
cc: "buffer.c", line 1615: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1615: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1936: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1936: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 1970: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 1970: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2012: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2012: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2025: error 1669: Illegal version declaration for
"set_buffer_internal_1".
cc: "buffer.c", line 2089: error 1669: Illegal version declaration for
"set_buffer_temp".
cc: "buffer.c", line 2108: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2108: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2143: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2143: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2162: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2162: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2232: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2232: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2389: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2389: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 2677: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 2677: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 3409: error 1669: Illegal version declaration for
"recenter_overlay_lists".
cc: "buffer.c", line 3708: error 1669: Illegal version declaration for
"fix_overlays_before".
cc: "buffer.c", line 3785: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 3785: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 3792: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 3792: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 3910: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 3910: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4013: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4013: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4045: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4045: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4057: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4057: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4066: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4066: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4075: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4075: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4085: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4085: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4097: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4097: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4131: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 4131: error 1670: Illegal attribute __aligned__ specified.
cc: "buffer.c", line 4165: error 1000: Unexpected symbol: "8".
cc: panic 2161: Maximum allowed number of errors exceeded.
gmake: *** [buffer.o] Error 1
> Does it fix things to replace '__attribute__ ((__aligned__ (n)))' with
> '__attribute__((aligned(n))' in lib/stdalign.in.h?
That's not a bad guess, based on [1] p. 150. But it fails in the same way:
...
cc: "buffer.c", line 65: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 65: error 1670: Illegal attribute aligned specified.
cc: "buffer.c", line 88: error 1000: Unexpected symbol: "8".
cc: "buffer.c", line 88: error 1670: Illegal attribute aligned specified.
...
Bruno
[1]
http://h20565.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=4268164&docLocale=en_US&docId=emr_na-c02652146
- stdalign test with HP-UX cc, Bruno Haible, 2017/03/15
- Re: stdalign test with HP-UX cc, Paul Eggert, 2017/03/16
- Re: stdalign test with HP-UX cc,
Bruno Haible <=
- Re: stdalign test with HP-UX cc, Paul Eggert, 2017/03/17
- Re: stdalign test with HP-UX cc, Bruno Haible, 2017/03/17
- Re: stdalign test with HP-UX cc, Paul Eggert, 2017/03/17
- Re: stdalign test with HP-UX cc, Bruno Haible, 2017/03/17
- Re: stdalign test with HP-UX cc, Paul Eggert, 2017/03/19
- Re: stdalign test with HP-UX cc, Bruno Haible, 2017/03/19
- Re: stdalign test with HP-UX cc, Bruno Haible, 2017/03/19
- Re: stdalign test with HP-UX cc, Bruno Haible, 2017/03/19
- Re: stdalign test with HP-UX cc, Paul Eggert, 2017/03/19