On Mon, Apr 3, 2017 at 9:31 AM, Jeff Janes <jeff.ja...@gmail.com> wrote:

> make maintainer-clean > /dev/null ; ./configure  --enable-profiling >
> /dev/null &&  make -j8 >/dev/null
>
> In file included from ipc.c:29:
> ../../../../src/include/postmaster/autovacuum.h:73: error: expected
> declaration specifiers or '...' before 'BlockNumber'
> make[4]: *** [ipc.o] Error 1
> make[3]: *** [ipc-recursive] Error 2
> make[3]: *** Waiting for unfinished jobs....
> make[2]: *** [storage-recursive] Error 2
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [all-backend-recurse] Error 2
> make: *** [all-src-recurse] Error 2
>
>
> This git bisects down to:
>
> commit 7526e10224f0792201e99631567bbe44492bbde4
> Author: Alvaro Herrera <alvhe...@alvh.no-ip.org>
> Date:   Sat Apr 1 14:00:53 2017 -0300
>
>     BRIN auto-summarization
>
> The lines are:
>
> extern void AutoVacuumRequestWork(AutoVacuumWorkItemType type,
>                       Oid relationId, BlockNumber blkno);
>
> I have no idea why --enable-profiling would change the way this line is
> seen.
>
> gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
>

A newer gcc gave a better error message which lead me to add the line:

#include "storage/block.h"         /* for typedef BlockNumber */

into autovacuum.h, which fixes the problem.

I don't know if that is the correct fix, or why it is only needed under
profiling.

Cheers,

Jeff

Reply via email to