This libgo patch by Clément Chigot changes the libgo testsuite script
to ignore symbols with a leading dot. On AIX, a function has two
symbols, a text symbol (with a leading dot) and a data one (without
it). As the tests must be run only once, only the data symbol can be
used to retrieve the final go symbol. Therefore, all symbols
beginning with a dot are ignored by symtogo. Bootstrapped and ran Go
testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE (revision 272661)
+++ gcc/go/gofrontend/MERGE (working copy)
@@ -1,4 +1,4 @@
-1d6578a20a9a2ee599a07f03cf7f8e7797d72b9c
+d3d0f3c5bbe9d272178d55bdb907b07c188800e1
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
Index: libgo/testsuite/gotest
===================================================================
--- libgo/testsuite/gotest (revision 272608)
+++ libgo/testsuite/gotest (working copy)
@@ -501,6 +501,13 @@ localname() {
symtogo() {
result=""
for tp in $*; do
+ # Discard symbols with a leading dot.
+ # On AIX, this will remove function text symbols (with a leading dot).
+ # Therefore, only function descriptor symbols (without this leading dot)
+ # will be used to retrieve the go symbols, avoiding duplication.
+ if expr "$tp" : '^\.' >/dev/null 2>&1; then
+ continue
+ fi
s=$(echo "$tp" | sed -e 's/\.\.z2f/%/g' | sed -e 's/.*%//')
# Screen out methods (X.Y.Z).
if ! expr "$s" : '^[^.]*\.[^.]*$' >/dev/null 2>&1; then