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 CentOS 8 Stream


From: Bruno Haible
Subject: Re: GNU poke 2.90.0 on CentOS 8 Stream
Date: Sun, 22 Jan 2023 23:26:05 +0100

On Linux/x86_64 (CentOS 8 Stream), I attempted two builds:

* with gcc, i.e. CC=gcc
  Result: Build failure while compiling pvm-vm2.c.
    gcc: fatal error: Killed signal terminated program cc1
  I have 1 GB RAM + 1 GB swap on this machine.
  With   4 GB RAM + 1 GB swap the build succeeded.

* with clang 15 (binaries from
  https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.2), with
  CC="clang -std=gnu2x"
  Result: Build failure

make[3]: Entering directory '/home/bruno/poke-2.90.0-clang/build-64/jitter'
clang -std=gnu2x -DHAVE_CONFIG_H -I. -I../../jitter -I./config-private 
-I./jitter  -I./gnulib-local -I../../jitter/gnulib-local   
-DJITTER_FLAGDIR=\"/home/bruno/poke-2.90.0-clang/build-64/jitter/flags\" 
-DJITTER_TEMPLATEDIR=\"/home/bruno/poke-2.90.0-clang/build-64/jitter/../../jitter/templates\"
 -DJITTER_INTERNAL=1 -I/home/bruno/inst-x86_64-64/include -Wall 
-fvisibility=hidden -g -O2 -MT jitterc/bin_jitter-jitterc-generate.o -MD -MP 
-MF jitterc/.deps/bin_jitter-jitterc-generate.Tpo -c -o 
jitterc/bin_jitter-jitterc-generate.o `test -f 'jitterc/jitterc-generate.c' || 
echo '../../jitter/'`jitterc/jitterc-generate.c
In file included from ../../jitter/jitterc/jitterc-generate.c:38:
In file included from ../../jitter/jitterc/jitterc-generate.h:33:
In file included from ../../jitter/jitterc/jitterc-vm.h:33:
In file included from ../../jitter/jitter/jitter.h:39:
../../jitter/jitter/jitter-missing.h:131:19: error: 'nonnull' attribute 
parameter 1 is out of bounds
  __attribute__ ((nonnull (1)));
                  ^        ~
../../jitter/jitter/jitter-missing.h:130:1: error: conflicting types for 
'flockfile'
flockfile ()
^
/usr/include/stdio.h:846:13: note: previous declaration is here
extern void flockfile (FILE *__stream) __THROW;
            ^
In file included from ../../jitter/jitterc/jitterc-generate.c:38:
In file included from ../../jitter/jitterc/jitterc-generate.h:33:
In file included from ../../jitter/jitterc/jitterc-vm.h:33:
In file included from ../../jitter/jitter/jitter.h:39:
../../jitter/jitter/jitter-missing.h:136:19: error: 'nonnull' attribute 
parameter 1 is out of bounds
  __attribute__ ((nonnull (1)));
                  ^        ~
../../jitter/jitter/jitter-missing.h:135:1: error: conflicting types for 
'funlockfile'
funlockfile ()
^
/usr/include/stdio.h:853:13: note: previous declaration is here
extern void funlockfile (FILE *__stream) __THROW;
            ^
4 errors generated.


clang is right about the conflicting types: jitter-missing.h
declares flockfile and funlockfile as having an unknown parameter
list. But <stdio.h> says that these functions take a 'FILE *'.
The cause is a change in jitter from 2020-01-05.

Why is there no
  #if ! defined (JITTER_HAVE_FLOCKFILE)
around these two declarations? The jitter/config-private/config.h
contains

  #define HAVE_FLOCKFILE 1
  #define HAVE_FUNLOCKFILE 1
  #define HAVE_JITTER_FLOCKFILE 1

When I apply the attached patch, the build completes.

Bruno

Attachment: 0001-Fix-a-compilation-error-on-a-glibc-system-with-clang.patch
Description: Text Data


reply via email to

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