reorg / pg_repack

Reorganize tables in PostgreSQL databases with minimal locks
BSD 3-Clause "New" or "Revised" License
1.9k stars 177 forks source link

pg_repack compiling fail on Ubuntu 14.04 with apt.postgresql.org packages #63

Closed Slach closed 8 years ago

Slach commented 8 years ago

pg_repack not compatible with libpq5 9.5 ???

steps to reproduce

wget -q -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" > /etc/apt/source.list.d/pgsql.list
apt-get update
apt-get install libedit-dev libpq-dev postgresql-9.4 postgresql-server-dev-9.4 
pip install --upgrade pgxnclient
pgxn install pg_repack

error output

root@local-coffee-master:~# pgxn install pg_repack
INFO: best version: pg_repack 1.3.2
INFO: saving /tmp/tmpcBVeFA/pg_repack-1.3.2.zip
INFO: unpacking: /tmp/tmpcBVeFA/pg_repack-1.3.2.zip
INFO: building extension
make[1]: Entering directory `/tmp/tmpcBVeFA/pg_repack-1.3.2/bin'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g
-O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -DLINUX_OOM_SCORE_ADJ=0 -fno-omit-frame-pointer -I/usr/include/postgresql -DREPACK_V
ERSION=1.3.2 -I. -I./ -I/usr/include/postgresql/9.4/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.6  -c -o pg_repack.o pg_repa
ck.c
In file included from pgut/pgut.h:22:0,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/postgresql/internal/pqexpbuffer.h:149:13: warning: no previous prototype for 'printfPQExpBuffer' [-Wmissing-prototypes]
 extern void printfPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3);
             ^
/usr/include/postgresql/internal/pqexpbuffer.h: In function 'printfPQExpBuffer':
/usr/include/postgresql/internal/pqexpbuffer.h:149:69: error: expected declaration specifiers before 'pg_attribute_printf'
 extern void printfPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3);
                                                                     ^
/usr/include/postgresql/internal/pqexpbuffer.h:158:69: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pg_attribute_printf'
 extern void appendPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3);
                                                                     ^
/usr/include/postgresql/internal/pqexpbuffer.h:165:13: error: storage class specified for parameter 'appendPQExpBufferStr'
 extern void appendPQExpBufferStr(PQExpBuffer str, const char *data);
             ^
/usr/include/postgresql/internal/pqexpbuffer.h:172:13: error: storage class specified for parameter 'appendPQExpBufferChar'
 extern void appendPQExpBufferChar(PQExpBuffer str, char ch);
             ^
/usr/include/postgresql/internal/pqexpbuffer.h:179:13: error: storage class specified for parameter 'appendBinaryPQExpBuffer'
 extern void appendBinaryPQExpBuffer(PQExpBuffer str,
             ^
In file included from /usr/include/setjmp.h:29:0,
                 from /usr/include/postgresql/9.4/server/utils/elog.h:17,
                 from pgut/pgut.h:23,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/setjmp.h:31:18: error: storage class specified for parameter '__jmp_buf'
 typedef long int __jmp_buf[8];
                  ^
In file included from /usr/include/postgresql/9.4/server/utils/elog.h:17:0,
                 from pgut/pgut.h:23,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/setjmp.h:40:5: error: expected specifier-qualifier-list before '__jmp_buf'
     __jmp_buf __jmpbuf;  /* Calling environment.  */
     ^
/usr/include/setjmp.h:48:30: error: storage class specified for parameter 'jmp_buf'
 typedef struct __jmp_buf_tag jmp_buf[1];
                              ^
/usr/include/setjmp.h:52:20: error: expected declaration specifiers or '...' before 'jmp_buf'
 extern int setjmp (jmp_buf __env) __THROWNL;
                    ^
/usr/include/setjmp.h:59:12: error: storage class specified for parameter '__sigsetjmp'
 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
            ^
/usr/include/setjmp.h:63:12: error: storage class specified for parameter '_setjmp'
 extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL;
            ^
/usr/include/setjmp.h:74:13: error: storage class specified for parameter 'longjmp'
 extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
             ^
/usr/include/setjmp.h:83:13: error: storage class specified for parameter '_longjmp'
 extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
             ^
/usr/include/setjmp.h:92:30: error: storage class specified for parameter 'sigjmp_buf'
 typedef struct __jmp_buf_tag sigjmp_buf[1];
                              ^
/usr/include/setjmp.h:102:25: error: expected declaration specifiers or '...' before 'sigjmp_buf'
 extern void siglongjmp (sigjmp_buf __env, int __val)
                         ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/setjmp2.h:25:13: error: storage class specified for parameter 'longjmp'
 extern void __REDIRECT_NTHNL (longjmp,
             ^
/usr/include/x86_64-linux-gnu/bits/setjmp2.h:25:13: error: redefinition of parameter 'longjmp'
In file included from /usr/include/postgresql/9.4/server/utils/elog.h:17:0,
                 from pgut/pgut.h:23,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/setjmp.h:74:13: note: previous definition of 'longjmp' was here
 extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
             ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/setjmp2.h:28:13: error: storage class specified for parameter '_longjmp'
 extern void __REDIRECT_NTHNL (_longjmp,
             ^
/usr/include/x86_64-linux-gnu/bits/setjmp2.h:28:13: error: redefinition of parameter '_longjmp'
In file included from /usr/include/postgresql/9.4/server/utils/elog.h:17:0,
                 from pgut/pgut.h:23,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/setjmp.h:83:13: note: previous definition of '_longjmp' was here
 extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
             ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/setjmp2.h:31:13: error: storage class specified for parameter 'siglongjmp'
 extern void __REDIRECT_NTHNL (siglongjmp,
             ^
In file included from pgut/pgut.h:23:0,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/postgresql/9.4/server/utils/elog.h:137:13: error: storage class specified for parameter 'errstart'
 extern bool errstart(int elevel, const char *filename, int lineno,
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:139:13: error: storage class specified for parameter 'errfinish'
 extern void errfinish(int dummy,...);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:141:12: error: storage class specified for parameter 'errcode'
 extern int errcode(int sqlerrcode);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:143:12: error: storage class specified for parameter 'errcode_for_file_access'
 extern int errcode_for_file_access(void);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:144:12: error: storage class specified for parameter 'errcode_for_socket_access'
 extern int errcode_for_socket_access(void);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:147:1: error: storage class specified for parameter 'errmsg'
 errmsg(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:153:1: error: storage class specified for parameter 'errmsg_internal'
 errmsg_internal(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:159:1: error: storage class specified for parameter 'errmsg_plural'
 errmsg_plural(const char *fmt_singular, const char *fmt_plural,
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:167:1: error: storage class specified for parameter 'errdetail'
 errdetail(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:173:1: error: storage class specified for parameter 'errdetail_internal'
 errdetail_internal(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:179:1: error: storage class specified for parameter 'errdetail_log'
 errdetail_log(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:185:1: error: storage class specified for parameter 'errdetail_log_plural'
 errdetail_log_plural(const char *fmt_singular, const char *fmt_plural,
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:193:1: error: storage class specified for parameter 'errdetail_plural'
 errdetail_plural(const char *fmt_singular, const char *fmt_plural,
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:201:1: error: storage class specified for parameter 'errhint'
 errhint(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:216:12: error: storage class specified for parameter 'set_errcontext_domain'
 extern int set_errcontext_domain(const char *domain);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:218:1: error: storage class specified for parameter 'errcontext_msg'
 errcontext_msg(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:223:12: error: storage class specified for parameter 'errhidestmt'
 extern int errhidestmt(bool hide_stmt);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:225:12: error: storage class specified for parameter 'errfunction'
 extern int errfunction(const char *funcname);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:226:12: error: storage class specified for parameter 'errposition'
 extern int errposition(int cursorpos);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:228:12: error: storage class specified for parameter 'internalerrposition'
 extern int internalerrposition(int cursorpos);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:229:12: error: storage class specified for parameter 'internalerrquery'
 extern int internalerrquery(const char *query);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:231:12: error: storage class specified for parameter 'err_generic_string'
 extern int err_generic_string(int field, const char *str);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:233:12: error: storage class specified for parameter 'geterrcode'
 extern int geterrcode(void);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:234:12: error: storage class specified for parameter 'geterrposition'
 extern int geterrposition(void);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:235:12: error: storage class specified for parameter 'getinternalerrposition'
 extern int getinternalerrposition(void);
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:275:13: error: storage class specified for parameter 'elog_start'
 extern void elog_start(const char *filename, int lineno, const char *funcname);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:277:1: error: storage class specified for parameter 'elog_finish'
 elog_finish(int elevel, const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:285:13: error: storage class specified for parameter 'pre_format_elog_string'
 extern void pre_format_elog_string(int errnumber, const char *domain);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:287:1: error: storage class specified for parameter 'format_elog_string'
 format_elog_string(const char *fmt,...)
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:300:3: error: storage class specified for parameter 'ErrorContextCallback'
 } ErrorContextCallback;
   ^
/usr/include/postgresql/9.4/server/utils/elog.h:302:41: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
 extern PGDLLIMPORT ErrorContextCallback *error_context_stack;
                                         ^
/usr/include/postgresql/9.4/server/utils/elog.h:370:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
 extern PGDLLIMPORT sigjmp_buf *PG_exception_stack;
                               ^
/usr/include/postgresql/9.4/server/utils/elog.h:411:3: error: storage class specified for parameter 'ErrorData'
 } ErrorData;
   ^
/usr/include/postgresql/9.4/server/utils/elog.h:413:13: error: storage class specified for parameter 'EmitErrorReport'
 extern void EmitErrorReport(void);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:414:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
 extern ErrorData *CopyErrorData(void);
                  ^
/usr/include/postgresql/9.4/server/utils/elog.h:415:27: error: expected declaration specifiers or '...' before 'ErrorData'
 extern void FreeErrorData(ErrorData *edata);
                           ^
/usr/include/postgresql/9.4/server/utils/elog.h:416:13: error: storage class specified for parameter 'FlushErrorState'
 extern void FlushErrorState(void);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:417:26: error: expected declaration specifiers or '...' before 'ErrorData'
 extern void ReThrowError(ErrorData *edata) __attribute__((noreturn));
                          ^
/usr/include/postgresql/9.4/server/utils/elog.h:418:13: error: storage class specified for parameter 'pg_re_throw'
 extern void pg_re_throw(void) __attribute__((noreturn));
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:420:14: error: storage class specified for parameter 'GetErrorContextStack'
 extern char *GetErrorContextStack(void);
              ^
/usr/include/postgresql/9.4/server/utils/elog.h:423:37: error: expected declaration specifiers or '...' before 'ErrorData'
 typedef void (*emit_log_hook_type) (ErrorData *edata);
                                     ^
/usr/include/postgresql/9.4/server/utils/elog.h:424:1: error: unknown type name 'emit_log_hook_type'
 extern PGDLLIMPORT emit_log_hook_type emit_log_hook;
 ^
/usr/include/postgresql/9.4/server/utils/elog.h:424:39: error: storage class specified for parameter 'emit_log_hook'
 extern PGDLLIMPORT emit_log_hook_type emit_log_hook;
                                       ^
/usr/include/postgresql/9.4/server/utils/elog.h:434:3: error: storage class specified for parameter 'PGErrorVerbosity'
 } PGErrorVerbosity;
   ^
/usr/include/postgresql/9.4/server/utils/elog.h:436:12: error: storage class specified for parameter 'Log_error_verbosity'
 extern int Log_error_verbosity;
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:437:14: error: storage class specified for parameter 'Log_line_prefix'
 extern char *Log_line_prefix;
              ^
/usr/include/postgresql/9.4/server/utils/elog.h:438:12: error: storage class specified for parameter 'Log_destination'
 extern int Log_destination;
            ^
/usr/include/postgresql/9.4/server/utils/elog.h:439:14: error: storage class specified for parameter 'Log_destination_string'
 extern char *Log_destination_string;
              ^
/usr/include/postgresql/9.4/server/utils/elog.h:448:13: error: storage class specified for parameter 'DebugFileOpen'
 extern void DebugFileOpen(void);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:449:14: error: storage class specified for parameter 'unpack_sql_state'
 extern char *unpack_sql_state(int sql_state);
              ^
/usr/include/postgresql/9.4/server/utils/elog.h:450:13: error: storage class specified for parameter 'in_error_recursion_trouble'
 extern bool in_error_recursion_trouble(void);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:453:13: error: storage class specified for parameter 'set_syslog_parameters'
 extern void set_syslog_parameters(const char *ident, int facility);
             ^
/usr/include/postgresql/9.4/server/utils/elog.h:462:1: error: storage class specified for parameter 'write_stderr'
 write_stderr(const char *fmt,...)
 ^
In file included from pgut/pgut-fe.h:13:0,
                 from pg_repack.c:25:
pgut/pgut.h:32:3: error: storage class specified for parameter 'YesNo'
 } YesNo;
   ^
pgut/pgut.h:34:16: error: storage class specified for parameter 'pgut_atexit_callback'
 typedef void (*pgut_atexit_callback)(bool fatal, void *userdata);
                ^
pgut/pgut.h:39:21: error: storage class specified for parameter 'PROGRAM_NAME'
 extern const char  *PROGRAM_NAME;
                     ^
pgut/pgut.h:40:21: error: storage class specified for parameter 'PROGRAM_VERSION'
 extern const char  *PROGRAM_VERSION;
                     ^
pgut/pgut.h:41:21: error: storage class specified for parameter 'PROGRAM_URL'
 extern const char  *PROGRAM_URL;
                     ^
pgut/pgut.h:42:21: error: storage class specified for parameter 'PROGRAM_EMAIL'
 extern const char  *PROGRAM_EMAIL;
                     ^
pgut/pgut.h:47:14: error: storage class specified for parameter 'interrupted'
 extern bool  interrupted;
              ^
pgut/pgut.h:48:13: error: storage class specified for parameter 'pgut_log_level'
 extern int  pgut_log_level;
             ^
pgut/pgut.h:49:13: error: storage class specified for parameter 'pgut_abort_level'
 extern int  pgut_abort_level;
             ^
pgut/pgut.h:50:14: error: storage class specified for parameter 'pgut_echo'
 extern bool  pgut_echo;
              ^
pgut/pgut.h:52:13: error: storage class specified for parameter 'pgut_init'
 extern void pgut_init(int argc, char **argv);
             ^
pgut/pgut.h:53:30: error: expected declaration specifiers or '...' before 'pgut_atexit_callback'
 extern void pgut_atexit_push(pgut_atexit_callback callback, void *userdata);
                              ^
pgut/pgut.h:54:29: error: expected declaration specifiers or '...' before 'pgut_atexit_callback'
 extern void pgut_atexit_pop(pgut_atexit_callback callback, void *userdata);
                             ^
pgut/pgut.h:55:13: error: storage class specified for parameter 'pgut_putenv'
 extern void pgut_putenv(const char *key, const char *value);
             ^
pgut/pgut.h:60:47: error: expected declaration specifiers or '...' before 'YesNo'
 extern PGconn *pgut_connect(const char *info, YesNo prompt, int elevel);
                                               ^
pgut/pgut.h:61:13: error: storage class specified for parameter 'pgut_disconnect'
 extern void pgut_disconnect(PGconn *conn);
             ^
pgut/pgut.h:62:13: error: storage class specified for parameter 'pgut_disconnect_all'
 extern void pgut_disconnect_all(void);
             ^
pgut/pgut.h:63:18: error: storage class specified for parameter 'pgut_execute'
 extern PGresult *pgut_execute(PGconn* conn, const char *query, int nParams, const char **params);
                  ^
pgut/pgut.h:65:23: error: storage class specified for parameter 'pgut_command'
 extern ExecStatusType pgut_command(PGconn* conn, const char *query, int nParams, const char **params);
                       ^
pgut/pgut.h:66:13: error: storage class specified for parameter 'pgut_commit'
 extern bool pgut_commit(PGconn *conn);
             ^
pgut/pgut.h:67:13: error: storage class specified for parameter 'pgut_rollback'
 extern void pgut_rollback(PGconn *conn);
             ^
pgut/pgut.h:68:13: error: storage class specified for parameter 'pgut_send'
 extern bool pgut_send(PGconn* conn, const char *query, int nParams, const char **params);
             ^
pgut/pgut.h:69:12: error: storage class specified for parameter 'pgut_wait'
 extern int pgut_wait(int num, PGconn *connections[], struct timeval *timeout);
            ^
pgut/pgut.h:74:14: error: storage class specified for parameter 'pgut_malloc'
 extern void *pgut_malloc(size_t size);
              ^
pgut/pgut.h:75:14: error: storage class specified for parameter 'pgut_realloc'
 extern void *pgut_realloc(void *p, size_t size);
              ^
pgut/pgut.h:76:14: error: storage class specified for parameter 'pgut_strdup'
 extern char *pgut_strdup(const char *str);
              ^
pgut/pgut.h:77:14: error: storage class specified for parameter 'strdup_with_len'
 extern char *strdup_with_len(const char *str, size_t len);
              ^
pgut/pgut.h:78:14: error: storage class specified for parameter 'strdup_trim'
 extern char *strdup_trim(const char *str);
              ^
pgut/pgut.h:87:14: error: storage class specified for parameter 'pgut_fopen'
 extern FILE *pgut_fopen(const char *path, const char *mode);
              ^
pgut/pgut.h:88:13: error: storage class specified for parameter 'pgut_mkdir'
 extern bool pgut_mkdir(const char *path);
             ^
pgut/pgut.h:101:13: error: storage class specified for parameter 'elog'
 extern void elog(int elevel, const char *fmt, ...)
             ^
pgut/pgut.h:103:20: error: storage class specified for parameter 'format_elevel'
 extern const char *format_elevel(int elevel);
                    ^
pgut/pgut.h:104:12: error: storage class specified for parameter 'parse_elevel'
 extern int parse_elevel(const char *value);
            ^
pgut/pgut.h:105:12: error: storage class specified for parameter 'errcode_errno'
 extern int errcode_errno(void);
            ^
pgut/pgut.h:106:13: error: storage class specified for parameter 'log_required'
 extern bool log_required(int elevel, int log_min_level);
             ^
pgut/pgut.h:107:13: error: storage class specified for parameter 'pgut_errstart'
 extern bool pgut_errstart(int elevel);
             ^
pgut/pgut.h:108:13: error: storage class specified for parameter 'pgut_errfinish'
 extern void pgut_errfinish(int dummy, ...);
             ^
pgut/pgut.h:109:13: error: storage class specified for parameter 'pgut_error'
 extern void pgut_error(int elevel, int code, const char *msg, const char *detail);
             ^
pgut/pgut.h:115:13: error: storage class specified for parameter 'CHECK_FOR_INTERRUPTS'
 extern void CHECK_FOR_INTERRUPTS(void);
             ^
pgut/pgut.h:153:13: error: storage class specified for parameter 'pgut_appendStringInfoVA'
 extern bool pgut_appendStringInfoVA(StringInfo str, const char *fmt, va_list args)
             ^
pgut/pgut.h:155:12: error: storage class specified for parameter 'appendStringInfoFile'
 extern int appendStringInfoFile(StringInfo str, FILE *fp);
            ^
pgut/pgut.h:156:12: error: storage class specified for parameter 'appendStringInfoFd'
 extern int appendStringInfoFd(StringInfo str, int fd);
            ^
pgut/pgut.h:158:13: error: storage class specified for parameter 'parse_bool'
 extern bool parse_bool(const char *value, bool *result);
             ^
pgut/pgut.h:159:13: error: storage class specified for parameter 'parse_bool_with_len'
 extern bool parse_bool_with_len(const char *value, size_t len, bool *result);
             ^
pgut/pgut.h:160:13: error: storage class specified for parameter 'parse_int32'
 extern bool parse_int32(const char *value, int32 *result);
             ^
pgut/pgut.h:161:13: error: storage class specified for parameter 'parse_uint32'
 extern bool parse_uint32(const char *value, uint32 *result);
             ^
pgut/pgut.h:162:13: error: storage class specified for parameter 'parse_int64'
 extern bool parse_int64(const char *value, int64 *result);
             ^
pgut/pgut.h:163:13: error: storage class specified for parameter 'parse_uint64'
 extern bool parse_uint64(const char *value, uint64 *result);
             ^
pgut/pgut.h:164:13: error: storage class specified for parameter 'parse_time'
 extern bool parse_time(const char *value, time_t *time);
             ^
pgut/pgut.h:179:3: error: storage class specified for parameter 'SimpleStringListCell'
 } SimpleStringListCell;
   ^
pgut/pgut.h:183:2: error: expected specifier-qualifier-list before 'SimpleStringListCell'
  SimpleStringListCell *head;
  ^
pgut/pgut.h:185:3: error: storage class specified for parameter 'SimpleStringList'
 } SimpleStringList;
   ^
pgut/pgut.h:187:39: error: expected declaration specifiers or '...' before 'SimpleStringList'
 extern void simple_string_list_append(SimpleStringList *list, const char *val);
                                       ^
pgut/pgut.h:188:39: error: expected declaration specifiers or '...' before 'SimpleStringList'
 extern bool simple_string_list_member(SimpleStringList *list, const char *val);
                                       ^
pgut/pgut.h:189:39: error: expected declaration specifiers or '...' before 'SimpleStringList'
 extern size_t simple_string_list_size(SimpleStringList list);
                                       ^
pgut/pgut.h:195:12: error: storage class specified for parameter 'wait_for_socket'
 extern int wait_for_socket(int sock, struct timeval *timeout);
            ^
pgut/pgut.h:196:12: error: storage class specified for parameter 'wait_for_sockets'
 extern int wait_for_sockets(int nfds, fd_set *fds, struct timeval *timeout);
            ^
In file included from pg_repack.c:25:0:
pgut/pgut-fe.h:22:3: error: storage class specified for parameter 'pgut_optsrc'
 } pgut_optsrc;
   ^
pgut/pgut-fe.h:45:2: error: expected specifier-qualifier-list before 'pgut_optsrc'
  pgut_optsrc allowed; /* allowed source */
  ^
pgut/pgut-fe.h:47:3: error: storage class specified for parameter 'pgut_option'
 } pgut_option;
   ^
pgut/pgut-fe.h:49:29: error: expected declaration specifiers or '...' before 'pgut_option'
 typedef void (*pgut_optfn) (pgut_option *opt, const char *arg);
                             ^
pgut/pgut-fe.h:56:3: error: storage class specified for parameter 'worker_conns'
 } worker_conns;
   ^
pgut/pgut-fe.h:60:17: error: storage class specified for parameter 'dbname'
 extern char    *dbname;
                 ^
pgut/pgut-fe.h:61:17: error: storage class specified for parameter 'host'
 extern char    *host;
                 ^
pgut/pgut-fe.h:62:17: error: storage class specified for parameter 'port'
 extern char    *port;
                 ^
pgut/pgut-fe.h:63:17: error: storage class specified for parameter 'username'
 extern char    *username;
                 ^
pgut/pgut-fe.h:64:17: error: storage class specified for parameter 'password'
 extern char    *password;
                 ^
pgut/pgut-fe.h:65:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'prompt_password'
 extern YesNo prompt_password;
              ^
pgut/pgut-fe.h:67:19: error: storage class specified for parameter 'connection'
 extern PGconn    *connection;
                   ^
pgut/pgut-fe.h:68:21: error: storage class specified for parameter 'conn2'
 extern PGconn      *conn2;
                     ^
pgut/pgut-fe.h:69:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'workers'
 extern worker_conns workers;
                     ^
pgut/pgut-fe.h:71:13: error: storage class specified for parameter 'pgut_help'
 extern void pgut_help(bool details);
             ^
pgut/pgut-fe.h:72:13: error: storage class specified for parameter 'help'
 extern void help(bool details);
             ^
pgut/pgut-fe.h:74:13: error: storage class specified for parameter 'disconnect'
 extern void disconnect(void);
             ^
pgut/pgut-fe.h:75:13: error: storage class specified for parameter 'reconnect'
 extern void reconnect(int elevel);
             ^
pgut/pgut-fe.h:76:13: error: storage class specified for parameter 'setup_workers'
 extern void setup_workers(int num_workers);
             ^
pgut/pgut-fe.h:77:13: error: storage class specified for parameter 'disconnect_workers'
 extern void disconnect_workers(void);
             ^
pgut/pgut-fe.h:78:18: error: storage class specified for parameter 'execute'
 extern PGresult *execute(const char *query, int nParams, const char **params);
                  ^
pgut/pgut-fe.h:79:18: error: storage class specified for parameter 'execute_elevel'
 extern PGresult *execute_elevel(const char *query, int nParams, const char **params, int elevel);
                  ^
pgut/pgut-fe.h:80:23: error: storage class specified for parameter 'command'
 extern ExecStatusType command(const char *query, int nParams, const char **params);
                       ^
pgut/pgut-fe.h:82:47: error: expected declaration specifiers or '...' before 'pgut_option'
 extern int pgut_getopt(int argc, char **argv, pgut_option options[]);
                                               ^
pgut/pgut-fe.h:83:44: error: expected declaration specifiers or '...' before 'pgut_option'
 extern void pgut_readopt(const char *path, pgut_option options[], int elevel);
                                            ^
pgut/pgut-fe.h:84:25: error: expected declaration specifiers or '...' before 'pgut_option'
 extern void pgut_setopt(pgut_option *opt, const char *optarg, pgut_optsrc src);
                         ^
pgut/pgut-fe.h:84:63: error: expected declaration specifiers or '...' before 'pgut_optsrc'
 extern void pgut_setopt(pgut_option *opt, const char *optarg, pgut_optsrc src);
                                                               ^
pgut/pgut-fe.h:85:13: error: storage class specified for parameter 'pgut_keyeq'
 extern bool pgut_keyeq(const char *lhs, const char *rhs);
             ^
In file included from /usr/include/time.h:41:0,
                 from pg_repack.c:31:
/usr/include/x86_64-linux-gnu/bits/time.h:91:12: error: storage class specified for parameter 'clock_adjtime'
 extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
            ^
In file included from pg_repack.c:31:0:
/usr/include/time.h:189:16: error: storage class specified for parameter 'clock'
 extern clock_t clock (void) __THROW;
                ^
/usr/include/time.h:192:15: error: storage class specified for parameter 'time'
 extern time_t time (time_t *__timer) __THROW;
               ^
/usr/include/time.h:195:15: error: storage class specified for parameter 'difftime'
 extern double difftime (time_t __time1, time_t __time0)
               ^
/usr/include/time.h:199:15: error: storage class specified for parameter 'mktime'
 extern time_t mktime (struct tm *__tp) __THROW;
               ^
/usr/include/time.h:205:15: error: storage class specified for parameter 'strftime'
 extern size_t strftime (char *__restrict __s, size_t __maxsize,
               ^
/usr/include/time.h:213:14: error: storage class specified for parameter 'strptime'
 extern char *strptime (const char *__restrict __s,
              ^
/usr/include/time.h:223:15: error: storage class specified for parameter 'strftime_l'
 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
               ^
/usr/include/time.h:230:14: error: storage class specified for parameter 'strptime_l'
 extern char *strptime_l (const char *__restrict __s,
              ^
/usr/include/time.h:239:19: error: storage class specified for parameter 'gmtime'
 extern struct tm *gmtime (const time_t *__timer) __THROW;
                   ^
/usr/include/time.h:243:19: error: storage class specified for parameter 'localtime'
 extern struct tm *localtime (const time_t *__timer) __THROW;
                   ^
/usr/include/time.h:249:19: error: storage class specified for parameter 'gmtime_r'
 extern struct tm *gmtime_r (const time_t *__restrict __timer,
                   ^
/usr/include/time.h:254:19: error: storage class specified for parameter 'localtime_r'
 extern struct tm *localtime_r (const time_t *__restrict __timer,
                   ^
/usr/include/time.h:261:14: error: storage class specified for parameter 'asctime'
 extern char *asctime (const struct tm *__tp) __THROW;
              ^
/usr/include/time.h:264:14: error: storage class specified for parameter 'ctime'
 extern char *ctime (const time_t *__timer) __THROW;
              ^
/usr/include/time.h:272:14: error: storage class specified for parameter 'asctime_r'
 extern char *asctime_r (const struct tm *__restrict __tp,
              ^
/usr/include/time.h:276:14: error: storage class specified for parameter 'ctime_r'
 extern char *ctime_r (const time_t *__restrict __timer,
              ^
/usr/include/time.h:282:14: error: storage class specified for parameter '__tzname'
 extern char *__tzname[2]; /* Current timezone names.  */
              ^
/usr/include/time.h:283:12: error: storage class specified for parameter '__daylight'
 extern int __daylight;  /* If daylight-saving time is ever in use.  */
            ^
/usr/include/time.h:284:17: error: storage class specified for parameter '__timezone'
 extern long int __timezone; /* Seconds west of UTC.  */
                 ^
/usr/include/time.h:289:14: error: storage class specified for parameter 'tzname'
 extern char *tzname[2];
              ^
/usr/include/time.h:293:13: error: storage class specified for parameter 'tzset'
 extern void tzset (void) __THROW;
             ^
/usr/include/time.h:297:12: error: storage class specified for parameter 'daylight'
 extern int daylight;
            ^
/usr/include/time.h:298:17: error: storage class specified for parameter 'timezone'
 extern long int timezone;
                 ^
/usr/include/time.h:304:12: error: storage class specified for parameter 'stime'
 extern int stime (const time_t *__when) __THROW;
            ^
/usr/include/time.h:319:15: error: storage class specified for parameter 'timegm'
 extern time_t timegm (struct tm *__tp) __THROW;
               ^
/usr/include/time.h:322:15: error: storage class specified for parameter 'timelocal'
 extern time_t timelocal (struct tm *__tp) __THROW;
               ^
/usr/include/time.h:325:12: error: storage class specified for parameter 'dysize'
 extern int dysize (int __year) __THROW  __attribute__ ((__const__));
            ^
/usr/include/time.h:334:12: error: storage class specified for parameter 'nanosleep'
 extern int nanosleep (const struct timespec *__requested_time,
            ^
/usr/include/time.h:339:12: error: storage class specified for parameter 'clock_getres'
 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
            ^
/usr/include/time.h:342:12: error: storage class specified for parameter 'clock_gettime'
 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
            ^
/usr/include/time.h:345:12: error: storage class specified for parameter 'clock_settime'
 extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
            ^
/usr/include/time.h:353:12: error: storage class specified for parameter 'clock_nanosleep'
 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
            ^
/usr/include/time.h:358:12: error: storage class specified for parameter 'clock_getcpuclockid'
 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
            ^
/usr/include/time.h:363:12: error: storage class specified for parameter 'timer_create'
 extern int timer_create (clockid_t __clock_id,
            ^
/usr/include/time.h:368:12: error: storage class specified for parameter 'timer_delete'
 extern int timer_delete (timer_t __timerid) __THROW;
            ^
/usr/include/time.h:371:12: error: storage class specified for parameter 'timer_settime'
 extern int timer_settime (timer_t __timerid, int __flags,
            ^
/usr/include/time.h:376:12: error: storage class specified for parameter 'timer_gettime'
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
            ^
/usr/include/time.h:380:12: error: storage class specified for parameter 'timer_getoverrun'
 extern int timer_getoverrun (timer_t __timerid) __THROW;
            ^
/usr/include/time.h:386:12: error: storage class specified for parameter 'timespec_get'
 extern int timespec_get (struct timespec *__ts, int __base)
            ^
/usr/include/time.h:403:12: error: storage class specified for parameter 'getdate_err'
 extern int getdate_err;
            ^
/usr/include/time.h:412:19: error: storage class specified for parameter 'getdate'
 extern struct tm *getdate (const char *__string);
                   ^
/usr/include/time.h:426:12: error: storage class specified for parameter 'getdate_r'
 extern int getdate_r (const char *__restrict __string,
            ^
In file included from /usr/include/poll.h:1:0,
                 from pg_repack.c:35:
/usr/include/x86_64-linux-gnu/sys/poll.h:36:27: error: storage class specified for parameter 'nfds_t'
 typedef unsigned long int nfds_t;
                           ^
/usr/include/x86_64-linux-gnu/sys/poll.h:57:40: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout);
                                        ^
/usr/include/x86_64-linux-gnu/sys/poll.h:66:41: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int ppoll (struct pollfd *__fds, nfds_t __nfds,
                                         ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/poll2.h:26:12: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __REDIRECT (__poll_alias, (struct pollfd *__fds, nfds_t __nfds,
            ^
In file included from /usr/include/x86_64-linux-gnu/sys/poll.h:76:0,
                 from /usr/include/poll.h:1,
                 from pg_repack.c:35:
/usr/include/x86_64-linux-gnu/bits/poll2.h:28:46: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __poll_chk (struct pollfd *__fds, nfds_t __nfds, int __timeout,
                                              ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/poll2.h:30:12: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __REDIRECT (__poll_chk_warn, (struct pollfd *__fds, nfds_t __nfds,
            ^
In file included from /usr/include/x86_64-linux-gnu/sys/poll.h:76:0,
                 from /usr/include/poll.h:1,
                 from pg_repack.c:35:
/usr/include/x86_64-linux-gnu/bits/poll2.h:36:29: error: expected declaration specifiers or '...' before 'nfds_t'
 poll (struct pollfd *__fds, nfds_t __nfds, int __timeout)
                             ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/poll2.h:51:12: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __REDIRECT (__ppoll_alias, (struct pollfd *__fds, nfds_t __nfds,
            ^
In file included from /usr/include/x86_64-linux-gnu/sys/poll.h:76:0,
                 from /usr/include/poll.h:1,
                 from pg_repack.c:35:
/usr/include/x86_64-linux-gnu/bits/poll2.h:54:47: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __ppoll_chk (struct pollfd *__fds, nfds_t __nfds,
                                               ^
In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdio.h:27,
                 from /usr/include/postgresql/9.4/server/c.h:81,
                 from pgut/pgut.h:13,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/x86_64-linux-gnu/bits/poll2.h:57:12: error: expected declaration specifiers or '...' before 'nfds_t'
 extern int __REDIRECT (__ppoll_chk_warn, (struct pollfd *__fds, nfds_t __nfds,
            ^
In file included from /usr/include/x86_64-linux-gnu/sys/poll.h:76:0,
                 from /usr/include/poll.h:1,
                 from pg_repack.c:35:
/usr/include/x86_64-linux-gnu/bits/poll2.h:65:30: error: expected declaration specifiers or '...' before 'nfds_t'
 ppoll (struct pollfd *__fds, nfds_t __nfds, const struct timespec *__timeout,
                              ^
pg_repack.c:156:3: error: storage class specified for parameter 'index_status_t'
 } index_status_t;
   ^
pg_repack.c:165:5: error: expected specifier-qualifier-list before 'index_status_t'
     index_status_t  status;   /* Track parallel build statuses. */
     ^
pg_repack.c:167:3: error: storage class specified for parameter 'repack_index'
 } repack_index;
   ^
pg_repack.c:194:2: error: expected specifier-qualifier-list before 'repack_index'
  repack_index   *indexes;        /* info on each index */
  ^
pg_repack.c:195:3: error: storage class specified for parameter 'repack_table'
 } repack_table;
   ^
pg_repack.c:198:13: error: storage class specified for parameter 'is_superuser'
 static bool is_superuser(void);
             ^
pg_repack.c:199:13: error: storage class specified for parameter 'check_tablespace'
 static void check_tablespace(void);
             ^
pg_repack.c:200:13: error: storage class specified for parameter 'preliminary_checks'
 static bool preliminary_checks(char *errbuf, size_t errsize);
             ^
pg_repack.c:201:13: error: storage class specified for parameter 'repack_all_databases'
 static void repack_all_databases(const char *order_by);
             ^
pg_repack.c:202:13: error: storage class specified for parameter 'repack_one_database'
 static bool repack_one_database(const char *order_by, char *errbuf, size_t errsize);
             ^
pg_repack.c:203:30: error: expected declaration specifiers or '...' before 'repack_table'
 static void repack_one_table(repack_table *table, const char *order_by);
                              ^
pg_repack.c:204:13: error: storage class specified for parameter 'repack_table_indexes'
 static bool repack_table_indexes(PGresult *index_details);
             ^
pg_repack.c:205:13: error: storage class specified for parameter 'repack_all_indexes'
 static bool repack_all_indexes(char *errbuf, size_t errsize);
             ^
pg_repack.c:206:46: warning: type defaults to 'int' in declaration of 'repack_table' [-Wimplicit-int]
 static void repack_cleanup(bool fatal, const repack_table *table);
                                              ^
pg_repack.c:206:59: error: expected ';', ',' or ')' before '*' token
 static void repack_cleanup(bool fatal, const repack_table *table);
                                                           ^
pg_repack.c:207:13: error: storage class specified for parameter 'repack_cleanup_callback'
 static void repack_cleanup_callback(bool fatal, void *userdata);
             ^
pg_repack.c:208:35: warning: type defaults to 'int' in declaration of 'repack_table' [-Wimplicit-int]
 static bool rebuild_indexes(const repack_table *table);
                                   ^
pg_repack.c:208:48: error: expected ';', ',' or ')' before '*' token
 static bool rebuild_indexes(const repack_table *table);
                                                ^
pg_repack.c:210:14: error: storage class specified for parameter 'getstr'
 static char *getstr(PGresult *res, int row, int col);
              ^
pg_repack.c:211:12: error: storage class specified for parameter 'getoid'
 static Oid getoid(PGresult *res, int row, int col);
            ^
pg_repack.c:212:13: error: storage class specified for parameter 'advisory_lock'
 static bool advisory_lock(PGconn *conn, const char *relid);
             ^
pg_repack.c:213:13: error: storage class specified for parameter 'lock_exclusive'
 static bool lock_exclusive(PGconn *conn, const char *relid, const char *lock_query, bool start_xact);
             ^
pg_repack.c:214:13: error: storage class specified for parameter 'kill_ddl'
 static bool kill_ddl(PGconn *conn, Oid relid, bool terminate);
             ^
pg_repack.c:215:13: error: storage class specified for parameter 'lock_access_share'
 static bool lock_access_share(PGconn *conn, Oid relid, const char *target_name);
             ^
pg_repack.c:222:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:226:16: error: storage class specified for parameter 'analyze'
 static bool    analyze = true;
                ^
pg_repack.c:226:1: error: parameter 'analyze' is initialized
 static bool    analyze = true;
 ^
pg_repack.c:227:16: error: storage class specified for parameter 'alldb'
 static bool    alldb = false;
                ^
pg_repack.c:227:1: error: parameter 'alldb' is initialized
 static bool    alldb = false;
 ^
pg_repack.c:228:16: error: storage class specified for parameter 'noorder'
 static bool    noorder = false;
                ^
pg_repack.c:228:1: error: parameter 'noorder' is initialized
 static bool    noorder = false;
 ^
pg_repack.c:229:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'table_list'
 static SimpleStringList table_list = {NULL, NULL};
                         ^
pg_repack.c:229:50: error: expected declaration specifiers before ';' token
 static SimpleStringList table_list = {NULL, NULL};
                                                  ^
pg_repack.c:230:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'schema_list'
 static SimpleStringList schema_list = {NULL, NULL};
                         ^
pg_repack.c:230:51: error: expected declaration specifiers before ';' token
 static SimpleStringList schema_list = {NULL, NULL};
                                                   ^
pg_repack.c:231:17: error: storage class specified for parameter 'orderby'
 static char    *orderby = NULL;
                 ^
pg_repack.c:231:1: error: parameter 'orderby' is initialized
 static char    *orderby = NULL;
 ^
pg_repack.c:232:17: error: storage class specified for parameter 'tablespace'
 static char    *tablespace = NULL;
                 ^
pg_repack.c:232:1: error: parameter 'tablespace' is initialized
 static char    *tablespace = NULL;
 ^
pg_repack.c:233:16: error: storage class specified for parameter 'moveidx'
 static bool    moveidx = false;
                ^
pg_repack.c:233:1: error: parameter 'moveidx' is initialized
 static bool    moveidx = false;
 ^
pg_repack.c:234:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r_index'
 static SimpleStringList r_index = {NULL, NULL};
                         ^
pg_repack.c:234:47: error: expected declaration specifiers before ';' token
 static SimpleStringList r_index = {NULL, NULL};
                                               ^
pg_repack.c:235:16: error: storage class specified for parameter 'only_indexes'
 static bool    only_indexes = false;
                ^
pg_repack.c:235:1: error: parameter 'only_indexes' is initialized
 static bool    only_indexes = false;
 ^
pg_repack.c:236:15: error: storage class specified for parameter 'wait_timeout'
 static int    wait_timeout = 60; /* in seconds */
               ^
pg_repack.c:236:1: error: parameter 'wait_timeout' is initialized
 static int    wait_timeout = 60; /* in seconds */
 ^
pg_repack.c:237:15: error: storage class specified for parameter 'jobs'
 static int    jobs = 0; /* number of concurrent worker conns. */
               ^
pg_repack.c:237:1: error: parameter 'jobs' is initialized
 static int    jobs = 0; /* number of concurrent worker conns. */
 ^
pg_repack.c:238:16: error: storage class specified for parameter 'dryrun'
 static bool    dryrun = false;
                ^
pg_repack.c:238:1: error: parameter 'dryrun' is initialized
 static bool    dryrun = false;
 ^
pg_repack.c:239:22: error: storage class specified for parameter 'temp_obj_num'
 static unsigned int  temp_obj_num = 0; /* temporary objects counter */
                      ^
pg_repack.c:239:1: error: parameter 'temp_obj_num' is initialized
 static unsigned int  temp_obj_num = 0; /* temporary objects counter */
 ^
pg_repack.c:244:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:250:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'options'
 static pgut_option options[] =
                    ^
pg_repack.c:266:2: error: expected declaration specifiers before ';' token
 };
  ^
pg_repack.c:270:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:364:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:385:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:433:49: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 preliminary_checks(char *errbuf, size_t errsize){
                                                 ^
pg_repack.c:521:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:556:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:565:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:577:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:760:31: warning: type defaults to 'int' in declaration of 'repack_table' [-Wimplicit-int]
 apply_log(PGconn *conn, const repack_table *table, int count)
                               ^
pg_repack.c:760:44: error: expected ';', ',' or ')' before '*' token
 apply_log(PGconn *conn, const repack_table *table, int count)
                                            ^
pg_repack.c:788:23: warning: type defaults to 'int' in declaration of 'repack_table' [-Wimplicit-int]
 rebuild_indexes(const repack_table *table)
                       ^
pg_repack.c:788:36: error: expected ';', ',' or ')' before '*' token
 rebuild_indexes(const repack_table *table)
                                    ^
pg_repack.c:1000:18: error: expected declaration specifiers or '...' before 'repack_table'
 repack_one_table(repack_table *table, const char *orderby)
                  ^
pg_repack.c:1449:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1505:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1577:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1620:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1702:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1728:34: warning: type defaults to 'int' in declaration of 'repack_table' [-Wimplicit-int]
 repack_cleanup(bool fatal, const repack_table *table)
                                  ^
pg_repack.c:1728:47: error: expected ';', ',' or ')' before '*' token
 repack_cleanup(bool fatal, const repack_table *table)
                                               ^
pg_repack.c:1758:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:1952:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
pg_repack.c:2030:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
 {
 ^
In file included from pgut/pgut.h:22:0,
                 from pgut/pgut-fe.h:13,
                 from pg_repack.c:25:
/usr/include/postgresql/internal/pqexpbuffer.h:149:13: error: old-style parameter declarations in prototyped function definition
 extern void printfPQExpBuffer(PQExpBuffer str, const char *fmt,...) pg_attribute_printf(2, 3);
             ^
pg_repack.c:2052:1: error: expected '{' at end of input
 }
 ^
make[1]: *** [pg_repack.o] Error 1
make[1]: Leaving directory `/tmp/tmpcBVeFA/pg_repack-1.3.2/bin'
make: *** [all] Error 2
ERROR: command returned 2: make PG_CONFIG=/usr/bin/pg_config all
jfrost commented 8 years ago

