RESOLVED FIXED 246161
Fails to build to build on glibc versions less than 2.34 due to libdl link order
https://bugs.webkit.org/show_bug.cgi?id=246161
Summary Fails to build to build on glibc versions less than 2.34 due to libdl link order
oreo6391
Reported 2022-10-06 09:54:35 PDT
When trying to build the latest main commit of WebKit on a machine using glibc 2.32, I get the following linker error: [3008/3014] Linking CXX executable bin/MiniBrowser FAILED: bin/MiniBrowser : && /usr/bin/g++ -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -DNDEBUG -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -DNDEBUG -fdebug-prefix-map=/builddir/WebKit-c26298eec7436f5d085afa3a364db526f6d428fe/build=. -fno-strict-aliasing -fno-exceptions -fno-rtti -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,--disable-new-dtags Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/__/__/__/MiniBrowser/DerivedSources/BrowserMarshal.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserCellRendererVariant.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserDownloadsBar.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserSearchBox.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserSettingsDialog.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserTab.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/BrowserWindow.c.o Tools/MiniBrowser/gtk/CMakeFiles/MiniBrowser.dir/main.c.o -o bin/MiniBrowser /usr/lib64/libglib-2.0.so /usr/lib64/libsoup-3.0.so /usr/lib64/libgstreamer-1.0.so lib/libwebkit2gtk-4.1.so.0.3.0 /usr/lib64/libWPEBackend-fdo-1.0.so /usr/lib64/libgtk-3.so /usr/lib64/libgdk-3.so /usr/lib64/libz.so /usr/lib64/libpangocairo-1.0.so /usr/lib64/libpango-1.0.so /usr/lib64/libharfbuzz.so /usr/lib64/libatk-1.0.so /usr/lib64/libcairo-gobject.so /usr/lib64/libcairo.so /usr/lib64/libgdk_pixbuf-2.0.so lib/libjavascriptcoregtk-4.1.so.0.3.0 /usr/lib/libicudata.so /usr/lib/libicui18n.so /usr/lib/libicuuc.so -latomic -lpthread /usr/lib64/libxml2.so /usr/lib64/libsqlite3.so /usr/lib64/libxslt.so /usr/lib64/libOpenGL.so /usr/lib64/libGLX.so /usr/lib64/libEGL.so lib/libGLESv2.a -ldl lib/libANGLE.a /usr/lib64/liblcms2.so /usr/lib/libwoff2dec.so lib/libxdgmime.a /usr/lib/libcairo.so /usr/lib64/libfontconfig.so /usr/lib/libfreetype.so /usr/lib64/libharfbuzz.so /usr/lib64/libharfbuzz-icu.so /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so /usr/lib64/libgstallocators-1.0.so /usr/lib64/libgstapp-1.0.so /usr/lib64/libgstbase-1.0.so /usr/lib64/libgstreamer-1.0.so /usr/lib64/libgstpbutils-1.0.so /usr/lib64/libgstaudio-1.0.so /usr/lib64/libgsttranscoder-1.0.so /usr/lib64/libgsttag-1.0.so /usr/lib64/libgstvideo-1.0.so /usr/lib64/libgstgl-1.0.so /usr/lib64/libgstfft-1.0.so /usr/lib64/libsoup-3.0.so /usr/lib/libjpeg.so /usr/lib/libpng.so /usr/lib/libz.so /usr/lib/libopenjp2.so /usr/lib64/libwebpdemux.so /usr/lib64/libwebp.so /usr/lib64/libenchant-2.so /usr/lib64/libgio-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so -lsecret-1 -lgio-2.0 -lgobject-2.0 -lglib-2.0 /usr/lib64/libtasn1.so /usr/lib/libhyphen.so /usr/lib/libX11.so /usr/lib/libXcomposite.so /usr/lib/libXdamage.so /usr/lib/libXrender.so /usr/lib/libXt.so -lwayland-server -lwayland-egl -lwayland-client /usr/lib64/libwpe-1.0.so /usr/lib64/libmanette-0.2.so /usr/lib64/libseccomp.so /usr/lib64/libgbm.so /usr/lib64/libdrm.so && : /usr/bin/ld: lib/../Source/ThirdParty/ANGLE/CMakeFiles/ANGLE.dir/src/common/system_utils_posix.cpp.o: undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/bin/ld: /usr/lib64/gcc/x86_64-unknown-linux-gnu/10.2.1/../../../../lib64/libdl.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status This occurs because ${CMAKE_DL_LIBS} is missing here, which results in a link order error: https://github.com/WebKit/WebKit/blob/d257ea20c5996ada3c009a6a2f4a639f92c0e2ca/Source/ThirdParty/ANGLE/CMakeLists.txt#L145 This doesn't affect newer version of glibc because libdl was merged into the libc.
Attachments
oreo6391
Comment 1 2022-10-06 12:26:14 PDT
EWS
Comment 2 2022-10-07 01:05:08 PDT
Committed 255257@main (8e3030cb0e45): <https://commits.webkit.org/255257@main> Reviewed commits have been landed. Closing PR #5101 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.