Hi,

I need to upgrade an existing Postgres 9.5 + Madlib 1.12 to Postgres 10.
To avoid potential issues I'd like to skip upgrading Madlib, at least for now. It's been working fine for us for quite some time, we don't need any new features.

However I'm having issues compiling Madlib 1.12 on Postgres 10.
Here's what I'm doing:

docker run --rm -it madlib/postgres_10.0 /bin/bash

cd
wget http://api.pgxn.org/dist/madlib/1.12.0/madlib-1.12.0.zip
unzip madlib-1.12.0.zip
cd madlib-1.12.0
cp -R src/ports/postgres/9.6/ src/ports/postgres/10.0/
cp src/ports/postgres/cmake/FindPostgreSQL_9_6.cmake src/ports/postgres/cmake/FindPostgreSQL_10_0.cmake
./configure
make

and this is the compile error I'm getting:

[ 42%] Building CXX object src/ports/postgres/10.0/CMakeFiles/madlib_postgresql_10_0.dir/__/__/__/modules/assoc_rules/assoc_rules.cpp.o
In file included from /root/madlib-1.12.0/src/modules/assoc_rules/assoc_rules.cpp:11:0:
/root/madlib-1.12.0/src/ports/postgres/dbconnector/Backend.hpp: In function ‘char* madlib::dbconnector::postgres::{anonymous}::madlib_format_procedure(Oid)’:
/root/madlib-1.12.0/src/ports/postgres/dbconnector/Backend.hpp:35:65: error: ‘format_procedure’ was not declared in this scope
     char*, format_procedure, (Oid procedure_oid), (procedure_oid))
                                                                 ^
/root/madlib-1.12.0/src/ports/postgres/dbconnector/dbconnector.hpp:166:27: note: in definition of macro ‘MADLIB_WRAP_PG_FUNC’
         _result = _pgfunc _passedlist; \
                           ^
In file included from /usr/include/postgresql/10/server/postgres.h:48:0,
                 from /root/madlib-1.12.0/src/ports/postgres/dbconnector/dbconnector.hpp:24,
                 from /root/madlib-1.12.0/src/modules/assoc_rules/assoc_rules.cpp:11:
/root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp: In static member function ‘static Datum madlib::dbconnector::postgres::UDF::call(FunctionCallInfo)’:
/root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp:206:56: error: there are no arguments to ‘format_procedure’ that depend on a template parameter, so a declaration of ‘format_procedure’ must be available [-fpermissive]
                 format_procedure(fcinfo->flinfo->fn_oid),
                                                        ^
/root/madlib-1.12.0/src/ports/postgres/dbconnector/UDF_impl.hpp:206:56: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
src/ports/postgres/10.0/CMakeFiles/madlib_postgresql_10_0.dir/build.make:62: recipe for target 'src/ports/postgres/10.0/CMakeFiles/madlib_postgresql_10_0.dir/__/__/__/modules/assoc_rules/assoc_rules.cpp.o' failed


I find this odd as I used the same version of g++ to build the same version of MADlib (1.12) on Postgres 9.5
I've not worked in C++ for many years... would it be safe to set -fpermissive? How would I do that with MADlib's build scripts? I tried ./configure CXXFLAGS="-fpermissive" but it doesn't seem to do anything.

Many thanks.

--
Mauricio