undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
authorkubo@profusion.mobi <kubo@profusion.mobi@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Mar 2012 01:11:38 +0000 (01:11 +0000)
committerkubo@profusion.mobi <kubo@profusion.mobi@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Mar 2012 01:11:38 +0000 (01:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=80282

Reviewed by Antonio Gomes.

.:

Remove transitive library dependencies; they are especially
dangerous when one ends up linking against WTF, JSC and then WTF
again, since some symbols will not be defined.

Passing --no-copy-dt-needed-entries and --as-needed to the linker
(which some recent Linux distros do by default) makes the issue
even more evident.

* CMakeLists.txt: Set CMAKE_LINK_INTERFACE_LIBRARIES to an empty
list to prevent implicit transitive library dependencies from
being created by default.

Source/WebCore:

No new tests, this is a buildsystem change.

Remove transitive library dependencies; they are especially
dangerous when one ends up linking against WTF, JSC and then WTF
again, since some symbols will not be defined.

Passing --no-copy-dt-needed-entries and --as-needed to the linker
(which some recent Linux distros do by default) makes the issue
even more evident.

* CMakeLists.txt: Explicitly link to WTF as WebCore uses symbols
from it.
* PlatformEfl.cmake: Explicitly link against libjpeg and libpng.

Tools:

Remove transitive library dependencies; they are especially
dangerous when one ends up linking against WTF, JSC and then WTF
again, since some symbols will not be defined.

Passing --no-copy-dt-needed-entries and --as-needed to the linker
(which some recent Linux distros do by default) makes the issue
even more evident.

* DumpRenderTree/efl/CMakeLists.txt: Do not link directly to WTF,
as the other libraries have the needed symbols. Explicitly link
against fontconfig.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@109983 268f45cc-cd09-0410-ab3c-d52691b4dbfc

CMakeLists.txt
ChangeLog
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/PlatformEfl.cmake
Tools/ChangeLog
Tools/DumpRenderTree/efl/CMakeLists.txt

index 4f81a45..2253a39 100644 (file)
@@ -46,6 +46,9 @@ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
 
+# Do not create transitive library dependencies by default
+SET(CMAKE_LINK_INTERFACE_LIBRARIES "")
+
 INCLUDE(WebKitMacros)
 INCLUDE(WebKitFS)
 INCLUDE(WebKitHelpers)
index 61970e4..3b86593 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=80282
+
+        Reviewed by Antonio Gomes.
+
+        Remove transitive library dependencies; they are especially
+        dangerous when one ends up linking against WTF, JSC and then WTF
+        again, since some symbols will not be defined.
+
+        Passing --no-copy-dt-needed-entries and --as-needed to the linker
+        (which some recent Linux distros do by default) makes the issue
+        even more evident.
+
+        * CMakeLists.txt: Set CMAKE_LINK_INTERFACE_LIBRARIES to an empty
+        list to prevent implicit transitive library dependencies from
+        being created by default.
+
 2012-03-05  Ryosuke Niwa  <rniwa@webkit.org>
 
         Perf-o-matic should memcache dashboard images
index b4c476d..b6bc055 100644 (file)
@@ -2352,7 +2352,7 @@ SET(IDL_ATTRIBUTES_FILE ${WEBCORE_DIR}/bindings/scripts/IDLAttributes.txt)
 
 INCLUDE(${WEBCORE_DIR}/UseJSC.cmake)
 
-SET(WebCore_LIBRARIES ${JavaScriptCore_LIBRARY_NAME})
+SET(WebCore_LIBRARIES ${WTF_LIBRARY_NAME} ${JavaScriptCore_LIBRARY_NAME})
 SET(WebCore_LINK_FLAGS "")
 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
 
index f049076..2a90568 100644 (file)
@@ -1,3 +1,24 @@
+2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=80282
+
+        Reviewed by Antonio Gomes.
+
+        No new tests, this is a buildsystem change.
+
+        Remove transitive library dependencies; they are especially
+        dangerous when one ends up linking against WTF, JSC and then WTF
+        again, since some symbols will not be defined.
+
+        Passing --no-copy-dt-needed-entries and --as-needed to the linker
+        (which some recent Linux distros do by default) makes the issue
+        even more evident.
+
+        * CMakeLists.txt: Explicitly link to WTF as WebCore uses symbols
+        from it.
+        * PlatformEfl.cmake: Explicitly link against libjpeg and libpng.
+
 2012-03-06  James Robinson  <jamesr@chromium.org>
 
         [chromium] REGRESSION(109469): WebGL printing busted
index 2215ee2..e461e0f 100644 (file)
@@ -205,8 +205,10 @@ LIST(APPEND WebCore_LIBRARIES
   ${EVAS_LIBRARIES}
   ${FREETYPE_LIBRARIES}
   ${ICU_LIBRARIES}
+  ${JPEG_LIBRARY}
   ${LIBXML2_LIBRARIES}
   ${LIBXSLT_LIBRARIES}
+  ${PNG_LIBRARY}
   ${SQLITE_LIBRARIES}
   ${Glib_LIBRARIES}
   ${LIBSOUP24_LIBRARIES}
index 097dda8..cb38fdc 100644 (file)
@@ -1,3 +1,22 @@
+2012-03-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
+
+        undefined reference to JSC::IdentifierTable::~IdentifierTable() on EFL port
+        https://bugs.webkit.org/show_bug.cgi?id=80282
+
+        Reviewed by Antonio Gomes.
+
+        Remove transitive library dependencies; they are especially
+        dangerous when one ends up linking against WTF, JSC and then WTF
+        again, since some symbols will not be defined.
+
+        Passing --no-copy-dt-needed-entries and --as-needed to the linker
+        (which some recent Linux distros do by default) makes the issue
+        even more evident.
+
+        * DumpRenderTree/efl/CMakeLists.txt: Do not link directly to WTF,
+        as the other libraries have the needed symbols. Explicitly link
+        against fontconfig.
+
 2012-03-06  Dean Jackson  <dino@apple.com>
 
         filter-build-webkit needs more filters
index 436dd6d..e98f2e5 100644 (file)
@@ -23,7 +23,6 @@ SET(ImageDiff_SOURCES
 )
 
 SET(DumpRenderTree_LIBRARIES
-    ${WTF_LIBRARY_NAME}
     ${JavaScriptCore_LIBRARY_NAME}
     ${WebCore_LIBRARY_NAME}
     ${WebKit_LIBRARY_NAME}
@@ -32,6 +31,7 @@ SET(DumpRenderTree_LIBRARIES
     ${EDJE_LIBRARIES}
     ${EFLDEPS_LIBRARIES}
     ${EVAS_LIBRARIES}
+    ${FONTCONFIG_LIBRARIES}
     ${LIBXML2_LIBRARIES}
     ${LIBXSLT_LIBRARIES}
     ${SQLITE_LIBRARIES}
@@ -92,6 +92,7 @@ SET(DumpRenderTree_INCLUDE_DIRECTORIES
     ${EDJE_INCLUDE_DIRS}
     ${EFLDEPS_INCLUDE_DIRS}
     ${EVAS_INCLUDE_DIRS}
+    ${FONTCONFIG_INCLUDE_DIR}
     ${Glib_INCLUDE_DIRS}
     ${LIBSOUP24_INCLUDE_DIRS}
 )