2014-05-12 16:31 GMT+02:00 Tom Lane <t...@sss.pgh.pa.us>: > Andrew Dunstan <and...@dunslane.net> writes: > > On 05/12/2014 07:10 AM, Pavel Stehule wrote: > >> I am trying to compile PL/v8 without success. I have Postgres > >> installed via compilation from source code. > > >> plv8.cc:50:56: error: declaration of ‘Datum > >> plv8_call_handler(FunctionCallInfo) throw ()’ has a different > >> exception specifier > >> Datum plv8_call_handler(PG_FUNCTION_ARGS) throw(); > >> ^ > >> plv8.cc:43:7: error: from previous declaration ‘Datum > >> plv8_call_handler(FunctionCallInfo)’ > >> PG_FUNCTION_INFO_V1(plv8_call_handler); > > > This looks like a result of commit > > < > http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=e7128e8dbb305059c30ec085461297e619bcbff4 > > > > Ouch. I was a bit suspicious of that change from the start, but it hadn't > occurred to me that functions written in C++ would have an issue with it. > > > Maybe we need a way of telling the preprocessor to suppress the > > generation of a prototype? > > Maybe we need to revert that patch altogether. Dealing with this is > likely to introduce much more pain and confusion than the change is worth. >
After returning back before this commit I cannot compile PL/V8 still but with more solvable bug g++ -Wall -O2 -I. -I./ -I/usr/local/pgsql/include/server -I/usr/local/pgsql/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -fPIC -c -o plv8.o plv8.cc g++ -Wall -O2 -I. -I./ -I/usr/local/pgsql/include/server -I/usr/local/pgsql/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -fPIC -c -o plv8_type.o plv8_type.cc g++ -Wall -O2 -I. -I./ -I/usr/local/pgsql/include/server -I/usr/local/pgsql/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -fPIC -c -o plv8_func.o plv8_func.cc plv8_func.cc: In function ‘v8::Handle<v8::Value> plv8_Prepare(const v8::Arguments&)’: plv8_func.cc:521:47: error: too few arguments to function ‘void parseTypeString(const char*, Oid*, int32*, bool)’ parseTypeString(typestr, &types[i], &typemod); ^ In file included from plv8_func.cc:22:0: /usr/local/pgsql/include/server/parser/parse_type.h:50:13: note: declared here extern void parseTypeString(const char *str, Oid *typeid_p, int32 *typmod_p, bool missing_ok); ^ make: *** [plv8_func.o] Error 1 so the main issue is really this commit Regards Pavel p.s. my tests on 9.2 was messy probably > > regards, tom lane >