poke-devel
[Top][All Lists]
Advanced

[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.


Attachment: 0001-Fix-compilation-error-in-VPATH-builds-due-to-outdate.patch
Description: Text Data


reply via email to

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