]> Cypherpunks repositories - gostls13.git/commitdiff
avoid duplicate field names, so that bug132 can be fixed
authorRuss Cox <rsc@golang.org>
Mon, 24 Aug 2009 18:03:23 +0000 (11:03 -0700)
committerRuss Cox <rsc@golang.org>
Mon, 24 Aug 2009 18:03:23 +0000 (11:03 -0700)
also fix echo bug that just surfaced in mkerrors.sh

R=r
DELTA=67  (11 added, 19 deleted, 37 changed)
OCL=33743
CL=33757

15 files changed:
src/cmd/godefs/main.c
src/pkg/syscall/Makefile
src/pkg/syscall/PORT.sh
src/pkg/syscall/mkerrors.sh
src/pkg/syscall/mksyscall.sh
src/pkg/syscall/types_darwin.c
src/pkg/syscall/types_darwin_386.c [deleted file]
src/pkg/syscall/types_darwin_amd64.c [deleted file]
src/pkg/syscall/types_linux.c
src/pkg/syscall/types_linux_386.c [deleted file]
src/pkg/syscall/types_linux_amd64.c [deleted file]
src/pkg/syscall/ztypes_darwin_386.go
src/pkg/syscall/ztypes_darwin_amd64.go
src/pkg/syscall/ztypes_linux_386.go
src/pkg/syscall/ztypes_linux_amd64.go

