Unable to compile postgres 13.1 on Slackware current x64

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Unable to compile postgres 13.1 on Slackware current x64

Condor
Hello,

unable to compile Postgresql 13.0 and 13.1 on Slackware current x64.
Here is gcc -v:

Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/9.3.0/specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/9.3.0/lto-wrapper
Target: x86_64-slackware-linux
Configured with: ../configure --prefix=/usr --libdir=/usr/lib64
--mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap
--enable-languages=ada,brig,c,c++,d,fortran,go,lto,objc,obj-c++
--enable-threads=posix --enable-checking=release --enable-objc-gc
--with-system-zlib --enable-libstdcxx-dual-abi
--with-default-libstdcxx-abi=new --disable-libstdcxx-pch
--disable-libunwind-exceptions --enable-__cxa_atexit --disable-libssp
--enable-gnu-unique-object --enable-plugin --enable-lto
--disable-install-libiberty --disable-werror --with-gnu-ld --with-isl
--verbose --with-arch-directory=amd64 --disable-gtktest
--enable-clocale=gnu --disable-multilib --target=x86_64-slackware-linux
--build=x86_64-slackware-linux --host=x86_64-slackware-linux
Thread model: posix
gcc version 9.3.0 (GCC)


ICU version - 68.1, LLVM version - 11.0.0


Here is configure params:
./configure \
   --prefix=/usr/lib$LIBDIRSUFFIX/postgresql/$VER \
   --libdir=/usr/lib$LIBDIRSUFFIX/postgresql/$VER/lib \
   --includedir=/usr/include \
   --sysconfdir=/etc/postgresql \
   --localstatedir=/var/lib/postgresql \
   --with-tcl \
   --with-tclconfig=/usr/lib$LIBDIRSUFFIX \
   --with-perl \
   --with-python \
   --with-openssl \
   --with-libxml \
   --with-libxslt \
   --with-icu \
   --with-llvm \
   --enable-thread-safety \
   --with-system-tzdata=/usr/share/zoneinfo \
   $ARCH-slackware-linux

The error is:

make[2]: Leaving directory '/tmp/postgresql-13.1/src/backend/utils'
make[1]: Leaving directory '/tmp/postgresql-13.1/src/backend'
x86_64-slackware-linux-gcc -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 -Wno-stringop-truncation -O2
-I../../../src/include  -D_GNU_SOURCE -I/usr/include/libxml2   -c -o
collationcmds.o collationcmds.c
collationcmds.c: In function ‘get_icu_language_tag’:
collationcmds.c:467:51: error: ‘TRUE’ undeclared (first use in this
function); did you mean ‘IS_TRUE’?
   467 |  uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE,
&status);
       |                                                   ^~~~
       |                                                   IS_TRUE
collationcmds.c:467:51: note: each undeclared identifier is reported
only once for each function it appears in
make: *** [<builtin>: collationcmds.o] Error 1

Changing TRUE to IS_TRUE solve the problem and code is compiled but no
idea is this a real fix.


Best Regards,
Hristo S.


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Laurenz Albe
On Mon, 2020-11-16 at 09:15 +0200, Condor wrote:

> unable to compile Postgresql 13.0 and 13.1 on Slackware current x64.
> Here is gcc -v:
>
> Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/9.3.0/specs
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/9.3.0/lto-wrapper
> Target: x86_64-slackware-linux
> Configured with: ../configure --prefix=/usr --libdir=/usr/lib64
> --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap
> --enable-languages=ada,brig,c,c++,d,fortran,go,lto,objc,obj-c++
> --enable-threads=posix --enable-checking=release --enable-objc-gc
> --with-system-zlib --enable-libstdcxx-dual-abi
> --with-default-libstdcxx-abi=new --disable-libstdcxx-pch
> --disable-libunwind-exceptions --enable-__cxa_atexit --disable-libssp
> --enable-gnu-unique-object --enable-plugin --enable-lto
> --disable-install-libiberty --disable-werror --with-gnu-ld --with-isl
> --verbose --with-arch-directory=amd64 --disable-gtktest
> --enable-clocale=gnu --disable-multilib --target=x86_64-slackware-linux
> --build=x86_64-slackware-linux --host=x86_64-slackware-linux
> Thread model: posix
> gcc version 9.3.0 (GCC)
>
>
> ICU version - 68.1, LLVM version - 11.0.0
>
>
> Here is configure params:
> ./configure \
>    --prefix=/usr/lib$LIBDIRSUFFIX/postgresql/$VER \
>    --libdir=/usr/lib$LIBDIRSUFFIX/postgresql/$VER/lib \
>    --includedir=/usr/include \
>    --sysconfdir=/etc/postgresql \
>    --localstatedir=/var/lib/postgresql \
>    --with-tcl \
>    --with-tclconfig=/usr/lib$LIBDIRSUFFIX \
>    --with-perl \
>    --with-python \
>    --with-openssl \
>    --with-libxml \
>    --with-libxslt \
>    --with-icu \
>    --with-llvm \
>    --enable-thread-safety \
>    --with-system-tzdata=/usr/share/zoneinfo \
>    $ARCH-slackware-linux
>
> The error is:
>
> make[2]: Leaving directory '/tmp/postgresql-13.1/src/backend/utils'
> make[1]: Leaving directory '/tmp/postgresql-13.1/src/backend'
> x86_64-slackware-linux-gcc -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 -Wno-stringop-truncation -O2
> -I../../../src/include  -D_GNU_SOURCE -I/usr/include/libxml2   -c -o
> collationcmds.o collationcmds.c
> collationcmds.c: In function ‘get_icu_language_tag’:
> collationcmds.c:467:51: error: ‘TRUE’ undeclared (first use in this
> function); did you mean ‘IS_TRUE’?
>    467 |  uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE, &status);
>        |                                                   ^~~~
>        |                                                   IS_TRUE
>
> collationcmds.c:467:51: note: each undeclared identifier is reported
> only once for each function it appears in
> make: *** [<builtin>: collationcmds.o] Error 1
>
> Changing TRUE to IS_TRUE solve the problem and code is compiled but no
> idea is this a real fix.

