compiler: revamp scheme for ordering calls to import init fcns.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Aug 2016 17:45:45 +0000 (17:45 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Aug 2016 17:45:45 +0000 (17:45 +0000)
commitc0ccddb46c11be096ab3b843b5b48104a11a7485
treeb09b5f5c15b7583876d0ec58d11c369aa49f6315
parent9f5897866862e760d8276fc1ef7979852f83a86a
compiler: revamp scheme for ordering calls to import init fcns.

    Switch to a new method for determining the order in which import init
    functions are invoked: build an init fcn dependence DAG and walk the DAG
    to rewrite/adjust priorities to account for discrepancies introduced by
    "go test".

    This patch includes a change to the export data format generated
    by gccgo. Older versions of gccgo will not be able to read object files
    produced by a newer gccgo, but the new gcc will still be able to read
    old object files.

    Fixes golang/go#15738.

    Reviewed-on: https://go-review.googlesource.com/25301

From-SVN: r239708
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/export.cc
gcc/go/gofrontend/export.h
gcc/go/gofrontend/gogo.cc
gcc/go/gofrontend/gogo.h
gcc/go/gofrontend/import.cc
gcc/go/gofrontend/import.h