I believe the versions of libpq-dev and postgresql-server-dev need to match for pg_repack to compile properly.

Slach commented 8 years ago

thanks do you know right bugtracker link for report issue for official apt.postgresql.org repository bugs?

jfrost commented 8 years ago

It’s not a bug. You just need to specify 9.4 on the end of your sources.list entry and it will allow you to install the 9.4 version of libpq-dev instead of the default which is always the latest.

Slach commented 8 years ago

i try

echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.4" > /etc/apt/source.list.d/pgsql.list
apt-get update
apt-get purge libpq5
apt-get install libedit-dev libpq5=9.4* libpq-dev=9.4*
apt-mark hold libpq5
apt-get install postgresql-9.4 postgresql-server-dev-9.4

but have error

The following packages have unmet dependencies:
 postgresql-client-9.4 : Depends: libpq5 (>= 9.4.5) but 9.4~rc1-1.pgdg14.04+1 is to be installed

when i run apt-mark unhold libpq5 apt-get install postgresql-9.4 postgresql-server-dev-9.4 will install libpq5 9.5.x and libpq-dev 9.5.x this not compatible with postgresql-server-dev-9.4 headers

i will submit bug into http://www.postgresql.org/list/pgsql-pkg-debian/ maybe mantainers fix this

Slach commented 8 years ago

all fixed see this http://www.postgresql.org/message-id/20160114214044.GA26251@msg.df7cb.de