diff options
author | Russ Cox <rsc@golang.org> | 2011-06-09 18:38:25 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2011-06-09 18:38:25 -0400 |
commit | 1fddbab736f506e760cced149d1ae3aeb55b48b0 (patch) | |
tree | a34e907d69b414055dba2bb44b8ea958b37f2b3f | |
parent | 900c5fa98e2010f3a80fda4d6cfa1531e5509046 (diff) | |
download | go-1fddbab736f506e760cced149d1ae3aeb55b48b0.tar.gz go-1fddbab736f506e760cced149d1ae3aeb55b48b0.zip |
5l: fix softfloat nits
Need to load math.a so that sqrtGoC is available.
Also was missing prototype.
R=ken2
CC=golang-dev
https://golang.org/cl/4517148
-rw-r--r-- | src/cmd/ld/lib.c | 20 | ||||
-rw-r--r-- | src/pkg/runtime/arm/softfloat.c | 1 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/cmd/ld/lib.c b/src/cmd/ld/lib.c index 208a84f1d2..04ee790a4e 100644 --- a/src/cmd/ld/lib.c +++ b/src/cmd/ld/lib.c @@ -235,24 +235,34 @@ addlibpath(char *srcref, char *objref, char *file, char *pkg) } void -loadlib(void) +loadinternal(char *name) { char pname[1024]; int i, found; found = 0; for(i=0; i<nlibdir; i++) { - snprint(pname, sizeof pname, "%s/runtime.a", libdir[i]); + snprint(pname, sizeof pname, "%s/%s.a", libdir[i], name); if(debug['v']) - Bprint(&bso, "searching for runtime.a in %s\n", pname); + Bprint(&bso, "searching for %s.a in %s\n", name, pname); if(access(pname, AEXIST) >= 0) { - addlibpath("internal", "internal", pname, "runtime"); + addlibpath("internal", "internal", pname, name); found = 1; break; } } if(!found) - Bprint(&bso, "warning: unable to find runtime.a\n"); + Bprint(&bso, "warning: unable to find %s.a\n", name); +} + +void +loadlib(void) +{ + int i; + + loadinternal("runtime"); + if(thechar == '5') + loadinternal("math"); for(i=0; i<libraryp; i++) { if(debug['v']) diff --git a/src/pkg/runtime/arm/softfloat.c b/src/pkg/runtime/arm/softfloat.c index c5da888743..0a071dada1 100644 --- a/src/pkg/runtime/arm/softfloat.c +++ b/src/pkg/runtime/arm/softfloat.c @@ -15,6 +15,7 @@ #define FLAGS_V (1 << 28) void runtime·abort(void); +void math·sqrtGoC(uint64, uint64*); static uint32 trace = 0; |