Обсуждение: pgsql: Can't completely get rid of #ifndef FRONTEND in palloc.h :-(

Поиск
Список
Период
Сортировка

pgsql: Can't completely get rid of #ifndef FRONTEND in palloc.h :-(

От
Tom Lane
Дата:
Can't completely get rid of #ifndef FRONTEND in palloc.h :-(

pg_controldata includes postgres.h not postgres_fe.h, so utils/palloc.h
must be able to compile in a "#define FRONTEND" context.  It appears that
Solaris Studio is smart enough to persuade us to define PG_USE_INLINE,
but not smart enough to not make a copy of unreferenced static functions;
which leads to an unsatisfied reference to CurrentMemoryContext.  So we
need an #ifndef FRONTEND around that declaration.  Per buildfarm.

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/36825f38dd44d8630b07be843dfc1619fe9f8d5c

Modified Files
--------------
src/include/utils/palloc.h |    7 +++++++
1 file changed, 7 insertions(+)


Re: pgsql: Can't completely get rid of #ifndef FRONTEND in palloc.h :-(

От
Alvaro Herrera
Дата:
Tom Lane wrote:
> Can't completely get rid of #ifndef FRONTEND in palloc.h :-(
>
> pg_controldata includes postgres.h not postgres_fe.h, so utils/palloc.h
> must be able to compile in a "#define FRONTEND" context.

Hmm, I had this patch in an abandoned branch from long ago, which I
think helped remove postgres.h from pg_controldata.  I remembered it
just now because of this commit message.  Maybe it's useful to re-remove
the #ifndef FRONTEND from palloc.h.

It's not rebased to latest master and maybe even not complete; if people
think this approach is worthwhile I can try and clean it up and
proposely more seriously; LMK.  (Also if people think it needs futher
tweaks.  I vaguely recall I didn't propose it back then because the set
of stuff in the new header could be tweaked.)

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Вложения