Bug 136626
| Summary: | WEbKitGTK 2.5.3 - undefined references on build | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Dominique Leuenberger <dimstar> |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | Major | CC: | berto, bugs-noreply, cgarcia, mcatanzaro, pachoramos1, zan |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
Dominique Leuenberger
While building webkitgtk 2.5.3, the build on openSUSE aborts with:
[ 4158s] /home/abuild/rpmbuild/BUILD/webkitgtk-2.5.3/Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp:34: undefined reference to `WebKit::WebGtkExtensionManager::shared()'
[ 4158s] /home/abuild/rpmbuild/BUILD/webkitgtk-2.5.3/Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp:34: undefined reference to `WebKit::WebGtkExtensionManager::initializ
e(OpaqueWKBundle const*, void const*)'
[ 4158s] collect2: error: ld returned 1 exit status
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Alberto Garcia
What's the architecture? x86? amd64? What are the build (cmake) options that you are using?
Dominique Leuenberger
I saw this on i586 and x86_64
the standard %cmake macro used on openSUSE expands to:
/usr/bin/cmake .. \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64 \
-DINCLUDE_INSTALL_DIR:PATH=/usr/include \
-DLIB_INSTALL_DIR:PATH=/usr/lib64 \
-DSYSCONF_INSTALL_DIR:PATH=/etc \
-DSHARE_INSTALL_PREFIX:PATH=/usr/share \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_C_FLAGS="${CFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables} -DNDEBUG" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables} -DNDEBUG" \
-DCMAKE_Fortran_FLAGS="${FFLAGS:--O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables} -DNDEBUG" \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now" \
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now" \
%if "lib64" == "lib64"
-DLIB_SUFFIX=64 \
%endif
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_STATIC_LIBS:BOOL=OFF \
-DCMAKE_COLOR_MAKEFILE:BOOL=OFF \
-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \
-DCMAKE_MODULES_INSTALL_DIR=/usr/share/cmake/Modules \
-DCMAKE_USER_MAKE_RULES_OVERRIDE="/usr/share/cmake/Modules/opensuse_rules.cmake"
(
for now I worke around it by overwriting
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now"
)
Carlos Garcia Campos
Could it be that it's not using the symbols file? There should be something like -Wl,--version-script,${CMAKE_MODULE_PATH}/gtksymbols.filter
Alberto Garcia
(In reply to comment #2)
> for now I worke around it by overwriting
> -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
> -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \
> -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now"
>
> )
I can build 2.6.x without any of these, check if you have the version script somewhere in the command-line that fails, I have this:
-Wl,--version-script,Source/cmake/gtksymbols.filter
Michael Catanzaro
Closing since this looks quite old.