summaryrefslogtreecommitdiff
path: root/src/cmd/ld/go.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-08-24 16:15:21 -0700
committerRuss Cox <rsc@golang.org>2009-08-24 16:15:21 -0700
commitf4dc57372297bb1301f744e390a578540448240f (patch)
treea65fa19b965ad5b4c2a0bacc21bb06f03a8bdd95 /src/cmd/ld/go.c
parent52b2c5d91b902d0a90d489b3759eb4edaead3709 (diff)
downloadgo-f4dc57372297bb1301f744e390a578540448240f.tar.gz
first attempt at real FFI support.
in a .6 file, an export line //ffi T localfib remotefib remote.so means the dynamic linker should initialize localfib, always a pointer, to the address of remotefib, either text (T) or data (D) after loading remote.so. the C compiler will generate an export section when given the pragmas #pragma package fib #pragma ffi T localfib remotefib remote.so needing #pragma package is a bit of a kludge and hopefully could go away later. this is just the 6 tool chain support. other architectures will happen once 6 settles down. code using this to do FFI is in a later CL. R=r DELTA=161 (141 added, 14 deleted, 6 changed) OCL=33783 CL=33795
Diffstat (limited to 'src/cmd/ld/go.c')
-rw-r--r--src/cmd/ld/go.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/cmd/ld/go.c b/src/cmd/ld/go.c
index 4bad52413..b4b75b19b 100644
--- a/src/cmd/ld/go.c
+++ b/src/cmd/ld/go.c
@@ -102,7 +102,7 @@ ldpkg(Biobuf *f, int64 len, char *filename)
while(*p0 == ' ' || *p0 == '\t' || *p0 == '\n')
p0++;
if(strncmp(p0, "package ", 8) != 0) {
- fprint(2, "%s: bad package section in %s\n", argv0, filename);
+ fprint(2, "%s: bad package section in %s - %s\n", argv0, filename, p0);
return;
}
p0 += 8;
@@ -200,8 +200,6 @@ again:
// prefix: (var|type|func|const)
prefix = p;
-
- prefix = p;
if(p + 6 > ep)
return -1;
if(strncmp(p, "var ", 4) == 0)
@@ -251,7 +249,7 @@ again:
goto again;
} else {
err:
- fprint(2, "%s: confused in pkg data near <<%.20s>>\n", argv0, prefix);
+ fprint(2, "%s: confused in pkg data near <<%.40s>>\n", argv0, prefix);
nerrors++;
return -1;
}