While following installation instructions and performing make of PostgreSQL (line 110 of install instructions) i encountered following error:
<<<<<<<<<<<<<<<
make[4]: Entering directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils/adt'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -I../../../../src/include -D_GNU_SOURCE -c -o jsonfuncs.o jsonfuncs.c
.
.
.
jsonfuncs.c: In function ‘parse_jsonb_index_flags’:
jsonfuncs.c:5001:13: error: ‘jtiAll’ undeclared (first use in this function); did you mean ‘tidle’?
flags |= jtiAll;
^~~~~~
tidle
jsonfuncs.c:5001:13: note: each undeclared identifier is reported only once for each function it appears in
jsonfuncs.c:5004:13: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘jtiAll’?
flags |= jtiKey;
^~~~~~
jtiAll
jsonfuncs.c:5007:13: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
flags |= jtiString;
^~~~~~~~~
jbvString
jsonfuncs.c:5010:13: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
flags |= jtiNumeric;
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5013:13: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
flags |= jtiBool;
^~~~~~~
jbvBool
jsonfuncs.c: At top level:
jsonfuncs.c:5039:1: warning: no previous prototype for ‘iterate_jsonb_values’ [-Wmissing-prototypes]
iterate_jsonb_values(Jsonb *jb, uint32 flags, void *state,
^~~~~~~~~~~~~~~~~~~~
jsonfuncs.c: In function ‘iterate_jsonb_values’:
jsonfuncs.c:5056:16: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘tideq’?
if (flags & jtiKey)
^~~~~~
tideq
jsonfuncs.c:5071:17: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
if (flags & jtiString)
^~~~~~~~~
jbvString
jsonfuncs.c:5075:17: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
if (flags & jtiNumeric)
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5087:17: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
if (flags & jtiBool)
^~~~~~~
jbvBool
jsonfuncs.c: At top level:
jsonfuncs.c:5107:1: warning: no previous prototype for ‘iterate_json_values’ [-Wmissing-prototypes]
iterate_json_values(text *json, uint32 flags, void *action_state,
^~~~~~~~~~~~~~~~~~~
jsonfuncs.c: In function ‘iterate_values_scalar’:
jsonfuncs.c:5138:24: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
if (_state->flags & jtiString)
^~~~~~~~~
jbvString
jsonfuncs.c:5142:24: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
if (_state->flags & jtiNumeric)
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5147:24: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
if (_state->flags & jtiBool)
^~~~~~~
jbvBool
jsonfuncs.c: In function ‘iterate_values_object_field_start’:
jsonfuncs.c:5161:22: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘tideq’?
if (_state->flags & jtiKey)
^~~~~~
tideq
jsonfuncs.c: In function ‘get_jsonb_path_all’:
jsonfuncs.c:1557:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_concat’:
jsonfuncs.c:4216:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete’:
jsonfuncs.c:4270:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_array’:
jsonfuncs.c:4356:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_idx’:
jsonfuncs.c:4424:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_set’:
jsonfuncs.c:4471:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_path’:
jsonfuncs.c:4516:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_insert’:
jsonfuncs.c:4560:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
: recipe for target 'jsonfuncs.o' failed
make[4]: *** [jsonfuncs.o] Error 1
make[4]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils/adt'
../../../src/backend/common.mk:41: recipe for target 'adt-recursive' failed
make[3]: *** [adt-recursive] Error 2
make[3]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils'
common.mk:41: recipe for target 'utils-recursive' failed
make[2]: *** [utils-recursive] Error 2
make[2]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend'
Makefile:38: recipe for target 'all-backend-recurse' failed
make[1]: *** [all-backend-recurse] Error 2
make[1]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src'
GNUmakefile:11: recipe for target 'all-src-recurse' failed
make: *** [all-src-recurse] Error 2
Furthermore is there some problem in using PgRocks with latest gcc (gcc version 7.3.0). Because i have encountered a lot of errors before reaching the missing identifiers issue. e.g.
json.c:1563:1: error: conflicting types for ‘JsonEncodeDateTime’
json.c:1516:7: note: previous implicit declaration of ‘JsonEncodeDateTime’ was here
x=JsonEncodeDateTime(buf, val, DATEOID);
^~~~~~~~~~~~~~~~~~
2.
postmaster.c:394:13: error: static declaration of ‘checkDataDir’ follows non-static declaration
static void checkDataDir(void);
^~~~~~~~~~~~
In file included from postmaster.c:108:0:
../../../src/include/miscadmin.h:327:13: note: previous declaration of ‘checkDataDir’ was here
extern void checkDataDir(void);
,etc.
While following installation instructions and performing make of PostgreSQL (line 110 of install instructions) i encountered following error:
<<<<<<<<<<<<<<<
make[4]: Entering directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils/adt'
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -I../../../../src/include -D_GNU_SOURCE -c -o jsonfuncs.o jsonfuncs.c
.
.
.
jsonfuncs.c: In function ‘parse_jsonb_index_flags’:
jsonfuncs.c:5001:13: error: ‘jtiAll’ undeclared (first use in this function); did you mean ‘tidle’?
flags |= jtiAll;
^~~~~~
tidle
jsonfuncs.c:5001:13: note: each undeclared identifier is reported only once for each function it appears in
jsonfuncs.c:5004:13: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘jtiAll’?
flags |= jtiKey;
^~~~~~
jtiAll
jsonfuncs.c:5007:13: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
flags |= jtiString;
^~~~~~~~~
jbvString
jsonfuncs.c:5010:13: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
flags |= jtiNumeric;
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5013:13: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
flags |= jtiBool;
^~~~~~~
jbvBool
jsonfuncs.c: At top level:
jsonfuncs.c:5039:1: warning: no previous prototype for ‘iterate_jsonb_values’ [-Wmissing-prototypes]
iterate_jsonb_values(Jsonb *jb, uint32 flags, void *state,
^~~~~~~~~~~~~~~~~~~~
jsonfuncs.c: In function ‘iterate_jsonb_values’:
jsonfuncs.c:5056:16: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘tideq’?
if (flags & jtiKey)
^~~~~~
tideq
jsonfuncs.c:5071:17: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
if (flags & jtiString)
^~~~~~~~~
jbvString
jsonfuncs.c:5075:17: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
if (flags & jtiNumeric)
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5087:17: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
if (flags & jtiBool)
^~~~~~~
jbvBool
jsonfuncs.c: At top level:
jsonfuncs.c:5107:1: warning: no previous prototype for ‘iterate_json_values’ [-Wmissing-prototypes]
iterate_json_values(text *json, uint32 flags, void *action_state,
^~~~~~~~~~~~~~~~~~~
jsonfuncs.c: In function ‘iterate_values_scalar’:
jsonfuncs.c:5138:24: error: ‘jtiString’ undeclared (first use in this function); did you mean ‘jbvString’?
if (_state->flags & jtiString)
^~~~~~~~~
jbvString
jsonfuncs.c:5142:24: error: ‘jtiNumeric’ undeclared (first use in this function); did you mean ‘jbvNumeric’?
if (_state->flags & jtiNumeric)
^~~~~~~~~~
jbvNumeric
jsonfuncs.c:5147:24: error: ‘jtiBool’ undeclared (first use in this function); did you mean ‘jbvBool’?
if (_state->flags & jtiBool)
^~~~~~~
jbvBool
jsonfuncs.c: In function ‘iterate_values_object_field_start’:
jsonfuncs.c:5161:22: error: ‘jtiKey’ undeclared (first use in this function); did you mean ‘tideq’?
if (_state->flags & jtiKey)
^~~~~~
tideq
jsonfuncs.c: In function ‘get_jsonb_path_all’:
jsonfuncs.c:1557:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_concat’:
jsonfuncs.c:4216:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete’:
jsonfuncs.c:4270:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_array’:
jsonfuncs.c:4356:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_idx’:
jsonfuncs.c:4424:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_set’:
jsonfuncs.c:4471:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_delete_path’:
jsonfuncs.c:4516:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
jsonfuncs.c: In function ‘jsonb_insert’:
jsonfuncs.c:4560:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
: recipe for target 'jsonfuncs.o' failed
make[4]: *** [jsonfuncs.o] Error 1
make[4]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils/adt'
../../../src/backend/common.mk:41: recipe for target 'adt-recursive' failed
make[3]: *** [adt-recursive] Error 2
make[3]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend/utils'
common.mk:41: recipe for target 'utils-recursive' failed
make[2]: *** [utils-recursive] Error 2
make[2]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src/backend'
Makefile:38: recipe for target 'all-backend-recurse' failed
make[1]: *** [all-backend-recurse] Error 2
make[1]: Leaving directory '/home/lalit/work_pgrocks/postgresql-10.3/src'
GNUmakefile:11: recipe for target 'all-src-recurse' failed
make: *** [all-src-recurse] Error 2
Furthermore is there some problem in using PgRocks with latest gcc (gcc version 7.3.0). Because i have encountered a lot of errors before reaching the missing identifiers issue. e.g.
json.c:1563:1: error: conflicting types for ‘JsonEncodeDateTime’
json.c:1516:7: note: previous implicit declaration of ‘JsonEncodeDateTime’ was here
x=JsonEncodeDateTime(buf, val, DATEOID);
^~~~~~~~~~~~~~~~~~
2.
postmaster.c:394:13: error: static declaration of ‘checkDataDir’ follows non-static declaration
static void checkDataDir(void);
^~~~~~~~~~~~
In file included from postmaster.c:108:0:
../../../src/include/miscadmin.h:327:13: note: previous declaration of ‘checkDataDir’ was here
extern void checkDataDir(void);
,etc.