"UBool" and "TRUE" are defined in "umachine.h", which is a header file for the
"libicu" library.

PostgreSQL includes "unicode/ucol.h", which will include "umachine.h"
(via "utypes.h"), so that should be fine.

Are your libicu headers installed under /usr/include/unicode?
Do you get any messages about missing include files earlier?

Yours,
Laurenz Albe
--
Cybertec | https://www.cybertec-postgresql.com



Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Thomas Munro-5
On Mon, Nov 16, 2020 at 10:10 PM Laurenz Albe <[hidden email]> wrote:
> On Mon, 2020-11-16 at 09:15 +0200, Condor wrote:
> > collationcmds.c: In function ‘get_icu_language_tag’:
> > collationcmds.c:467:51: error: ‘TRUE’ undeclared (first use in this
> > function); did you mean ‘IS_TRUE’?
> >    467 |  uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE, &status);
> >        |                                                   ^~~~
> >        |                                                   IS_TRUE
> >

> "UBool" and "TRUE" are defined in "umachine.h", which is a header file for the
> "libicu" library.
>
> PostgreSQL includes "unicode/ucol.h", which will include "umachine.h"
> (via "utypes.h"), so that should be fine.
>
> Are your libicu headers installed under /usr/include/unicode?
> Do you get any messages about missing include files earlier?

It looks like something happened to ICU's boolean macros .  See this
commit in FreeBSD ports:

https://github.com/freebsd/freebsd-ports/commit/81a88b4506ec06d07be10d199170ef4003eb0e30

... which references:

https://github.com/unicode-org/icu/commit/c3fe7e09d844


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Condor
In reply to this post by Laurenz Albe
On 16-11-2020 11:10, Laurenz Albe wrote:

> On Mon, 2020-11-16 at 09:15 +0200, Condor wrote:
>> unable to compile Postgresql 13.0 and 13.1 on Slackware current x64.
>> Here is gcc -v:
>>
>> Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/9.3.0/specs
>> COLLECT_GCC=gcc
>> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/9.3.0/lto-wrapper
>> Target: x86_64-slackware-linux
>> Configured with: ../configure --prefix=/usr --libdir=/usr/lib64
>> --mandir=/usr/man --infodir=/usr/info --enable-shared
>> --enable-bootstrap
>> --enable-languages=ada,brig,c,c++,d,fortran,go,lto,objc,obj-c++
>> --enable-threads=posix --enable-checking=release --enable-objc-gc
>> --with-system-zlib --enable-libstdcxx-dual-abi
>> --with-default-libstdcxx-abi=new --disable-libstdcxx-pch
>> --disable-libunwind-exceptions --enable-__cxa_atexit --disable-libssp
>> --enable-gnu-unique-object --enable-plugin --enable-lto
>> --disable-install-libiberty --disable-werror --with-gnu-ld --with-isl
>> --verbose --with-arch-directory=amd64 --disable-gtktest
>> --enable-clocale=gnu --disable-multilib
>> --target=x86_64-slackware-linux
>> --build=x86_64-slackware-linux --host=x86_64-slackware-linux
>> Thread model: posix
>> gcc version 9.3.0 (GCC)
>>
>>
>> ICU version - 68.1, LLVM version - 11.0.0
>>
>>
>> Here is configure params:
>> ./configure \
>>    --prefix=/usr/lib$LIBDIRSUFFIX/postgresql/$VER \
>>    --libdir=/usr/lib$LIBDIRSUFFIX/postgresql/$VER/lib \
>>    --includedir=/usr/include \
>>    --sysconfdir=/etc/postgresql \
>>    --localstatedir=/var/lib/postgresql \
>>    --with-tcl \
>>    --with-tclconfig=/usr/lib$LIBDIRSUFFIX \
>>    --with-perl \
>>    --with-python \
>>    --with-openssl \
>>    --with-libxml \
>>    --with-libxslt \
>>    --with-icu \
>>    --with-llvm \
>>    --enable-thread-safety \
>>    --with-system-tzdata=/usr/share/zoneinfo \
>>    $ARCH-slackware-linux
>>
>> The error is:
>>
>> make[2]: Leaving directory '/tmp/postgresql-13.1/src/backend/utils'
>> make[1]: Leaving directory '/tmp/postgresql-13.1/src/backend'
>> x86_64-slackware-linux-gcc -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 -Wno-stringop-truncation -O2
>> -I../../../src/include  -D_GNU_SOURCE -I/usr/include/libxml2   -c -o
>> collationcmds.o collationcmds.c
>> collationcmds.c: In function ‘get_icu_language_tag’:
>> collationcmds.c:467:51: error: ‘TRUE’ undeclared (first use in this
>> function); did you mean ‘IS_TRUE’?
>>    467 |  uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE,
>> &status);
>>        |                                                   ^~~~
>>        |                                                   IS_TRUE
>>
>> collationcmds.c:467:51: note: each undeclared identifier is reported
>> only once for each function it appears in
>> make: *** [<builtin>: collationcmds.o] Error 1
>>
>> Changing TRUE to IS_TRUE solve the problem and code is compiled but no
>> idea is this a real fix.
>
> "UBool" and "TRUE" are defined in "umachine.h", which is a header file
> for the
> "libicu" library.
>
> PostgreSQL includes "unicode/ucol.h", which will include "umachine.h"
> (via "utypes.h"), so that should be fine.
>
> Are your libicu headers installed under /usr/include/unicode?
> Do you get any messages about missing include files earlier?
>
> Yours,
> Laurenz Albe


