Мне нужно создать 32-битный libcurl.so на freebsd.
Если я запускаю ./configure, как это:
CFLAGS="-m32" CPPFLAGS="-m32" LDFLAGS="-L/usr/lib32 -m32" ./configure --prefix=/usr/home/debby/libcurl2
Я получаю следующие ошибки в config.log:
configure:4373: checking whether the C compiler works
configure:4395: gcc -m32 -m32 -L/usr/lib32 -m32 conftest.c >&5
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/lib/crt1.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/lib/crti.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/local/lib/gcc6/gcc/x86_64-portbld-freebsd11.1/6.4.0/crtbegin.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/local/lib/gcc6/gcc/x86_64-portbld-freebsd11.1/6.4.0/crtend.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/lib/crtn.o' is incompatible with i386 output
Я даже правильно подхожу к этому? Должен ли я указывать --build и --host в командной строке ./configure, и если да, то какие значения?
=========
UPDATE
Используя первую ссылку, предложенную @Wodin, я запустил configure следующим образом:
export CFLAGS="-m32 -march=i686 -mmmx -msse -msse2 -mfancy-math-387 -DCOMPAT_32BIT"
#export CPPFLAGS="-m32 -march=i686 -mmx -msse -msse2 -DCOMPAT_32BIT"
export LDFLAGS="-m32 -L/usr/lib32 -B/usr/lib32"
./configure --prefix=/usr/home/debby/libcurl
make затем завершается ошибкой, потому что у меня нет 32-битных библиотек времени выполнения
[debby@GServerBuild ~/curl-7.60.0]$ make install
Making install in lib
CCLD libcurl.la
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/lib/crti.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/local/lib/gcc6/gcc/x86_64-portbld-freebsd11.1/6.4.0/crtbeginS.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/local/lib/gcc6/gcc/x86_64-portbld-freebsd11.1/6.4.0/crtendS.o' is incompatible with i386 output
/usr/local/bin/ld: i386:x86-64 architecture of input file `/usr/lib/crtn.o' is incompatible with i386 output
collect2: error: ld returned 1 exit status
*** Error code 1
На основании второй ссылки, при условии, что мне кажется, что мне нужно собрать эти библиотеки из / usr / src, который пуст.
Я пытаюсь получить src, используя fetch -o /tmp ftp://ftp.freebsd.org/pub/
uname -s /releases/
uname -m /
uname -r | cut -d'- '-f1,2 /src.txz
как описано здесь: https://unix.stackexchange.com/questions/204956/how-do-you-install-the-freebsd10-kernel-sources
и выложу здесь обновление о том, как отдыхает