We have several cases where archives depend on each other in a cyclic fashion. (V8Bindings, libport and WebCore being the most significant example.) Since the GNU linker does only a single pass over the archives we need some extra trickery to deal with these unavoidable cycles. That trickey is --start-group and --end-group (aka -( and -) ). That causes ld to loop over the group until no more undefined symbols are found. In an ideal world we would only make groups from those libraries which we knew to be in cycles. However, that's tough with SCons, so we bodge it by making all the archives a group by redefining the linking command here.
We have several cases where archives depend on each other in a cyclic fashion.
(V8Bindings, libport and WebCore being the most significant example.) Since the
GNU linker does only a single pass over the archives we need some extra
trickery to deal with these unavoidable cycles. That trickey is --start-group
and --end-group (aka -( and -) ). That causes ld to loop over the group until
no more undefined symbols are found. In an ideal world we would only make
groups from those libraries which we knew to be in cycles. However, that's
tough with SCons, so we bodge it by making all the archives a group by
redefining the linking command here.

Review URL: http://codereview.chromium.org/7523


git-svn-id: de016e52bd170d2d4f2344f9bf92d50478b649e0@3623 0039d316-1c4b-4281-b951-d872f2087c98

adobe/chromium,Crystalnix/house-of-life-chromium,ropik/chromium,yitian134/chromium,Crystalnix/house-of-life-chromium,adobe/chromium,gavinp/chromium,gavinp/chromium,ropik/chromium,yitian134/chromium,ropik/chromium,Crystalnix/house-of-life-chromium,adobe/chromium,ropik/chromium,gavinp/chromium,yitian134/chromium,yitian134/chromium,yitian134/chromium,Crystalnix/house-of-life-chromium,gavinp/chromium,adobe/chromium,gavinp/chromium,gavinp/chromium,ropik/chromium,Crystalnix/house-of-life-chromium,gavinp/chromium,adobe/chromium,yitian134/chromium,adobe/chromium,Crystalnix/house-of-life-chromium,yitian134/chromium,yitian134/chromium,Crystalnix/house-of-life-chromium,gavinp/chromium,yitian134/chromium,ropik/chromium,adobe/chromium,Crystalnix/house-of-life-chromium,Crystalnix/house-of-life-chromium,ropik/chromium,Crystalnix/house-of-life-chromium,adobe/chromium,adobe/chromium,adobe/chromium,gavinp/chromium,ropik/chromium,adobe/chromium,ropik/chromium,Crystalnix/house-of-life-chromium,gavinp/chromium,yitian134/chromium