Как правильно собрать 32-битный libcurl на freebsd? - PullRequest
0 голосов
/ 27 июня 2018

Мне нужно создать 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 и выложу здесь обновление о том, как отдыхает

...