New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #23464 (closed defect: worksforme)

Opened 4 years ago

Last modified 4 years ago

webkit-gtk 1.1.15.4: multiple definitions of symbol _kJSClassDefinitionEmpty

Reported by: vinc17@… Owned by: myschizobuddy@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: guy.linton@…
Port: webkit-gtk

Description

I get the following error under Mac OS X Tiger:

[...]
  CCLD   Programs/unittests/testhttpbackend
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _kJSClassDefinitionEmpty
./.libs/libwebkit-1.0.dylib(single module) definition of _kJSClassDefinitionEmpty
./.libs/libJavaScriptCore.a(libJavaScriptCore_la-JSClassRef.o) definition of _kJSClassDefinitionEmpty in section (__TEXT,__const)
collect2: ld returned 1 exit status
make[1]: *** [Programs/DumpRenderTree] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_Users_vinc17_software_dports_www_webkit-gtk/work/webkit-1.1.15.4" && /usr/bin/make -j2 all " returned error 2

Attachments

webkit-gtk multiple definitions.txt (181.5 KB) - added by guy.linton@… 4 years ago.
Debug log of webkit-gtk install failure
configurelog2.txt (141.3 KB) - added by guy.linton@… 4 years ago.
Debug log of webkit-gtk install failure with link order changed

Change History

comment:1 Changed 4 years ago by vinc17@…

Actually the error is due to

  CXXLD  Programs/DumpRenderTree

(this is because -j2 was used).

comment:2 Changed 4 years ago by guy.linton@…

I get the same error, also on Mac OS X Tiger (10.4.11), but in my case, the build has -j1 in the make command:

--->  Building webkit-gtk
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_webkit-gtk/work/webkit-1.1.15.4" && /usr/bin/make -j1 all " returned error 2
Command output:   CC     JavaScriptCore/API/tests/Programs_minidom-NodeList.o
  CC     JavaScriptCore/API/tests/Programs_minidom-minidom.o
  CCLD   Programs/minidom
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
  CC     WebKitTools/GtkLauncher/Programs_GtkLauncher-main.o
  CCLD   Programs/GtkLauncher
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityUIElement.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-GCController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-LayoutTestController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-WorkQueue.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityUIElementGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-DumpRenderTree.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-EventSender.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-GCControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-LayoutTestControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-WorkQueueItemGtk.o
  CXXLD  Programs/DumpRenderTree
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
/usr/bin/ld: multiple definitions of symbol _kJSClassDefinitionEmpty
./.libs/libwebkit-1.0.dylib(single module) definition of _kJSClassDefinitionEmpty
./.libs/libJavaScriptCore.a(libJavaScriptCore_la-JSClassRef.o) definition of _kJSClassDefinitionEmpty in section (__TEXT,__const)
collect2: ld returned 1 exit status
make[1]: *** [Programs/DumpRenderTree] Error 1
make: *** [all] Error 2

Error: The following dependencies failed to build: webkit-gtk
Error: Status 1 encountered during processing.

Changed 4 years ago by guy.linton@…

Debug log of webkit-gtk install failure

comment:3 Changed 4 years ago by guy.linton@…

This seems to be noted as a bug upstream: https://bugs.webkit.org/show_bug.cgi?id=36088, but I am not sure whether it is being fixed.

comment:4 follow-up: ↓ 5 Changed 4 years ago by guy.linton@…

I have applied the patch in bugs.webkit.org bug 36088 through a MacPorts Portfile, and confirmed that WebKitTools/GNUmakefile.am is correctly updated. However, it doesn't make any difference to the build failure. (This is on Mac OS X 10.4.11 PowerPC G5).

Do I need to do something else to make the patch to the GNUmakefile.am file take effect?

Portfile changed since last build; discarding previous state.
--->  Computing dependencies for webkit-gtk
--->  Fetching webkit-gtk
--->  Verifying checksum(s) for webkit-gtk
--->  Extracting webkit-gtk
--->  Applying patches to webkit-gtk
--->  Configuring webkit-gtk
--->  Building webkit-gtk
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_webkit-gtk/work/webkit-1.1.15.4" && /usr/bin/make -j1 all " returned error 2
Command output:   CC     JavaScriptCore/API/tests/Programs_minidom-NodeList.o
  CC     JavaScriptCore/API/tests/Programs_minidom-minidom.o
  CCLD   Programs/minidom
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
  CC     WebKitTools/GtkLauncher/Programs_GtkLauncher-main.o
  CCLD   Programs/GtkLauncher
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-AccessibilityUIElement.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-GCController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-LayoutTestController.o
  CXX    WebKitTools/DumpRenderTree/Programs_DumpRenderTree-WorkQueue.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-AccessibilityUIElementGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-DumpRenderTree.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-EventSender.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-GCControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-LayoutTestControllerGtk.o
  CXX    WebKitTools/DumpRenderTree/gtk/Programs_DumpRenderTree-WorkQueueItemGtk.o
  CXXLD  Programs/DumpRenderTree
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _kJSClassDefinitionEmpty
./.libs/libwebkit-1.0.dylib(single module) definition of _kJSClassDefinitionEmpty
./.libs/libJavaScriptCore.a(libJavaScriptCore_la-JSClassRef.o) definition of _kJSClassDefinitionEmpty in section (__TEXT,__const)
collect2: ld returned 1 exit status
make[1]: *** [Programs/DumpRenderTree] Error 1
make: *** [all] Error 2

