From f4dc57372297bb1301f744e390a578540448240f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 24 Aug 2009 16:15:21 -0700 Subject: 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 --- src/cmd/ld/go.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/cmd/ld/go.c') 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; @@ -199,8 +199,6 @@ again: return 0; // prefix: (var|type|func|const) - prefix = p; - prefix = p; if(p + 6 > ep) return -1; @@ -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; } -- cgit v1.2.1