diff options
author | H. Peter Anvin <hpa@zytor.com> | 2005-04-10 00:33:46 +0000 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2005-04-10 00:33:46 +0000 |
commit | 4419fcc42fd49fc8ea98af09aa188eddb8ed0219 (patch) | |
tree | 9212f988e520fb25eb6af13446a61116d92713b7 | |
parent | 910b6a39ddd063374eae1cccf5604466183550b4 (diff) | |
download | klibc-4419fcc42fd49fc8ea98af09aa188eddb8ed0219.tar.gz |
Perl changes to make kbuild integration easier.klibc-1.0.6
-rw-r--r-- | klibc/Makefile | 6 | ||||
-rw-r--r-- | klibc/arch/alpha/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/arm/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/cris/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/i386/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/ia64/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/m32r/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/mips/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/parisc/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/ppc/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/ppc64/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/s390/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/s390x/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/sh/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/sparc/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/sparc64/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/arch/x86_64/sysstub.ph | 6 | ||||
-rw-r--r-- | klibc/socketcalls.pl | 16 | ||||
-rw-r--r-- | klibc/syscalls.pl | 12 |
19 files changed, 71 insertions, 59 deletions
diff --git a/klibc/Makefile b/klibc/Makefile index c412a9ffea33b..181a226151d80 100644 --- a/klibc/Makefile +++ b/klibc/Makefile @@ -141,7 +141,9 @@ syscalls.nrs: ../include/sys/syscall.h syscalls.dir: SYSCALLS.i syscalls.pl arch/$(ARCH)/sysstub.ph syscommon.h syscalls.nrs rm -rf syscalls mkdir syscalls - $(PERL) syscalls.pl SYSCALLS.i $(ARCH) $(BITSIZE) syscalls.nrs ../include/klibc/havesyscall.h + $(PERL) syscalls.pl SYSCALLS.i arch/$(ARCH)/sysstub.ph $(ARCH) \ + $(BITSIZE) syscalls.nrs \ + syscalls ../include/klibc/havesyscall.h touch $@ ../include/klibc/havesyscall.h: syscalls.dir @@ -150,7 +152,7 @@ syscalls.dir: SYSCALLS.i syscalls.pl arch/$(ARCH)/sysstub.ph syscommon.h syscall socketcalls.dir: SOCKETCALLS.def socketcalls.pl socketcommon.h rm -rf socketcalls mkdir socketcalls - $(PERL) socketcalls.pl SOCKETCALLS.def $(ARCH) + $(PERL) socketcalls.pl SOCKETCALLS.def $(ARCH) socketcalls touch $@ %/static.obj: %.dir diff --git a/klibc/arch/alpha/sysstub.ph b/klibc/arch/alpha/sysstub.ph index a24b6c07dc81b..08b97e807e7f9 100644 --- a/klibc/arch/alpha/sysstub.ph +++ b/klibc/arch/alpha/sysstub.ph @@ -12,13 +12,13 @@ # A few system calls are dual-return with the second return value in # r20 (a4). -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; $stype = $stype || 'common'; $stype = 'common' if ( $stype eq 'dual0' ); - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "#include <machine/asm.h>\n"; print OUT "\n"; diff --git a/klibc/arch/arm/sysstub.ph b/klibc/arch/arm/sysstub.ph index bf953ccd801b5..256ea3d53432c 100644 --- a/klibc/arch/arm/sysstub.ph +++ b/klibc/arch/arm/sysstub.ph @@ -6,10 +6,10 @@ # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\t.text\n"; diff --git a/klibc/arch/cris/sysstub.ph b/klibc/arch/cris/sysstub.ph index 6c894f62f5269..182ad73f8ce60 100644 --- a/klibc/arch/cris/sysstub.ph +++ b/klibc/arch/cris/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.text\n"; diff --git a/klibc/arch/i386/sysstub.ph b/klibc/arch/i386/sysstub.ph index 1ba7f36bac989..e2649e283e75a 100644 --- a/klibc/arch/i386/sysstub.ph +++ b/klibc/arch/i386/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/ia64/sysstub.ph b/klibc/arch/ia64/sysstub.ph index 34031a29ae1e0..8e686c68a33cd 100644 --- a/klibc/arch/ia64/sysstub.ph +++ b/klibc/arch/ia64/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.text\n"; diff --git a/klibc/arch/m32r/sysstub.ph b/klibc/arch/m32r/sysstub.ph index 3813ea4144eff..98dfb9d0a8478 100644 --- a/klibc/arch/m32r/sysstub.ph +++ b/klibc/arch/m32r/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.text\n"; diff --git a/klibc/arch/mips/sysstub.ph b/klibc/arch/mips/sysstub.ph index abe599c17d933..a71d5d02efab8 100644 --- a/klibc/arch/mips/sysstub.ph +++ b/klibc/arch/mips/sysstub.ph @@ -9,11 +9,11 @@ # system call number in r0 (v0), return an error value in r19 (a3) as # well as the return value in r0 (v0). -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; $stype = $stype || 'common'; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/asm.h>\n"; print OUT "#include <asm/regdef.h>\n"; print OUT "#include <asm/unistd.h>\n"; diff --git a/klibc/arch/parisc/sysstub.ph b/klibc/arch/parisc/sysstub.ph index 63b5e17fcf65f..e2196acaf3b29 100644 --- a/klibc/arch/parisc/sysstub.ph +++ b/klibc/arch/parisc/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.text\n"; diff --git a/klibc/arch/ppc/sysstub.ph b/klibc/arch/ppc/sysstub.ph index 542ab5575c963..3b3916c726f4d 100644 --- a/klibc/arch/ppc/sysstub.ph +++ b/klibc/arch/ppc/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/ppc64/sysstub.ph b/klibc/arch/ppc64/sysstub.ph index 0a379158e1c82..9ee93701f6fae 100644 --- a/klibc/arch/ppc64/sysstub.ph +++ b/klibc/arch/ppc64/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.globl ${fname}\n"; diff --git a/klibc/arch/s390/sysstub.ph b/klibc/arch/s390/sysstub.ph index 3838a1f1b2863..35f40a0865f1c 100644 --- a/klibc/arch/s390/sysstub.ph +++ b/klibc/arch/s390/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/s390x/sysstub.ph b/klibc/arch/s390x/sysstub.ph index 10a47f7b07265..55c721b558bb8 100644 --- a/klibc/arch/s390x/sysstub.ph +++ b/klibc/arch/s390x/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/sh/sysstub.ph b/klibc/arch/sh/sysstub.ph index add5d358928ed..ce04b739e9503 100644 --- a/klibc/arch/sh/sysstub.ph +++ b/klibc/arch/sh/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.section\t\".text.syscall\",\"ax\"\n"; diff --git a/klibc/arch/sparc/sysstub.ph b/klibc/arch/sparc/sysstub.ph index baad9e3d8216c..d8cedb5ae5d48 100644 --- a/klibc/arch/sparc/sysstub.ph +++ b/klibc/arch/sparc/sysstub.ph @@ -5,12 +5,12 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; $stype = $stype || 'common'; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/sparc64/sysstub.ph b/klibc/arch/sparc64/sysstub.ph index 2ef2c6b66efa1..deeb88ce07b2f 100644 --- a/klibc/arch/sparc64/sysstub.ph +++ b/klibc/arch/sparc64/sysstub.ph @@ -5,12 +5,12 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; $stype = $stype || 'common'; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/arch/x86_64/sysstub.ph b/klibc/arch/x86_64/sysstub.ph index 07af1227ca47a..e2d797b1667f7 100644 --- a/klibc/arch/x86_64/sysstub.ph +++ b/klibc/arch/x86_64/sysstub.ph @@ -5,10 +5,10 @@ # Script to generate system call stubs # -sub make_sysstub($$$$@) { - my($fname, $type, $sname, $stype, @args) = @_; +sub make_sysstub($$$$$@) { + my($outputdir, $fname, $type, $sname, $stype, @args) = @_; - open(OUT, '>', "syscalls/${fname}.S"); + open(OUT, '>', "${outputdir}/${fname}.S"); print OUT "#include <asm/unistd.h>\n"; print OUT "\n"; print OUT "\t.type ${fname},\@function\n"; diff --git a/klibc/socketcalls.pl b/klibc/socketcalls.pl index fd82b2b49f2a7..024483f716429 100644 --- a/klibc/socketcalls.pl +++ b/klibc/socketcalls.pl @@ -15,12 +15,13 @@ for $arg ( @ARGV ) { push(@args, $arg); } } -($file, $arch) = @args; +($file, $arch, $outputdir) = @args; if (!open(FILE, "< $file")) { die "$file: $!\n"; } +print "socketcall-objs := "; while ( defined($line = <FILE>) ) { chomp $line; $line =~ s/\s*[\#\;].*$//; # Strip comments and trailing blanks @@ -39,10 +40,11 @@ while ( defined($line = <FILE>) ) { push(@cargs, "$arg a".$i++); } $nargs = $i; + print " \\\n\tsocketcalls/${name}.o"; if ( $arch eq 'i386' ) { - open(OUT, '>', "socketcalls/${name}.S") - or die "$0: Cannot open socketcalls/${name}.S\n"; + open(OUT, '>', "${outputdir}/${name}.S") + or die "$0: Cannot open ${outputdir}/${name}.S\n"; print OUT "#include <sys/socketcalls.h>\n"; print OUT "\n"; @@ -56,10 +58,10 @@ while ( defined($line = <FILE>) ) { print OUT "\t.size ${name},.-${name}\n"; close(OUT); } else { - open(OUT, '>', "socketcalls/${name}.c") - or die "$0: Cannot open socketcalls/${name}.c\n"; + open(OUT, '>', "${outputdir}/${name}.c") + or die "$0: Cannot open ${outputdir}/${name}.c\n"; - print OUT "#include \"../socketcommon.h\"\n"; + print OUT "#include \"socketcommon.h\"\n"; print OUT "\n"; print OUT "#ifndef __NR_${name}\n\n"; @@ -82,3 +84,5 @@ while ( defined($line = <FILE>) ) { die "$file:$.: Could not parse input\n"; } } + +print "\n"; diff --git a/klibc/syscalls.pl b/klibc/syscalls.pl index 1c48ce58ff623..9cea63097bfff 100644 --- a/klibc/syscalls.pl +++ b/klibc/syscalls.pl @@ -18,13 +18,14 @@ for $arg ( @ARGV ) { push(@args, $arg); } } -($file, $arch, $bits, $unistd, $havesyscall) = @args; +($file, $sysstub, $arch, $bits, $unistd, $outputdir, $havesyscall) = @args; -require "arch/$arch/sysstub.ph"; +require "$sysstub"; if (!open(UNISTD, '<', $unistd)) { die "$0: $unistd: $!\n"; } + while ( defined($line = <UNISTD>) ) { chomp $line; @@ -46,6 +47,8 @@ if (!open(FILE, '<', $file)) { die "$0: $file: $!\n"; } +print "syscall-objs := "; + while ( defined($line = <FILE>) ) { chomp $line; $line =~ s/\s*(|[\#;].*)$//; # Strip comments and trailing blanks @@ -104,11 +107,14 @@ while ( defined($line = <FILE>) ) { @args = split(/\s*\,\s*/, $argv); print HAVESYS "#define _KLIBC_HAVE_SYSCALL_${fname} ${sname}\n"; - make_sysstub($fname, $type, $sname, $stype, @args); + print " \\\n\tsyscalls/${fname}.o"; + make_sysstub($outputdir, $fname, $type, $sname, $stype, @args); } else { die "$file:$.: Could not parse input: \"$line\"\n"; } } +print "\n"; + print HAVESYS "\n#endif\n"; close(HAVESYS); |