[I adjusted the Subject line to give more context.] [/usr/local/lib/qt5/bin/qlalr and /usr/local/lib/qt5/libQt5Core.so.5 overall use each of the following (somewhat indirectly) in my system-clang-8-based powerpc64 context: /usr/local/lib/gcc8/libstdc++.so.6 /usr/lib/libc++.so.1 /lib/libcxxrt.so.1 ]
On 2019-May-23, at 21:09, Mark Millard <marklmi at yahoo.com> wrote: [Merely adding the extra instruction was not the right idea for what the problem is.] On 2019-May-23, at 20:10, Mark Millard <marklmi at yahoo.com> wrote: > [I tried rebuilding things based on a full-bootstrap > build of lang/gcc8 instead. It made no difference.] > > On 2019-May-23, at 14:17, Mark Millard <marklmi at yahoo.com> wrote: > >> [It looks like code generation missed a level of indirection >> to me.] >> >>> On 2019-May-23, at 13:46, Mark Millard <marklmi at yahoo.com> wrote: >>> >>> [I should have listed uname -apKU output and such.] >>> >>> On 2019-May-23, at 13:21, Mark Millard <mark...@yahoo.com> wrote: >>> >>>> 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@entry=1, __priority=<optimized out>, >>>> __priority@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.) >>> >>> I should have listed: >>> . . . (history omitted) . . . Remembering that my context is system-clang-8 based world on powerpc64, not gcc 4.2.1 . . . /usr/ports/Mk/Uses/qt-dist.mk has: . if ${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64 _EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_g++-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf USE_GCC= yes . endif That is no matter what the system compiler is for powerpc64. This lead to the below mixing of libstdc++.so.6 and libc++/libcxxrt . . . qlalr indicates use of both libstdc++ and libc++/libcxxrt : # ldd /usr/local/lib/qt5/bin/qlalr /usr/local/lib/qt5/bin/qlalr: libQt5Core.so.5 => /usr/local/lib/qt5/libQt5Core.so.5 (0x8100b1000) libstdc++.so.6 => /usr/local/lib/gcc8/libstdc++.so.6 (0x81085e000) libc.so.7 => /lib/libc.so.7 (0x810ab7000) libkvm.so.7 => /lib/libkvm.so.7 (0x810e1c000) libprocstat.so.1 => /usr/lib/libprocstat.so.1 (0x810e41000) libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x810e5e000) libz.so.6 => /lib/libz.so.6 (0x810e71000) libicui18n.so.64 => /usr/local/lib/libicui18n.so.64 (0x810e9d000) libicuuc.so.64 => /usr/local/lib/libicuuc.so.64 (0x8112ac000) libpcre2-16.so.0 => /usr/local/lib/libpcre2-16.so.0 (0x81151e000) libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x8115ce000) libm.so.5 => /lib/libm.so.5 (0x81172e000) libgcc_s.so.1 => /usr/local/lib/gcc8/libgcc_s.so.1 (0x811765000) libthr.so.3 => /lib/libthr.so.3 (0x81178e000) libelf.so.2 => /lib/libelf.so.2 (0x8117d7000) libutil.so.9 => /lib/libutil.so.9 (0x811804000) libicudata.so.64 => /usr/local/lib/libicudata.so.64 (0x81182e000) libc++.so.1 => /usr/lib/libc++.so.1 (0x81183f000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x811958000) libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x81198a000) libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x811a9c000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x811b45000) And so does libQt5Core.so.5 : # ldd /usr/local/lib/qt5/libQt5Core.so.5 /usr/local/lib/qt5/libQt5Core.so.5: libkvm.so.7 => /lib/libkvm.so.7 (0x8113ad000) libprocstat.so.1 => /usr/lib/libprocstat.so.1 (0x8113d2000) libexecinfo.so.1 => /usr/lib/libexecinfo.so.1 (0x8113ef000) libz.so.6 => /lib/libz.so.6 (0x811402000) libicui18n.so.64 => /usr/local/lib/libicui18n.so.64 (0x81142e000) libicuuc.so.64 => /usr/local/lib/libicuuc.so.64 (0x81183d000) libpcre2-16.so.0 => /usr/local/lib/libpcre2-16.so.0 (0x811aaf000) libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x811b5f000) libstdc++.so.6 => /usr/local/lib/gcc8/libstdc++.so.6 (0x811cbf000) libm.so.5 => /lib/libm.so.5 (0x811f18000) libgcc_s.so.1 => /usr/local/lib/gcc8/libgcc_s.so.1 (0x811f4f000) libthr.so.3 => /lib/libthr.so.3 (0x811f78000) libc.so.7 => /lib/libc.so.7 (0x810071000) libelf.so.2 => /lib/libelf.so.2 (0x811fc1000) libutil.so.9 => /lib/libutil.so.9 (0x811fee000) libicudata.so.64 => /usr/local/lib/libicudata.so.64 (0x812018000) libc++.so.1 => /usr/lib/libc++.so.1 (0x812029000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x812142000) libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x812174000) libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x812286000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x81232f000) It appears that the libc++/libcxxrt use comes from: # ldd /usr/local/lib/libicui18n.so.64 /usr/local/lib/libicui18n.so.64: libicuuc.so.64 => /usr/local/lib/libicuuc.so.64 (0x81100f000) libicudata.so.64 => /usr/local/lib/libicudata.so.64 (0x811281000) libthr.so.3 => /lib/libthr.so.3 (0x811292000) libm.so.5 => /lib/libm.so.5 (0x8112db000) libc++.so.1 => /usr/lib/libc++.so.1 (0x811312000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x81142b000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x81145d000) libc.so.7 => /lib/libc.so.7 (0x810071000) # ldd /usr/local/lib/libicuuc.so.64 /usr/local/lib/libicuuc.so.64: libicudata.so.64 => /usr/local/lib/libicudata.so.64 (0x810e72000) libthr.so.3 => /lib/libthr.so.3 (0x810e83000) libm.so.5 => /lib/libm.so.5 (0x810ecc000) libc++.so.1 => /usr/lib/libc++.so.1 (0x810f03000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x81101c000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x81104e000) libc.so.7 => /lib/libc.so.7 (0x810071000) === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"