flathub / io.qt.qtwebengine.BaseApp

9 stars 13 forks source link

Linkage issue on the 5.15-22.08 branch #119

Closed liushuyu closed 3 months ago

liushuyu commented 1 year ago

Hi there,

I am a downstream application developer that uses this base image.

Unfortunately, we are having issues building our application with 5.15-22.08 branch. The build log is as follows:

/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_erase(unsigned long, unsigned long)@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::rfind(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::copy(char*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(unsigned long, unsigned long, char const*) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_not_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve()@GLIBCXX_3.4.29'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::pop_back()@GLIBCXX_3.4.21'
/usr/lib/gcc/x86_64-unknown-linux-gnu/12.1.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /app/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5.15.10: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21'
collect2: error: ld returned 1 exit status

I suspect the KDE runtime has probably changed since last you updated this base image. Can you try triggering a rebuild against the current KDE runtime 5.15-22.08 branch? Thank you!

liushuyu commented 1 year ago

Hi, is this repository still actively maintained?

hfiguiere commented 1 year ago

yes it is actively maintained.

hfiguiere commented 1 year ago

but the PR you link to doesn't even change the runtime, so I'm not sure why you complain.

liushuyu commented 1 year ago

but the PR you link to doesn't even change the runtime, so I'm not sure why you complain.

Ah, sorry about that. I think it's a GitHub bug where if a revert commit exists in the main branch, the reverted commit in the PR will be discarded. I have rebased that PR in my repository to fix this issue.

hfiguiere commented 1 year ago

Maybe, for starter not overriding LDFLAGS in the build-options

liushuyu commented 1 year ago

Maybe, for starter not overriding LDFLAGS in the build-options

Thank you for your advice! I will try it and see if the issue would be resolved.

liushuyu commented 1 year ago

Sorry, still does not work. After removing the LDFLAG override, the issue remains the same: https://buildbot.flathub.org/#/builders/26/builds/508/steps/8/logs/stdio.

What should I do to diagnose this further?

liushuyu commented 1 year ago

Hi, any updates for this? How can I help you to further debug this issue?

liushuyu commented 1 year ago

Ping? What should I do to help you debug this issue better? Or does the 5.15-22.08 branch no longer supported?

bbhtt commented 8 months ago

Is this still an issue, can you please check? My guess is, it is due to different c++ standards used for the webengine library and yuzu and some gcc change made them incompatible. I can see yuzu uses c++20 but I have no idea what is used by Qtwebengine.

liushuyu commented 8 months ago

Is this still an issue, can you please check? My guess is, it is due to different c++ standards used for the webengine library and yuzu and some gcc change made them incompatible. I can see yuzu uses c++20 but I have no idea what is used by Qtwebengine.

Yes, it's still an issue. I have a fresh build in https://github.com/flathub/org.yuzu_emu.yuzu/pull/1269. You can take a look.

bbhtt commented 8 months ago

It seems qtwebengine is using c++14 https://github.com/qt/qtwebengine/blob/21ddfe15f638a36160cb11d00639c3126c1aed7c/src/core/core_common.pri#L19, will it be possible to build yuzu with that to check?

The 6.5 branch uses c++17.