Error: Status 1 encountered during processing.
Before reporting a bug, first run the command again with the -d flag to get complete output.

The GNUmakefile at the top level still has the Programs_DumpRenderTree_LDADD in the wrong order, but manually changing the order of these gives a warning about the process, but ultimately still gives the same error:

--->  Computing dependencies for webkit-gtk
--->  Building webkit-gtk
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_webkit-gtk/work/webkit-1.1.15.4" && /usr/bin/make -j1 all " returned error 2
Command output:          you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
         You might want to install the `Automake' and `Perl' packages.
         Grab them from any GNU archive site.
  GEN    DerivedSources/webkitenumtypes.cpp
  GEN    stamp-webkitenumtypes.h
/usr/bin/make  all-am
 cd . && /bin/sh /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_webkit-gtk/work/webkit-1.1.15.4/autotools/missing --run automake-1.11 --foreign GNUmakefile
configure.ac:42: version mismatch.  This is Automake 1.11.1,
configure.ac:42: but the definition used by this AM_INIT_AUTOMAKE
configure.ac:42: comes from Automake 1.11.  You should recreate
configure.ac:42: aclocal.m4 with aclocal and run automake again.
WARNING: `automake-1.11' is probably too old.  You should only need it if
         you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
         You might want to install the `Automake' and `Perl' packages.
         Grab them from any GNU archive site.
  CXX    DerivedSources/libwebkit_1_0_la-webkitenumtypes.lo
  CXXLD  libwebkit-1.0.la
warning: no debug map in executable (-arch ppc)
  CCLD   Programs/GtkLauncher
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
  CXXLD  Programs/DumpRenderTree
libtool: link: warning: `-no-install' is ignored for powerpc-apple-darwin8.11.0
libtool: link: warning: assuming `-no-fast-install' instead
/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: multiple definitions of symbol _kJSClassDefinitionEmpty
./.libs/libwebkit-1.0.dylib(single module) definition of _kJSClassDefinitionEmpty
./.libs/libJavaScriptCore.a(libJavaScriptCore_la-JSClassRef.o) definition of _kJSClassDefinitionEmpty in section (__TEXT,__const)
collect2: ld returned 1 exit status
make[1]: *** [Programs/DumpRenderTree] Error 1
make: *** [all] Error 2

Error: Status 1 encountered during processing.
Before reporting a bug, first run the command again with the -d flag to get complete output.

comment:5 in reply to: ↑ 4 Changed 4 years ago by vinc17@…

Replying to guy.linton@…:

Do I need to do something else to make the patch to the GNUmakefile.am file take effect?

Automake needs to be rerun. The first log doesn't contain the beginning of the output, but from the second one, it seems that you haven't installed the automake port (the warning message is a bit strange, though... this could be another problem).

comment:6 follow-up: ↓ 7 Changed 4 years ago by guy.linton@…

As far as I can understand, MacPorts does not run automake by default, hence I have not run it at all.

I have now edited Makefile.in and run the build part again with MacPorts debug output, and I have now managed to change the order of the link (see the debug output configurelog2.txt attached: the last link includes:

-L/opt/local/lib ./.libs/libJavaScriptCore.a ./.libs/libwebkit-1.0.dylib /opt/local/lib/libenchant.dylib)

(I changed GNUmakefile.in)

However, it still gives the error about multiple definitions of symbol _kJSClassDefinitionEmpty.

I don't understand why changing the order would avoid the duplicate: if the symbol is defined twice surely it is defined twice whatever the order?

(Since I am not running automake, I think the warning is indeed a separate problem, and probably just a warning when the build is running, and reporting on the files it is using).

Changed 4 years ago by guy.linton@…

Debug log of webkit-gtk install failure with link order changed

comment:7 in reply to: ↑ 6 Changed 4 years ago by vinc17@…

Replying to guy.linton@…:

As far as I can understand, MacPorts does not run automake by default, hence I have not run it at all.

This is not specific to MacPorts. The autotools (automake, autoconf, libtool...) are utilities for developers. They should only be needed when some files of a tarball are patched (e.g. Makefile.am, configure.in) or when the source files are taken from a version control system (Subversion, git...). Depending on how the Makefile has been generated, there can be some rules to automatically (re)run the autotools when this is needed (a.k.a. maintainer mode).

I don't understand why changing the order would avoid the duplicate: if the symbol is defined twice surely it is defined twice whatever the order?

I agree.

comment:8 Changed 4 years ago by guy.linton@…

  • Cc guy.linton@… added

Cc Me!

comment:9 Changed 4 years ago by devans@…

  • Cc devans@… removed

comment:10 Changed 4 years ago by elelay@…

  • Status changed from new to closed
  • Resolution set to worksforme

hi, webkit-gtk has been updated to 1.2.4.

It builds fine for me on 10.4.11 ppc G4.

comment:11 Changed 4 years ago by devans@…

webkit-gtk was updated to 1.2.5 in r72215 which also builds correctly on 10.4.11 ppc.

Note: See TracTickets for help on using tickets.