USE_QT= . . . webengine . . . and libQt5WebEngine.so.5 vs. libQt5WebEngineCore.so.5 dependency failures in builds

Mark Millard marklmi at yahoo.com
Sat May 31 00:25:22 BST 2025


On May 30, 2025, at 14:18, Tatsuki Makino <tatsuki_makino at hotmail.com> wrote:

> Hello.

Hello again.

> On 5/30/25 16:50, Robert Clausecker wrote:
>> Am Wed, May 28, 2025 at 09:21:06PM -0700 schrieb Mark Millard:
>>> Looking . . .
>>> 
>>> # file /usr/local/lib/qt5/libQt5WebEngineCore*
>>> /usr/local/lib/qt5/libQt5WebEngineCore.prl:        ASCII text, with very long lines (770)
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so:         symbolic link to libQt5WebEngineCore.so.5.15.18
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so.5:       symbolic link to libQt5WebEngineCore.so.5.15.18
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so.5.15:    symbolic link to libQt5WebEngineCore.so.5.15.18
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so.5.15.18: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=9fbd42a76a98b569f691f96e85cb5dad1fc5ca81, stripped
>>> 
>>> That last is not correct for FreeBSD. Using libc.so.7 as an example:
>>> 
>>> # file /lib/libc.so.7
>>> /lib/libc.so.7: ELF 64-bit LSB shared object, ARM aarch64, version 1 (FreeBSD), dynamically linked, for FreeBSD 14.2, stripped
>>> 
>>> Note the "(FreeBSD)" and "for FreeBSD 14.2" vs.  the "(SYSV)"
>>> and the lack of an indication of a FreeBSD version.
>>> 
>>> By content, the wrong kind of file was built. More files have
>>> that problem:
>>> 
>>> 
>>> Lack of FreeBSD:
>>> # file /usr/local/lib/qt5/*.so* | grep -v -e FreeBSD -e "symbolic link to "
>>> /usr/local/lib/qt5/libQt5Pdf.so.5.15.18:              ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7fa8f7cb66ef21beab52258eeba682910073ad4c, stripped
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so.5.15.18:    ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=9fbd42a76a98b569f691f96e85cb5dad1fc5ca81, stripped
>>> 
>>> Use of SYSV (with or without FreeBSD)
>>> # file /usr/local/lib/qt5/*.so* | grep SYSV
>>> /usr/local/lib/qt5/libQt5Pdf.so.5.15.18:              ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7fa8f7cb66ef21beab52258eeba682910073ad4c, stripped
>>> /usr/local/lib/qt5/libQt5PdfWidgets.so.5.15.18:       ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, for FreeBSD 14.2, stripped
>>> /usr/local/lib/qt5/libQt5WebEngine.so.5.15.18:        ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, for FreeBSD 14.2, stripped
>>> /usr/local/lib/qt5/libQt5WebEngineCore.so.5.15.18:    ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=9fbd42a76a98b569f691f96e85cb5dad1fc5ca81, stripped
>>> /usr/local/lib/qt5/libQt5WebEngineWidgets.so.5.15.18: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, for FreeBSD 14.2, stripped
>>> 
>>> (I am not sure of the status for the combination
>>> "(SYSV)" with "for FreeBSD 14.2".)
>> This can be worked around using the brandelf(1) tool on the installed
>> library.  May be worth adding as a post-install step?
> 
> Why are they being transformed into something like Linux binaries?
> I compared the qt5-webengine-5.15.18p7_1.log of ampere3/142arm64-default and beefy22/142amd64-default after running them through sort -u.
> 
> --- /tmp/qt5-webengine-5.15.18p7_1-amd64.log.txt 2025-05-30 20:39:51.995515000 +0000
> +++ /tmp/qt5-webengine-5.15.18p7_1-arm64.log.txt 2025-05-30 20:39:30.192763000 +0000
> . . .
> 
> 
> Is there something that causes a binary difference in such variations?

I'm going to avoid repeating the long lines.

The 3 "-c++" command lines for targeting:

-o libQt5PdfWidgets.so.5.15.18
-o libQt5WebEngine.so.5.15.18
-o libQt5WebEngineWidgets.so.5.15.18

contain the text: -Wl,-Bsymbolic-functions

The 3 "+c++" lines do not containing that text.

Otherwise the -/+ lines match from what I've seen.
However:

# file /usr/local/lib/qt5/libQt5WebEngineWidgets.so.5.15.18
/usr/local/lib/qt5/libQt5WebEngineWidgets.so.5.15.18: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, for FreeBSD 15.0 (1500040), stripped

so only 2 of the 3 ended up odd. So -Wl,-Bsymbolic-functions
is not likely to be the cause here.


One thing of note is that while 142arm64-default fails "pkg add" for
multiple-media/openshot's build-depends, main-arm64-default builds
multiple-media/openshot just fine.

That suggests that the difference between:

142arm64-default (134arm64-default would also be 18.* based, as I understand):
# c++ -v
FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: aarch64-unknown-freebsd14.2
Thread model: posix
InstalledDir: /usr/bin

(clang 18.*) vs. (clang 19.*)

main-arm64-default:
# c++ -v
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
Target: aarch64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin
Build config: +assertions

is contributing. It is the same ports tree, up to
detailed timing of when the ports are checked out
for main-arm64 (ampere2) vs. for *arm64-default
(ampere3).

I'll note that:

https://cgit.freebsd.org/src/log/contrib/llvm-project?h=releng/14.3/

shows that releng/14.3 will have 19.1.7 instead of
an 18.* . Similarly, releng/13.5 has 19.1.7 already.


Side note for armv7:
main-armv7-default (for example) fails to even build qt5-webengine
for distinct issues:

../../../../kde-qtwebengine-5.15.18p7/src/3rdparty/chromium/base/third_party/double_conversion/double-conversion/bignum-dtoa.cc:28:10: fatal error: 'cmath' file not found
28 | #include <cmath>
| ^~~~~~~
1 error generated.
. . .
../../../../kde-qtwebengine-5.15.18p7/src/3rdparty/chromium/base/third_party/double_conversion/double-conversion/bignum.cc:28:10: fatal error: 'algorithm' file not found
28 | #include <algorithm>
| ^~~~~~~~~~~
1 error generated.


===
Mark Millard
marklmi at yahoo.com



More information about the kde-freebsd mailing list