1
0
mirror of https://github.com/golang/go synced 2024-11-21 18:44:45 -07:00

build: make all.bash run on Ubuntu ARM

Sent from my phone.

R=adg
CC=golang-dev
https://golang.org/cl/2192049
This commit is contained in:
Russ Cox 2010-09-22 15:30:42 +10:00 committed by Andrew Gerrand
parent 96d6f9dea4
commit b7cb844ac8
4 changed files with 96 additions and 8 deletions

View File

@ -44,10 +44,10 @@ architectures.
<code>arm</code> (a.k.a. <code>ARM</code>); <code>5g,5l,5c,5a</code> <code>arm</code> (a.k.a. <code>ARM</code>); <code>5g,5l,5c,5a</code>
</dt> </dt>
<dd> <dd>
Still a work in progress. Incomplete.
It only supports Linux binaries, floating point is weak, and the It only supports Linux binaries, floating point is weak,
optimizer is not enabled. it has code generation bugs, and the optimizer is not enabled.
Tested against QEMU and an android phone. Tested against a Nexus One.
</dd> </dd>
</dl> </dl>

View File

@ -9,6 +9,8 @@
# #
# to rebuild the dependency information in Make.deps. # to rebuild the dependency information in Make.deps.
include ../Make.inc
all: install all: install
DIRS=\ DIRS=\
@ -197,6 +199,69 @@ NOTEST+=time # no syscall.Kill, syscall.SIGCHLD for sleep tests
NOTEST+=websocket # no network NOTEST+=websocket # no network
endif endif
ifeq ($(GOARCH),arm)
# Tests that fail, probably 5g bugs.
# Disable so that dashboard all.bash can catch regressions.
NOTEST+=archive/tar
NOTEST+=asn1
NOTEST+=big
NOTEST+=bytes
NOTEST+=cmath
NOTEST+=compress/gzip
NOTEST+=compress/zlib
NOTEST+=crypto/aes
NOTEST+=crypto/block
NOTEST+=crypto/blowfish
NOTEST+=crypto/ocsp
NOTEST+=crypto/rc4
NOTEST+=crypto/rsa
NOTEST+=crypto/subtle
NOTEST+=crypto/tls
NOTEST+=crypto/x509
NOTEST+=debug/dwarf
NOTEST+=debug/elf
NOTEST+=debug/macho
NOTEST+=encoding/base64
NOTEST+=encoding/binary
NOTEST+=encoding/pem
NOTEST+=exp/datafmt
NOTEST+=exp/eval
NOTEST+=expvar
NOTEST+=flag
NOTEST+=fmt
NOTEST+=go/printer
NOTEST+=gob
NOTEST+=http
NOTEST+=image/png
NOTEST+=io
NOTEST+=json
NOTEST+=log
NOTEST+=math
NOTEST+=mime
NOTEST+=mime/multipart
NOTEST+=net
NOTEST+=netchan
NOTEST+=os
NOTEST+=os/signal
NOTEST+=patch
NOTEST+=reflect
NOTEST+=regexp
NOTEST+=rpc
NOTEST+=rpc/jsonrpc
NOTEST+=scanner
NOTEST+=strconv
NOTEST+=strings
NOTEST+=syslog
NOTEST+=tabwriter
NOTEST+=template
NOTEST+=testing/quick
NOTEST+=time
NOTEST+=utf16
NOTEST+=utf8
NOTEST+=websocket
NOTEST+=xml
endif
TEST=\ TEST=\
$(filter-out $(NOTEST),$(DIRS)) $(filter-out $(NOTEST),$(DIRS))

View File

@ -59,6 +59,7 @@ fi
GOMAXPROCS=10 gomake test GOMAXPROCS=10 gomake test
) || exit $? ) || exit $?
[ "$GOARCH" == arm ] ||
(xcd cmd/gofmt (xcd cmd/gofmt
if $rebuild; then if $rebuild; then
gomake clean; gomake clean;
@ -75,6 +76,7 @@ fi
time gomake test time gomake test
) || exit $? ) || exit $?
[ "$GOARCH" == arm ] ||
(xcd ../misc/cgo/stdio (xcd ../misc/cgo/stdio
if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
gomake clean gomake clean
@ -93,6 +95,7 @@ if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
fi fi
) || exit $? ) || exit $?
[ "$GOARCH" == arm ] ||
(xcd ../test/bench (xcd ../test/bench
if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
./timing.sh -test ./timing.sh -test

View File

@ -49,12 +49,32 @@ ulimit -c 0
true >pass.out >times.out true >pass.out >times.out
exclude=false # exclude nothing
golden=golden.out
filterout() {
grep '^'"$2"'$' $1 >/dev/null
}
if [ "$GOARCH" = "arm" ]; then
if [ "$GORUN" = "" ]; then
exclude="filterout fail-arm-native.txt"
golden=golden-arm-native.out
else
exclude="filterout fail-arm.txt"
golden=golden-arm.out
fi
fi
for dir in . ken chan interface nilptr syntax fixedbugs bugs for dir in . ken chan interface nilptr syntax fixedbugs bugs
do do
echo echo
echo '==' $dir'/' echo '==' $dir'/'
for i in $(ls $dir/*.go 2>/dev/null) for i in $(ls $dir/*.go 2>/dev/null)
do do (
if $exclude $i; then
exit 0 # continues for loop
fi
export F=$(basename $i .go) export F=$(basename $i .go)
export D=$dir export D=$dir
sed '/^\/\//!q' $i | sed 's@//@@; $d' |sed 's|./\$A.out|$E &|g' >$RUNFILE sed '/^\/\//!q' $i | sed 's@//@@; $d' |sed 's|./\$A.out|$E &|g' >$RUNFILE
@ -87,7 +107,7 @@ do
echo $i >>pass.out echo $i >>pass.out
fi fi
echo $(awk 'NR==1{print $2}' $TMP2FILE) $D/$F >>times.out echo $(awk 'NR==1{print $2}' $TMP2FILE) $D/$F >>times.out
done ) done
done | # clean up some stack noise done | # clean up some stack noise
egrep -v '^(r[0-9a-z]+|[cfg]s) +0x' | egrep -v '^(r[0-9a-z]+|[cfg]s) +0x' |
sed '/tmp.*Bus error/s/.*Bus/Bus/; /tmp.*Trace.BPT/s/.*Trace/Trace/ sed '/tmp.*Bus error/s/.*Bus/Bus/; /tmp.*Trace.BPT/s/.*Trace/Trace/
@ -103,9 +123,9 @@ done | # clean up some stack noise
/Segmentation fault/d /Segmentation fault/d
/^qemu: uncaught target signal 11 (Segmentation fault) - exiting/d' > run.out /^qemu: uncaught target signal 11 (Segmentation fault) - exiting/d' > run.out
rm -f $RUNFILE $TMP1FILE $TMP2FILE *.$A *.a $A.out rm -f $RUNFILE $TMP1FILE $TMP2FILE *.$A *.a $A.out
diffmsg="" diffmsg=""
if ! diff golden.out run.out if ! diff $golden run.out
then then
diffmsg="; test output differs" diffmsg="; test output differs"
failed=1 failed=1