aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2011-06-09 18:38:25 -0400
committerRuss Cox <rsc@golang.org>2011-06-09 18:38:25 -0400
commit1fddbab736f506e760cced149d1ae3aeb55b48b0 (patch)
treea34e907d69b414055dba2bb44b8ea958b37f2b3f
parent900c5fa98e2010f3a80fda4d6cfa1531e5509046 (diff)
downloadgo-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.c20
-rw-r--r--src/pkg/runtime/arm/softfloat.c1
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;