cgo working on linux/386

R=r
DELTA=70  (47 added, 4 deleted, 19 changed)
OCL=35167
CL=35171
diff --git a/src/Make.pkg b/src/Make.pkg
index fadd78e..bc00eea 100644
--- a/src/Make.pkg
+++ b/src/Make.pkg
@@ -93,18 +93,21 @@
 %.cgo3.$O: %.cgo3.c
 	$(CC) $(CFLAGS) $(RUNTIME_CFLAGS) $*.cgo3.c
 
+# Have to run gcc with the right size argument on hybrid 32/64 machines.
+_CGO_CFLAGS_386=-m32
+_CGO_CFLAGS_amd64=-m64
+
 # Compile x.cgo4.c with gcc to make package_x.so.
 %.cgo4.o: %.cgo4.c
-	gcc -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $*.cgo4.c
+	gcc $(_CGO_CFLAGS_$(GOARCH)) -fPIC -O2 -o $@ -c $(CGO_CFLAGS) $*.cgo4.c
 
 $(elem)_%.so: %.cgo4.o
-	gcc -shared -o $@ $*.cgo4.o $(CGO_LDFLAGS)
+	gcc $(_CGO_CFLAGS_$(GOARCH)) -shared -o $@ $*.cgo4.o $(CGO_LDFLAGS)
 
 $(pkgdir)/$(dir)/$(elem)_%.so: $(elem)_%.so
 	@test -d $(GOROOT)/pkg && mkdir -p $(pkgdir)/$(dir)
 	cp $(elem)_$*.so $@
 
-
 # Generic build rules.
 # These come last so that the rules above can override them
 # for more specific file names.