Compilation error when trying to build bk-7.3.2 from source on Debian sid / mageia v7 x86-64 (due to new glibc?)


#1

Hi all!

After downloading the bitkeeper 7.3.2 source and trying to build it on both my mageia linux v7 x64 host and a debian sid VM , gcc fails with an error. It builds fine on a debian stretch VM. Here is the error:

Enterprise ist soetwas wie StarWars I The Phantom Menace.
                -- Ingo Saitz
[shlomif@telaviv1 ~]$ cd Download/unpack/file/vcs 
[shlomif@telaviv1 vcs]$ cd bk-7.3.2 
[shlomif@telaviv1 bk-7.3.2]$ cd src
[shlomif@telaviv1 src]$ make
make p
make[1]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make CFLAGS=" -g -O2 -Wall -Wno-parentheses -Wno-char-subscripts -Wno-format-y2k -Wstrict-prototypes -DUSE_TRACE " all
make[2]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make -C libc system.h
make[3]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[3]: 'system.h' is up to date.
make[3]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[3]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
CC libc/fslayer/fslayer_open_stub.c
In file included from /usr/include/pwd.h:63,
                 from ./unix.h:23,
                 from ./system.h:45,
                 from fslayer/fslayer_open_stub.c:10:
/usr/include/bits/types/FILE.h:7:25: error: conflicting types for ‘FILE’
 typedef struct _IO_FILE FILE;
                         ^~~~
In file included from ./system.h:35,
                 from fslayer/fslayer_open_stub.c:10:
./stdio.h:138:3: note: previous declaration of ‘FILE’ was here
 } FILE;
   ^~~~
make[3]: *** [Makefile:91: fslayer/fslayer_open_stub.o] Error 1
make[3]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[2]: *** [Makefile:444: libc/libc.a] Error 2
make[2]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make[1]: *** [Makefile:326: p] Error 2
make[1]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make: *** [Makefile:301: default] Error 2
[shlomif@telaviv1 src]$ make p
make CFLAGS=" -g -O2 -Wall -Wno-parentheses -Wno-char-subscripts -Wno-format-y2k -Wstrict-prototypes -DUSE_TRACE " all
make[1]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make -C libc system.h
make[2]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[2]: 'system.h' is up to date.
make[2]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[2]: Entering directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
CC libc/fslayer/fslayer_open_stub.c
In file included from /usr/include/pwd.h:63,
                 from ./unix.h:23,
                 from ./system.h:45,
                 from fslayer/fslayer_open_stub.c:10:
/usr/include/bits/types/FILE.h:7:25: error: conflicting types for ‘FILE’
 typedef struct _IO_FILE FILE;
                         ^~~~
In file included from ./system.h:35,
                 from fslayer/fslayer_open_stub.c:10:
./stdio.h:138:3: note: previous declaration of ‘FILE’ was here
 } FILE;
   ^~~~
make[2]: *** [Makefile:91: fslayer/fslayer_open_stub.o] Error 1
make[2]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src/libc'
make[1]: *** [Makefile:444: libc/libc.a] Error 2
make[1]: Leaving directory '/home/shlomif/Download/unpack/file/vcs/bk-7.3.2/src'
make: *** [Makefile:326: p] Error 2
[shlomif@telaviv1 src]$ 

Can it be fixed? Thanks!


#2

Yes known problem. The -dev code fixes this problem. Unfortunately it is hard to download from scratch. Let me make a new release.


#3

@wscott: thanks! I’ll try the next release when it is available.


#4

The release is still in progress, but if you want to do some testing try building this:
https://www.bitkeeper.org/downloads/7.3.3/bk-7.3.3.src.tar.gz


#5

@wscott: thanks! Seems to build fine after I did export CPATH=/usr/include/tomcrypt.