Re: Unable to compile postgres 13.1 on Slackware current x64

Laurenz Albe <laurenz.albe@cybertec.at>

From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Condor <condor@stz-bg.com>, "pgsql-generallists.postgresql.org" <pgsql-general@lists.postgresql.org>
Date: 2020-11-16T17:14:06Z
Lists: pgsql-general
On Mon, 2020-11-16 at 22:17 +1300, Thomas Munro wrote:
> On Mon, Nov 16, 2020 at 10:10 PM Laurenz Albe <laurenz.albe@cybertec.at> 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




Commits

  1. Use "true" not "TRUE" in one ICU function call.

  2. Change TRUE/FALSE to true/false