Skip to content

Repmgr 5.5.0 release fails to build with Postgres 17.7 #905

@vikrantmehta123

Description

@vikrantmehta123
$ ./configure && make install
checking for a sed that does not truncate output... /usr/bin/sed
checking for pg_config... /usr/bin/pg_config
configure: building against PostgreSQL 17.7 (Ubuntu 17.7-3.pgdg24.04+1)
checking for gnused... no
checking for gsed... no
checking for sed... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makefile.global
config.status: creating config.h
config.status: config.h is unchanged
Building against PostgreSQL 17
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fno-omit-frame-pointer -fPIC -fvisibility=hidden -std=gnu89 -I/usr/include/postgresql/internal -I/usr/include/postgresql -Wall -Wmissing-prototypes -Wmissing-declarations  -I. -I./ -I/usr/include/postgresql/17/server -I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=3 -D_GNU_SOURCE  -I/usr/include/libxml2   -c -o configfile.o configfile.c
In file included from configfile.c:26:
/usr/include/postgresql/17/server/utils/elog.h:479:13: warning: no previous prototype for ‘ReThrowError’ [-Wmissing-prototypes]
  479 | extern void ReThrowError(ErrorData *edata) pg_attribute_noreturn();
      |             ^~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h: In function ‘ReThrowError’:
/usr/include/postgresql/17/server/utils/elog.h:479:44: error: expected declaration specifiers before ‘pg_attribute_noreturn’
  479 | extern void ReThrowError(ErrorData *edata) pg_attribute_noreturn();
      |                                            ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:480:13: error: storage class specified for parameter ‘ThrowErrorData’
  480 | extern void ThrowErrorData(ErrorData *edata);
      |             ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:481:31: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pg_attribute_noreturn’
  481 | extern void pg_re_throw(void) pg_attribute_noreturn();
      |                               ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:483:14: error: storage class specified for parameter ‘GetErrorContextStack’
  483 | extern char *GetErrorContextStack(void);
      |              ^~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:486:16: error: storage class specified for parameter ‘emit_log_hook_type’
  486 | typedef void (*emit_log_hook_type) (ErrorData *edata);
      |                ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:487:39: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘emit_log_hook’
  487 | extern PGDLLIMPORT emit_log_hook_type emit_log_hook;
      |                                       ^~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:497:25: error: storage class specified for parameter ‘PGErrorVerbosity’
  497 | }                       PGErrorVerbosity;
      |                         ^~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:499:24: error: storage class specified for parameter ‘Log_error_verbosity’
  499 | extern PGDLLIMPORT int Log_error_verbosity;
      |                        ^~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:500:26: error: storage class specified for parameter ‘Log_line_prefix’
  500 | extern PGDLLIMPORT char *Log_line_prefix;
      |                          ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:501:24: error: storage class specified for parameter ‘Log_destination’
  501 | extern PGDLLIMPORT int Log_destination;
      |                        ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:502:26: error: storage class specified for parameter ‘Log_destination_string’
  502 | extern PGDLLIMPORT char *Log_destination_string;
      |                          ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:503:25: error: storage class specified for parameter ‘syslog_sequence_numbers’
  503 | extern PGDLLIMPORT bool syslog_sequence_numbers;
      |                         ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:504:25: error: storage class specified for parameter ‘syslog_split_messages’
  504 | extern PGDLLIMPORT bool syslog_split_messages;
      |                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:514:13: error: storage class specified for parameter ‘log_status_format’
  514 | extern void log_status_format(StringInfo buf, const char *format,
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:516:13: error: storage class specified for parameter ‘DebugFileOpen’
  516 | extern void DebugFileOpen(void);
      |             ^~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:517:14: error: storage class specified for parameter ‘unpack_sql_state’
  517 | extern char *unpack_sql_state(int sql_state);
      |              ^~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:518:13: error: storage class specified for parameter ‘in_error_recursion_trouble’
  518 | extern bool in_error_recursion_trouble(void);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:521:13: error: storage class specified for parameter ‘reset_formatted_start_time’
  521 | extern void reset_formatted_start_time(void);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:522:14: error: storage class specified for parameter ‘get_formatted_start_time’
  522 | extern char *get_formatted_start_time(void);
      |              ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:523:14: error: storage class specified for parameter ‘get_formatted_log_time’
  523 | extern char *get_formatted_log_time(void);
      |              ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:524:20: error: storage class specified for parameter ‘get_backend_type_for_log’
  524 | extern const char *get_backend_type_for_log(void);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:525:13: error: storage class specified for parameter ‘check_log_of_query’
  525 | extern bool check_log_of_query(ErrorData *edata);
      |             ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:526:20: error: storage class specified for parameter ‘error_severity’
  526 | extern const char *error_severity(int elevel);
      |                    ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:527:13: error: storage class specified for parameter ‘write_pipe_chunks’
  527 | extern void write_pipe_chunks(char *data, int len, int dest);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:530:13: error: storage class specified for parameter ‘write_csvlog’
  530 | extern void write_csvlog(ErrorData *edata);
      |             ^~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:531:13: error: storage class specified for parameter ‘write_jsonlog’
  531 | extern void write_jsonlog(ErrorData *edata);
      |             ^~~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:538:13: error: storage class specified for parameter ‘write_stderr’
  538 | extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2);
      |             ^~~~~~~~~~~~
