Сборка переносимого PostgreSQL-client
Необходимо собрать PostgreSQL-client для нескольких архитектур.
Я использую DEBIAN 12, подготовка к сборке:
sudo apt-get build-dep postgresql-client-15 ;
LDFLAGS=-static CFLAGS=-static CPPFLAGS=-static CXXFLAGS=-static ;
export LDFLAGS CFLAGS CPPFLAGS CXXFLAGS ;
sudo apt-get source postgresql-client-15 ;
cd p*/ ;
./configure ;
make ;
Для архитектур i368 и x86_64 сборка проходит, но не для ARMHF.
В какой-то момент GCC пытается собрать несколько разделяемых библиотек (*.so
файлы), в каждой команде присутствуют взаимоисключающие флаги, а именно предуказанный «-static
» и необходимый для динамической библиотеки «-shared
».
Пример одной из таких команд:
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -static -fPIC -shared -o cyrillic_and_mic.so cyrillic_and_mic.o -L../../../../../../src/port -L../../../../../../src/common -static -Wl,--as-needed
make[3]: Leaving directory '/home/user/test/postgresql-15-15.7/src/backend/utils/mb/conversion_procs/cyrillic_and_mic'
Решить это в лоб не получается. Изменение «-shared
» в файлах сборки приводит к каскаду других ошибок (при компановке).
В качестве решения пробовал кросс-компиляцию - она проходит успешно, но при настройке я вынужден отключить ReadLine и ZLib ( чего не хочется делать по ряду причин).
Подскажите, как собрать «static»-версию или как добавить ReadLine и ZLib в кросс-компилятор, чтобы собрать из i368 или x86_64.
Спасибо!