summaryrefslogtreecommitdiff
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
commit75ffb83babcddd3ad6afc4ff0bccfd4fe7972d7a (patch)
tree5fbf344744b18d16f9bc9fbc308a44cdcb70b4f1
parent472c52057f58d0d4d623d0ffaf1c1318097f4567 (diff)
downloadgo-75ffb83babcddd3ad6afc4ff0bccfd4fe7972d7a.tar.gz
5l: fix softfloat nits
Need to load math.a so that sqrtGoC is available. Also was missing prototype. R=ken2 CC=golang-dev http://codereview.appspot.com/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 208a84f1d..04ee790a4 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 c5da88874..0a071dada 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;