как "gmake 32bit USE_JEMALLOC = yes", чтобы Redis работал на FreeBSD 8.1 64 bit - PullRequest
0 голосов
/ 09 августа 2011

Я не могу скомпилировать 2.4 redis 32bit на FreeBSD 64 bit. Я уже сделал:

cd /usr/lib32
ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.1-RELEASE/lib32/
prompt
mget *.*
quit
sh install.sh
csup -h cvsup.freebsd.org /usr/share/examples/cvsup/standard-supfile
cd /usr/src; make build32 install32; ldconfig -v -m -R /usr/lib32

но при попытке скомпилировать redis я получаю:

#gmake 32bit USE_JEMALLOC=yes
.....

MAKE linenoise
gmake[3]: Entering directory `/usr/home/7k7ktest/redis/deps/linenoise'
cc -m32 -c -Wall -W -Os -g linenoise.c
cc -m32 -c -Wall -W -Os -g example.c
cc -m32 -Wall -W -Os -g -o linenoise_example linenoise.o example.o
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
gmake[3]: *** [linenoise_example] Error 1
gmake[3]: Leaving directory `/usr/home/7k7ktest/redis/deps/linenoise'
gmake[2]: *** [dependencies] Error 2
gmake[2]: Leaving directory `/usr/home/7k7ktest/redis/src'
gmake[1]: *** [32bit] Error 2
gmake[1]: Leaving directory `/usr/home/7k7ktest/redis/src'
gmake: *** [32bit] Error 2

1 Ответ

0 голосов
/ 24 августа 2011

Вам нужно указать компилятору 32-битные библиотеки, чтобы это сработало.Вы можете сделать это с помощью префикса команды gmake:

CC = "cc -B / usr / lib32"

Компиляция Redis будет успешной, но она очень глючная.Тесты не пройдены и Redis segfaults во многих ситуациях.Я бы посоветовал просто придерживаться 64-битного Redis на amd64 FreeBSD или 32-битного Redis на i386.

Еще один комментарий: автономная библиотека jemalloc, которую использует Redis, не основана на FreeBSD.Вы можете использовать распределитель по умолчанию как во FreeBSD, так и в NetBSD, так как они по умолчанию используют более раннюю версию jemalloc.

...