Hi,
the message "dlopen of .../pl-tai.so failed with error libplstream.so:
cannot open shared object file: No such file or directory" is not
actually linked to the FTBFS as far as I understood : the same error
message happens on other architecture builds, but the install works.
The dlopen with RTLD_GLOBAL flag of pl-tai.so just doesn't find the
libplstream.so
in the path as it is. For this message to disappear, one need to set the
LD_LIBRARY_PATH to the same as YAPLIBDIR.
On debomatic-powerpc the package built fine, so that bug may also depend on
other things.
On ppc64el, yap is just looping in some mmap/munmap related to allocation code :
(gdb) bt
#0 0x3fffb784b768 in munmap () from /lib/powerpc64le-linux-gnu/libc.so.6
#1 0x20043d6c in ExtendWorkSpace (s=3604480, fixed_allocation=16) at
../C/alloc.c:1143
#2 0x20044b08 in Yap_ExtendWorkSpaceThroughHole (s=3604480) at
../C/alloc.c:1606
#3 0x200b21fc in execute_growstack (size0=524288, from_trail=0,
in_parser=0, old_trp=0x0, tksp=0x0, vep=0x0) at ../C/grow.c:1493
#4 0x200b2570 in growstack (size=524288) at ../C/grow.c:1604
#5 0x200b3374 in Yap_growstack (size=) at
../C/grow.c:1471
#!/usr/bin/make -f
#6 0x200ba274 in call_gc (gc_lim=4096, predarity=0,
current_env=0x10a33818, nextop=0x101ce7e0) at ../C/heapgc.c:4009
#7 0x200ba52c in Yap_gc (predarity=,
current_env=, nextop=) at ../C/heapgc.c:4035
#8 0x20024ac0 in Yap_absmi (inp=) at ../C/absmi.c:2957
#9 0x2008d874 in exec_absmi (top=1) at ../C/exec.c:1007
#10 0x2008de98 in do_goal (t=268551041, CodeAdr=0x100740e0, arity=0,
pt=0x0, top=1) at ../C/exec.c:1074
#11 0x2009a244 in Yap_RunTopGoal (t=268551041) at ../C/exec.c:1292
#12 0x2001bdf4 in YAP_RunGoalOnce (t=) at
../C/c_interface.c:2037
#13 0x20016cdc in do_top_goal (Goal=268551041) at ../console/yap.c:116
#14 exec_top_level (iap=0x3210, BootMode=) at
../console/yap.c:711
#15 main (argc=, argv=) at ../console/yap.c:752
Redhat seemed to have that same issue :
https://sourceforge.net/p/yap/mailman/message/33828905/
and using --enable-use-malloc helped.
So here is a patch that makes the build use that option for powerpc and ppc64el
(it
should work on ppc64, but this arch is not enabled for yap and I wanted the
patch
to be minimal).
F.
diff -Nru yap-6.2.2/debian/changelog yap-6.2.2/debian/changelog
--- yap-6.2.2/debian/changelog 2015-07-14 22:05:03.0 +0200
+++ yap-6.2.2/debian/changelog 2017-09-20 17:35:47.0 +0200
@@ -1,3 +1,11 @@
+yap (6.2.2-6.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS on powerpc/ppc64el : disable private malloc :
+https://bugzilla.redhat.com/show_bug.cgi?id=1142068
+
+ -- Frédéric Bonnard Wed, 20 Sep 2017 15:35:47
+
+
yap (6.2.2-6) sid; urgency=medium
* d/control: add architectures arm64, ppc64el (closes: #791968)
diff -Nru yap-6.2.2/debian/rules yap-6.2.2/debian/rules
--- yap-6.2.2/debian/rules 2015-07-14 22:05:03.0 +0200
+++ yap-6.2.2/debian/rules 2017-09-20 17:35:47.0 +0200
@@ -11,6 +11,11 @@
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+ifneq (,$(findstring $(DEB_HOST_ARCH), powerpc ppc64el))
+ configure_flags = --enable-use-malloc
+endif
configure: config-stamp
@@ -27,6 +32,7 @@
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
+ $(configure_flags) \
CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,relro"
touch config-stamp
pgpLJ_SuWE7Hb.pgp
Description: PGP signature