epsilon-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU poke 2.90.0 on Solaris 11.3


From: Bruno Haible
Subject: Re: GNU poke 2.90.0 on Solaris 11.3
Date: Mon, 23 Jan 2023 22:35:39 +0100

On a Solaris 11.3 machine (gcc211.fsffrance.org):

* With gcc, the compilation succeeds.

* With cc, (cc: Sun C 5.11 SunOS_sparc Patch 145354-06 2013/04/30),
i.e. CC="cc -m64 -O", there is a compilation error:

source='jitterc/jitterc-generate.c' 
object='jitterc/bin_jitter-jitterc-generate.o' libtool=no \
DEPDIR=.deps depmode=none /bin/sh ../../jitter/build-aux/depcomp \
cc -m64 -O -DHAVE_CONFIG_H -I. -I../../jitter -I./config-private -I./jitter  
-I./gnulib-local -I../../jitter/gnulib-local   
-DJITTER_FLAGDIR=\"/export/home/haible/poke-2.90.0/build-sparc-64-cc/jitter/flags\"
 
-DJITTER_TEMPLATEDIR=\"/export/home/haible/poke-2.90.0/build-sparc-64-cc/jitter/../../jitter/templates\"
 -DJITTER_INTERNAL=1 -I/export/home/haible/prefix-sparc64/include  -g -c -o 
jitterc/bin_jitter-jitterc-generate.o `test -f 'jitterc/jitterc-generate.c' || 
echo '../../jitter/'`jitterc/jitterc-generate.c
"../../jitter/jitter/jitter-missing.h", line 52: warning: macro redefined: 
alignas
"../../jitter/jitter/jitter-missing.h", line 53: warning: macro redefined: 
alignof
"../../jitter/jitter/jitter-missing.h", line 131: warning:  attribute "nonnull" 
is unknown, ignored
"../../jitter/jitter/jitter-missing.h", line 136: warning:  attribute "nonnull" 
is unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 125: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 134: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 153: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 163: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 173: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 187: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 223: warning:  attribute "cold" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 223: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 237: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 241: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 246: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 251: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 255: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 270: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 274: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 279: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 284: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitter/jitter-hash.h", line 288: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 143: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 149: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 488: warning: anonymous union 
declaration
"../../jitter/jitterc/jitterc-vm.h", line 511: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 515: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 519: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 535: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 543: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 612: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 623: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 632: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 638: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 698: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 714: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 884: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 930: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 935: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 941: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 941: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 948: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 948: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 954: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-vm.h", line 969: warning:  attribute "nonnull" is 
unknown, ignored
"../../jitter/jitterc/jitterc-generate.h", line 45: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-utility.h", line 44: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-utility.h", line 51: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-utility.h", line 57: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-utility.h", line 69: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-utility.h", line 76: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 206: warning: anonymous struct 
declaration
"../../jitter/jitterc/jitterc-rewrite.h", line 197: warning: anonymous union 
declaration
"../../jitter/jitterc/jitterc-rewrite.h", line 250: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 258: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 268: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 274: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 298: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 308: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 394: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 407: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-rewrite.h", line 422: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitterc/jitterc-mangle.h", line 34: warning:  attribute "nonnull" 
is unknown, ignored
"../../jitter/jitter/jitter-string.h", line 29: warning:  attribute "nonnull" 
is unknown, ignored
"../../jitter/jitter/jitter-string.h", line 35: warning:  attribute "nonnull" 
is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 80: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 86: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 92: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 111: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 122: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 129: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 137: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 143: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 149: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 157: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 163: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 178: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 191: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 197: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 218: warning:  attribute 
"nonnull" is unknown, ignored
"../../jitter/jitter/jitter-dynamic-buffer.h", line 218: syntax error before or 
at: )
"../../jitter/jitter/jitter-dynamic-buffer.h", line 218: warning: syntax error: 
 empty declaration
"../../jitter/jitter/jitter-dynamic-buffer.h", line 222: cannot recover from 
previous errors
cc: acomp failed for ../../jitter/jitterc/jitterc-generate.c
gmake[3]: *** [Makefile:10499: jitterc/bin_jitter-jitterc-generate.o] Error 2
gmake[3]: Leaving directory 
'/export/home/haible/poke-2.90.0/build-sparc-64-cc/jitter'

The error is in jitter/jitter/jitter-dynamic-buffer.h line 218.

The cause is that the token 'returns_nonnull' expands to empty during the
preprocessing phase. And while the compiler groks

const void*
jitter_dynamic_buffer_to_const_pointer (const struct jitter_dynamic_buffer *db)
  __attribute__ ((, nonnull (1), pure));

without complaining, for

void *
jitter_dynamic_buffer_extract (struct jitter_dynamic_buffer *db)
  __attribute__ ((nonnull (1), ));

it does complain: "syntax error before or at: )".

The fix is to move all 'returns_nonnull' away from the end of the attribute
list.

There is also a syntax error here: "syntax error before or at: ,"

jitter_print_context
jitter_print_context_make_file_star (FILE *f)
  __attribute__ ((warn_unused_result, returns_nonnull,
                  nonnull (1)));

Once this is fixed, I get these errors:

"../../jitter/jitterc/jitterc-generate.c", line 953: improper member use: 
operator
"../../jitter/jitterc/jitterc-generate.c", line 958: improper member use: 
operator
"../../jitter/jitterc/jitterc-generate.c", line 959: improper member use: 
operator
"../../jitter/jitterc/jitterc-generate.c", line 963: improper member use: 
operand_expressions
"../../jitter/jitterc/jitterc-generate.c", line 963: improper member use: 
operand_expressions
"../../jitter/jitterc/jitterc-generate.c", line 963: improper member use: 
operand_expressions
"../../jitter/jitterc/jitterc-generate.c", line 966: improper member use: 
operand_expressions

Here the problem is that 'struct jitterc_template_expression' contains
an anonymous union that contains an anonymous struct, and older compilers
want these to be named and accessed through expressions such as

   te->u.s.operand_expressions

rather than

   te->operand_expressions

According to https://stackoverflow.com/questions/8932707/ anonymous
structs and unions are a C11 feature. And this compiler does not
support C11, as logged during the configure stage:

  checking for cc -m64 -O option to enable C11 features... unsupported
  checking for cc -m64 -O option to enable C99 features... none needed

C11 being more than 11 years old, my vote is to do nothing and just
ignore this old compiler.

Bruno






reply via email to

[Prev in Thread] Current Thread [Next in Thread]