aboutsummaryrefslogtreecommitdiffstats
path: root/sysgen/syscallnr.go
diff options
context:
space:
mode:
Diffstat (limited to 'sysgen/syscallnr.go')
-rw-r--r--sysgen/syscallnr.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/sysgen/syscallnr.go b/sysgen/syscallnr.go
index 124ccc697..e39545c27 100644
--- a/sysgen/syscallnr.go
+++ b/sysgen/syscallnr.go
@@ -15,13 +15,15 @@ type Arch struct {
CARCH []string
KernelHeaderArch string
KernelInclude string
+ CFlags []string
Numbers []int
}
var archs = []*Arch{
- {"amd64", []string{"__x86_64__"}, "x86", "asm/unistd.h", nil},
- {"arm64", []string{"__aarch64__"}, "arm64", "asm/unistd.h", nil},
- {"ppc64le", []string{"__ppc64__", "__PPC64__", "__powerpc64__"}, "powerpc", "asm/unistd.h", nil},
+ {"amd64", []string{"__x86_64__"}, "x86", "asm/unistd.h", []string{"-m64"}, nil},
+ {"386", []string{"__i386__"}, "x86", "asm/unistd.h", []string{"-D__SYSCALL_COMPAT", "-DCONFIG_COMPAT", "-DCONFIG_X86_32"}, nil},
+ {"arm64", []string{"__aarch64__"}, "arm64", "asm/unistd.h", []string{}, nil},
+ {"ppc64le", []string{"__ppc64__", "__PPC64__", "__powerpc64__"}, "powerpc", "asm/unistd.h", []string{}, nil},
}
var syzkalls = map[string]int{
@@ -51,7 +53,7 @@ func fetchSyscallsNumbers(arch *Arch, syscalls []Syscall) {
defines[name] = strconv.Itoa(nr)
}
}
- for _, s := range fetchValues(arch.KernelHeaderArch, vals, includes, defines) {
+ for _, s := range fetchValues(arch.KernelHeaderArch, vals, includes, defines, arch.CFlags) {
n, err := strconv.ParseUint(s, 10, 64)
if err != nil {
failf("failed to parse syscall number '%v': %v", s, err)
@@ -61,7 +63,7 @@ func fetchSyscallsNumbers(arch *Arch, syscalls []Syscall) {
}
func generateSyscallsNumbersArch(arch *Arch, syscalls []Syscall) {
- var archcode string = "sys/sys_"+arch.GOARCH+".go"
+ var archcode string = "sys/sys_" + arch.GOARCH + ".go"
logf(1, "Generate code with syscall numbers for arch=%v in %v", arch.GOARCH, archcode)
buf := new(bytes.Buffer)
if err := archTempl.Execute(buf, arch); err != nil {