powerpc64 context: x11-toolkits/qt5-declarative fails to build in poudriere: /usr/local/lib/qt5/bin/qlalr segmentation faults in std::type_info::~type_info() () from /usr/local/lib/gcc8/libstdc++.so.6

Mark Millard marklmi at yahoo.com
Thu May 23 20:32:05 UTC 2019


The poudriere bulk run that tried to build x11-toolkits/qt5-declarative
got:

--- qqmljsgrammar.cpp ---
/usr/local/lib/qt5/bin/qlalr --no-debug --qt parser/qqmljs.g
Segmentation fault (core dumped)
*** [qqmljsgrammar.cpp] Error code 139

make[3]: stopped in /wrkdirs/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.2/src/qml
1 error

Installing qt5-core and manually running under gdb from
an expansion of the bulk's tar of the failure, I was able
to get a backtrace:

(gdb) run --no-debug --qt parser/qqmljs.g
Starting program: /usr/local/bin/qlalr --no-debug --qt parser/qqmljs.g
process 26823 is executing new program: /usr/local/lib/qt5/bin/qlalr
. . . (text about  auto-loading has been declined and such) . . .
Program received signal SIGSEGV, Segmentation fault.
0x0000000810a96be0 in std::type_info::~type_info() () from /usr/local/lib/gcc8/libstdc++.so.6
(gdb) bt
#0  0x0000000810a96be0 in std::type_info::~type_info() () from /usr/local/lib/gcc8/libstdc++.so.6
#1  0x000000081092152c in __cxxabiv1::__dynamic_cast (src_ptr=0x810ab57d0 <(anonymous namespace)::ctype_c>, src_type=0x810a8eaa0 <typeinfo for std::locale::facet>, 
    dst_type=0x810a8fb18 <typeinfo for std::ctype<char>>, src2dst=0) at /wrkdirs/usr/ports/lang/gcc8/work/gcc-8.3.0/libstdc++-v3/libsupc++/dyncast.cc:71
#2  0x00000008109df908 in std::has_facet<std::ctype<char> > (__loc=...) at /wrkdirs/usr/ports/lang/gcc8/work/.build/powerpc64-portbld-freebsd13.0/libstdc++-v3/include/bits/locale_classes.tcc:104
#3  0x00000008109cb474 in std::basic_ios<char, std::char_traits<char> >::_M_cache_locale (this=0x810ab48c8 <std::cout+8>, __loc=...)
    at /wrkdirs/usr/ports/lang/gcc8/work/.build/powerpc64-portbld-freebsd13.0/libstdc++-v3/include/bits/basic_ios.tcc:157
#4  0x00000008109cbad0 in std::basic_ios<char, std::char_traits<char> >::init (this=0x810ab48c8 <std::cout+8>, __sb=0x810ab36f8 <__gnu_internal::buf_cout_sync>)
    at /wrkdirs/usr/ports/lang/gcc8/work/.build/powerpc64-portbld-freebsd13.0/libstdc++-v3/include/bits/basic_ios.tcc:126
#5  0x000000081093e644 in std::basic_ostream<char, std::char_traits<char> >::basic_ostream (__sb=<optimized out>, this=<optimized out>, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at /wrkdirs/usr/ports/lang/gcc8/work/.build/powerpc64-portbld-freebsd13.0/libstdc++-v3/include/bits/basic_ios.h:460
#6  std::ios_base::Init::Init (this=<optimized out>) at /wrkdirs/usr/ports/lang/gcc8/work/gcc-8.3.0/libstdc++-v3/src/c++98/ios_init.cc:91
#7  std::ios_base::Init::Init (this=<optimized out>) at /wrkdirs/usr/ports/lang/gcc8/work/gcc-8.3.0/libstdc++-v3/src/c++98/ios_init.cc:78
#8  0x000000001000334c in __static_initialization_and_destruction_0 (__initialize_p=__initialize_p at entry=1, __priority=<optimized out>, __priority at entry=65535) at compress.cpp:273
#9  0x0000000010004c2c in _GLOBAL__sub_I_compress.cpp(void) () at compress.cpp:273
#10 0x000000081005dfa0 in objlist_call_init (list=<optimized out>, lockstate=<optimized out>) at /usr/src/libexec/rtld-elf/rtld.c:2728
#11 0x000000081005c830 in _rtld (sp=<optimized out>, exit_proc=<optimized out>, objp=<optimized out>) at /usr/src/libexec/rtld-elf/rtld.c:765
#12 0x000000081005a240 in ._rtld_start () at /usr/src/libexec/rtld-elf/powerpc64/rtld_start.S:83
Backtrace stopped: frame did not save the PC



NOTE: In order to have built devel/qt5-core I used a patch
to make sure that all the %%LOCALBASE%% strings were replaced
(otherwise in the powerpc64 system clang 8 based world the
devel/qt5-core build failed from -I%%LOCALBASE%%... use):

Index: /usr/ports/Mk/Uses/qt-dist.mk
===================================================================
--- /usr/ports/Mk/Uses/qt-dist.mk	(revision 501994)
+++ /usr/ports/Mk/Uses/qt-dist.mk	(working copy)
@@ -251,7 +251,7 @@
.if ${_QT_VER:M5}
post-patch: gcc-post-patch
gcc-post-patch:
-	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
+	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \
		${WRKSRC}/mkspecs/common/gcc-base.conf \
		${WRKSRC}/mkspecs/freebsd-g++/qmake.conf
	${REINPLACE_CMD} 's|%%GCC_DEFAULT%%|${GCC_DEFAULT}|g' \
@@ -298,7 +298,7 @@
# ports/194088.
post-patch: qtbase-post-patch
qtbase-post-patch:
-	${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \
		${WRKSRC}/mkspecs/common/bsd/bsd.conf \
		${WRKSRC}/mkspecs/freebsd-clang/qmake.conf


(So having the missing g added but not having the optional -e
usage in the other %%LOCALBASE%% related command. The -e
status is optional here: only one command to sed sed command
in each sed command. The additional g is the important part.)


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-ports mailing list