[Debian-med-packaging] Bug#907007: kmer FTBFS on arm64: recompile with -fPIC

Adrian Bunk bunk at debian.org
Thu Aug 23 03:16:16 BST 2018


Source: kmer
Version: 0~20150903+r2013-3
Severity: serious
Tags: patch ftbfs buster sid

https://tests.reproducible-builds.org/debian/rb-pkg/buster/arm64/kmer.html
https://buildd.debian.org/status/fetch.php?pkg=kmer&arch=arm64&ver=0~20150903%2Br2013-4&stamp=1533471604&raw=0

...
rm -f seatac/filter-heavychains.so && g++ -Wl,-z,relro -Wl,-z,now -shared  -o seatac/filter-heavychains.so seatac/filter-heavychains.o seatac/heavychains.o -pthread -ldl -lm
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8x_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: seatac/heavychains.o: in function `StrandPair::process()':
./seatac/heavychains.H:410:(.text+0x8f0): dangerous relocation: unsupported relocation
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8y_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: ./seatac/heavychains.H:410:(.text+0xd14): dangerous relocation: unsupported relocation
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8y_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: ./seatac/heavychains.H:406:(.text+0x1224): dangerous relocation: unsupported relocation
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8y_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: ./seatac/heavychains.H:410:(.text+0x26c0): dangerous relocation: unsupported relocation
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8y_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: seatac/heavychains.o: in function `DPTree::sort_nodes(DPTree::kd_node)':
./seatac/heavychains.H:410:(.text._ZN6DPTree10sort_nodesENS_7kd_nodeE[_ZN6DPTree10sort_nodesENS_7kd_nodeE]+0x40): dangerous relocation: unsupported relocation
/usr/bin/ld: seatac/heavychains.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_Z8x_comparPKvS0_' which may bind externally can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: ./seatac/heavychains.H:410:(.text._ZN6DPTree10sort_nodesENS_7kd_nodeE[_ZN6DPTree10sort_nodesENS_7kd_nodeE]+0x44): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
make[2]: *** [Make.rules:180: seatac/filter-heavychains.so] Error 1


Fix is attached.
-------------- next part --------------
Description: Use the same compile flags in all Linux builds, and include -fPIC
 atac .so were built without -fPIC on !amd64/ia64.
Author: Adrian Bunk <bunk at debian.org>

--- kmer-0~20150903+r2013.orig/configure.sh
+++ kmer-0~20150903+r2013/configure.sh
@@ -57,12 +57,12 @@ if [ "x$target" = "x" ] ; then
       ;;
     Linux)
       target="Linux-i686$opts"
-      if [ `uname -m` = "x86_64" ] ; then
-        target="Linux-amd64$opts"
-      fi
-      if [ `uname -m` = "ia64" ] ; then
-        target="Linux-ia64$opts"
-      fi
+      #if [ `uname -m` = "x86_64" ] ; then
+      #  target="Linux-amd64$opts"
+      #fi
+      #if [ `uname -m` = "ia64" ] ; then
+      #  target="Linux-ia64$opts"
+      #fi
       ;;
     SunOS)
       target="solaris$opts"
@@ -221,11 +221,11 @@ EOF
 #  Linux, optimized
 CC                := $CC
 SHLIB_FLAGS       := -shared
-CFLAGS_COMPILE    := -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessage-length=0 -Wall -Wno-char-subscripts -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
+CFLAGS_COMPILE    := -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessage-length=0 -Wall -Wno-char-subscripts -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
 CLDFLAGS          := -L/usr/local/lib
 CLIBS             := -pthread -ldl
 CXX               := $CXX
-CXXFLAGS_COMPILE  := -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessage-length=0 -Wall -Wno-char-subscripts -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
+CXXFLAGS_COMPILE  := -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessage-length=0 -Wall -Wno-char-subscripts -funroll-loops -fexpensive-optimizations -finline-functions -fomit-frame-pointer
 CXXLDFLAGS        := -L/usr/local/lib
 CXXLIBS           := -pthread -ldl
 ARFLAGS           := ruvs
@@ -350,7 +350,7 @@ EOF
     echo "          tru64, compaq             Tru64, optimized"
     echo "          tru64-debug, compaq-debug Tru64, debug, warnings, trapuv"
     echo ""
-    echo "          linux                     Linux, i686, optimized"
+    echo "          linux                     Linux, optimized"
     echo "          linux64                   Linux, Opteron, optimized"
     echo ""
     echo "          solaris                   Solaris, gcc, optimized (STALE)"


More information about the Debian-med-packaging mailing list