klibc for 2.5.62
PATCH 1/1 klibc for 2.5.62
Hi,
Finally, here's the klibc addition against the latest 2.5.62 bk kernel tree. I'd like to thank Jeff Garzik, Peter Anvin, Russell King, and Kai Germaschews for doing all of this work. I've merely taken their code tweaked a few things and placed it in a repository to pull from. Thanks also to Arnd Bergmann for finding a few nasty bugs by getting the s390 code to build and run properly.
Right now, klibc is built and a small sample program is added to the initramfs image that is linked against klibc. I've backed out Kai's CONFIG_INITRAMFS and root filesystem mounting code, if you look at the changesets below. No new functionality is added to the kernel, yet :)
There might be a few problems when building on non-i386 platforms, but I'm available (and so is Kai) to help fix up any problems found.
Please pull from:
bk://kernel.bkbits.net/gregkh/linux/klibc-2.5
Due to the size of some of these patches, I've placed them all at:
kernel.org/pub/linux/kernel/people/gregkh/klibc/klibc-*2.5.62*
thanks,
greg k-h
usr/lib/socketcommon.h | 25 usr/lib/syscommon.h | 29 Makefile | 84 init/Kconfig | 10 init/Makefile | 7 init/do_mounts.c | 6 init/main.c | 22 scripts/Makefile | 5 scripts/Makefile.build | 6 scripts/Makefile.clean | 11 scripts/Makefile.lib | 3 scripts/Makefile.user | 209 + usr/Makefile | 54 usr/gen_init_cpio.c | 95 usr/lib/CAVEATS | 51 usr/lib/MCONFIG | 88 usr/lib/Makefile | 293 + usr/lib/README | 57 usr/lib/SOCKETCALLS | 21 usr/lib/SYSCALLS | 146 usr/lib/__shared_init.c | 56 usr/lib/__signal.c | 22 usr/lib/__static_init.c | 40 usr/lib/abort.c | 19 usr/lib/alarm.c | 29 usr/lib/arch/README | 67 usr/lib/arch/alpha/MCONFIG | 17 usr/lib/arch/alpha/Makefile.inc | 93 usr/lib/arch/alpha/README-gcc | 23 usr/lib/arch/alpha/crt0.S | 21 usr/lib/arch/alpha/divide.c | 57 usr/lib/arch/alpha/include/klibc/archsetjmp.h | 24 usr/lib/arch/alpha/include/klibc/archsys.h | 53 usr/lib/arch/alpha/include/machine/asm.h | 44 usr/lib/arch/alpha/pipe.c | 28 usr/lib/arch/alpha/setjmp.S | 61 usr/lib/arch/arm/MCONFIG | 26 usr/lib/arch/arm/Makefile.inc | 31 usr/lib/arch/arm/crt0.S | 25 usr/lib/arch/arm/include/klibc/archsetjmp.h | 14 usr/lib/arch/arm/include/klibc/archsys.h | 12 usr/lib/arch/arm/setjmp-arm.S | 40 usr/lib/arch/arm/setjmp-thumb.S | 58 usr/lib/arch/cris/MCONFIG | 11 usr/lib/arch/cris/Makefile.inc | 10 usr/lib/arch/cris/include/klibc/archsys.h | 12 usr/lib/arch/i386/MCONFIG | 24 usr/lib/arch/i386/Makefile.inc | 27 usr/lib/arch/i386/crt0.S | 33 usr/lib/arch/i386/exits.S | 45 usr/lib/arch/i386/include/klibc/archsetjmp.h | 19 usr/lib/arch/i386/include/klibc/archsys.h | 96 usr/lib/arch/i386/include/klibc/diverr.h | 16 usr/lib/arch/i386/libgcc/__ashldi3.S | 29 usr/lib/arch/i386/libgcc/__ashrdi3.S | 29 usr/lib/arch/i386/libgcc/__lshrdi3.S | 29 usr/lib/arch/i386/libgcc/__muldi3.S | 34 usr/lib/arch/i386/libgcc/__negdi2.S | 21 usr/lib/arch/i386/setjmp.S | 58 usr/lib/arch/i386/socketcall.S | 38 usr/lib/arch/ia64/MCONFIG | 11 usr/lib/arch/ia64/Makefile.inc | 10 usr/lib/arch/ia64/include/klibc/archsys.h | 12 usr/lib/arch/m68k/MCONFIG | 11 usr/lib/arch/m68k/Makefile.inc | 10 usr/lib/arch/m68k/include/klibc/archsys.h | 12 usr/lib/arch/mips/MCONFIG | 18 usr/lib/arch/mips/Makefile.inc | 24 usr/lib/arch/mips/crt0.S | 25 usr/lib/arch/mips/include/klibc/archsetjmp.h | 39 usr/lib/arch/mips/include/klibc/archsys.h | 12 usr/lib/arch/mips/include/machine/asm.h | 11 usr/lib/arch/mips/include/sgidefs.h | 20 usr/lib/arch/mips/pipe.S | 16 usr/lib/arch/mips/setjmp.S | 82 usr/lib/arch/mips/vfork.S | 19 usr/lib/arch/mips64/MCONFIG | 11 usr/lib/arch/mips64/Makefile.inc | 10 usr/lib/arch/mips64/include/klibc/archsys.h | 12 usr/lib/arch/parisc/MCONFIG | 11 usr/lib/arch/parisc/Makefile.inc | 10 usr/lib/arch/parisc/include/klibc/archsys.h | 12 usr/lib/arch/ppc/MCONFIG | 11 usr/lib/arch/ppc/Makefile.inc | 15 usr/lib/arch/ppc/crt0.S | 29 usr/lib/arch/ppc/include/klibc/archsetjmp.h | 36 usr/lib/arch/ppc/include/klibc/archsys.h | 55 usr/lib/arch/ppc/setjmp.S | 35 usr/lib/arch/ppc64/MCONFIG | 11 usr/lib/arch/ppc64/Makefile.inc | 10 usr/lib/arch/ppc64/crt0.S | 38 usr/lib/arch/ppc64/include/klibc/archsys.h | 52 usr/lib/arch/s390/MCONFIG | 13 usr/lib/arch/s390/Makefile.inc | 16 usr/lib/arch/s390/crt0.S | 25 usr/lib/arch/s390/include/klibc/archsetjmp.h | 15 usr/lib/arch/s390/include/klibc/archsys.h | 41 usr/lib/arch/s390/setjmp.S | 32 usr/lib/arch/s390x/MCONFIG | 13 usr/lib/arch/s390x/Makefile.inc | 16 usr/lib/arch/s390x/crt0.S | 21 usr/lib/arch/s390x/include/klibc/archsetjmp.h | 15 usr/lib/arch/s390x/include/klibc/archsys.h | 41 usr/lib/arch/s390x/setjmp.S | 36 usr/lib/arch/sh/MCONFIG | 11 usr/lib/arch/sh/Makefile.inc | 10 usr/lib/arch/sh/include/klibc/archsys.h | 12 usr/lib/arch/sparc/MCONFIG | 18 usr/lib/arch/sparc/Makefile.inc | 44 usr/lib/arch/sparc/crt0.S | 2 usr/lib/arch/sparc/crt0i.S | 100 usr/lib/arch/sparc/divrem.m4 | 276 + usr/lib/arch/sparc/include/klibc/archsetjmp.h | 16 usr/lib/arch/sparc/include/klibc/archsys.h | 65 usr/lib/arch/sparc/include/machine/asm.h | 192 + usr/lib/arch/sparc/include/machine/frame.h | 138 usr/lib/arch/sparc/include/machine/trap.h | 141 usr/lib/arch/sparc/setjmp.S | 38 usr/lib/arch/sparc/smul.S | 160 usr/lib/arch/sparc/umul.S | 193 + usr/lib/arch/sparc64/MCONFIG | 21 usr/lib/arch/sparc64/Makefile.inc | 13 usr/lib/arch/sparc64/crt0.S | 2 usr/lib/arch/sparc64/include/klibc/archsetjmp.h | 16 usr/lib/arch/sparc64/include/klibc/archsys.h | 157 usr/lib/arch/sparc64/setjmp.S | 55 usr/lib/arch/x86_64/MCONFIG | 16 usr/lib/arch/x86_64/Makefile.inc | 16 usr/lib/arch/x86_64/crt0.S | 22 usr/lib/arch/x86_64/exits.S | 35 usr/lib/arch/x86_64/include/klibc/archsetjmp.h | 21 usr/lib/arch/x86_64/include/klibc/archsys.h | 32 usr/lib/arch/x86_64/setjmp.S | 54 usr/lib/assert.c | 13 usr/lib/atexit.c | 10 usr/lib/atexit.h | 19 usr/lib/atoi.c | 3 usr/lib/atol.c | 3 usr/lib/atoll.c | 3 usr/lib/atox.c | 14 usr/lib/brk.c | 24 usr/lib/bsd_signal.c | 11 usr/lib/calloc.c | 21 usr/lib/closelog.c | 18 usr/lib/creat.c | 12 usr/lib/ctypes.c | 281 + usr/lib/exec_l.c | 57 usr/lib/execl.c | 8 usr/lib/execle.c | 8 usr/lib/execlp.c | 8 usr/lib/execlpe.c | 8 usr/lib/execv.c | 13 usr/lib/execvp.c | 13 usr/lib/execvpe.c | 73 usr/lib/exitc.c | 36 usr/lib/fdatasync.c | 15 usr/lib/fgetc.c | 20 usr/lib/fgets.c | 33 usr/lib/fopen.c | 46 usr/lib/fork.c | 29 usr/lib/fprintf.c | 19 usr/lib/fputc.c | 14 usr/lib/fputs.c | 15 usr/lib/fread.c | 35 usr/lib/fread2.c | 13 usr/lib/fwrite.c | 35 usr/lib/fwrite2.c | 13 usr/lib/getcwd.c | 15 usr/lib/getdomainname.c | 25 usr/lib/getenv.c | 22 usr/lib/gethostname.c | 25 usr/lib/getopt.c | 74 usr/lib/getpriority.c | 25 usr/lib/globals.c | 10 usr/lib/include/alloca.h | 13 usr/lib/include/arpa/inet.h | 24 usr/lib/include/assert.h | 22 usr/lib/include/bits32/bitsize/limits.h | 14 usr/lib/include/bits32/bitsize/stddef.h | 18 usr/lib/include/bits32/bitsize/stdint.h | 34 usr/lib/include/bits32/bitsize/stdintconst.h | 18 usr/lib/include/bits32/bitsize/stdintlimits.h | 22 usr/lib/include/bits64/bitsize/limits.h | 14 usr/lib/include/bits64/bitsize/stddef.h | 13 usr/lib/include/bits64/bitsize/stdint.h | 36 usr/lib/include/bits64/bitsize/stdintconst.h | 18 usr/lib/include/bits64/bitsize/stdintlimits.h | 22 usr/lib/include/ctype.h | 117 usr/lib/include/dirent.h | 20 usr/lib/include/elf.h | 12 usr/lib/include/endian.h | 41 usr/lib/include/errno.h | 8 usr/lib/include/fcntl.h | 11 usr/lib/include/grp.h | 13 usr/lib/include/inttypes.h | 226 + usr/lib/include/klibc/compiler.h | 61 usr/lib/include/klibc/diverr.h | 16 usr/lib/include/klibc/extern.h | 14 usr/lib/include/limits.h | 40 usr/lib/include/net/if.h | 1 usr/lib/include/net/if_arp.h | 1 usr/lib/include/net/if_ether.h | 1 usr/lib/include/net/if_packet.h | 1 usr/lib/include/netinet/in.h | 29 usr/lib/include/netinet/in6.h | 10 usr/lib/include/netinet/ip.h | 13 usr/lib/include/netinet/tcp.h | 11 usr/lib/include/netinet/udp.h | 19 usr/lib/include/poll.h | 16 usr/lib/include/sched.h | 23 usr/lib/include/setjmp.h | 43 usr/lib/include/signal.h | 72 usr/lib/include/stdarg.h | 14 usr/lib/include/stddef.h | 24 usr/lib/include/stdint.h | 113 usr/lib/include/stdio.h | 109 usr/lib/include/stdlib.h | 94 usr/lib/include/string.h | 37 usr/lib/include/sys/dirent.h | 13 usr/lib/include/sys/fsuid.h | 14 usr/lib/include/sys/ioctl.h | 14 usr/lib/include/sys/klog.h | 24 usr/lib/include/sys/mman.h | 21 usr/lib/include/sys/module.h | 158 usr/lib/include/sys/mount.h | 55 usr/lib/include/sys/param.h | 11 usr/lib/include/sys/reboot.h | 25 usr/lib/include/sys/resource.h | 15 usr/lib/include/sys/select.h | 13 usr/lib/include/sys/socket.h | 50 usr/lib/include/sys/socketcalls.h | 28 usr/lib/include/sys/stat.h | 23 usr/lib/include/sys/syscall.h | 15 usr/lib/include/sys/time.h | 16 usr/lib/include/sys/times.h | 14 usr/lib/include/sys/types.h | 131 usr/lib/include/sys/uio.h | 15 usr/lib/include/sys/utime.h | 10 usr/lib/include/sys/utsname.h | 23 usr/lib/include/sys/vfs.h | 14 usr/lib/include/sys/wait.h | 19 usr/lib/include/syslog.h | 53 usr/lib/include/termios.h | 86 usr/lib/include/time.h | 14 usr/lib/include/unistd.h | 106 usr/lib/include/utime.h | 15 usr/lib/inet/inet_addr.c | 14 usr/lib/inet/inet_aton.c | 23 usr/lib/inet/inet_ntoa.c | 19 usr/lib/inet/inet_ntop.c | 52 usr/lib/inet/inet_pton.c | 74 usr/lib/interp.S | 11 usr/lib/isatty.c | 21 usr/lib/libgcc/__divdi3.c | 29 usr/lib/libgcc/__divsi3.c | 29 usr/lib/libgcc/__moddi3.c | 29 usr/lib/libgcc/__modsi3.c | 29 usr/lib/libgcc/__udivdi3.c | 13 usr/lib/libgcc/__udivmoddi4.c | 32 usr/lib/libgcc/__udivmodsi4.c | 32 usr/lib/libgcc/__udivsi3.c | 13 usr/lib/libgcc/__umoddi3.c | 16 usr/lib/libgcc/__umodsi3.c | 16 usr/lib/llseek.c | 34 usr/lib/lrand48.c | 42 usr/lib/makeerrlist.pl | 80 usr/lib/malloc.c | 192 + usr/lib/malloc.h | 51 usr/lib/memccpy.c | 23 usr/lib/memchr.c | 18 usr/lib/memcmp.c | 19 usr/lib/memcpy.c | 29 usr/lib/memmem.c | 44 usr/lib/memmove.c | 34 usr/lib/memset.c | 30 usr/lib/memswap.c | 23 usr/lib/mmap.c | 51 usr/lib/nice.c | 22 usr/lib/onexit.c | 39 usr/lib/pause.c | 21 usr/lib/perror.c | 12 usr/lib/printf.c | 19 usr/lib/pty.c | 31 usr/lib/puts.c | 13 usr/lib/qsort.c | 42 usr/lib/raise.c | 11 usr/lib/readdir.c | 66 usr/lib/realloc.c | 49 usr/lib/reboot.c | 15 usr/lib/recv.c | 11 usr/lib/sbrk.c | 23 usr/lib/seed48.c | 19 usr/lib/select.c | 9 usr/lib/send.c | 11 usr/lib/setegid.c | 10 usr/lib/setenv.c | 124 usr/lib/seteuid.c | 10 usr/lib/setpgrp.c | 10 usr/lib/setresgid.c | 29 usr/lib/setresuid.c | 30 usr/lib/sha1hash.c | 319 + usr/lib/sigaction.c | 19 usr/lib/siglist.c | 115 usr/lib/siglongjmp.c | 16 usr/lib/signal.c | 11 usr/lib/sigpending.c | 19 usr/lib/sigprocmask.c | 19 usr/lib/sigsuspend.c | 19 usr/lib/sleep.c | 20 usr/lib/snprintf.c | 16 usr/lib/socketcalls.pl | 75 usr/lib/socketcalls/socketcommon.h | 25 usr/lib/socketcommon.h | 25 usr/lib/sprintf.c | 18 usr/lib/srand48.c | 16 usr/lib/sscanf.c | 17 usr/lib/strcat.c | 11 usr/lib/strchr.c | 16 usr/lib/strcmp.c | 20 usr/lib/strcpy.c | 20 usr/lib/strdup.c | 17 usr/lib/strerror.c | 25 usr/lib/strlen.c | 14 usr/lib/strncat.c | 11 usr/lib/strncmp.c | 20 usr/lib/strncpy.c | 22 usr/lib/strntoimax.c | 13 usr/lib/strntoumax.c | 75 usr/lib/strrchr.c | 18 usr/lib/strsep.c | 21 usr/lib/strspn.c | 67 usr/lib/strstr.c | 10 usr/lib/strtoimax.c | 3 usr/lib/strtok.c | 16 usr/lib/strtol.c | 3 usr/lib/strtoll.c | 3 usr/lib/strtoul.c | 3 usr/lib/strtoull.c | 3 usr/lib/strtoumax.c | 3 usr/lib/strtox.c | 13 usr/lib/syscalls.pl | 84 usr/lib/syscalls/syscommon.h | 29 usr/lib/syscommon.h | 29 usr/lib/syslog.c | 68 usr/lib/tests/getenvtest.c | 26 usr/lib/tests/getopttest.c | 31 usr/lib/tests/hello.c | 7 usr/lib/tests/idtest.c | 14 usr/lib/tests/malloctest.c | 4145 ++++++++++++++++++++++++ usr/lib/tests/memstrtest.c | 29 usr/lib/tests/microhello.c | 9 usr/lib/tests/minihello.c | 7 usr/lib/tests/minips.c | 452 ++ usr/lib/tests/nfs_no_rpc.c | 538 +++ usr/lib/tests/setjmptest.c | 36 usr/lib/tests/testrand48.c | 19 usr/lib/tests/testvsnp.c | 115 usr/lib/time.c | 27 usr/lib/umount.c | 12 usr/lib/unsetenv.c | 40 usr/lib/usleep.c | 15 usr/lib/utime.c | 30 usr/lib/vfprintf.c | 26 usr/lib/vprintf.c | 11 usr/lib/vsnprintf.c | 433 ++ usr/lib/vsprintf.c | 11 usr/lib/vsscanf.c | 365 ++ usr/lib/wait.c | 12 usr/lib/wait3.c | 12 usr/lib/waitpid.c | 12 usr/root/Makefile | 8 usr/root/hello |binary usr/root/hello.c | 21 usr/root/init.c | 442 -- 374 files changed, 18437 insertions(+), 677 deletions(-)
-----
[email protected], 2003-02-19 11:21:54-08:00, [email protected]
[PATCH] KLIBC: fix for non-i386 build
I just tried building on s390x and only needed this trivial fix. Unfortunately, 2.5.61 does not boot on s390x yet, so I could not do run-time tests.
usr/lib/socketcalls.pl | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
------
[email protected], 2003-02-19 10:39:00-08:00, [email protected]
Cset exclude: [email protected]|ChangeSet|20030217001132|22043
init/Kconfig | 10 - init/Makefile | 7 init/do_mounts.c | 6 init/main.c | 22 -- scripts/Makefile | 3 usr/Makefile | 2 usr/gen_init_cpio.c | 2 usr/root/Makefile | 5 usr/root/init.c | 442 ---------------------------------------------------- 9 files changed, 10 insertions(+), 489 deletions(-)
------
[email protected], 2003-02-19 10:37:44-08:00, [email protected]
KLIBC: fix up some type errors that were highlighted by the posix timer changes.
usr/lib/include/sys/types.h | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
------
[email protected], 2003-02-19 10:35:46-08:00, [email protected]
KLIBC: delete usr/root/hello
We don't need binaries in the kernel source tree :)
usr/root/hello |binary
1 files changed
------
[email protected], 2003-02-19 09:01:31-08:00, [email protected]
merge
Makefile | 39 ++++++++++++++++++++++++++++++++++++--- scripts/Makefile | 2 +- 2 files changed, 37 insertions(+), 4 deletions(-)
------
[email protected], 2003-02-16 18:57:52-06:00, [email protected]
Merge tp1.ruhr-uni-bochum.de:/scratch/kai/kernel/v2.5/linux-2.5 into tp1.ruhr-uni-bochum.de:/scratch/kai/kernel/v2.5/linux-2.5.klibc
Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
------
[email protected], 2003-02-16 18:11:32-06:00, [email protected]
klibc: Move mounting of the root filesystem into userspace
When selecting CONFIG_INITRAMFS, init/do_mounts.c is not compiled anymore, and it's task is taken over by a small /sbin/init running in initramfs.
However, this is a proof of concept only, the userspace code only handles mounting a local filesystem, no support for nfs / initrd / devfs yet.
init/Kconfig | 10 + init/Makefile | 7 init/do_mounts.c | 6 init/main.c | 22 ++ scripts/Makefile | 4 usr/Makefile | 2 usr/gen_init_cpio.c | 2 usr/root/Makefile | 5 usr/root/init.c | 442 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 489 insertions(+), 11 deletions(-)
------
[email protected], 2003-02-16 18:06:13-06:00, [email protected]
klibc: Silence too ambitious warnings
gcc complained about unused function parameters and things, that's just a little too much.
Makefile | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
------
[email protected], 2003-02-15 23:33:21-06:00, [email protected]
klibc: Stop on error when building the CPIO
gen_init_cpio still referenced hello in usr/hello_world, but I put it into usr/root. This is now corrected, however it also pointed out the common problem that the error code of gen_init_cpio is ignored since it's output is piped to gzip. To fix that, make the generation of the .cpio.gz a two step process.
usr/Makefile | 24 +++++++++++++++++------- usr/gen_init_cpio.c | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-)
------
[email protected], 2003-02-15 23:24:10-06:00, [email protected]
klibc: gen_init_cpio file generation fix
I found what kept initramfs from working here: While creating of initramfs_data.cpio.gz, the padding between a file header and the file contents was wrong, which can be verified by unpacking the archive by hand.
usr/gen_init_cpio.c | 1 + 1 files changed, 1 insertion(+)
------
[email protected], 2003-02-15 23:21:47-06:00, [email protected]
klibc: add file support to gen_init_cpio.c
usr/gen_init_cpio.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+)
------
[email protected], 2003-02-15 23:20:13-06:00, [email protected]
klibc: Fix the "hello" example (for real)
Greg's fix used fwrite on a file descriptor obtained from open(), which only works by luck, since for klibc FILE * == fd.
Use standard C lib functions for open/close.
usr/root/hello.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
------
[email protected], 2003-02-15 23:16:53-06:00, [email protected]
klibc: Fix a compiler warning
usr/lib/sha1hash.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
------
[email protected], 2003-02-15 23:11:51-06:00, [email protected]
klibc: fix up the hello_world example
stdout doesn't go anywhere useful when spawned from the kernel :)
usr/root/hello.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-)
------
[email protected], 2003-02-15 23:09:41-06:00, [email protected]
kbuild/klibc: Integrate klibc into the build.
Basically, add a scripts/Makefile.user, which does similar things to scripts/Makefile.build, but compiles userspace for the target instead.
It's tested for a static klibc on i386, building the shared lib works, too, but is not further integrated.
This patch also adds gregkh's hello test program, which works as well.
usr/lib/socketcommon.h | 25 ---- usr/lib/syscommon.h | 29 ----- Makefile | 39 ++++++ scripts/Makefile.build | 6 - scripts/Makefile.clean | 11 + scripts/Makefile.lib | 3 scripts/Makefile.user | 209 +++++++++++++++++++++++++++++++++++++ usr/Makefile | 28 ++++ usr/lib/MCONFIG | 39 +++--- usr/lib/Makefile | 159 ++++++++++++++-------------- usr/lib/socketcalls.pl | 11 + usr/lib/socketcalls/socketcommon.h | 25 ++++ usr/lib/syscalls.pl | 12 +- usr/lib/syscalls/syscommon.h | 29 +++++ usr/root/Makefile | 3 usr/root/hello |binary usr/root/hello.c | 8 + 17 files changed, 471 insertions(+), 165 deletions(-)
------
[email protected], 2003-02-15 16:55:46-06:00, [email protected]
klibc: Merge klibc-0.77
That's just a cp -r klibc-0.77/klibc/* linux/usr/lib
usr/lib/CAVEATS | 51 usr/lib/MCONFIG | 49 usr/lib/Makefile | 134 usr/lib/README | 57 usr/lib/SOCKETCALLS | 21 usr/lib/SYSCALLS | 146 usr/lib/__shared_init.c | 56 usr/lib/__signal.c | 22 usr/lib/__static_init.c | 40 usr/lib/abort.c | 19 usr/lib/alarm.c | 29 usr/lib/arch/README | 67 usr/lib/arch/alpha/MCONFIG | 17 usr/lib/arch/alpha/Makefile.inc | 93 usr/lib/arch/alpha/README-gcc | 23 usr/lib/arch/alpha/crt0.S | 21 usr/lib/arch/alpha/divide.c | 57 usr/lib/arch/alpha/include/klibc/archsetjmp.h | 24 usr/lib/arch/alpha/include/klibc/archsys.h | 53 usr/lib/arch/alpha/include/machine/asm.h | 44 usr/lib/arch/alpha/pipe.c | 28 usr/lib/arch/alpha/setjmp.S | 61 usr/lib/arch/arm/MCONFIG | 26 usr/lib/arch/arm/Makefile.inc | 31 usr/lib/arch/arm/crt0.S | 25 usr/lib/arch/arm/include/klibc/archsetjmp.h | 14 usr/lib/arch/arm/include/klibc/archsys.h | 12 usr/lib/arch/arm/setjmp-arm.S | 40 usr/lib/arch/arm/setjmp-thumb.S | 58 usr/lib/arch/cris/MCONFIG | 11 usr/lib/arch/cris/Makefile.inc | 10 usr/lib/arch/cris/include/klibc/archsys.h | 12 usr/lib/arch/i386/MCONFIG | 24 usr/lib/arch/i386/Makefile.inc | 27 usr/lib/arch/i386/crt0.S | 33 usr/lib/arch/i386/exits.S | 45 usr/lib/arch/i386/include/klibc/archsetjmp.h | 19 usr/lib/arch/i386/include/klibc/archsys.h | 96 usr/lib/arch/i386/include/klibc/diverr.h | 16 usr/lib/arch/i386/libgcc/__ashldi3.S | 29 usr/lib/arch/i386/libgcc/__ashrdi3.S | 29 usr/lib/arch/i386/libgcc/__lshrdi3.S | 29 usr/lib/arch/i386/libgcc/__muldi3.S | 34 usr/lib/arch/i386/libgcc/__negdi2.S | 21 usr/lib/arch/i386/setjmp.S | 58 usr/lib/arch/i386/socketcall.S | 38 usr/lib/arch/ia64/MCONFIG | 11 usr/lib/arch/ia64/Makefile.inc | 10 usr/lib/arch/ia64/include/klibc/archsys.h | 12 usr/lib/arch/m68k/MCONFIG | 11 usr/lib/arch/m68k/Makefile.inc | 10 usr/lib/arch/m68k/include/klibc/archsys.h | 12 usr/lib/arch/mips/MCONFIG | 18 usr/lib/arch/mips/Makefile.inc | 24 usr/lib/arch/mips/crt0.S | 25 usr/lib/arch/mips/include/klibc/archsetjmp.h | 39 usr/lib/arch/mips/include/klibc/archsys.h | 12 usr/lib/arch/mips/include/machine/asm.h | 11 usr/lib/arch/mips/include/sgidefs.h | 20 usr/lib/arch/mips/pipe.S | 16 usr/lib/arch/mips/setjmp.S | 82 usr/lib/arch/mips/vfork.S | 19 usr/lib/arch/mips64/MCONFIG | 11 usr/lib/arch/mips64/Makefile.inc | 10 usr/lib/arch/mips64/include/klibc/archsys.h | 12 usr/lib/arch/parisc/MCONFIG | 11 usr/lib/arch/parisc/Makefile.inc | 10 usr/lib/arch/parisc/include/klibc/archsys.h | 12 usr/lib/arch/ppc/MCONFIG | 11 usr/lib/arch/ppc/Makefile.inc | 15 usr/lib/arch/ppc/crt0.S | 29 usr/lib/arch/ppc/include/klibc/archsetjmp.h | 36 usr/lib/arch/ppc/include/klibc/archsys.h | 55 usr/lib/arch/ppc/setjmp.S | 35 usr/lib/arch/ppc64/MCONFIG | 11 usr/lib/arch/ppc64/Makefile.inc | 10 usr/lib/arch/ppc64/crt0.S | 38 usr/lib/arch/ppc64/include/klibc/archsys.h | 52 usr/lib/arch/s390/MCONFIG | 13 usr/lib/arch/s390/Makefile.inc | 16 usr/lib/arch/s390/crt0.S | 25 usr/lib/arch/s390/include/klibc/archsetjmp.h | 15 usr/lib/arch/s390/include/klibc/archsys.h | 41 usr/lib/arch/s390/setjmp.S | 32 usr/lib/arch/s390x/MCONFIG | 13 usr/lib/arch/s390x/Makefile.inc | 16 usr/lib/arch/s390x/crt0.S | 21 usr/lib/arch/s390x/include/klibc/archsetjmp.h | 15 usr/lib/arch/s390x/include/klibc/archsys.h | 41 usr/lib/arch/s390x/setjmp.S | 36 usr/lib/arch/sh/MCONFIG | 11 usr/lib/arch/sh/Makefile.inc | 10 usr/lib/arch/sh/include/klibc/archsys.h | 12 usr/lib/arch/sparc/MCONFIG | 18 usr/lib/arch/sparc/Makefile.inc | 44 usr/lib/arch/sparc/crt0.S | 2 usr/lib/arch/sparc/crt0i.S | 100 usr/lib/arch/sparc/divrem.m4 | 276 + usr/lib/arch/sparc/include/klibc/archsetjmp.h | 16 usr/lib/arch/sparc/include/klibc/archsys.h | 65 usr/lib/arch/sparc/include/machine/asm.h | 192 + usr/lib/arch/sparc/include/machine/frame.h | 138 usr/lib/arch/sparc/include/machine/trap.h | 141 usr/lib/arch/sparc/setjmp.S | 38 usr/lib/arch/sparc/smul.S | 160 usr/lib/arch/sparc/umul.S | 193 + usr/lib/arch/sparc64/MCONFIG | 21 usr/lib/arch/sparc64/Makefile.inc | 13 usr/lib/arch/sparc64/crt0.S | 2 usr/lib/arch/sparc64/include/klibc/archsetjmp.h | 16 usr/lib/arch/sparc64/include/klibc/archsys.h | 157 usr/lib/arch/sparc64/setjmp.S | 55 usr/lib/arch/x86_64/MCONFIG | 16 usr/lib/arch/x86_64/Makefile.inc | 16 usr/lib/arch/x86_64/crt0.S | 22 usr/lib/arch/x86_64/exits.S | 35 usr/lib/arch/x86_64/include/klibc/archsetjmp.h | 21 usr/lib/arch/x86_64/include/klibc/archsys.h | 32 usr/lib/arch/x86_64/setjmp.S | 54 usr/lib/assert.c | 13 usr/lib/atexit.c | 10 usr/lib/atexit.h | 19 usr/lib/atoi.c | 3 usr/lib/atol.c | 3 usr/lib/atoll.c | 3 usr/lib/atox.c | 14 usr/lib/brk.c | 24 usr/lib/bsd_signal.c | 11 usr/lib/calloc.c | 21 usr/lib/closelog.c | 18 usr/lib/creat.c | 12 usr/lib/ctypes.c | 281 + usr/lib/exec_l.c | 57 usr/lib/execl.c | 8 usr/lib/execle.c | 8 usr/lib/execlp.c | 8 usr/lib/execlpe.c | 8 usr/lib/execv.c | 13 usr/lib/execvp.c | 13 usr/lib/execvpe.c | 73 usr/lib/exitc.c | 36 usr/lib/fdatasync.c | 15 usr/lib/fgetc.c | 20 usr/lib/fgets.c | 33 usr/lib/fopen.c | 46 usr/lib/fork.c | 29 usr/lib/fprintf.c | 19 usr/lib/fputc.c | 14 usr/lib/fputs.c | 15 usr/lib/fread.c | 35 usr/lib/fread2.c | 13 usr/lib/fwrite.c | 35 usr/lib/fwrite2.c | 13 usr/lib/getcwd.c | 15 usr/lib/getdomainname.c | 25 usr/lib/getenv.c | 22 usr/lib/gethostname.c | 25 usr/lib/getopt.c | 74 usr/lib/getpriority.c | 25 usr/lib/globals.c | 10 usr/lib/include/alloca.h | 13 usr/lib/include/arpa/inet.h | 24 usr/lib/include/assert.h | 22 usr/lib/include/bits32/bitsize/limits.h | 14 usr/lib/include/bits32/bitsize/stddef.h | 18 usr/lib/include/bits32/bitsize/stdint.h | 34 usr/lib/include/bits32/bitsize/stdintconst.h | 18 usr/lib/include/bits32/bitsize/stdintlimits.h | 22 usr/lib/include/bits64/bitsize/limits.h | 14 usr/lib/include/bits64/bitsize/stddef.h | 13 usr/lib/include/bits64/bitsize/stdint.h | 36 usr/lib/include/bits64/bitsize/stdintconst.h | 18 usr/lib/include/bits64/bitsize/stdintlimits.h | 22 usr/lib/include/ctype.h | 117 usr/lib/include/dirent.h | 20 usr/lib/include/elf.h | 12 usr/lib/include/endian.h | 41 usr/lib/include/errno.h | 8 usr/lib/include/fcntl.h | 11 usr/lib/include/grp.h | 13 usr/lib/include/inttypes.h | 226 + usr/lib/include/klibc/compiler.h | 61 usr/lib/include/klibc/diverr.h | 16 usr/lib/include/klibc/extern.h | 14 usr/lib/include/limits.h | 40 usr/lib/include/net/if.h | 1 usr/lib/include/net/if_arp.h | 1 usr/lib/include/net/if_ether.h | 1 usr/lib/include/net/if_packet.h | 1 usr/lib/include/netinet/in.h | 29 usr/lib/include/netinet/in6.h | 10 usr/lib/include/netinet/ip.h | 13 usr/lib/include/netinet/tcp.h | 11 usr/lib/include/netinet/udp.h | 19 usr/lib/include/poll.h | 16 usr/lib/include/sched.h | 23 usr/lib/include/setjmp.h | 43 usr/lib/include/signal.h | 72 usr/lib/include/stdarg.h | 14 usr/lib/include/stddef.h | 24 usr/lib/include/stdint.h | 113 usr/lib/include/stdio.h | 109 usr/lib/include/stdlib.h | 94 usr/lib/include/string.h | 37 usr/lib/include/sys/dirent.h | 13 usr/lib/include/sys/fsuid.h | 14 usr/lib/include/sys/ioctl.h | 14 usr/lib/include/sys/klog.h | 24 usr/lib/include/sys/mman.h | 21 usr/lib/include/sys/module.h | 158 usr/lib/include/sys/mount.h | 55 usr/lib/include/sys/param.h | 11 usr/lib/include/sys/reboot.h | 25 usr/lib/include/sys/resource.h | 15 usr/lib/include/sys/select.h | 13 usr/lib/include/sys/socket.h | 50 usr/lib/include/sys/socketcalls.h | 28 usr/lib/include/sys/stat.h | 23 usr/lib/include/sys/syscall.h | 15 usr/lib/include/sys/time.h | 16 usr/lib/include/sys/times.h | 14 usr/lib/include/sys/types.h | 126 usr/lib/include/sys/uio.h | 15 usr/lib/include/sys/utime.h | 10 usr/lib/include/sys/utsname.h | 23 usr/lib/include/sys/vfs.h | 14 usr/lib/include/sys/wait.h | 19 usr/lib/include/syslog.h | 53 usr/lib/include/termios.h | 86 usr/lib/include/time.h | 14 usr/lib/include/unistd.h | 106 usr/lib/include/utime.h | 15 usr/lib/inet/inet_addr.c | 14 usr/lib/inet/inet_aton.c | 23 usr/lib/inet/inet_ntoa.c | 19 usr/lib/inet/inet_ntop.c | 52 usr/lib/inet/inet_pton.c | 74 usr/lib/interp.S | 11 usr/lib/isatty.c | 21 usr/lib/libgcc/__divdi3.c | 29 usr/lib/libgcc/__divsi3.c | 29 usr/lib/libgcc/__moddi3.c | 29 usr/lib/libgcc/__modsi3.c | 29 usr/lib/libgcc/__udivdi3.c | 13 usr/lib/libgcc/__udivmoddi4.c | 32 usr/lib/libgcc/__udivmodsi4.c | 32 usr/lib/libgcc/__udivsi3.c | 13 usr/lib/libgcc/__umoddi3.c | 16 usr/lib/libgcc/__umodsi3.c | 16 usr/lib/llseek.c | 34 usr/lib/lrand48.c | 42 usr/lib/makeerrlist.pl | 80 usr/lib/malloc.c | 192 + usr/lib/malloc.h | 51 usr/lib/memccpy.c | 23 usr/lib/memchr.c | 18 usr/lib/memcmp.c | 19 usr/lib/memcpy.c | 29 usr/lib/memmem.c | 44 usr/lib/memmove.c | 34 usr/lib/memset.c | 30 usr/lib/memswap.c | 23 usr/lib/mmap.c | 51 usr/lib/nice.c | 22 usr/lib/onexit.c | 39 usr/lib/pause.c | 21 usr/lib/perror.c | 12 usr/lib/printf.c | 19 usr/lib/pty.c | 31 usr/lib/puts.c | 13 usr/lib/qsort.c | 42 usr/lib/raise.c | 11 usr/lib/readdir.c | 66 usr/lib/realloc.c | 49 usr/lib/reboot.c | 15 usr/lib/recv.c | 11 usr/lib/sbrk.c | 23 usr/lib/seed48.c | 19 usr/lib/select.c | 9 usr/lib/send.c | 11 usr/lib/setegid.c | 10 usr/lib/setenv.c | 124 usr/lib/seteuid.c | 10 usr/lib/setpgrp.c | 10 usr/lib/setresgid.c | 29 usr/lib/setresuid.c | 30 usr/lib/sha1hash.c | 317 + usr/lib/sigaction.c | 19 usr/lib/siglist.c | 115 usr/lib/siglongjmp.c | 16 usr/lib/signal.c | 11 usr/lib/sigpending.c | 19 usr/lib/sigprocmask.c | 19 usr/lib/sigsuspend.c | 19 usr/lib/sleep.c | 20 usr/lib/snprintf.c | 16 usr/lib/socketcalls.pl | 62 usr/lib/socketcommon.h | 25 usr/lib/sprintf.c | 18 usr/lib/srand48.c | 16 usr/lib/sscanf.c | 17 usr/lib/strcat.c | 11 usr/lib/strchr.c | 16 usr/lib/strcmp.c | 20 usr/lib/strcpy.c | 20 usr/lib/strdup.c | 17 usr/lib/strerror.c | 25 usr/lib/strlen.c | 14 usr/lib/strncat.c | 11 usr/lib/strncmp.c | 20 usr/lib/strncpy.c | 22 usr/lib/strntoimax.c | 13 usr/lib/strntoumax.c | 75 usr/lib/strrchr.c | 18 usr/lib/strsep.c | 21 usr/lib/strspn.c | 67 usr/lib/strstr.c | 10 usr/lib/strtoimax.c | 3 usr/lib/strtok.c | 16 usr/lib/strtol.c | 3 usr/lib/strtoll.c | 3 usr/lib/strtoul.c | 3 usr/lib/strtoull.c | 3 usr/lib/strtoumax.c | 3 usr/lib/strtox.c | 13 usr/lib/syscalls.pl | 72 usr/lib/syscommon.h | 29 usr/lib/syslog.c | 68 usr/lib/tests/getenvtest.c | 26 usr/lib/tests/getopttest.c | 31 usr/lib/tests/hello.c | 7 usr/lib/tests/idtest.c | 14 usr/lib/tests/malloctest.c | 4145 ++++++++++++++++++++++++ usr/lib/tests/memstrtest.c | 29 usr/lib/tests/microhello.c | 9 usr/lib/tests/minihello.c | 7 usr/lib/tests/minips.c | 452 ++ usr/lib/tests/nfs_no_rpc.c | 538 +++ usr/lib/tests/setjmptest.c | 36 usr/lib/tests/testrand48.c | 19 usr/lib/tests/testvsnp.c | 115 usr/lib/time.c | 27 usr/lib/umount.c | 12 usr/lib/unsetenv.c | 40 usr/lib/usleep.c | 15 usr/lib/utime.c | 30 usr/lib/vfprintf.c | 26 usr/lib/vprintf.c | 11 usr/lib/vsnprintf.c | 433 ++ usr/lib/vsprintf.c | 11 usr/lib/vsscanf.c | 365 ++ usr/lib/wait.c | 12 usr/lib/wait3.c | 12 usr/lib/waitpid.c | 12 354 files changed, 17793 insertions(+)
------
Quoted 4 lines · Greg KH
Hi,
Finally, here's the klibc addition against the latest 2.5.62 bk kernel tree.
A few comments that I had queued.
Quoted 1 line
usr/lib/arch/arm/MCONFIG | 26
Any good reasons for such a screaming name? makefile.config eventually.
Quoted 1 line
usr/lib/arch/arm/Makefile.inc | 31
No extension is used for arch/arm/Makefile Why does klibc differ in this respect?
[An answer that tell me that arch/arm/Makefile should change is fine with me..]
Quoted 2 lines
usr/lib/makeerrlist.pl | 80 usr/lib/socketcalls.pl | 75
This mixture of code and scripts to generate code hursts my eye. What about usr/scripts/.
I assume you do not want them in scripts/
Sam
Quoted 4 lines · Sam Ravnborg
Quoted 1 line · Greg KH
usr/lib/arch/arm/MCONFIG | 26Any good reasons for such a screaming name? makefile.config eventually.
Ask Peter :)
Quoted 6 lines
Quoted 1 line
usr/lib/arch/arm/Makefile.inc | 31No extension is used for
arch/arm/MakefileWhy does klibc differ in this respect?
[An answer that tell me thatarch/arm/Makefileshould change is fine with me..]
Ask Russell :)
Quoted 5 lines
Quoted 2 lines
usr/lib/makeerrlist.pl | 80 usr/lib/socketcalls.pl | 75This mixture of code and scripts to generate code hursts my eye. What about
usr/scripts/.
But they are the scripts used to build the code in usr/lib. I don't care where they go, that's just where they were in the klibc tarball.
Quoted 1 line
I assume you do not want them in
scripts/
Yeah, I wouldn't think they should go their either.
thanks,
greg k-h
Quoted 7 lines · Sam Ravnborg
Quoted 4 lines · Greg KH
Quoted 1 line
usr/lib/arch/arm/MCONFIG | 26Any good reasons for such a screaming name? makefile.config eventually.
Ask Peter :)
Simply because several other projects I use have MCONFIG files, and I'm used to the name.
Quoted 8 lines
Quoted 6 lines
Quoted 1 line
usr/lib/arch/arm/Makefile.inc | 31No extension is used for
arch/arm/MakefileWhy does klibc differ in this respect?
[An answer that tell me thatarch/arm/Makefileshould change is fine with me..]Ask Russell :)
Mine, actually: I don't like naming things Makefile unless it's OK to type "make" in that directory.
Quoted 8 lines
Quoted 5 lines
Quoted 2 lines
usr/lib/makeerrlist.pl | 80 usr/lib/socketcalls.pl | 75This mixture of code and scripts to generate code hursts my eye. What about
usr/scripts/.But they are the scripts used to build the code in usr/lib. I don't care where they go, that's just where they were in the klibc tarball.
Quite frankly, I think this is a bogus request. The .pl extension flags these, but if you think about it, there really is no difference between "code" and "scripts that generate code" -- each is a form of source code, just compiled by different programs.
Quoted 3 lines
Quoted 1 line
I assume you do not want them in
scripts/Yeah, I wouldn't think they should go their either.
No, that would completely suck.
usr/lib/tools would be semi-acceptable, but quite frankly I think it really is just complexity for complexity's sake. I also happen to believe that when it comes to aestetic judgements (which *all* of these objections are!) it should be primarily a choice of the people maintaining the code, and perhaps Linus.
-hpa