Bug#680058: kyotocabinet: FTBFS on i386 with gcc-multilib: /usr/bin/ld: cannot find -llzma
July 03rd, 2012 - 05:30 am ET by Jakub Wilk | Report spam
Source: kyotocabinet
Version: 1.2.76-2
Severity: serious
Justification: fails to build from source
If gcc-multilib is installed on an i386 system, kyotocabinet FTBFS:
| if uname -a | egrep -i 'SunOS' > /dev/null ; \
| then \
| g++ -m64 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -fPIC -fsigned-char -g0 -O2 -Wno-unused-but-set-variable -Wno-unused-but-set-parameter -shared -Wl,-G,-h,libkyotocabinet.so.16 -o libkyotocabinet.so.16.13.0 \
| kcutil.o kcthread.o kcfile.o kccompress.o kccompare.o kcmap.o kcregex.o kcdb.o kcplantdb.o kcprotodb.o kcstashdb.o kccachedb.o kchashdb.o kcdirdb.o kctextdb.o kcpolydb.o kcdbext.o kclangc.o -Wl,-z,relro -L. -L/usr/lib/i386-linux-gnu -L/usr/local/lib -Wl,-rpath-link,.:/usr/local/lib:.:/usr/local/lib: -Wl,--as-needed -llzma -llzo2 -lz -lstdc++ -lrt -lpthread -lm -lc ; \
| else \
| g++ -m64 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -fPIC -fsigned-char -g0 -O2 -Wno-unused-but-set-variable -Wno-unused-but-set-parameter -shared -Wl,-soname,libkyotocabinet.so.16 -o libkyotocabinet.so.16.13.0 \
| kcutil.o kcthread.o kcfile.o kccompress.o kccompare.o kcmap.o kcregex.o kcdb.o kcplantdb.o kcprotodb.o kcstashdb.o kccachedb.o kchashdb.o kcdirdb.o kctextdb.o kcpolydb.o kcdbext.o kclangc.o -Wl,-z,relro -L. -L/usr/lib/i386-linux-gnu -L/usr/local/lib -Wl,-rpath-link,.:/usr/local/lib:.:/usr/local/lib: -Wl,--as-needed -llzma -llzo2 -lz -lstdc++ -lrt -lpthread -lm -lc ; \
| fi
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzma.so when searching for -llzma
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzma.a when searching for -llzma
| /usr/bin/ld: cannot find -llzma
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzo2.so when searching for -llzo2
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzo2.a when searching for -llzo2
| /usr/bin/ld: cannot find -llzo2
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libz.so when searching for -lz
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libz.a when searching for -lz
| /usr/bin/ld: cannot find -lz
| /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.7/libstdc++.so when searching for -lstdc++
| /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.7/libstdc++.a when searching for -lstdc++
| /usr/bin/ld: cannot find -lstdc++
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/librt.so when searching for -lrt
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/librt.a when searching for -lrt
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libpthread.so when searching for -lpthread
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libpthread.a when searching for -lpthread
| collect2: error: ld returned 1 exit status
| make[1]: *** [libkyotocabinet.so.16.13.0] Error 1
It's apparently because the configure script assumes that if it's
possible built a program using -m64, then it's the right thing to build
the library using this option:
| printf 'checking for 64-bit availability... '
| if printf 'main() {}' | $CC -xc -m64 -o config.tmp - >config.tmp 2>&1
| then
| MYCFLAGS="-m64 $MYCFLAGS"
| MYCXXFLAGS="-m64 $MYCXXFLAGS"
| printf 'yes'
| else
| printf 'no'
| fi
This is of course flawed assumption.
Jakub Wilk
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Version: 1.2.76-2
Severity: serious
Justification: fails to build from source
If gcc-multilib is installed on an i386 system, kyotocabinet FTBFS:
| if uname -a | egrep -i 'SunOS' > /dev/null ; \
| then \
| g++ -m64 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -fPIC -fsigned-char -g0 -O2 -Wno-unused-but-set-variable -Wno-unused-but-set-parameter -shared -Wl,-G,-h,libkyotocabinet.so.16 -o libkyotocabinet.so.16.13.0 \
| kcutil.o kcthread.o kcfile.o kccompress.o kccompare.o kcmap.o kcregex.o kcdb.o kcplantdb.o kcprotodb.o kcstashdb.o kccachedb.o kchashdb.o kcdirdb.o kctextdb.o kcpolydb.o kcdbext.o kclangc.o -Wl,-z,relro -L. -L/usr/lib/i386-linux-gnu -L/usr/local/lib -Wl,-rpath-link,.:/usr/local/lib:.:/usr/local/lib: -Wl,--as-needed -llzma -llzo2 -lz -lstdc++ -lrt -lpthread -lm -lc ; \
| else \
| g++ -m64 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -fPIC -fsigned-char -g0 -O2 -Wno-unused-but-set-variable -Wno-unused-but-set-parameter -shared -Wl,-soname,libkyotocabinet.so.16 -o libkyotocabinet.so.16.13.0 \
| kcutil.o kcthread.o kcfile.o kccompress.o kccompare.o kcmap.o kcregex.o kcdb.o kcplantdb.o kcprotodb.o kcstashdb.o kccachedb.o kchashdb.o kcdirdb.o kctextdb.o kcpolydb.o kcdbext.o kclangc.o -Wl,-z,relro -L. -L/usr/lib/i386-linux-gnu -L/usr/local/lib -Wl,-rpath-link,.:/usr/local/lib:.:/usr/local/lib: -Wl,--as-needed -llzma -llzo2 -lz -lstdc++ -lrt -lpthread -lm -lc ; \
| fi
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzma.so when searching for -llzma
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzma.a when searching for -llzma
| /usr/bin/ld: cannot find -llzma
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzo2.so when searching for -llzo2
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/liblzo2.a when searching for -llzo2
| /usr/bin/ld: cannot find -llzo2
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libz.so when searching for -lz
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libz.a when searching for -lz
| /usr/bin/ld: cannot find -lz
| /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.7/libstdc++.so when searching for -lstdc++
| /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.7/libstdc++.a when searching for -lstdc++
| /usr/bin/ld: cannot find -lstdc++
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/librt.so when searching for -lrt
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/librt.a when searching for -lrt
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libpthread.so when searching for -lpthread
| /usr/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libpthread.a when searching for -lpthread
| collect2: error: ld returned 1 exit status
| make[1]: *** [libkyotocabinet.so.16.13.0] Error 1
It's apparently because the configure script assumes that if it's
possible built a program using -m64, then it's the right thing to build
the library using this option:
| printf 'checking for 64-bit availability... '
| if printf 'main() {}' | $CC -xc -m64 -o config.tmp - >config.tmp 2>&1
| then
| MYCFLAGS="-m64 $MYCFLAGS"
| MYCXXFLAGS="-m64 $MYCXXFLAGS"
| printf 'yes'
| else
| printf 'no'
| fi
This is of course flawed assumption.
Jakub Wilk
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Similar topics
Make your own search :
Tags
Create a new topic
Follow the discussion
1 reply
Make a reply
May 19th, 2013 - 4:43 AM ET
Join now


Replies