[Bug bootstrap/81926] go/parse.o differs between stage2 and stage3
dclarke at blastwave dot org
gcc-bugzilla@gcc.gnu.org
Mon Aug 28 21:31:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81926
--- Comment #12 from Dennis Clarke <dclarke at blastwave dot org> ---
I don't mean to ask what may seem obvious but does it make sense to
add a not required "dummy .text" section? I mean to say, is there a
valid reason why gas would add in a blank ".text" where none is actually
required?
Also, as a follow up, I did actually get a full three stage bootstrap of
7.2.0 while using --enable-languages=ada,c,c++,fortran,go,lto,objc,obj-c++.
This surprised me however at this point I had already installed the
previous 7.2.0 build and also did specify --enable-stage1-languages=c,c++
to get a minimal stage1 compiler. The test results looked like :
https://gcc.gnu.org/ml/gcc-testresults/2017-08/msg02494.html
I question those results because neither the bootstrap nor the testsuite
would complete without a strange error at the last moment. The bootstrap
will fail because of a complaint for "missing-objcopy" in stage 3 thus :
libtool: compile:
/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008/./gcc/gccgo
-B/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008/./gcc/
-B/usr/local/gcc7/sparc64-sun-solaris2.10/bin/
-B/usr/local/gcc7/sparc64-sun-solaris2.10/lib/ -isystem
/usr/local/gcc7/sparc64-sun-solaris2.10/include -isystem
/usr/local/gcc7/sparc64-sun-solaris2.10/sys-include -O2 -g -I . -c
-fgo-pkgpath=runtime/internal/atomic -fgo-compiling-runtime
../../../gcc-7.2.0/libgo/go/runtime/internal/atomic/gccgo.go
../../../gcc-7.2.0/libgo/go/runtime/internal/atomic/stubs.go -o
runtime/internal/atomic.o >/dev/null 2>&1
f=`echo runtime/internal/atomic.lo | sed -e 's/.lo$/.o/'`; missing-objcopy -j
.go_export $f runtime/internal/atomic.s-gox.tmp; /usr/local/bin/bash
../../../gcc-7.2.0/libgo/mvifdiff.sh runtime/internal/atomic.s-gox.tmp `echo
runtime/internal/atomic.s-gox | sed -e 's/s-gox/gox/'`
/usr/local/bin/bash: missing-objcopy: command not found
mv: cannot access runtime/internal/atomic.s-gox.tmp
gmake[4]: *** [Makefile:3331: runtime/internal/atomic.s-gox] Error 2
gmake[4]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008/sparc64-sun-solaris2.10/libgo'
gmake[3]: *** [Makefile:2746: all-recursive] Error 1
gmake[3]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008/sparc64-sun-solaris2.10/libgo'
gmake[2]: *** [Makefile:1344: all] Error 2
gmake[2]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008/sparc64-sun-solaris2.10/libgo'
gmake[1]: *** [Makefile:23963: all-target-libgo] Error 2
gmake[1]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.008'
gmake: *** [Makefile:28139: bootstrap] Error 2
The testsuite fails with a strange error also :
=== libatomic Summary ===
# of expected passes 54
gmake[4]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic/testsuite'
gmake[3]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic/testsuite'
gmake[3]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic'
/usr/local/bin/gmake DO=all multi-do # /usr/local/bin/gmake
gmake[4]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic'
if [ -z "sparcv8plus" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd ../../../gcc-7.2.0/libatomic; ${PWDCMD-pwd}`/; export
srcrootpre; \
lib=`echo "${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/./gcc/xgcc
-B/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/./gcc/
-B/usr/local/gcc7/sparc64-sun-solaris2.10/bin/
-B/usr/local/gcc7/sparc64-sun-solaris2.10/lib/ -isystem
/usr/local/gcc7/sparc64-sun-solaris2.10/include -isystem
/usr/local/gcc7/sparc64-sun-solaris2.10/sys-include "; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; /usr/local/bin/gmake \
CFLAGS="-g -O2 ${flags}" \
CCASFLAGS="-g -O2 ${flags}" \
FCFLAGS=" ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/usr/local/gcc7" \
exec_prefix="/usr/local/gcc7" \
GOCFLAGS="-O2 -g ${flags}" \
CXXFLAGS="-g -O2 ${flags}" \
LIBCFLAGS="-g -O2 ${flags}" \
LIBCXXFLAGS="-g -O2 -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/local/build/gcc-7.2.0/install-sh -c" \
INSTALL_DATA="/usr/local/build/gcc-7.2.0/install-sh -c
-m 644" \
INSTALL_PROGRAM="/usr/local/build/gcc-7.2.0/install-sh
-c" \
INSTALL_SCRIPT="/usr/local/build/gcc-7.2.0/install-sh
-c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
gmake[5]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
/usr/local/bin/gmake all-recursive
gmake[6]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
Making all in testsuite
gmake[7]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic/testsuite'
gmake[7]: Nothing to be done for 'all'.
gmake[7]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic/testsuite'
gmake[7]: Entering directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
true DO=all multi-do # /usr/local/bin/gmake
gmake[7]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
gmake[6]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
gmake[5]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/sparcv8plus/libatomic'
gmake[4]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic'
gmake[3]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic'
gmake[2]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009/sparc64-sun-solaris2.10/libatomic'
gmake[1]: Target 'check-target' not remade because of errors.
gmake[1]: Leaving directory
'/usr/local/build/gcc-7.2.0_SunOS5.10_sparc64vii+.009'
gmake: *** [Makefile:2280: do-check] Error 2
gmake: Target 'check' not remade because of errors.
d$
It is hard to know what to trust in the results of the bootstrap or the
testsuite when I see both processes terminate with errors and yet they
seem to do so in the very last gasp. In stage3 ? That surprised me.
More information about the Gcc-bugs
mailing list