From: | TalGloz <glozmantal(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Compiling C Extension Functions against PostgreSQL 12 |
Date: | 2020-05-02 19:39:14 |
Message-ID: | 1588448354769-0.post@n3.nabble.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Adrian Klaver-4 wrote
> On 5/2/20 12:28 PM, TalGloz wrote:
>> I'm trying to upgrade from PostgreSQL 10 to 12 and I need to compile all
>> my
>> manually created C extension functions against PostrgreSQL 12 before
>> starting the upgrade process. I have this Makefile that compiles
>> perfectly
>> the seal_diff_cpp.cpp C extension function against PostgreSQL 10:
>>
>> MODULES = seal_diff_cpp
>> PG_CONFIG = /usr/pgsql-10/bin/pg_config
>> PGXS = $(shell $(PG_CONFIG) --pgxs)
>> INCLUDEDIR = $(shell $(PG_CONFIG) --includedir-server)
>> INCLUDE_SEAL = /usr/local/include
>> INCLUDE_SEAL_LIB = /usr/local/lib
>> INCLUDE_CPPCODEC = /usr/local/include/cppcodec
>> CXX = g++
>> CXXFLAGS = -std=c++17 -fPIC -Wall -Werror -g -O0 -pthread \
>> -I$(INCLUDEDIR) -I$(INCLUDE_SEAL) -I$(INCLUDE_CPPCODEC)
>> SEAL_LDFLAGS = -L$(INCLUDE_SEAL_LIB) -lseal -pthread
>> include $(PGXS)
>> seal_diff_cpp.so: seal_diff_cpp.o
>> # $(CXX) -Wl,--no-undefined -shared -o seal_diff_cpp.so
>> seal_diff_cpp.o $(LDFLAGS) $(SEAL_LDFLAGS)
>> $(CXX) -shared -o seal_diff_cpp.so seal_diff_cpp.o $(LDFLAGS)
>> $(SEAL_LDFLAGS)
>> seal_diff_cpp.o: seal_diff_cpp.cpp
>> $(CXX) $(CXXFLAGS) -o seal_diff_cpp.o -c seal_diff_cpp.cpp
>>
>> When I execute it the output looks like this:
>>
>> g++ -std=c++17 -fPIC -Wall -Werror -g -O0 -pthread
>> -I/usr/pgsql-10/include/server -I/usr/local/include
>> -I/usr/local/include/cppcodec -o seal_diff_cpp.o -c seal_diff_cpp.cpp
>> g++ -shared -o seal_diff_cpp.so seal_diff_cpp.o -L/usr/pgsql-10/lib
>> -L/usr/lib64 -Wl,--as-needed
>> -Wl,-rpath,'/usr/pgsql-10/lib',--enable-new-dtags -L/usr/local/lib -lseal
>> -pthread
>>
>> And the seal_diff_cpp.so gets created without any problems. But when I
>> use
>> PG_CONFIG = /usr/pgsql-12/bin/pg_config I get:
>>
>> g++ -Wall -Wpointer-arith -Wendif-labels -Wmissing-format-attribute
>> -Wformat-security -fno-strict-aliasing -fwrapv -O2 -o seal_diff_cpp.o -c
>> seal_diff_cpp.cpp
>> seal_diff_cpp.cpp:2:10: fatal error: postgres.h: No such file or
>> directory
>> 2 | #include
> <postgres.h>
>> | ^~~~~~~~~~~~
>> compilation terminated.
>> make: *** [Makefile:19: seal_diff_cpp.o] Error 1
>>
>> The Makefile has all the needed information to compile the
>> seal_diff_cpp.so
>> against PostgreSQL 12:
>> /usr/pgsql-10/bin/pg_config --pgxs --->
>> /usr/pgsql-10/lib/pgxs/src/makefiles/pgxs.mk
>> /usr/pgsql-12/bin/pg_config --pgxs --->
>> /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk
>>
>> /usr/pgsql-10/bin/pg_config --includedir-server --->
>> /usr/pgsql-10/include/server
>> /usr/pgsql-12/bin/pg_config --includedir-server --->
>> /usr/pgsql-12/include/server (postgres.h is there)
>>
>> I can't understand why it doesn't work.
>
> Do you have Postgres 12 -dev package installed?
>
>>
>> TalGloz
>>
>>
>>
>> --
>> Sent from:
>> https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
>>
>>
>
>
> --
> Adrian Klaver
> adrian.klaver@
Yes, I've installed everything PostgreSQL 12 has to offer:
dnf list installed | grep "postgresql12"
postgresql12.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-contrib.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-devel.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-docs.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-libs.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-llvmjit.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-odbc.x86_64 12.01.0000-1PGDG.f31
@pgdg12
postgresql12-plperl.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-plpython.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-plpython3.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-pltcl.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-server.x86_64 12.2-2PGDG.f31
@pgdg12
postgresql12-tcl.x86_64 2.4.0-2.f31.2
@pgdg12
postgresql12-test.x86_64 12.2-2PGDG.f31
@pgdg12
--
Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2020-05-02 19:55:15 | Re: Compiling C Extension Functions against PostgreSQL 12 |
Previous Message | Adrian Klaver | 2020-05-02 19:31:20 | Re: Compiling C Extension Functions against PostgreSQL 12 |