解决办法是手动指定系统中已有的 libc
root@temp redis-3.0.4# make MALLOC=libc
cd src && make all
make1: Entering directory `/usr/local/src/redis-3.0.4/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-dump redis-check-aof .o .gcda .gcno .gcov redis.info lcov-html
(cd ../deps && make distclean)
make2: Entering directory `/usr/local/src/redis-3.0.4/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && -f Makefile && make distclean) > /dev/null || true
(rm -f .make-*)
make2: Leaving directory `/usr/local/src/redis-3.0.4/deps'
(rm -f .make-*)
echo STD=-std=c99 -pedantic >> .make-settings
echo WARN=-Wall -W >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=libc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -Wall -W -O2 -g -ggdb -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src >> .make-settings
echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua)
make2: Entering directory `/usr/local/src/redis-3.0.4/deps'
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && -f Makefile && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-ldflags)
(echo "" > .make-cflags)
MAKE hiredis
cd hiredis && make static
make3: Entering directory `/usr/local/src/redis-3.0.4/deps/hiredis'
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c
cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c
ar rcs libhiredis.a net.o hiredis.o sds.o async.o
make3: Leaving directory `/usr/local/src/redis-3.0.4/deps/hiredis'
MAKE linenoise
cd linenoise && make
make3: Entering directory `/usr/local/src/redis-3.0.4/deps/linenoise'
cc -Wall -Os -g -c linenoise.c
make3: Leaving directory `/usr/local/src/redis-3.0.4/deps/linenoise'
MAKE lua
cd lua/src && make all CFLAGS="-O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL " MYLDFLAGS="" AR="ar rcu"
make3: Entering directory `/usr/local/src/redis-3.0.4/deps/lua/src'
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lapi.o lapi.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lcode.o lcode.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ldebug.o ldebug.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ldo.o ldo.c
ldo.c: In function ‘f_parser’:
ldo.c:496: warning: unused variable ‘c’
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ldump.o ldump.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lfunc.o lfunc.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lgc.o lgc.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o llex.o llex.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lmem.o lmem.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lobject.o lobject.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lopcodes.o lopcodes.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lparser.o lparser.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lstate.o lstate.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lstring.o lstring.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ltable.o ltable.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ltm.o ltm.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lundump.o lundump.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lvm.o lvm.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lzio.o lzio.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o strbuf.o strbuf.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o fpconv.o fpconv.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lauxlib.o lauxlib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lbaselib.o lbaselib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ldblib.o ldblib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o liolib.o liolib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lmathlib.o lmathlib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o loslib.o loslib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o ltablib.o ltablib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lstrlib.o lstrlib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o loadlib.o loadlib.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o linit.o linit.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lua_cjson.o lua_cjson.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lua_struct.o lua_struct.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lua_cmsgpack.o lua_cmsgpack.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lua_bit.o lua_bit.c
ar rcu liblua.a lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o strbuf.o fpconv.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o loadlib.o linit.o lua_cjson.o lua_struct.o lua_cmsgpack.o lua_bit.o # DLL needs all object files
ranlib liblua.a
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o lua.o lua.c
cc -o lua lua.o liblua.a -lm
liblua.a(loslib.o): In function `os_tmpname':
loslib.c:(.text 0x35): warning: the use of tmpnam' is dangerous, better use
mkstemp'
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o luac.o luac.c
cc -O2 -Wall -DLUA_ANSI -DENABLE_CJSON_GLOBAL -c -o print.o print.c
cc -o luac luac.o print.o liblua.a -lm
make3: Leaving directory `/usr/local/src/redis-3.0.4/deps/lua/src'
make2: Leaving directory `/usr/local/src/redis-3.0.4/deps'
代码语言:txt复制CC adlist.o
代码语言:txt复制CC ae.o
代码语言:txt复制CC anet.o
anet.c: In function ‘anetSockName’:
anet.c:623: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:621: note: initialized from here
anet.c:627: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:625: note: initialized from here
anet.c: In function ‘anetPeerToString’:
anet.c:584: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:582: note: initialized from here
anet.c:588: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:586: note: initialized from here
anet.c: In function ‘anetTcpAccept’:
anet.c:555: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:553: note: initialized from here
anet.c:559: warning: dereferencing pointer ‘s’ does break strict-aliasing rules
anet.c:557: note: initialized from here
代码语言:txt复制CC dict.o
代码语言:txt复制CC redis.o
代码语言:txt复制CC sds.o
代码语言:txt复制CC zmalloc.o
代码语言:txt复制CC lzf_c.o
代码语言:txt复制CC lzf_d.o
代码语言:txt复制CC pqsort.o
代码语言:txt复制CC zipmap.o
代码语言:txt复制CC sha1.o
代码语言:txt复制CC ziplist.o
代码语言:txt复制CC release.o
代码语言:txt复制CC networking.o
代码语言:txt复制CC util.o
代码语言:txt复制CC object.o
代码语言:txt复制CC db.o
db.c: In function ‘scanGenericCommand’:
db.c:432: warning: ‘pat’ may be used uninitialized in this function
db.c:433: warning: ‘patlen’ may be used uninitialized in this function
代码语言:txt复制CC replication.o
代码语言:txt复制CC rdb.o
代码语言:txt复制CC t_string.o
代码语言:txt复制CC t_list.o
代码语言:txt复制CC t_set.o
代码语言:txt复制CC t_zset.o
代码语言:txt复制CC t_hash.o
代码语言:txt复制CC config.o
代码语言:txt复制CC aof.o
代码语言:txt复制CC pubsub.o
代码语言:txt复制CC multi.o
代码语言:txt复制CC debug.o
代码语言:txt复制CC sort.o
代码语言:txt复制CC intset.o
代码语言:txt复制CC syncio.o
代码语言:txt复制CC cluster.o
代码语言:txt复制CC crc16.o
代码语言:txt复制CC endianconv.o
代码语言:txt复制CC slowlog.o
代码语言:txt复制CC scripting.o
代码语言:txt复制CC bio.o
代码语言:txt复制CC rio.o
代码语言:txt复制CC rand.o
代码语言:txt复制CC memtest.o
代码语言:txt复制CC crc64.o
代码语言:txt复制CC bitops.o
代码语言:txt复制CC sentinel.o
代码语言:txt复制CC notify.o
代码语言:txt复制CC setproctitle.o
代码语言:txt复制CC blocked.o
代码语言:txt复制CC hyperloglog.o
代码语言:txt复制CC latency.o
代码语言:txt复制CC sparkline.o
代码语言:txt复制LINK redis-server
代码语言:txt复制INSTALL redis-sentinel
代码语言:txt复制CC redis-cli.o
代码语言:txt复制LINK redis-cli
代码语言:txt复制CC redis-benchmark.o
代码语言:txt复制LINK redis-benchmark
代码语言:txt复制CC redis-check-dump.o
代码语言:txt复制LINK redis-check-dump
代码语言:txt复制CC redis-check-aof.o
代码语言:txt复制LINK redis-check-aof
Hint: It's a good idea to run 'make test' ;)
make1: Leaving directory `/usr/local/src/redis-3.0.4/src'
root@temp redis-3.0.4# echo $?
0
root@temp redis-3.0.4#