[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
compilation error in VPATH build
From: |
Bruno Haible |
Subject: |
compilation error in VPATH build |
Date: |
Fri, 19 Feb 2021 22:23:46 +0100 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-201-generic; KDE/5.18.0; x86_64; ; ) |
On a glibc system, I attempt to build poke from the git repository.
So, for the first time in three months, I did
$ git pull
$ git submodule update gnulib
$ git submodule update jitter
$ ./bootstrap --skip-po
$ mkdir build-64
$ ../configure CPPFLAGS=-Wall
$ make
It fails in a bunch of errors:
libtool: compile: gcc -ftrapv -DHAVE_CONFIG_H -I. -I../../libpoke -I../poke
-I../gl-libpoke -I../../gl-libpoke -I../../common -DPKL_DEBUG
-DPKGDATADIR=\"/inst-x86_64-64/share/poke\"
-DPKGINFODIR=\"/inst-x86_64-64/share/info\"
-DLOCALEDIR=\"/inst-x86_64-64/share/locale\" -fvisibility=hidden
-DBUILDING_LIBPOKE -DJITTER_DISPATCH_DIRECT_THREADING=1 -I /POKE/poke/jitter -I
/POKE/poke/build-64/jitter -I /POKE/poke/jitter/machine/x86_64 -I
/inst-x86_64-64/include -I/inst-x86_64-64/include -Wall -Wall
-I/arch/x86_64-linux-gnu/gnu-inst-gc/7.4.2/include -g -O2 -MT
libpoke_la-pkl-gen.lo -MD -MP -MF .deps/libpoke_la-pkl-gen.Tpo -c
../../libpoke/pkl-gen.c -fPIC -DPIC -o .libs/libpoke_la-pkl-gen.o
In file included from ../../libpoke/pkl-gen.c:116:0:
../../libpoke/pkl-gen.c: In function 'pkl_gen_pr_decl':
../../libpoke/pkl-gen.pkc:1349:20: error: 'struct pkl_gen_payload' has no
member named 'in_writer'
PKL_GEN_PAYLOAD->in_writer = 0; \
^
../../libpoke/pkl-gen.c:214:17: note: in expansion of macro
'RAS_FUNCTION_STRUCT_WRITER'
RAS_FUNCTION_STRUCT_WRITER (writer_closure, type_struct);
^
../../libpoke/pkl-gen.pkc:1350:20: error: 'struct pkl_gen_payload' has no
member named 'in_constructor'
PKL_GEN_PAYLOAD->in_constructor = 1; \
^
../../libpoke/pkl-gen.c:214:17: note: in expansion of macro
'RAS_FUNCTION_STRUCT_WRITER'
RAS_FUNCTION_STRUCT_WRITER (writer_closure, type_struct);
^
../../libpoke/pkl-gen.pkc:1352:20: error: 'struct pkl_gen_payload' has no
member named 'in_constructor'
PKL_GEN_PAYLOAD->in_constructor = 0; \
^
../../libpoke/pkl-gen.c:214:17: note: in expansion of macro
'RAS_FUNCTION_STRUCT_WRITER'
RAS_FUNCTION_STRUCT_WRITER (writer_closure, type_struct);
^
../../libpoke/pkl-gen.pkc:1353:20: error: 'struct pkl_gen_payload' has no
member named 'in_writer'
PKL_GEN_PAYLOAD->in_writer = 1; \
^
../../libpoke/pkl-gen.c:214:17: note: in expansion of macro
'RAS_FUNCTION_STRUCT_WRITER'
RAS_FUNCTION_STRUCT_WRITER (writer_closure, type_struct);
^
...
The cause is that I have a 3-months old pkl-gen.pkc in $(srcdir) and a
freshly generated one in the builddir. But the compilation picks up the
one in $(srcdir).
$ ls -l libpoke/*.pkc
-rw-rw-r-- 1 bruno bruno 34397 21. Nov 20:39 libpoke/pkl-asm.pkc
-rw-rw-r-- 1 bruno bruno 100414 21. Nov 20:39 libpoke/pkl-gen.pkc
$ ls -l build-64/libpoke/*.pkc
-rw-rw-r-- 1 bruno bruno 34688 19. Feb 21:47 build-64/libpoke/pkl-asm.pkc
-rw-rw-r-- 1 bruno bruno 106183 19. Feb 21:47 build-64/libpoke/pkl-gen.pkc
Files that are NOT packed into a tarball should be erased by "make distclean";
therefore they are usually put into the builddir.
On the other hand, files that ARE packed into a tarball should not be erased
by "make distclean" (only by "make maintainer-clean"), and should reside in
srcdir, per the GNU Coding Standards
<https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>.
Here's a proposed fix.
0001-Fix-compilation-error-in-VPATH-builds-due-to-outdate.patch
Description: Text Data