Source: libkiwix
Version: 9.4.1+dfsg-1
Tags: patch
User: [email protected]
Usertags: ftcbfs

libkiwix fails to cross build from source for mipsel and mipsel only.
You can view recent attempts at http://crossqa.debian.net/src/libkiwix.
The mipsel builds end as follows:

| /usr/bin/mipsel-linux-gnu-g++  -o src/libkiwix.so.9.4.1 
src/libkiwix.so.9.4.1.p/meson-generated_.._.._static_kiwixlib-resources.cpp.o 
src/libkiwix.so.9.4.1.p/book.cpp.o src/libkiwix.so.9.4.1.p/bookmark.cpp.o 
src/libkiwix.so.9.4.1.p/library.cpp.o src/libkiwix.so.9.4.1.p/manager.cpp.o 
src/libkiwix.so.9.4.1.p/libxml_dumper.cpp.o 
src/libkiwix.so.9.4.1.p/opds_dumper.cpp.o 
src/libkiwix.so.9.4.1.p/downloader.cpp.o src/libkiwix.so.9.4.1.p/reader.cpp.o 
src/libkiwix.so.9.4.1.p/entry.cpp.o src/libkiwix.so.9.4.1.p/server.cpp.o 
src/libkiwix.so.9.4.1.p/searcher.cpp.o 
src/libkiwix.so.9.4.1.p/search_renderer.cpp.o 
src/libkiwix.so.9.4.1.p/subprocess.cpp.o src/libkiwix.so.9.4.1.p/aria2.cpp.o 
src/libkiwix.so.9.4.1.p/tools_base64.cpp.o 
src/libkiwix.so.9.4.1.p/tools_pathTools.cpp.o 
src/libkiwix.so.9.4.1.p/tools_regexTools.cpp.o 
src/libkiwix.so.9.4.1.p/tools_stringTools.cpp.o 
src/libkiwix.so.9.4.1.p/tools_networkTools.cpp.o 
src/libkiwix.so.9.4.1.p/tools_otherTools.cpp.o 
src/libkiwix.so.9.4.1.p/kiwixserve.cpp.o 
src/libkiwix.so.9.4.1.p/name_mapper.cpp.o 
src/libkiwix.so.9.4.1.p/server_byte_range.cpp.o 
src/libkiwix.so.9.4.1.p/server_etag.cpp.o 
src/libkiwix.so.9.4.1.p/server_request_context.cpp.o 
src/libkiwix.so.9.4.1.p/server_response.cpp.o 
src/libkiwix.so.9.4.1.p/server_internalServer.cpp.o 
src/libkiwix.so.9.4.1.p/subprocess_unix.cpp.o -Wl,--as-needed 
-Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libkiwix.so.9 -g 
-O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -Wl,-z,relro -Wl,-z,now -pthread 
/usr/lib/mipsel-linux-gnu/libicui18n.so /usr/lib/mipsel-linux-gnu/libicuuc.so 
/usr/lib/mipsel-linux-gnu/libicudata.so /usr/lib/mipsel-linux-gnu/libzim.so 
/usr/lib/mipsel-linux-gnu/liblzma.so /usr/lib/mipsel-linux-gnu/libzstd.so 
/usr/lib/mipsel-linux-gnu/libxapian.so /usr/lib/mipsel-linux-gnu/libpugixml.so 
/usr/lib/mipsel-linux-gnu/libcurl.so /usr/lib/mipsel-linux-gnu/libmicrohttpd.so 
/usr/lib/mipsel-linux-gnu/libz.so -Wl,--end-group
| /usr/lib/gcc-cross/mipsel-linux-gnu/10/../../../../mipsel-linux-gnu/bin/ld: 
src/libkiwix.so.9.4.1.p/server_request_context.cpp.o: in function 
`std::__atomic_base<unsigned long long>::fetch_add(unsigned long long, 
std::memory_order)':
| /usr/mipsel-linux-gnu/include/c++/10/bits/atomic_base.h:548: undefined 
reference to `__atomic_fetch_add_8'
| /usr/lib/gcc-cross/mipsel-linux-gnu/10/../../../../mipsel-linux-gnu/bin/ld: 
/usr/mipsel-linux-gnu/include/c++/10/bits/atomic_base.h:548: undefined 
reference to `__atomic_fetch_add_8'
| collect2: error: ld returned 1 exit status
| ninja: build stopped: subcommand failed.
| dh_auto_build: error: cd obj-mipsel-linux-gnu && LC_ALL=C.UTF-8 ninja -j1 -v 
returned exit code 1
| make: *** [debian/rules:5: binary-arch] Error 25
| dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit 
status 2

For using 8bit atomics, it should be linking -latomic. Please consider
applying the attached patch.

Helmut
--- libkiwix-9.4.1+dfsg/debian/changelog
+++ libkiwix-9.4.1+dfsg/debian/changelog
@@ -1,3 +1,10 @@
+libkiwix (9.4.1+dfsg-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS for mipsel: link -latomic. (Closes: #-1)
+
+ -- Helmut Grohne <[email protected]>  Fri, 11 Dec 2021 07:09:45 +0100
+
 libkiwix (9.4.1+dfsg-1) unstable; urgency=medium
 
   * New upstream version 9.4.1+dfsg
--- libkiwix-9.4.1+dfsg/debian/rules
+++ libkiwix-9.4.1+dfsg/debian/rules
@@ -1,6 +1,10 @@
 #!/usr/bin/make -f
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
+ifeq ((DEB_HOST_ARCH),mipsel)
+  export DEB_LDFLAGS_MAINT_APPEND=-latomic
+endif
+
 %:
        dh $@ --buildsystem=meson
 

Reply via email to