Re: Build error in Solaris - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Build error in Solaris
Date
Msg-id 1176583.1644323289@sss.pgh.pa.us
Whole thread Raw
In response to Build error in Solaris  ("Wei Sun" <936739278@qq.com>)
Responses Re: Build error in Solaris  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
"=?utf-8?B?V2VpIFN1bg==?=" <936739278@qq.com> writes:
> When I built the latest code for branch REL_10_STABLE on the Solairs,
> the following error occurred:
> ------------------------------------------------------
> "plperl.c", line 669: syntax error before or at: if
> "plperl.c", line 669: undefined symbol: _sv
> "plperl.c", line 669: left operand of "->" must be pointer to struct/union
> "plperl.c", line 669: warning: improper pointer/integer combination: arg #2
> "plperl.c", line 669: syntax error before or at: else
> "plperl.c", line 670: warning: statement not reached
> "plperl.c", line 678: cannot recover from previous errors
> cc: acomp failed for plperl.c
> gmake: *** [plperl.o] Error 2
> ------------------------------------------------------

Hm.  I saw something similar on my old dinosaur pademelon, but wrote it
off as "they don't care about pre-C99 compilers anymore".  But now I
dug into ppport.h a bit more, and I think it's actually busted for
non-gcc compilers: eval_pv expands into something that tries to use
STMT_START/STMT_END inside a plain parenthesized expression (via
croak_sv).

Maybe the bleeding edge Devel::PPPort would do better?  I see

Revision history for Devel-PPPort

3.64 - 2022-02-01
  * Fix: better support for STMT_START / STMT_END definition
  * Fix: Only use '-Wdeclaration-after-statement' if possible

which if not a smoking gun is at least firearm-adjacent.

            regards, tom lane



pgsql-bugs by date:

Previous
From: "Wei Sun"
Date:
Subject: Build error in Solaris
Next
From: Daniel Gustafsson
Date:
Subject: Re: BUG #17391: While using --with-ssl=openssl and PG_TEST_EXTRA='ssl' options, SSL tests fail on OpenBSD 7.0