Thread: v15rc1 shadowbuild fails when using src from symlink

v15rc1 shadowbuild fails when using src from symlink

From
Frank van Vugt
Date:
L.S.,

Just like v15b4, the first rc fails to compile when using the source from a 
symlink.

=> openSUSE Leap 15.4 (gcc v7.5.0 / make v4.2.1)

=> unpack source

=> create a symlink $PGSRCDIR to the source(-rc1) folder

=> create a build folder $PGDIR and from within that:

$PGSRCDIR/configure --prefix=$PGDIR/install --enable-thread-safety

make -j2 
=> fails on the following: 
(...)
configure: using compiler=gcc (SUSE Linux) 7.5.0
configure: using CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -
Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-
attribute -Wimplicit-fallthrough=3 -Wformat-security -fno-strict-aliasing -
fwrapv -fexcess-precision=standard -Wno-format-truncation -O2
configure: using CPPFLAGS= -D_GNU_SOURCE -I/usr/include/libxml2 
configure: using LDFLAGS= -Wl,--as-needed
preparing build tree... done
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/include/pg_config_ext.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking /home/development/postgresql-15.0/src/backend/port/tas/
dummy.s to src/backend/port/tas.s
config.status: linking /home/development/postgresql-15.0/src/backend/port/
posix_sema.c to src/backend/port/pg_sema.c
config.status: linking /home/development/postgresql-15.0/src/backend/port/
sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking /home/development/postgresql-15.0/src/include/port/
linux.h to src/include/pg_config_os.h
config.status: linking /home/development/postgresql-15.0/src/makefiles/
Makefile.linux to src/Makefile.port
+ make -j2
make -C ./src/backend generated-headers
make[1]: Entering directory '/home/development/4suse15.4-x86_64/
postgresql-15.0/src/backend'
make[1]: *** No rule to make target 'generated-headers'. Stop.
make[1]: Leaving directory '/home/development/4suse15.4-x86_64/
postgresql-15.0/src/backend'
make: *** [src/Makefile.global:390: submake-generated-headers] Error 2 

=> when using the real source folder instead of the symlink, the same compile/
script finishes fine



-- 

Best,




Frank.






Re: v15rc1 shadowbuild fails when using src from symlink

From
Michael Paquier
Date:
On Fri, Sep 30, 2022 at 08:33:17AM +0200, Frank van Vugt wrote:
> Just like v15b4, the first rc fails to compile when using the source from a
> symlink.
> [...]
> make -j2
> => fails on the following:
>
> => when using the real source folder instead of the symlink, the same compile/
> script finishes fine

Yep, using a VPATH build with the source being a soft link does not
work.  Here is what I have done, basically the same steps as yourself:
wget https://ftp.postgresql.org/pub/source/v15rc1/postgresql-15rc1.tar.gz
tar zxvf postgresql-15rc1.tar.gz
ln -s postgresql-15rc1 postgres_src
mkdir postgres_build
cd postgres_build/
$path/to/postgres_src/configure --prefix=$PGDIR/install --enable-cassert
make -j 4

This is as well the case with 14, by the way, and most likely the case
of older versions.  Why are you using such an exotic way to build
things?  A vpath build would give the same result for the build, once
the downloaded source is renamed to a more generic name, for example.
--
Michael

Attachment