Date: Wed, 29 May 2019 08:09:11 +0000 From: bugzilla-noreply@freebsd.org To: powerpc@FreeBSD.org Subject: [Bug 237208] java/openjdk11: port to powerpc64 Message-ID: <bug-237208-25139-yP8tb3R3I3@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-237208-25139@https.bugs.freebsd.org/bugzilla/> References: <bug-237208-25139@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D237208 Mark Millard <marklmi26-fbsd@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marklmi26-fbsd@yahoo.com --- Comment #55 from Mark Millard <marklmi26-fbsd@yahoo.com> --- Comment on attachment 204682 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D204682 Changes for openjdk11/Makefile (In reply to Greg Lewis from comment #54) If powerpc64 FreeBSD is constructed such that base/binutils and base/gcc supply the system compiler, it will still be using the system libc++ / libcxxrt instead of libstdc++ , despite a gcc compiler type. That will not mix well with, say, lang/gcc8 based materials that are based on its libstdc++ when some involved libraries from ports are built by the system cc/c++ and involve c++ library code. It is the same sort of mix occurs for system-clang-8 as the system cc/c++ when some ports libraries involving c++ library code are built by clang and others are built byt the likes of lang/gcc8 via USE_GCC is use. A recent example was (note the use of both libstdc++ and libc++ / libcxxrt in the first two): # ldd /usr/local/lib/qt5/bin/qlalr /usr/local/lib/qt5/bin/qlalr: libQt5Core.so.5 =3D> /usr/local/lib/qt5/libQt5Core.so.5 (0x8100b100= 0) libstdc++.so.6 =3D> /usr/local/lib/gcc8/libstdc++.so.6 (0x81085e000) libc.so.7 =3D> /lib/libc.so.7 (0x810ab7000) libkvm.so.7 =3D> /lib/libkvm.so.7 (0x810e1c000) libprocstat.so.1 =3D> /usr/lib/libprocstat.so.1 (0x810e41000) libexecinfo.so.1 =3D> /usr/lib/libexecinfo.so.1 (0x810e5e000) libz.so.6 =3D> /lib/libz.so.6 (0x810e71000) libicui18n.so.64 =3D> /usr/local/lib/libicui18n.so.64 (0x810e9d000) libicuuc.so.64 =3D> /usr/local/lib/libicuuc.so.64 (0x8112ac000) libpcre2-16.so.0 =3D> /usr/local/lib/libpcre2-16.so.0 (0x81151e000) libglib-2.0.so.0 =3D> /usr/local/lib/libglib-2.0.so.0 (0x8115ce000) libm.so.5 =3D> /lib/libm.so.5 (0x81172e000) libgcc_s.so.1 =3D> /usr/local/lib/gcc8/libgcc_s.so.1 (0x811765000) libthr.so.3 =3D> /lib/libthr.so.3 (0x81178e000) libelf.so.2 =3D> /lib/libelf.so.2 (0x8117d7000) libutil.so.9 =3D> /lib/libutil.so.9 (0x811804000) libicudata.so.64 =3D> /usr/local/lib/libicudata.so.64 (0x81182e000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x81183f000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x811958000) libiconv.so.2 =3D> /usr/local/lib/libiconv.so.2 (0x81198a000) libpcre.so.1 =3D> /usr/local/lib/libpcre.so.1 (0x811a9c000) libintl.so.8 =3D> /usr/local/lib/libintl.so.8 (0x811b45000) # ldd /usr/local/lib/qt5/libQt5Core.so.5 /usr/local/lib/qt5/libQt5Core.so.5: libkvm.so.7 =3D> /lib/libkvm.so.7 (0x8113ad000) libprocstat.so.1 =3D> /usr/lib/libprocstat.so.1 (0x8113d2000) libexecinfo.so.1 =3D> /usr/lib/libexecinfo.so.1 (0x8113ef000) libz.so.6 =3D> /lib/libz.so.6 (0x811402000) libicui18n.so.64 =3D> /usr/local/lib/libicui18n.so.64 (0x81142e000) libicuuc.so.64 =3D> /usr/local/lib/libicuuc.so.64 (0x81183d000) libpcre2-16.so.0 =3D> /usr/local/lib/libpcre2-16.so.0 (0x811aaf000) libglib-2.0.so.0 =3D> /usr/local/lib/libglib-2.0.so.0 (0x811b5f000) libstdc++.so.6 =3D> /usr/local/lib/gcc8/libstdc++.so.6 (0x811cbf000) libm.so.5 =3D> /lib/libm.so.5 (0x811f18000) libgcc_s.so.1 =3D> /usr/local/lib/gcc8/libgcc_s.so.1 (0x811f4f000) libthr.so.3 =3D> /lib/libthr.so.3 (0x811f78000) libc.so.7 =3D> /lib/libc.so.7 (0x810071000) libelf.so.2 =3D> /lib/libelf.so.2 (0x811fc1000) libutil.so.9 =3D> /lib/libutil.so.9 (0x811fee000) libicudata.so.64 =3D> /usr/local/lib/libicudata.so.64 (0x812018000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x812029000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x812142000) libiconv.so.2 =3D> /usr/local/lib/libiconv.so.2 (0x812174000) libpcre.so.1 =3D> /usr/local/lib/libpcre.so.1 (0x812286000) libintl.so.8 =3D> /usr/local/lib/libintl.so.8 (0x81232f000) The libc++/libcxxrt use comes from libraries built with the system c++ compiler toolchain instead of a lang/gcc* via USE_GCC: # ldd /usr/local/lib/libicui18n.so.64 /usr/local/lib/libicui18n.so.64: libicuuc.so.64 =3D> /usr/local/lib/libicuuc.so.64 (0x81100f000) libicudata.so.64 =3D> /usr/local/lib/libicudata.so.64 (0x811281000) libthr.so.3 =3D> /lib/libthr.so.3 (0x811292000) libm.so.5 =3D> /lib/libm.so.5 (0x8112db000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x811312000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x81142b000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x81145d000) libc.so.7 =3D> /lib/libc.so.7 (0x810071000) # ldd /usr/local/lib/libicuuc.so.64 /usr/local/lib/libicuuc.so.64: libicudata.so.64 =3D> /usr/local/lib/libicudata.so.64 (0x810e72000) libthr.so.3 =3D> /lib/libthr.so.3 (0x810e83000) libm.so.5 =3D> /lib/libm.so.5 (0x810ecc000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x810f03000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x81101c000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x81104e000) libc.so.7 =3D> /lib/libc.so.7 (0x810071000) By contrast, /usr/local/lib/qt5/libQt5Core.so.5 were built via a lang/gcc* . As was /usr/local/lib/qt5/bin/qlalr . The end result was that /usr/local/lib/qt5/bin/qlalr crashed very early in its startup. However, even the gcc 4.2.1 based system toolchain has the issue of the version mismatch of its libstdc++ vs. one from the likes of a lang/gcc* . This type of mismatch might lead to problems as well. All the involved libraries that in turn involve a c++ standard library need to have been built by the same toolchain (including an appropriate vintage match). This is so they are all using the same c++ standard library. (Messy.) --=20 You are receiving this mail because: You are on the CC list for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-237208-25139-yP8tb3R3I3>