]> Cypherpunks repositories - gostls13.git/commit
cmd/gc: make cmd/gc a real library
authorRuss Cox <rsc@golang.org>
Thu, 22 Jan 2015 05:52:01 +0000 (00:52 -0500)
committerRuss Cox <rsc@golang.org>
Mon, 26 Jan 2015 20:00:38 +0000 (20:00 +0000)
commit349ecfb0d664c0ec59f4d4b396d4a9c37608f5eb
tree7f073fcf02fa28b3f270b9941d79047150de98f6
parente82003e750ee2952b1902748b0cc821e27166025
cmd/gc: make cmd/gc a real library

cmd/gc contains symbol references into the back end dirs like 6g.
It also contains a few files that include the back end header files and
are compiled separately for each back end, despite being in cmd/gc.
cmd/gc also defines main, which makes at least one reverse symbol
reference unavoidable. (Otherwise you can't get into back-end code.)

This was all expedient, but it's too tightly coupled, especially for a
program written Go.

Make cmd/gc into a true library, letting the back end define main and
call into cmd/gc after making the necessary references available.
cmd/gc being a real library will ease the transition to Go.

Change-Id: I4fb9a0e2b11a32f1d024b3c56fc3bd9ee458842c
Reviewed-on: https://go-review.googlesource.com/3277
Reviewed-by: Rob Pike <r@golang.org>
28 files changed:
src/cmd/5g/galign.c
src/cmd/5g/gg.h
src/cmd/5g/opt.h
src/cmd/6g/galign.c
src/cmd/6g/gg.h
src/cmd/6g/opt.h
src/cmd/8g/galign.c
src/cmd/8g/gg.h
src/cmd/8g/opt.h
src/cmd/9g/galign.c
src/cmd/9g/gg.h
src/cmd/9g/opt.h
src/cmd/dist/build.go
src/cmd/gc/align.c
src/cmd/gc/cplx.c
src/cmd/gc/export.c
src/cmd/gc/gen.c
src/cmd/gc/go.h
src/cmd/gc/lex.c
src/cmd/gc/obj.c
src/cmd/gc/pgen.c
src/cmd/gc/plive.c
src/cmd/gc/popt.c
src/cmd/gc/popt.h [deleted file]
src/cmd/gc/reflect.c
src/cmd/gc/sinit.c
src/cmd/gc/subr.c
src/cmd/gc/walk.c