/usr/include/postgresql/17/server/utils/elog.h:539:13: error: storage class specified for parameter ‘vwrite_stderr’
  539 | extern void vwrite_stderr(const char *fmt, va_list ap) pg_attribute_printf(1, 0);
      |             ^~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/bits/local_lim.h:81,
                 from /usr/include/x86_64-linux-gnu/bits/posix1_lim.h:161,
                 from /usr/include/limits.h:195,
                 from /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h:205,
                 from /usr/lib/gcc/x86_64-linux-gnu/13/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-linux-gnu/13/include/limits.h:34,
                 from /usr/include/postgresql/17/server/port/pg_iovec.h:18,
                 from /usr/include/postgresql/17/server/storage/fd.h:46,
                 from configfile.c:29:
/usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h:24:17: error: storage class specified for parameter ‘__sysconf’
   24 | extern long int __sysconf (int __name) __THROW;
      |                 ^~~~~~~~~
In file included from /usr/include/postgresql/17/server/port/pg_iovec.h:19:
/usr/include/x86_64-linux-gnu/sys/uio.h:41:16: error: storage class specified for parameter ‘readv’
   41 | extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count)
      |                ^~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:52:16: error: storage class specified for parameter ‘writev’
   52 | extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count)
      |                ^~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:67:16: error: storage class specified for parameter ‘preadv’
   67 | extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count,
      |                ^~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:80:16: error: storage class specified for parameter ‘pwritev’
   80 | extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count,
      |                ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:110:16: error: storage class specified for parameter ‘preadv64’
  110 | extern ssize_t preadv64 (int __fd, const struct iovec *__iovec, int __count,
      |                ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:123:16: error: storage class specified for parameter ‘pwritev64’
  123 | extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count,
      |                ^~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:133:16: error: storage class specified for parameter ‘preadv2’
  133 | extern ssize_t preadv2 (int __fp, const struct iovec *__iovec, int __count,
      |                ^~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:138:16: error: storage class specified for parameter ‘pwritev2’
  138 | extern ssize_t pwritev2 (int __fd, const struct iovec *__iodev, int __count,
      |                ^~~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:161:16: error: storage class specified for parameter ‘preadv64v2’
  161 | extern ssize_t preadv64v2 (int __fp, const struct iovec *__iovec,
      |                ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/sys/uio.h:167:16: error: storage class specified for parameter ‘pwritev64v2’
  167 | extern ssize_t pwritev64v2 (int __fd, const struct iovec *__iodev,
      |                ^~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/uio.h:179:
/usr/include/x86_64-linux-gnu/bits/uio-ext.h:29:16: error: storage class specified for parameter ‘process_vm_readv’
   29 | extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec,
      |                ^~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/uio-ext.h:37:16: error: storage class specified for parameter ‘process_vm_writev’
   37 | extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
      |                ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/port/pg_iovec.h:51:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
   51 | {
      | ^
/usr/include/postgresql/17/server/port/pg_iovec.h:90:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
   90 | {
      | ^
In file included from /usr/include/postgresql/17/server/storage/fd.h:48:
/usr/include/dirent.h:127:28: error: storage class specified for parameter ‘DIR’
  127 | typedef struct __dirstream DIR;
      |                            ^~~
/usr/include/dirent.h:134:22: error: expected declaration specifiers or ‘...’ before ‘DIR’
  134 | extern int closedir (DIR *__dirp) __nonnull ((1));
      |                      ^~~
/usr/include/dirent.h:141:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  141 | extern DIR *opendir (const char *__name) __nonnull ((1))
      |            ^
/usr/include/dirent.h:149:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  149 | extern DIR *fdopendir (int __fd)
      |            ^
/usr/include/dirent.h:164:32: error: expected declaration specifiers or ‘...’ before ‘DIR’
  164 | extern struct dirent *readdir (DIR *__dirp) __nonnull ((1));
      |                                ^~~
/usr/include/dirent.h:175:36: error: expected declaration specifiers or ‘...’ before ‘DIR’
  175 | extern struct dirent64 *readdir64 (DIR *__dirp) __nonnull ((1));
      |                                    ^~~
/usr/include/dirent.h:185:23: error: expected declaration specifiers or ‘...’ before ‘DIR’
  185 | extern int readdir_r (DIR *__restrict __dirp,
      |                       ^~~
/usr/include/dirent.h:203:25: error: expected declaration specifiers or ‘...’ before ‘DIR’
  203 | extern int readdir64_r (DIR *__restrict __dirp,
      |                         ^~~
/usr/include/dirent.h:211:24: error: expected declaration specifiers or ‘...’ before ‘DIR’
  211 | extern void rewinddir (DIR *__dirp) __THROW __nonnull ((1));
      |                        ^~~
/usr/include/dirent.h:217:22: error: expected declaration specifiers or ‘...’ before ‘DIR’
  217 | extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1));
      |                      ^~~
/usr/include/dirent.h:220:26: error: expected declaration specifiers or ‘...’ before ‘DIR’
  220 | extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
      |                          ^~~
/usr/include/dirent.h:226:19: error: expected declaration specifiers or ‘...’ before ‘DIR’
  226 | extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
      |                   ^~~
/usr/include/dirent.h:257:12: error: storage class specified for parameter ‘scandir’
  257 | extern int scandir (const char *__restrict __dir,
      |            ^~~~~~~
/usr/include/dirent.h:280:12: error: storage class specified for parameter ‘scandir64’
  280 | extern int scandir64 (const char *__restrict __dir,
      |            ^~~~~~~~~
/usr/include/dirent.h:295:12: error: storage class specified for parameter ‘scandirat’
  295 | extern int scandirat (int __dfd, const char *__restrict __dir,
      |            ^~~~~~~~~
/usr/include/dirent.h:317:12: error: storage class specified for parameter ‘scandirat64’
  317 | extern int scandirat64 (int __dfd, const char *__restrict __dir,
      |            ^~~~~~~~~~~
/usr/include/dirent.h:327:12: error: storage class specified for parameter ‘alphasort’
  327 | extern int alphasort (const struct dirent **__e1,
      |            ^~~~~~~~~
/usr/include/dirent.h:342:12: error: storage class specified for parameter ‘alphasort64’
  342 | extern int alphasort64 (const struct dirent64 **__e1,
      |            ^~~~~~~~~~~
/usr/include/dirent.h:355:18: error: storage class specified for parameter ‘getdirentries’
  355 | extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
      |                  ^~~~~~~~~~~~~
/usr/include/dirent.h:372:18: error: storage class specified for parameter ‘getdirentries64’
  372 | extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
      |                  ^~~~~~~~~~~~~~~
/usr/include/dirent.h:382:12: error: storage class specified for parameter ‘versionsort’
  382 | extern int versionsort (const struct dirent **__e1,
      |            ^~~~~~~~~~~
/usr/include/dirent.h:398:12: error: storage class specified for parameter ‘versionsort64’
  398 | extern int versionsort64 (const struct dirent64 **__e1,
      |            ^~~~~~~~~~~~~
In file included from /usr/include/dirent.h:406:
/usr/include/x86_64-linux-gnu/bits/dirent_ext.h:29:18: error: storage class specified for parameter ‘getdents64’
   29 | extern __ssize_t getdents64 (int __fd, void *__buffer, size_t __length)
      |                  ^~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:51:13: error: storage class specified for parameter ‘File’
   51 | typedef int File;
      |             ^~~~
/usr/include/postgresql/17/server/storage/fd.h:60:24: error: storage class specified for parameter ‘max_files_per_process’
   60 | extern PGDLLIMPORT int max_files_per_process;
      |                        ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:61:25: error: storage class specified for parameter ‘data_sync_retry’
   61 | extern PGDLLIMPORT bool data_sync_retry;
      |                         ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:62:24: error: storage class specified for parameter ‘recovery_init_sync_method’
   62 | extern PGDLLIMPORT int recovery_init_sync_method;
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:63:24: error: storage class specified for parameter ‘io_direct_flags’
   63 | extern PGDLLIMPORT int io_direct_flags;
      |                        ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:68:24: error: storage class specified for parameter ‘max_safe_fds’
   68 | extern PGDLLIMPORT int max_safe_fds;
      |                        ^~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:105:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PathNameOpenFile’
  105 | extern File PathNameOpenFile(const char *fileName, int fileFlags);
      |             ^~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:106:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PathNameOpenFilePerm’
  106 | extern File PathNameOpenFilePerm(const char *fileName, int fileFlags, mode_t fileMode);
      |             ^~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:107:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘OpenTemporaryFile’
  107 | extern File OpenTemporaryFile(bool interXact);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:108:23: error: expected declaration specifiers or ‘...’ before ‘File’
  108 | extern void FileClose(File file);
      |                       ^~~~
/usr/include/postgresql/17/server/storage/fd.h:109:30: error: expected declaration specifiers or ‘...’ before ‘File’
  109 | extern int      FilePrefetch(File file, off_t offset, off_t amount, uint32 wait_event_info);
      |                              ^~~~
/usr/include/postgresql/17/server/storage/fd.h:110:26: error: expected declaration specifiers or ‘...’ before ‘File’
  110 | extern ssize_t FileReadV(File file, const struct iovec *iov, int iovcnt, off_t offset, uint32 wait_event_info);
      |                          ^~~~
/usr/include/postgresql/17/server/storage/fd.h:111:27: error: expected declaration specifiers or ‘...’ before ‘File’
  111 | extern ssize_t FileWriteV(File file, const struct iovec *iov, int iovcnt, off_t offset, uint32 wait_event_info);
      |                           ^~~~
/usr/include/postgresql/17/server/storage/fd.h:112:26: error: expected declaration specifiers or ‘...’ before ‘File’
  112 | extern int      FileSync(File file, uint32 wait_event_info);
      |                          ^~~~
/usr/include/postgresql/17/server/storage/fd.h:113:26: error: expected declaration specifiers or ‘...’ before ‘File’
  113 | extern int      FileZero(File file, off_t offset, off_t amount, uint32 wait_event_info);
      |                          ^~~~
/usr/include/postgresql/17/server/storage/fd.h:114:31: error: expected declaration specifiers or ‘...’ before ‘File’
  114 | extern int      FileFallocate(File file, off_t offset, off_t amount, uint32 wait_event_info);
      |                               ^~~~
/usr/include/postgresql/17/server/storage/fd.h:116:23: error: expected declaration specifiers or ‘...’ before ‘File’
  116 | extern off_t FileSize(File file);
      |                       ^~~~
/usr/include/postgresql/17/server/storage/fd.h:117:30: error: expected declaration specifiers or ‘...’ before ‘File’
  117 | extern int      FileTruncate(File file, off_t offset, uint32 wait_event_info);
      |                              ^~~~
/usr/include/postgresql/17/server/storage/fd.h:118:27: error: expected declaration specifiers or ‘...’ before ‘File’
  118 | extern void FileWriteback(File file, off_t offset, off_t nbytes, uint32 wait_event_info);
      |                           ^~~~
/usr/include/postgresql/17/server/storage/fd.h:119:27: error: expected declaration specifiers or ‘...’ before ‘File’
  119 | extern char *FilePathName(File file);
      |                           ^~~~
/usr/include/postgresql/17/server/storage/fd.h:120:32: error: expected declaration specifiers or ‘...’ before ‘File’
  120 | extern int      FileGetRawDesc(File file);
      |                                ^~~~
/usr/include/postgresql/17/server/storage/fd.h:121:33: error: expected declaration specifiers or ‘...’ before ‘File’
  121 | extern int      FileGetRawFlags(File file);
      |                                 ^~~~
/usr/include/postgresql/17/server/storage/fd.h:122:30: error: expected declaration specifiers or ‘...’ before ‘File’
  122 | extern mode_t FileGetRawMode(File file);
      |                              ^~~~
/usr/include/postgresql/17/server/storage/fd.h:125:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PathNameCreateTemporaryFile’
  125 | extern File PathNameCreateTemporaryFile(const char *path, bool error_on_failure);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:126:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PathNameOpenTemporaryFile’
  126 | extern File PathNameOpenTemporaryFile(const char *path, int mode);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:127:13: error: storage class specified for parameter ‘PathNameDeleteTemporaryFile’
  127 | extern bool PathNameDeleteTemporaryFile(const char *path, bool error_on_failure);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:128:13: error: storage class specified for parameter ‘PathNameCreateTemporaryDir’
  128 | extern void PathNameCreateTemporaryDir(const char *basedir, const char *directory);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:129:13: error: storage class specified for parameter ‘PathNameDeleteTemporaryDir’
  129 | extern void PathNameDeleteTemporaryDir(const char *dirname);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:130:13: error: storage class specified for parameter ‘TempTablespacePath’
  130 | extern void TempTablespacePath(char *path, Oid tablespace);
      |             ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:133:14: error: storage class specified for parameter ‘AllocateFile’
  133 | extern FILE *AllocateFile(const char *name, const char *mode);
      |              ^~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:134:17: error: storage class specified for parameter ‘FreeFile’
  134 | extern int      FreeFile(FILE *file);
      |                 ^~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:137:14: error: storage class specified for parameter ‘OpenPipeStream’
  137 | extern FILE *OpenPipeStream(const char *command, const char *mode);
      |              ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:138:17: error: storage class specified for parameter ‘ClosePipeStream’
  138 | extern int      ClosePipeStream(FILE *file);
      |                 ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:141:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
  141 | extern DIR *AllocateDir(const char *dirname);
      |            ^
/usr/include/postgresql/17/server/storage/fd.h:142:31: error: expected declaration specifiers or ‘...’ before ‘DIR’
  142 | extern struct dirent *ReadDir(DIR *dir, const char *dirname);
      |                               ^~~
/usr/include/postgresql/17/server/storage/fd.h:143:39: error: expected declaration specifiers or ‘...’ before ‘DIR’
  143 | extern struct dirent *ReadDirExtended(DIR *dir, const char *dirname,
      |                                       ^~~
/usr/include/postgresql/17/server/storage/fd.h:145:25: error: expected declaration specifiers or ‘...’ before ‘DIR’
  145 | extern int      FreeDir(DIR *dir);
      |                         ^~~
/usr/include/postgresql/17/server/storage/fd.h:148:17: error: storage class specified for parameter ‘OpenTransientFile’
  148 | extern int      OpenTransientFile(const char *fileName, int fileFlags);
      |                 ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:149:17: error: storage class specified for parameter ‘OpenTransientFilePerm’
  149 | extern int      OpenTransientFilePerm(const char *fileName, int fileFlags, mode_t fileMode);
      |                 ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:150:17: error: storage class specified for parameter ‘CloseTransientFile’
  150 | extern int      CloseTransientFile(int fd);
      |                 ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:153:17: error: storage class specified for parameter ‘BasicOpenFile’
  153 | extern int      BasicOpenFile(const char *fileName, int fileFlags);
      |                 ^~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:154:17: error: storage class specified for parameter ‘BasicOpenFilePerm’
  154 | extern int      BasicOpenFilePerm(const char *fileName, int fileFlags, mode_t fileMode);
      |                 ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:157:13: error: storage class specified for parameter ‘AcquireExternalFD’
  157 | extern bool AcquireExternalFD(void);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:158:13: error: storage class specified for parameter ‘ReserveExternalFD’
  158 | extern void ReserveExternalFD(void);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:159:13: error: storage class specified for parameter ‘ReleaseExternalFD’
  159 | extern void ReleaseExternalFD(void);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:162:17: error: storage class specified for parameter ‘MakePGDirectory’
  162 | extern int      MakePGDirectory(const char *directoryName);
      |                 ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:165:13: error: storage class specified for parameter ‘InitFileAccess’
  165 | extern void InitFileAccess(void);
      |             ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:166:13: error: storage class specified for parameter ‘InitTemporaryFileAccess’
  166 | extern void InitTemporaryFileAccess(void);
      |             ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:167:13: error: storage class specified for parameter ‘set_max_safe_fds’
  167 | extern void set_max_safe_fds(void);
      |             ^~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:168:13: error: storage class specified for parameter ‘closeAllVfds’
  168 | extern void closeAllVfds(void);
      |             ^~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:169:13: error: storage class specified for parameter ‘SetTempTablespaces’
  169 | extern void SetTempTablespaces(Oid *tableSpaces, int numSpaces);
      |             ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:170:13: error: storage class specified for parameter ‘TempTablespacesAreSet’
  170 | extern bool TempTablespacesAreSet(void);
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:171:17: error: storage class specified for parameter ‘GetTempTablespaces’
  171 | extern int      GetTempTablespaces(Oid *tableSpaces, int numSpaces);
      |                 ^~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:172:17: error: storage class specified for parameter ‘GetNextTempTableSpace’
  172 | extern Oid      GetNextTempTableSpace(void);
      |                 ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:173:13: error: storage class specified for parameter ‘AtEOXact_Files’
  173 | extern void AtEOXact_Files(bool isCommit);
      |             ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:174:13: error: storage class specified for parameter ‘AtEOSubXact_Files’
  174 | extern void AtEOSubXact_Files(bool isCommit, SubTransactionId mySubid,
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:176:13: error: storage class specified for parameter ‘RemovePgTempFiles’
  176 | extern void RemovePgTempFiles(void);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:177:13: error: storage class specified for parameter ‘RemovePgTempFilesInDir’
  177 | extern void RemovePgTempFilesInDir(const char *tmpdirname, bool missing_ok,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:179:13: error: storage class specified for parameter ‘looks_like_temp_rel_name’
  179 | extern bool looks_like_temp_rel_name(const char *name);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:181:17: error: storage class specified for parameter ‘pg_fsync’
  181 | extern int      pg_fsync(int fd);
      |                 ^~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:182:17: error: storage class specified for parameter ‘pg_fsync_no_writethrough’
  182 | extern int      pg_fsync_no_writethrough(int fd);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:183:17: error: storage class specified for parameter ‘pg_fsync_writethrough’
  183 | extern int      pg_fsync_writethrough(int fd);
      |                 ^~~~~~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:184:17: error: storage class specified for parameter ‘pg_fdatasync’
  184 | extern int      pg_fdatasync(int fd);
      |                 ^~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:185:13: error: storage class specified for parameter ‘pg_file_exists’
  185 | extern bool pg_file_exists(const char *name);
      |             ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:186:13: error: storage class specified for parameter ‘pg_flush_data’
  186 | extern void pg_flush_data(int fd, off_t offset, off_t nbytes);
      |             ^~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:187:17: error: storage class specified for parameter ‘pg_truncate’
  187 | extern int      pg_truncate(const char *path, off_t length);
      |                 ^~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:188:13: error: storage class specified for parameter ‘fsync_fname’
  188 | extern void fsync_fname(const char *fname, bool isdir);
      |             ^~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:189:17: error: storage class specified for parameter ‘fsync_fname_ext’
  189 | extern int      fsync_fname_ext(const char *fname, bool isdir, bool ignore_perm, int elevel);
      |                 ^~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:190:17: error: storage class specified for parameter ‘durable_rename’
  190 | extern int      durable_rename(const char *oldfile, const char *newfile, int elevel);
      |                 ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:191:17: error: storage class specified for parameter ‘durable_unlink’
  191 | extern int      durable_unlink(const char *fname, int elevel);
      |                 ^~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:192:13: error: storage class specified for parameter ‘SyncDataDirectory’
  192 | extern void SyncDataDirectory(void);
      |             ^~~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:193:17: error: storage class specified for parameter ‘data_sync_elevel’
  193 | extern int      data_sync_elevel(int elevel);
      |                 ^~~~~~~~~~~~~~~~
/usr/include/postgresql/17/server/storage/fd.h:196:10: error: expected declaration specifiers or ‘...’ before ‘File’
  196 | FileRead(File file, void *buffer, size_t amount, off_t offset,
      |          ^~~~
/usr/include/postgresql/17/server/storage/fd.h:208:11: error: expected declaration specifiers or ‘...’ before ‘File’
  208 | FileWrite(File file, const void *buffer, size_t amount, off_t offset,
      |           ^~~~
configfile.c:32:20: error: storage class specified for parameter ‘_progname’
   32 | const static char *_progname = NULL;
      |                    ^~~~~~~~~
configfile.c:32:1: error: parameter ‘_progname’ is initialized
   32 | const static char *_progname = NULL;
      | ^~~~~
configfile.c:33:1: error: parameter ‘config_file_path’ is initialized
   33 | char            config_file_path[MAXPGPATH] = "";
      | ^~~~
configfile.c:33:47: error: variable-sized object may not be initialized except with an empty initializer
   33 | char            config_file_path[MAXPGPATH] = "";
      |                                               ^~
configfile.c:34:13: error: storage class specified for parameter ‘config_file_provided’
   34 | static bool config_file_provided = false;
      |             ^~~~~~~~~~~~~~~~~~~~
configfile.c:34:1: error: parameter ‘config_file_provided’ is initialized
   34 | static bool config_file_provided = false;
      | ^~~~~~
configfile.c:35:1: error: parameter ‘config_file_found’ is initialized
   35 | bool            config_file_found = false;
      | ^~~~
configfile.c:38:13: error: storage class specified for parameter ‘parse_config’
   38 | static void parse_config(bool terse);
      |             ^~~~~~~~~~~~
configfile.c:39:13: error: storage class specified for parameter ‘_parse_config’
   39 | static void _parse_config(ItemList *error_list, ItemList *warning_list);
      |             ^~~~~~~~~~~~~
configfile.c:41:13: error: storage class specified for parameter ‘_parse_line’
   41 | static void _parse_line(char *buf, char *name, char *value);
      |             ^~~~~~~~~~~
configfile.c:42:13: error: storage class specified for parameter ‘parse_event_notifications_list’
   42 | static void parse_event_notifications_list(EventNotificationList *event_notifications, const char *arg);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
configfile.c:43:13: error: storage class specified for parameter ‘clear_event_notification_list’
   43 | static void clear_event_notification_list(EventNotificationList *event_notifications);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
configfile.c:45:13: error: storage class specified for parameter ‘copy_config_file_options’
   45 | static void copy_config_file_options(t_configuration_options *original, t_configuration_options *copy);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
configfile.c:47:13: error: storage class specified for parameter ‘tablespace_list_append’
   47 | static void tablespace_list_append(TablespaceList *tablespace_mapping, const char *arg);
      |             ^~~~~~~~~~~~~~~~~~~~~~
configfile.c:48:13: error: storage class specified for parameter ‘tablespace_list_copy’
   48 | static void tablespace_list_copy(t_configuration_options *original, t_configuration_options *copy);
      |             ^~~~~~~~~~~~~~~~~~~~
configfile.c:49:13: error: storage class specified for parameter ‘tablespace_list_free’
   49 | static void tablespace_list_free(t_configuration_options *options);
      |             ^~~~~~~~~~~~~~~~~~~~
configfile.c:51:13: error: storage class specified for parameter ‘exit_with_config_file_errors’
   51 | static void exit_with_config_file_errors(ItemList *config_errors, ItemList *config_warnings, bool terse);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
configfile.c:56:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
   56 | {
      | ^
configfile.c:62:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
   62 | {
      | ^
configfile.c:68:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
   68 | {
      | ^
configfile.c:249:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  249 | {
      | ^
configfile.c:275:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  275 | {
      | ^
configfile.c:474:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  474 | {
      | ^
configfile.c:664:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  664 | {
      | ^
configfile.c:758:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  758 | {
      | ^
configfile.c:817:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  817 | {
      | ^
configfile.c:917:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  917 | {
      | ^
configfile.c:1389:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1389 | {
      | ^
configfile.c:1444:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1444 | {
      | ^
configfile.c:1468:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1468 | {
      | ^
configfile.c:1490:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1490 | {
      | ^
configfile.c:1509:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1509 | {
      | ^
configfile.c:1573:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1573 | {
      | ^
configfile.c:1597:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1597 | {
      | ^
configfile.c:1648:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1648 | {
      | ^
configfile.c:1678:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1678 | {
      | ^
configfile.c:1739:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1739 | {
      | ^
configfile.c:1761:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1761 | {
      | ^
configfile.c:1781:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1781 | {
      | ^
configfile.c:1929:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1929 | {
      | ^
configfile.c:1989:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 1989 | {
      | ^
configfile.c:2012:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2012 | {
      | ^
configfile.c:2084:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2084 | {
      | ^
configfile.c:2101:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2101 | {
      | ^
configfile.c:2216:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2216 | {
      | ^
configfile.c:2230:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2230 | {
      | ^
configfile.c:2249:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2249 | {
      | ^
configfile.c:2281:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2281 | {
      | ^
configfile.c:2311:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
 2311 | {
      | ^
/usr/include/postgresql/17/server/utils/elog.h:479:13: error: old-style parameter declarations in prototyped function definition
  479 | extern void ReThrowError(ErrorData *edata) pg_attribute_noreturn();
      |             ^~~~~~~~~~~~
configfile.c:2322: error: expected ‘{’ at end of input
make: *** [<builtin>: configfile.o] Error 1

I am trying to compile the 5.5.0 release of repmgr with Postgres-17.7.
I have the postgres-server-dev and other packages installed.

However, while building the repmgr binaries, I am getting the above errors.

When I remove the header <utils/elog.h> from configfile.c ( and add a macro for LOG in the same file ), the build seems to work.

I’m not very familiar with repmgr internals or PostgreSQL server headers. Hence, I am unsure whether:

  • This is a compatibility issue that needs to be fixed
  • Or I am missing or misconfiguring something in my environment

Any guidance on this would be appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions