summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorKai Backman <kaib@golang.org>2009-10-25 11:59:58 -0700
committerKai Backman <kaib@golang.org>2009-10-25 11:59:58 -0700
commit05a73062b114311cba6d7794bf595619eaec5bb3 (patch)
tree1f09c84ba44eb064719c02859a9de9dc2afc9fe5 /src/cmd
parentc1858a969764eeda67852ceeaa2820ceb9d21f9f (diff)
downloadgolang-05a73062b114311cba6d7794bf595619eaec5bb3.tar.gz
make 5l ignore multiple defs, remove use of multiple
defs from embed1 and gotest R=rsc http://go/go-review/1014009
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/5l/obj.c9
-rwxr-xr-xsrc/cmd/gotest/gotest8
2 files changed, 16 insertions, 1 deletions
diff --git a/src/cmd/5l/obj.c b/src/cmd/5l/obj.c
index 45751e8c5..805d39544 100644
--- a/src/cmd/5l/obj.c
+++ b/src/cmd/5l/obj.c
@@ -432,9 +432,11 @@ ldobj1(Biobuf *f, int64 len, char *pn)
int v, o, r, skip;
uint32 sig;
char *name;
+ int ntext;
int32 eof;
char src[1024];
+ ntext = 0;
eof = Boffset(f) + len;
di = S;
src[0] = 0;
@@ -657,6 +659,13 @@ loop:
break;
case ATEXT:
+ s = p->from.sym;
+ if(ntext++ == 0 && s->type != 0 && s->type != SXREF) {
+ /* redefinition, so file has probably been seen before */
+ if(debug['v'])
+ Bprint(&bso, "skipping: %s: redefinition: %s", pn, s->name);
+ return;
+ }
setarch(p);
setthumb(p);
p->align = 4;
diff --git a/src/cmd/gotest/gotest b/src/cmd/gotest/gotest
index 212abbf75..e274ef9b8 100755
--- a/src/cmd/gotest/gotest
+++ b/src/cmd/gotest/gotest
@@ -22,6 +22,12 @@ nacl)
E="nacl"
esac
+# TODO(kaib): proper emulator strategy
+case x"$GOARCH" in
+xarm)
+ E="qemu-arm -cpu cortex-a8"
+esac
+
# Allow overrides
GC=${_GC:-$GC}
GL=${GL:-$LD}
@@ -131,5 +137,5 @@ importpath=$(make -s importpath)
}>_testmain.go
$GC _testmain.go
-$GL _testmain.$O _test/$importpath.a $xofile
+$GL _testmain.$O
$E ./$O.out "$@"