diff mbox

libgo patch committed: strip most C macros from runtime.inc

Message ID CAOyqgcUiKOUFG52sKs6rmVpfDXGek1Z2uXZWVqjo-aRFEnyj_Q@mail.gmail.com
State New
Headers show

Commit Message

Ian Lance Taylor Oct. 3, 2016, 6:39 p.m. UTC
The Go runtime package in libgo is picking up C macros from
runtime_sysinfo.go and then re-exporting them to runtime.inc.  This
can cause name conflicts.  Change the Makefile so that we only put the
macros we need into runtime.inc.  These are the constants that are
actually defined by Go code, not runtime_sysinfo.go.  There are only a
few, so we can pattern match.

This is an additional hack on runtime.inc.  The long term goal is to
convert the runtime package to Go and eliminate runtime.inc entirely,
so a few hacks seem acceptable.

This fixes GCC PR 77809.

Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
to mainline.

Ian
diff mbox

Patch

Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 240667)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@ 
-f3fb9bf2d5a009a707962a416fcd1a8435756218
+325f8074c5224ae537f8e00aede5c780b70f914c
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/Makefile.am
===================================================================
--- libgo/Makefile.am	(revision 240667)
+++ libgo/Makefile.am	(working copy)
@@ -1284,8 +1284,13 @@  runtime_go_lo_GOCFLAGS = -fgo-c-header=r
 runtime-go.lo:
 	$(BUILDPACKAGE)
 runtime.inc: s-runtime-inc; @true
-s-runtime-inc: runtime-go.lo
-	$(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp runtime.inc
+s-runtime-inc: runtime-go.lo Makefile
+	rm -f runtime.inc.tmp2
+	grep -v "#define _" runtime.inc.tmp > runtime.inc.tmp2
+	for pattern in '_G[a-z]' '_P[a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \
+	  grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \
+	done
+	$(SHELL) $(srcdir)/mvifdiff.sh runtime.inc.tmp2 runtime.inc
 	$(STAMP) $@
 runtime_check_GOCFLAGS = -fgo-compiling-runtime
 runtime/check: $(CHECK_DEPS)