Hello,

yes. My header files are installed in /usr/include/unicode and for the
moment I don't get any messages
about missing files.

Best Regards,
HS


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Laurenz Albe
In reply to this post by Thomas Munro-5
On Mon, 2020-11-16 at 22:17 +1300, Thomas Munro wrote:

> On Mon, Nov 16, 2020 at 10:10 PM Laurenz Albe <[hidden email]> wrote:
>
> > On Mon, 2020-11-16 at 09:15 +0200, Condor wrote:
> > > collationcmds.c: In function ‘get_icu_language_tag’:
> > > collationcmds.c:467:51: error: ‘TRUE’ undeclared (first use in this
> > > function); did you mean ‘IS_TRUE’?
> > >     467 |  uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE, &status);
> > >         |                                                   ^~~~
> > >         |                                                   IS_TRUE
>
>
> > "UBool" and "TRUE" are defined in "umachine.h", which is a header file for the
> > "libicu" library.
> > PostgreSQL includes "unicode/ucol.h", which will include "umachine.h"
> > (via "utypes.h"), so that should be fine.
> > Are your libicu headers installed under /usr/include/unicode?
> > Do you get any messages about missing include files earlier?
>
> It looks like something happened to ICU's boolean macros .  See this
> commit in FreeBSD ports:
>
> https://github.com/freebsd/freebsd-ports/commit/81a88b4506ec06d07be10d199170ef4003eb0e30
>
> ... which references:
>
> https://github.com/unicode-org/icu/commit/c3fe7e09d844

Ugh, you are right.  Joy.
This will be annoying to work around.

Yours,
Laurenz Albe



Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Tom Lane-2
In reply to this post by Thomas Munro-5
Thomas Munro <[hidden email]> writes:
> It looks like something happened to ICU's boolean macros .  See this
> commit in FreeBSD ports:

> https://github.com/freebsd/freebsd-ports/commit/81a88b4506ec06d07be10d199170ef4003eb0e30

It'd be so nice if people would tell us about their problems, instead of
just hacking-and-slashing.

In this case, I see one use of the constant TRUE in collationcmds.c,
but I wonder how come that's there given that we deprecated upper-case
TRUE some time ago.  I find it hard to believe that sprinkling "#include
<stdbool.h>" into random places is either necessary (on modern platforms
anyway) or a good idea (if we're not using <stdbool.h>, this seems pretty
much guaranteed to break things); so I think the rest of that patch is
foolhardy.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Laurenz Albe
On Mon, 2020-11-16 at 12:30 -0500, Tom Lane wrote:

> Thomas Munro <[hidden email]> writes:
> > It looks like something happened to ICU's boolean macros .  See this
> > commit in FreeBSD ports:
> > https://github.com/freebsd/freebsd-ports/commit/81a88b4506ec06d07be10d199170ef4003eb0e30
>
> It'd be so nice if people would tell us about their problems, instead of
> just hacking-and-slashing.
>
> In this case, I see one use of the constant TRUE in collationcmds.c,
> but I wonder how come that's there given that we deprecated upper-case
> TRUE some time ago.  I find it hard to believe that sprinkling "#include
> <stdbool.h>" into random places is either necessary (on modern platforms
> anyway) or a good idea (if we're not using <stdbool.h>, this seems pretty
> much guaranteed to break things); so I think the rest of that patch is
> foolhardy.
How about this patch?  It fixes the problem for me.

Yours,
Laurenz Albe

0001-Fix-build-for-libicu-68-and-later.patch (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Tom Lane-2
Laurenz Albe <[hidden email]> writes:
> On Mon, 2020-11-16 at 12:30 -0500, Tom Lane wrote:
>> In this case, I see one use of the constant TRUE in collationcmds.c,
>> but I wonder how come that's there given that we deprecated upper-case
>> TRUE some time ago.  I find it hard to believe that sprinkling "#include
>> <stdbool.h>" into random places is either necessary (on modern platforms
>> anyway) or a good idea (if we're not using <stdbool.h>, this seems pretty
>> much guaranteed to break things); so I think the rest of that patch is
>> foolhardy.

> How about this patch?  It fixes the problem for me.

What's wrong with s/TRUE/true/ in get_icu_language_tag?
(I have zero interest in undoing 6337865f3, which is what this patch
would amount to.)

A larger issue is that it looks like ICU68 may insist on importing
<stdbool.h> in some headers.  That's fine on the platforms where we
use <stdbool.h> anyway, but it's distinctly not fine elsewhere.
We might be able to work around that the same way that dfmgr.h does:

/*
 * On macOS, <dlfcn.h> insists on including <stdbool.h>.  If we're not
 * using stdbool, undef bool to undo the damage.
 */
#ifndef PG_USE_STDBOOL
#ifdef bool
#undef bool
#endif
#endif

This is going to be hard to test without a platform that doesn't use
<stdbool.h> though.  [ starts booting up spare PPC Mac ... ]

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Tom Lane-2
I wrote:
> A larger issue is that it looks like ICU68 may insist on importing
> <stdbool.h> in some headers.  That's fine on the platforms where we
> use <stdbool.h> anyway, but it's distinctly not fine elsewhere.

Meh.  I went to see if I could test that, and didn't get much further
than this on ICU's downloads page:

    ICU4C Platform Support

    All: Compiler support for C++11 is required for building the ICU libraries.
    Some platforms (such as IBM AIX, IBM z and Solaris) may no longer be able to build ICU until an improved compiler is available.

AFAIK, the only platforms we have where <stdbool.h> isn't used are
PPC Mac, which of course was discontinued around 2008, so there's
zero chance that the compiler supports C++11.  Barring somebody
finding evidence of a platform that can run ICU68 and is not using
<stdbool.h>, it's not worth spending time on this combination.

I think we should just s/TRUE/true/ and be done with it.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Tom Lane-2
In reply to this post by Tom Lane-2
I wrote:
> What's wrong with s/TRUE/true/ in get_icu_language_tag?

I confirmed that that fixes the build with ICU 68.1, and pushed it.

                        regards, tom lane


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Condor
On 16-11-2020 22:18, Tom Lane wrote:
> I wrote:
>> What's wrong with s/TRUE/true/ in get_icu_language_tag?
>
> I confirmed that that fixes the build with ICU 68.1, and pushed it.
>
> regards, tom lane


Hello,

I try to compile postgres again with (cd src/backend/commands; sed
's/TRUE/true/' collationcmds.c > collationcmds.c; ) and it's compiled
but get new error on linking:


src/backend/utils/fmgrtab.o ) >objfiles.txt
gmake[3]: Leaving directory '/tmp/postgresql-13.1/src/backend/utils'
x86_64-slackware-linux-gcc -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 -Wno-stringop-truncation -O2 access/brin/brin.o
access/brin/brin_inclusion.o access/brin/brin_minmax.o
access/brin/brin_pageops.o access/brin/brin_revmap.o
access/brin/brin_tuple.o access/brin/brin_validate.o
access/brin/brin_xlog.o access/common/attmap.o access/common/bufmask.o
access/common/detoast.o access/common/heaptuple.o
access/common/indextuple.o access/common/printsimple.o
access/common/printtup.o access/common/relation.o
access/common/reloptions.o access/common/scankey.o
access/common/session.o access/common/toast_internals.o
access/common/tupconvert.o access/common/tupdesc.o
access/gin/ginarrayproc.o access/gin/ginbtree.o access/gin/ginbulk.o
access/gin/gindatapage.o access/gin/ginentrypage.o access/gin/ginfast.o
access/gin/ginget.o access/gin/gininsert.o access/gin/ginlogic.o
access/gin/ginpostinglist.o access/gin/ginscan.o access/gin/ginutil.o
access/gin/ginvacuum.o access/gin/ginvalidate.o access/gin/ginxlog.o
access/gist/gist.o access/gist/gistbuild.o
access/gist/gistbuildbuffers.o access/gist/gistget.o
access/gist/gistproc.o access/gist/gistscan.o access/gist/gistsplit.o
access/gist/gistutil.o access/gist/gistvacuum.o
access/gist/gistvalidate.o access/gist/gistxlog.o access/hash/hash.o
access/hash/hash_xlog.o access/hash/hashfunc.o access/hash/hashinsert.o
access/hash/hashovfl.o access/hash/hashpage.o access/hash/hashsearch.o
access/hash/hashsort.o access/hash/hashutil.o access/hash/hashvalidate.o
access/heap/heapam.o access/heap/heapam_handler.o
access/heap/heapam_visibility.o access/heap/heaptoast.o
access/heap/hio.o access/heap/pruneheap.o access/heap/rewriteheap.o
access/heap/syncscan.o access/heap/vacuumlazy.o
access/heap/visibilitymap.o access/index/amapi.o
access/index/amvalidate.o access/index/genam.o access/index/indexam.o
access/nbtree/nbtcompare.o access/nbtree/nbtdedup.o
access/nbtree/nbtinsert.o access/nbtree/nbtpage.o access/nbtree/nbtree.o
access/nbtree/nbtsearch.o access/nbtree/nbtsort.o
access/nbtree/nbtsplitloc.o access/nbtree/nbtutils.o
access/nbtree/nbtvalidate.o access/nbtree/nbtxlog.o
access/rmgrdesc/brindesc.o access/rmgrdesc/clogdesc.o
access/rmgrdesc/committsdesc.o access/rmgrdesc/dbasedesc.o
access/rmgrdesc/genericdesc.o access/rmgrdesc/gindesc.o
access/rmgrdesc/gistdesc.o access/rmgrdesc/hashdesc.o
access/rmgrdesc/heapdesc.o access/rmgrdesc/logicalmsgdesc.o
access/rmgrdesc/mxactdesc.o access/rmgrdesc/nbtdesc.o
access/rmgrdesc/relmapdesc.o access/rmgrdesc/replorigindesc.o
access/rmgrdesc/seqdesc.o access/rmgrdesc/smgrdesc.o
access/rmgrdesc/spgdesc.o access/rmgrdesc/standbydesc.o
access/rmgrdesc/tblspcdesc.o access/rmgrdesc/xactdesc.o
access/rmgrdesc/xlogdesc.o access/spgist/spgdoinsert.o
access/spgist/spginsert.o access/spgist/spgkdtreeproc.o
access/spgist/spgproc.o access/spgist/spgquadtreeproc.o
access/spgist/spgscan.o access/spgist/spgtextproc.o
access/spgist/spgutils.o access/spgist/spgvacuum.o
access/spgist/spgvalidate.o access/spgist/spgxlog.o access/table/table.o
access/table/tableam.o access/table/tableamapi.o
access/table/toast_helper.o access/tablesample/bernoulli.o
access/tablesample/system.o access/tablesample/tablesample.o
access/transam/clog.o access/transam/commit_ts.o
access/transam/generic_xlog.o access/transam/multixact.o
access/transam/parallel.o access/transam/rmgr.o access/transam/slru.o
access/transam/subtrans.o access/transam/timeline.o
access/transam/transam.o access/transam/twophase.o
access/transam/twophase_rmgr.o access/transam/varsup.o
access/transam/xact.o access/transam/xlog.o access/transam/xlogarchive.o
access/transam/xlogfuncs.o access/transam/xloginsert.o
access/transam/xlogreader.o access/transam/xlogutils.o
bootstrap/bootparse.o bootstrap/bootstrap.o catalog/aclchk.o
catalog/catalog.o catalog/dependency.o catalog/heap.o catalog/index.o
catalog/indexing.o catalog/namespace.o catalog/objectaccess.o
catalog/objectaddress.o catalog/partition.o catalog/pg_aggregate.o
catalog/pg_cast.o catalog/pg_collation.o catalog/pg_constraint.o
catalog/pg_conversion.o catalog/pg_db_role_setting.o catalog/pg_depend.o
catalog/pg_enum.o catalog/pg_inherits.o catalog/pg_largeobject.o
catalog/pg_namespace.o catalog/pg_operator.o catalog/pg_proc.o
catalog/pg_publication.o catalog/pg_range.o catalog/pg_shdepend.o
catalog/pg_subscription.o catalog/pg_type.o catalog/storage.o
catalog/toasting.o parser/analyze.o parser/gram.o parser/parse_agg.o
parser/parse_clause.o parser/parse_coerce.o parser/parse_collate.o
parser/parse_cte.o parser/parse_enr.o parser/parse_expr.o
parser/parse_func.o parser/parse_node.o parser/parse_oper.o
parser/parse_param.o parser/parse_relation.o parser/parse_target.o
parser/parse_type.o parser/parse_utilcmd.o parser/parser.o parser/scan.o
parser/scansup.o commands/aggregatecmds.o commands/alter.o
commands/amcmds.o commands/analyze.o commands/async.o commands/cluster.o
commands/collationcmds.o commands/comment.o commands/constraint.o
commands/conversioncmds.o commands/copy.o commands/createas.o
commands/dbcommands.o commands/define.o commands/discard.o
commands/dropcmds.o commands/event_trigger.o commands/explain.o
commands/extension.o commands/foreigncmds.o commands/functioncmds.o
commands/indexcmds.o commands/lockcmds.o commands/matview.o
commands/opclasscmds.o commands/operatorcmds.o commands/policy.o
commands/portalcmds.o commands/prepare.o commands/proclang.o
commands/publicationcmds.o commands/schemacmds.o commands/seclabel.o
commands/sequence.o commands/statscmds.o commands/subscriptioncmds.o
commands/tablecmds.o commands/tablespace.o commands/trigger.o
commands/tsearchcmds.o commands/typecmds.o commands/user.o
commands/vacuum.o commands/variable.o commands/view.o executor/execAmi.o
executor/execCurrent.o executor/execExpr.o executor/execExprInterp.o
executor/execGrouping.o executor/execIndexing.o executor/execJunk.o
executor/execMain.o executor/execParallel.o executor/execPartition.o
executor/execProcnode.o executor/execReplication.o executor/execSRF.o
executor/execScan.o executor/execTuples.o executor/execUtils.o
executor/functions.o executor/instrument.o executor/nodeAgg.o
executor/nodeAppend.o executor/nodeBitmapAnd.o
executor/nodeBitmapHeapscan.o executor/nodeBitmapIndexscan.o
executor/nodeBitmapOr.o executor/nodeCtescan.o executor/nodeCustom.o
executor/nodeForeignscan.o executor/nodeFunctionscan.o
executor/nodeGather.o executor/nodeGatherMerge.o executor/nodeGroup.o
executor/nodeHash.o executor/nodeHashjoin.o
executor/nodeIncrementalSort.o executor/nodeIndexonlyscan.o
executor/nodeIndexscan.o executor/nodeLimit.o executor/nodeLockRows.o
executor/nodeMaterial.o executor/nodeMergeAppend.o
executor/nodeMergejoin.o executor/nodeModifyTable.o
executor/nodeNamedtuplestorescan.o executor/nodeNestloop.o
executor/nodeProjectSet.o executor/nodeRecursiveunion.o
executor/nodeResult.o executor/nodeSamplescan.o executor/nodeSeqscan.o
executor/nodeSetOp.o executor/nodeSort.o executor/nodeSubplan.o
executor/nodeSubqueryscan.o executor/nodeTableFuncscan.o
executor/nodeTidscan.o executor/nodeUnique.o executor/nodeValuesscan.o
executor/nodeWindowAgg.o executor/nodeWorktablescan.o executor/spi.o
executor/tqueue.o executor/tstoreReceiver.o foreign/foreign.o
lib/binaryheap.o lib/bipartite_match.o lib/bloomfilter.o lib/dshash.o
lib/hyperloglog.o lib/ilist.o lib/integerset.o lib/knapsack.o
lib/pairingheap.o lib/rbtree.o libpq/auth-scram.o libpq/auth.o
libpq/be-fsstubs.o libpq/be-secure-common.o libpq/be-secure.o
libpq/crypt.o libpq/hba.o libpq/ifaddr.o libpq/pqcomm.o libpq/pqformat.o
libpq/pqmq.o libpq/pqsignal.o libpq/be-secure-openssl.o main/main.o
nodes/bitmapset.o nodes/copyfuncs.o nodes/equalfuncs.o
nodes/extensible.o nodes/list.o nodes/makefuncs.o nodes/nodeFuncs.o
nodes/nodes.o nodes/outfuncs.o nodes/params.o nodes/print.o nodes/read.o
nodes/readfuncs.o nodes/tidbitmap.o nodes/value.o
optimizer/geqo/geqo_copy.o optimizer/geqo/geqo_cx.o
optimizer/geqo/geqo_erx.o optimizer/geqo/geqo_eval.o
optimizer/geqo/geqo_main.o optimizer/geqo/geqo_misc.o
optimizer/geqo/geqo_mutation.o optimizer/geqo/geqo_ox1.o
optimizer/geqo/geqo_ox2.o optimizer/geqo/geqo_pmx.o
optimizer/geqo/geqo_pool.o optimizer/geqo/geqo_px.o
optimizer/geqo/geqo_random.o optimizer/geqo/geqo_recombination.o
optimizer/geqo/geqo_selection.o optimizer/path/allpaths.o
optimizer/path/clausesel.o optimizer/path/costsize.o
optimizer/path/equivclass.o optimizer/path/indxpath.o
optimizer/path/joinpath.o optimizer/path/joinrels.o
optimizer/path/pathkeys.o optimizer/path/tidpath.o
optimizer/plan/analyzejoins.o optimizer/plan/createplan.o
optimizer/plan/initsplan.o optimizer/plan/planagg.o
optimizer/plan/planmain.o optimizer/plan/planner.o
optimizer/plan/setrefs.o optimizer/plan/subselect.o
optimizer/prep/prepjointree.o optimizer/prep/prepqual.o
optimizer/prep/preptlist.o optimizer/prep/prepunion.o
optimizer/util/appendinfo.o optimizer/util/clauses.o
optimizer/util/inherit.o optimizer/util/joininfo.o
optimizer/util/orclauses.o optimizer/util/paramassign.o
optimizer/util/pathnode.o optimizer/util/placeholder.o
optimizer/util/plancat.o optimizer/util/predtest.o
optimizer/util/relnode.o optimizer/util/restrictinfo.o
optimizer/util/tlist.o optimizer/util/var.o partitioning/partbounds.o
partitioning/partdesc.o partitioning/partprune.o port/atomics.o
port/pg_sema.o port/pg_shmem.o postmaster/autovacuum.o
postmaster/bgworker.o postmaster/bgwriter.o postmaster/checkpointer.o
postmaster/fork_process.o postmaster/interrupt.o postmaster/pgarch.o
postmaster/pgstat.o postmaster/postmaster.o postmaster/startup.o
postmaster/syslogger.o postmaster/walwriter.o regex/regcomp.o
regex/regerror.o regex/regexec.o regex/regexport.o regex/regfree.o
regex/regprefix.o replication/logical/decode.o
replication/logical/launcher.o replication/logical/logical.o
replication/logical/logicalfuncs.o replication/logical/message.o
replication/logical/origin.o replication/logical/proto.o
replication/logical/relation.o replication/logical/reorderbuffer.o
replication/logical/snapbuild.o replication/logical/tablesync.o
replication/logical/worker.o replication/backup_manifest.o
replication/basebackup.o replication/repl_gram.o replication/slot.o
replication/slotfuncs.o replication/syncrep.o replication/syncrep_gram.o
replication/walreceiver.o replication/walreceiverfuncs.o
replication/walsender.o rewrite/rewriteDefine.o rewrite/rewriteHandler.o
rewrite/rewriteManip.o rewrite/rewriteRemove.o rewrite/rewriteSupport.o
rewrite/rowsecurity.o statistics/dependencies.o
statistics/extended_stats.o statistics/mcv.o statistics/mvdistinct.o
storage/buffer/buf_init.o storage/buffer/buf_table.o
storage/buffer/bufmgr.o storage/buffer/freelist.o
storage/buffer/localbuf.o storage/file/buffile.o storage/file/copydir.o
storage/file/fd.o storage/file/reinit.o storage/file/sharedfileset.o
storage/freespace/freespace.o storage/freespace/fsmpage.o
storage/freespace/indexfsm.o storage/ipc/barrier.o storage/ipc/dsm.o
storage/ipc/dsm_impl.o storage/ipc/ipc.o storage/ipc/ipci.o
storage/ipc/latch.o storage/ipc/pmsignal.o storage/ipc/procarray.o
storage/ipc/procsignal.o storage/ipc/shm_mq.o storage/ipc/shm_toc.o
storage/ipc/shmem.o storage/ipc/shmqueue.o storage/ipc/signalfuncs.o
storage/ipc/sinval.o storage/ipc/sinvaladt.o storage/ipc/standby.o
storage/large_object/inv_api.o storage/lmgr/condition_variable.o
storage/lmgr/deadlock.o storage/lmgr/lmgr.o storage/lmgr/lock.o
storage/lmgr/lwlock.o storage/lmgr/lwlocknames.o
storage/lmgr/predicate.o storage/lmgr/proc.o storage/lmgr/s_lock.o
storage/lmgr/spin.o storage/page/bufpage.o storage/page/checksum.o
storage/page/itemptr.o storage/smgr/md.o storage/smgr/smgr.o
storage/sync/sync.o tcop/cmdtag.o tcop/dest.o tcop/fastpath.o
tcop/postgres.o tcop/pquery.o tcop/utility.o tsearch/dict.o
tsearch/dict_ispell.o tsearch/dict_simple.o tsearch/dict_synonym.o
tsearch/dict_thesaurus.o tsearch/regis.o tsearch/spell.o
tsearch/to_tsany.o tsearch/ts_locale.o tsearch/ts_parse.o
tsearch/ts_selfuncs.o tsearch/ts_typanalyze.o tsearch/ts_utils.o
tsearch/wparser.o tsearch/wparser_def.o utils/adt/acl.o
utils/adt/amutils.o utils/adt/array_expanded.o
utils/adt/array_selfuncs.o utils/adt/array_typanalyze.o
utils/adt/array_userfuncs.o utils/adt/arrayfuncs.o
utils/adt/arrayutils.o utils/adt/ascii.o utils/adt/bool.o
utils/adt/cash.o utils/adt/char.o utils/adt/cryptohashes.o
utils/adt/date.o utils/adt/datetime.o utils/adt/datum.o
utils/adt/dbsize.o utils/adt/domains.o utils/adt/encode.o
utils/adt/enum.o utils/adt/expandeddatum.o utils/adt/expandedrecord.o
utils/adt/float.o utils/adt/format_type.o utils/adt/formatting.o
utils/adt/genfile.o utils/adt/geo_ops.o utils/adt/geo_selfuncs.o
utils/adt/geo_spgist.o utils/adt/inet_cidr_ntop.o
utils/adt/inet_net_pton.o utils/adt/int.o utils/adt/int8.o
utils/adt/json.o utils/adt/jsonb.o utils/adt/jsonb_gin.o
utils/adt/jsonb_op.o utils/adt/jsonb_util.o utils/adt/jsonfuncs.o
utils/adt/jsonpath.o utils/adt/jsonpath_exec.o utils/adt/jsonpath_gram.o
utils/adt/like.o utils/adt/like_support.o utils/adt/lockfuncs.o
utils/adt/mac.o utils/adt/mac8.o utils/adt/misc.o utils/adt/name.o
utils/adt/network.o utils/adt/network_gist.o
utils/adt/network_selfuncs.o utils/adt/network_spgist.o
utils/adt/numeric.o utils/adt/numutils.o utils/adt/oid.o
utils/adt/oracle_compat.o utils/adt/orderedsetaggs.o
utils/adt/partitionfuncs.o utils/adt/pg_locale.o utils/adt/pg_lsn.o
utils/adt/pg_upgrade_support.o utils/adt/pgstatfuncs.o
utils/adt/pseudotypes.o utils/adt/quote.o utils/adt/rangetypes.o
utils/adt/rangetypes_gist.o utils/adt/rangetypes_selfuncs.o
utils/adt/rangetypes_spgist.o utils/adt/rangetypes_typanalyze.o
utils/adt/regexp.o utils/adt/regproc.o utils/adt/ri_triggers.o
utils/adt/rowtypes.o utils/adt/ruleutils.o utils/adt/selfuncs.o
utils/adt/tid.o utils/adt/timestamp.o utils/adt/trigfuncs.o
utils/adt/tsginidx.o utils/adt/tsgistidx.o utils/adt/tsquery.o
utils/adt/tsquery_cleanup.o utils/adt/tsquery_gist.o
utils/adt/tsquery_op.o utils/adt/tsquery_rewrite.o
utils/adt/tsquery_util.o utils/adt/tsrank.o utils/adt/tsvector.o
utils/adt/tsvector_op.o utils/adt/tsvector_parser.o utils/adt/uuid.o
utils/adt/varbit.o utils/adt/varchar.o utils/adt/varlena.o
utils/adt/version.o utils/adt/windowfuncs.o utils/adt/xid.o
utils/adt/xid8funcs.o utils/adt/xml.o utils/cache/attoptcache.o
utils/cache/catcache.o utils/cache/evtcache.o utils/cache/inval.o
utils/cache/lsyscache.o utils/cache/partcache.o utils/cache/plancache.o
utils/cache/relcache.o utils/cache/relfilenodemap.o
utils/cache/relmapper.o utils/cache/spccache.o utils/cache/syscache.o
utils/cache/ts_cache.o utils/cache/typcache.o utils/error/assert.o
utils/error/elog.o utils/fmgr/dfmgr.o utils/fmgr/fmgr.o
utils/fmgr/funcapi.o utils/hash/dynahash.o utils/hash/pg_crc.o
utils/init/globals.o utils/init/miscinit.o utils/init/postinit.o
utils/mb/conv.o utils/mb/mbutils.o utils/mb/stringinfo_mb.o
utils/mb/wstrcmp.o utils/mb/wstrncmp.o utils/misc/guc.o
utils/misc/help_config.o utils/misc/pg_config.o
utils/misc/pg_controldata.o utils/misc/pg_rusage.o
utils/misc/ps_status.o utils/misc/queryenvironment.o utils/misc/rls.o
utils/misc/sampling.o utils/misc/superuser.o utils/misc/timeout.o
utils/misc/tzparser.o utils/mmgr/aset.o utils/mmgr/dsa.o
utils/mmgr/freepage.o utils/mmgr/generation.o utils/mmgr/mcxt.o
utils/mmgr/memdebug.o utils/mmgr/portalmem.o utils/mmgr/slab.o
utils/resowner/resowner.o utils/sort/logtape.o
utils/sort/sharedtuplestore.o utils/sort/sortsupport.o
utils/sort/tuplesort.o utils/sort/tuplestore.o utils/time/combocid.o
utils/time/snapmgr.o utils/fmgrtab.o ../../src/timezone/localtime.o
../../src/timezone/pgtz.o ../../src/timezone/strftime.o jit/jit.o
../../src/common/libpgcommon_srv.a ../../src/port/libpgport_srv.a
-L../../src/port -L../../src/common  -L/usr/lib64  -Wl,--as-needed
-Wl,-rpath,'/usr/lib64/postgresql/13.1/lib',--enable-new-dtags  -Wl,-E
-lpthread -lxslt -lxml2 -lssl -lcrypto -lrt -ldl -lm -licui18n -licuuc
-licudata -o postgres
/usr/bin/ld: commands/alter.o: in function
`AlterObjectNamespace_internal':
alter.c:(.text+0x7c1): undefined reference to
`IsThereCollationInNamespace'
/usr/bin/ld: commands/alter.o: in function `ExecRenameStmt':
alter.c:(.text+0xfea): undefined reference to
`IsThereCollationInNamespace'
/usr/bin/ld: tcop/utility.o: in function `ProcessUtilitySlow.isra.0':
utility.c:(.text+0x1ae6): undefined reference to `AlterCollation'
/usr/bin/ld: utility.c:(.text+0x227c): undefined reference to
`DefineCollation'
/usr/bin/ld: utils/fmgrtab.o:(.rodata+0x10358): undefined reference to
`pg_import_system_collations'
/usr/bin/ld: utils/fmgrtab.o:(.rodata+0x103a0): undefined reference to
`pg_collation_actual_version'
collect2: error: ld returned 1 exit status
gmake[2]: *** [Makefile:66: postgres] Error 1
gmake[2]: Leaving directory '/tmp/postgresql-13.1/src/backend'
gmake[1]: *** [Makefile:42: all-backend-recurse] Error 2
gmake[1]: Leaving directory '/tmp/postgresql-13.1/src'
gmake: *** [GNUmakefile:11: all-src-recurse] Error 2
gmake -C ./src/backend generated-headers


Regards,
Hristo Simneonov


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Thomas Munro-5
On Tue, Nov 17, 2020 at 8:02 PM Condor <[hidden email]> wrote:
> I try to compile postgres again with (cd src/backend/commands; sed
> 's/TRUE/true/' collationcmds.c > collationcmds.c; ) and it's compiled
> but get new error on linking:

Doesn't that produce an empty file collationcmds.c? I think you want:

sed 's/TRUE/true/' collationcmds.c > collationcmds.c.tmp && mv
collationcmds.c.tmp collationcmds.c


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Condor
On 17-11-2020 11:00, Thomas Munro wrote:
> On Tue, Nov 17, 2020 at 8:02 PM Condor <[hidden email]> wrote:
>> I try to compile postgres again with (cd src/backend/commands; sed
>> 's/TRUE/true/' collationcmds.c > collationcmds.c; ) and it's compiled
>> but get new error on linking:
>
> Doesn't that produce an empty file collationcmds.c? I think you want:
>
> sed 's/TRUE/true/' collationcmds.c > collationcmds.c.tmp && mv
> collationcmds.c.tmp collationcmds.c

Yes,
you are right. Changing script to (cd src/backend/commands; sed
's/TRUE/true/' collationcmds.c > collationcmds.c.tmp; mv
collationcmds.c.tmp collationcmds.c )
and PostgreSQL is compiled without any errors and working like a charm.

Best Regards,
Hristo Simeonov


Reply | Threaded
Open this post in threaded view
|

Re: Unable to compile postgres 13.1 on Slackware current x64

Peter Eisentraut-7
In reply to this post by Tom Lane-2
On 2020-11-16 18:30, Tom Lane wrote:
> In this case, I see one use of the constant TRUE in collationcmds.c,
> but I wonder how come that's there given that we deprecated upper-case
> TRUE some time ago.

In 2eb4a831e5fb5d8fc17e13aea56e04af3efe27b4, I intentionally left that
there because it was the documented ICU API.  Now that that's changed,
we should just do s/TRUE/true/ there as suggested.