This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Linking Mono with gold
- From: Seo Sanghyeon <tinuviel at sparcs dot kaist dot ac dot kr>
- To: binutils at sourceware dot org
- Date: Sun, 22 Jun 2008 12:44:39 +0900
- Subject: Linking Mono with gold
I installed gold from a Debian package,
http://packages.debian.org/experimental/binutils-gold
and I am quite happy with it so far.
However, when I compile Mono, I get:
gcc -I../.. -I../../libgc/include -pthread -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -O2 -fno-strict-aliasing
-Wdeclaration-after-statement -g -Wall -Wunused -Wmissing-prototypes
-Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes
-Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align
-Wwrite-strings -mno-tls-direct-seg-refs
-Wl,-version-script=./ldscript.mono -Wl,--export-dynamic -o mono main.o
-pthread -Wl,--export-dynamic ./.libs/libmono-static.a
/usr/lib/libgthread-2.0.so /usr/lib/libglib-2.0.so -lrt -ldl -lpthread
-lm
/usr/bin/ld: internal error in script_register_vers_node, at
../../gold/script.cc:2210
The content of ldscript.mono is:
{
global:
mono_*;
GC_push_all_stack;
GC_start_blocking;
GC_end_blocking;
gc_thread_vtable;
local:
*;
};
Looking at gold source from CVS I found:
yyscript.y:843
vers_node:
'{' vers_tag '}' ';'
{
script_register_vers_node (closure, NULL, 0, $2, NULL);
}
script.cc:2203
script_register_vers_node(void*,
const char* tag,
int taglen,
struct Version_tree *tree,
struct Version_dependency_list *deps)
{
gold_assert(tree != NULL);
gold_assert(tag != NULL);
tree->dependencies = deps;
tree->tag = std::string(tag, taglen);
}
If yyscript.y is calling script_register_vers_node with tag NULL, why is
script_register_vers_node asserting tag != NULL?
Seo Sanghyeon