index 02912f20068bb834d40cd5cfe21be9f27b02d9c5..f6531ad8ef2e8400e1a635d9146d48937d0d4a8c 100644 (file)
@@ -149,6 +149,7 @@ main(int argc, char **argv)
 {
        int p[2], pid, i, j, n, off, npad, prefix;
        char **av, *q, *r, *tofree, *name;
+       char nambuf[100];
        Biobuf *bin, *bout;
        Type *t;
        Field *f;
@@ -371,6 +372,10 @@ main(int argc, char **argv)
                                name = f->name;
                                if(cutprefix(name))
                                        name += prefix;
+                               if(strcmp(name, "") == 0) {
+                                       snprint(nambuf, sizeof nambuf, "Pad%d", npad++);
+                                       name = nambuf;
+                               }
                                Bprint(bout, "\t%lT;\n", name, f->type);
                                if(t->kind == Union && lang == &go)
                                        break;
@@ -531,6 +536,10 @@ cutprefix(char *name)
 {
        char *p;
 
+       // special case: orig_ in register struct
+       if(strncmp(name, "orig_", 5) == 0)
+               return 0;
+
        for(p=name; *p; p++) {
                if(*p == '_')
                        return p-name > 0;
index 2800a8470a72345099e26a3acb6aa093c98692f7..969cd0def0458d2efe294fe5d0227598bec7b13b 100644 (file)
@@ -18,6 +18,5 @@ GOFILES=\
 
 OFILES=\
        asm_$(GOOS)_$(GOARCH).$O\
-       types_$(GOOS)_$(GOARCH).$O\
 
 include $(GOROOT)/src/Make.pkg
index e7121c45bf2ead5682eba3e05c55e7bb3e41b850..3e165f87ba2dd969439beb8d4766e876d13185cd 100755 (executable)
 # there is almost always a #define that can get the real ones.
 # See types_darwin.c and types_linux.c for examples.
 #
-# * types_${GOOS}_${GOARCH}.c
-#
-# Same as types_${GOOS}_${GOARCH}.go except that it contains
-# definitions specific to ${GOOS} one one particular architecture.
-#
 # * zerror_${GOOS}_${GOARCH}.go
 #
 # This machine-generated file defines the system's error numbers,
@@ -117,9 +112,4 @@ esac
 echo "$mkerrors >zerrors_$GOOSARCH.go"
 echo "$mksyscall syscall_$GOOS.go syscall_$GOOSARCH.go >zsyscall_$GOOSARCH.go"
 echo "$mksysnum >zsysnum_$GOOSARCH.go"
-echo "$mktypes types_$GOOS.c types_$GOOSARCH.c >ztypes_$GOOSARCH.go"
-
-port=$(ls *.go | grep -v _)
-arch=$(ls *_$GOOSARCH.s *_$GOOSARCH.go *_$GOOS.go)
-all=$(ls $port $arch)  # sort them
-echo gobuild $all
+echo "$mktypes types_$GOOS.c >ztypes_$GOOSARCH.go"
index 15835bdd6afd47faeeb08d805243316abe9ca02d..661cd377d1ea0b152321adcb5c07c1478404f933 100755 (executable)
@@ -43,7 +43,7 @@ godefs -gsyscall "$@" _errors.c
 
 # Run C program to print error strings.
 (
-       echo "
+       /bin/echo "
 #include <stdio.h>
 #include <errno.h>
 #include <ctype.h>
@@ -57,10 +57,12 @@ int errors[] = {
 "
        for i in $errors
        do
-               echo '  '$i,
+               /bin/echo '     '$i,
        done
 
-       echo '
+       # Use /bin/echo to avoid builtin echo,
+       # which interprets \n itself
+       /bin/echo '
 };
 
 int
@@ -89,5 +91,4 @@ main(void)
 '
 ) >_errors.c
 
-gcc -o _errors _errors.c && ./_errors
-rm -f _errors.c _errors
+gcc -o _errors _errors.c && ./_errors && rm -f _errors.c _errors
index 0a2fb20557705b21a64bce3e4372877d523a0bf7..07a28757d4579d743103facbdd4d5b4c915ccb34 100755 (executable)
@@ -171,10 +171,7 @@ print <<EOF;
 
 package syscall
 
-import (
-       "syscall";
-       "unsafe";
-)
+import "unsafe"
 
 $text
 
index e205db155f53cd084d18ff15b17281c8441a5ad9..4e9bf5b2e203b72ec69052bce1ead2bb00b958b1 100644 (file)
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 /*
-Input to godefs.  See PORT.
+Input to godefs.  See PORT.sh
  */
 
 #define __DARWIN_UNIX03 0
diff --git a/src/pkg/syscall/types_darwin_386.c b/src/pkg/syscall/types_darwin_386.c
deleted file mode 100644 (file)
index dd53569..0000000
+++ /dev/null
@@ -1 +0,0 @@
-// Nothing to see here.
diff --git a/src/pkg/syscall/types_darwin_amd64.c b/src/pkg/syscall/types_darwin_amd64.c
deleted file mode 100644 (file)
index dd53569..0000000
+++ /dev/null
@@ -1 +0,0 @@
-// Nothing to see here.
index 234e5dd1e56555e14afba8fed01bfd5e35ff105c..d63e9983e8b64a6f18c1c8e2a23ec22e3b1116c7 100644 (file)
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 /*
-Input to godefs.  See PORT.
+Input to godefs.  See PORT.sh
  */
 
 #define _LARGEFILE_SOURCE
diff --git a/src/pkg/syscall/types_linux_386.c b/src/pkg/syscall/types_linux_386.c
deleted file mode 100644 (file)
index 3b5481a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-// Nothing to see here
diff --git a/src/pkg/syscall/types_linux_amd64.c b/src/pkg/syscall/types_linux_amd64.c
deleted file mode 100644 (file)
index 3b5481a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-// Nothing to see here
index 87bca145fea574a4101dec7aa34db947ff66a710..a3fad0da7eccc107df702bbf413b30a013121c0e 100644 (file)
@@ -1,4 +1,4 @@
-// godefs -gsyscall -f-m32 types_darwin.c types_darwin_386.c
+// godefs -gsyscall -f-m32 types_darwin.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
index 81a556c82853762f911b4d25013cd10893190638..2c888718c407f8e46f5de9d59002e01561495004 100644 (file)
@@ -1,4 +1,4 @@
-// godefs -gsyscall -f-m64 types_darwin.c types_darwin_amd64.c
+// godefs -gsyscall -f-m64 types_darwin.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
index a3b1e6b79adbbddb4b450488b339e5472712761d..c038e024358f20d7e05aa7cbff8775b18c79fd89 100644 (file)
@@ -1,4 +1,4 @@
-// godefs -gsyscall -f-m32 types_linux.c types_linux_386.c
+// godefs -gsyscall -f-m32 types_linux.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
@@ -163,18 +163,18 @@ type Timex struct {
        Calcnt int32;
        Errcnt int32;
        Stbcnt int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
+       Pad0 int32;
+       Pad1 int32;
+       Pad2 int32;
+       Pad3 int32;
+       Pad4 int32;
+       Pad5 int32;
+       Pad6 int32;
+       Pad7 int32;
+       Pad8 int32;
+       Pad9 int32;
+       Pad10 int32;
+       Pad11 int32;
 }
 
 type Time_t int32
@@ -314,7 +314,7 @@ type PtraceRegs struct {
        __fs uint16;
        Gs uint16;
        __gs uint16;
-       Eax int32;
+       Orig_eax int32;
        Eip int32;
        Cs uint16;
        __cs uint16;
index 56211b4b9cfbe56dced51d27d8ce4a9e92c5dab5..cdf251fa8a291011030afd62e408afb5bddd46b0 100644 (file)
@@ -1,4 +1,4 @@
-// godefs -gsyscall -f-m64 types_linux.c types_linux_amd64.c
+// godefs -gsyscall -f-m64 types_linux.c
 
 // MACHINE GENERATED - DO NOT EDIT.
 
@@ -166,18 +166,18 @@ type Timex struct {
        Calcnt int64;
        Errcnt int64;
        Stbcnt int64;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
-        int32;
+       Pad3 int32;
+       Pad4 int32;
+       Pad5 int32;
+       Pad6 int32;
+       Pad7 int32;
+       Pad8 int32;
+       Pad9 int32;
+       Pad10 int32;
+       Pad11 int32;
+       Pad12 int32;
+       Pad13 int32;
+       Pad14 int32;
 }
 
 type Time_t int64