This libgo patch skips the _FILE struct in mkruntimeinc.sh. We don't need it, and it breaks uclibc. This should fix GCC PR 101246. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
Ian
59a20b189dcbda8d929503ae1b1f864535a27584 diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 7778cd91235..e68d2d967cc 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -943b95876ca0f14c3cea7067d33170ba76cf0fab +787fd4475f9d9101bc138d0b9763b0f5ecca89a9 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/mkruntimeinc.sh b/libgo/mkruntimeinc.sh index 61d830af876..5ef3eca25cc 100755 --- a/libgo/mkruntimeinc.sh +++ b/libgo/mkruntimeinc.sh @@ -18,13 +18,14 @@ rm -f runtime.inc.tmp2 runtime.inc.tmp3 # sigset conflicts with system type sigset on AIX, so we need to rename it. # boundsError has a field name that is a C keyword, and we don't need it. # mSpanInuse is both a constant and a field name, and we don't need it. +# _FILE has incomplete __lock and __state fields on uclibc-ng. grep -v "#define _" ${IN} | grep -v "#define [cm][012345] " | grep -v "#define empty " | grep -v "#define \\$" | grep -v "#define mSpanInUse " > runtime.inc.tmp2 for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num do grep "#define $pattern" ${IN} >> runtime.inc.tmp2 done -TYPES="_Complex_lock _Reader_lock semt boundsError" +TYPES="_Complex_lock _Reader_lock semt boundsError _FILE" for TYPE in $TYPES do sed -e '/struct '${TYPE}' {/,/^}/s/^.*$//' runtime.inc.tmp2 > runtime.inc.tmp3;