[PATCH] Make --start-lib/--end-lib block on previous add symbols tasks
Neil Vachharajani
nvachhar@google.com
Thu Aug 19 22:10:00 GMT 2010
This patch fixes a problem where when using --start-lib/--end-lib the
linker would report that certain symbols could not be found. The
problem was that the add symbols task for a group of object files
surrounded by --start-lib/--end-lib was not appropriately waiting for
previous add symbols tasks. This patch uses an Unblock_token to
properly serialize the execution.
OK to apply? Tested on x86_64 Linux.
ChangeLog:
gold/
* readsyms.cc (Read_symbols::do_lib_group): Block
add_lib_group_symbols on this->this_blocker.
--
Neil Vachharajani
Google
650-214-1804
-------------- next part --------------
Index: gold/readsyms.cc
===================================================================
RCS file: /cvs/src/src/gold/readsyms.cc,v
retrieving revision 1.44
diff -u -r1.44 readsyms.cc
--- gold/readsyms.cc 12 Aug 2010 22:01:11 -0000 1.44
+++ gold/readsyms.cc 19 Aug 2010 21:36:36 -0000
@@ -248,6 +248,9 @@
m, NULL, next_blocker));
}
+ next_blocker->add_blocker();
+ workqueue->queue_soon(new Unblock_token(this->this_blocker_, next_blocker));
+
add_lib_group_symbols->set_blocker(next_blocker);
workqueue->queue_soon(add_lib_group_symbols);
More information about the Binutils
mailing list