PostgreSQL 16.1 dict_snowball.so: undefined symbol: CurrentMemoryContext

From: Vitalijus Jefišovas <jefisovas(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: PostgreSQL 16.1 dict_snowball.so: undefined symbol: CurrentMemoryContext
Date: 2023-12-27 09:44:29
Message-ID: E8D94ED0-82DF-4CBC-9A4F-184947CAEE6B@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,
Having issues compiling PostgreSQL 16.1 targeting ARM32 architecture.
Using building, which currently has 15.5 version, and it compiles and runs well.
Currently using GCC 11 with binutils 2.39.

During initdb, it gives error message:
[356] FATAL: could not load library "/pgsql16/lib/dict_snowball.so": /pgsql16/lib/dict_snowball.so: undefined symbol: CurrentMemoryContext
STATEMENT: CREATE FUNCTION dsnowball_init(INTERNAL)
RETURNS INTERNAL AS '$libdir/dict_snowball', 'dsnowball_init'
LANGUAGE C STRICT;

I've traced build log, and this is how it builds for version 13:
/home/build/panelpi4/host/bin/arm-buildroot-linux-gnueabihf-gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fPIC -I../../../src/include/snowball -I../../../src/include/snowball/libstemmer -I../../../src/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/home/build/panelpi4/host/arm-buildroot-linux-gnueabihf/sysroot/usr/bin/../../usr/include/libxml2 -c -o dict_snowball.o dict_snowball.c

And this is version 16.1:
/home/build/panelpi4/host/bin/arm-buildroot-linux-gnueabihf-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 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O1 -g0 -fPIC -fvisibility=hidden -I../../../src/include/snowball -I../../../src/include/snowball/libstemmer -I../../../src/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/home/build/panelpi4/host/arm-buildroot-linux-gnueabihf/sysroot/usr/bin/../../usr/include/libxml2 -c -o dict_snowball.o dict_snowball.c

So the new thing is: "-fvisibility=hidden", and there is discussion about it a year ago:
https://www.postgresql.org/message-id/20220718220938.5yx7if2mru3rd6jc%40awork3.anarazel.de

Any tips to go around this issue?
Thanks!

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2023-12-27 09:44:51 Re: Function to get invalidation cause of a replication slot.
Previous Message shveta malik 2023-12-27 09:38:44 Re: Track in pg_replication_slots the reason why slots conflict?