re PR go/77809 ("_LITTLE_ENDIAN" redefined)
authorIan Lance Taylor <ian@gcc.gnu.org>
Mon, 3 Oct 2016 18:39:54 +0000 (18:39 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 3 Oct 2016 18:39:54 +0000 (18:39 +0000)
PR go/77809

    libgo: strip most C macros from runtime.inc

    The Go runtime package 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.

    Fixes GCC PR 77809.

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

From-SVN: r240724

gcc/go/gofrontend/MERGE
libgo/Makefile.am
libgo/Makefile.in

index 092baa22ced61c3de51f6f86b4997f3398d8dac2..1bd4552e6647ffb6efe6956bb6101c48dd4eaa3d 100644 (file)
@@ -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 e5150693fab858c3cb63f9fe6aa8c21ad3965846..a0566c10be6c26f6ff8f3ad5ce0b724e48338eae 100644 (file)
@@ -1284,8 +1284,13 @@ runtime_go_lo_GOCFLAGS = -fgo-c-header=runtime.inc.tmp -fgo-compiling-runtime
 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)
index bc6832dce0fa8d1456733813641db402128b6322..7a133f1b377be68234390dfdea552a10fda6399e 100644 (file)
@@ -3886,8 +3886,13 @@ runtime-go.lo.dep: $(srcdir)/go/runtime/*.go $(extra_go_files_runtime)
 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: $(CHECK_DEPS)
        @$(CHECK)