Re: BUG #19727: pg-combinebackup fails to link - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #19727: pg-combinebackup fails to link
Date
Msg-id 769387.1790775367@sss.pgh.pa.us
Whole thread
In response to Re: BUG #19727: pg-combinebackup fails to link  (Ross Burton <ross@burtonini.com>)
Responses Re: BUG #19727: pg-combinebackup fails to link
List pgsql-bugs
Ross Burton <ross@burtonini.com> writes:
> I now have a build tree that works and a build tree that breaks, from
> the same machine and environment, simply by re-running the build with
> make --shuffle.

> The working jsonapi.o has functions like appendStringInfoChar,
> resetStringInfo, etc.  The one that fails to link has
> appendPQExpBufferChar, resetPQExpBuffer, etc.

> This is a makefile dependency bug exposed in parallel builds, and can
> be reproduced on demand with a minimal reproducer.  From a clean but
> configured tree, in src/common:

> $ make jsonapi.o
> $ readelf -sW jsonapi.o | grep reset
>     64: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND resetStringInfo

> This builds a jsonapi.o using the direct target, and
> JSONAPI_USE_PQEXPBUFFER is not defined.

> $ make clean
> $ make jsonapi_shlib.o
> $ readelf -sW jsonapi.o | grep reset
>     65: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND resetPQExpBuffer

> This builds jsonapi_shlib.o, which adds JSONAPI_USE_PQEXPBUFFER to
> CPPFLAGS. However jsonapi.o hasn't been built yet so that is also
> built, but with the PQEXPBUFFER define set this time.

Very interesting!  So the problem is that the scope of the effects of
this:

jsonapi_shlib.o: override CPPFLAGS += -DJSONAPI_USE_PQEXPBUFFER

isn't terribly well-defined.  Looking at the rest of that Makefile,
I'm also suspicious about

$(OBJS_FRONTEND): CPPFLAGS += -DUSE_PRIVATE_ENCODING_FUNCS

Can you break that part?  If not, maybe the problem is the
gratuitous-looking "override"?

            regards, tom lane



pgsql-bugs by date:

Previous
From: Andrey Rachitskiy
Date:
Subject: Re: BUG #19732: first_value/last_value/nth_value return NULL with EXCLUDE TIES when the current row is outside its f
Next
From: Jiří Kavalík
Date:
Subject: Streaming decoding fails with "unexpected table_index_fetch_tuple call during logical decoding" when a relation has a TOASTed conbin (follow-up to BUG #18641)