From 8c29d069db1898b519c6c610a91a25b5ffb8c9d0 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 1 Jan 2001 22:16:11 +0000 Subject: A bunch of updates, part from Manuel Novoa III (such as more long long support), and other updates by me (better cross platform, cross-compiler, etc, support. Now compiles with 2.0.x kernels for armnommu. --- libc/sysdeps/linux/Makefile | 2 +- libc/sysdeps/linux/common/statfix.h | 4 +++- libc/sysdeps/linux/common/syscalls.c | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) (limited to 'libc/sysdeps/linux') diff --git a/libc/sysdeps/linux/Makefile b/libc/sysdeps/linux/Makefile index 2451e6383..fb7808913 100644 --- a/libc/sysdeps/linux/Makefile +++ b/libc/sysdeps/linux/Makefile @@ -23,7 +23,7 @@ TOPDIR=../../ include $(TOPDIR)Rules.mak -DIRS = $(ARCH) common +DIRS = $(TARGET_ARCH) common all: libc.a diff --git a/libc/sysdeps/linux/common/statfix.h b/libc/sysdeps/linux/common/statfix.h index 21a776c92..df85d84d4 100644 --- a/libc/sysdeps/linux/common/statfix.h +++ b/libc/sysdeps/linux/common/statfix.h @@ -3,9 +3,11 @@ /* Pull in whatever this particular arch's kernel thinks the kernel version of * struct stat should look like. It turn out that each arch has a different - * opinion on the subject... */ + * opinion on the subject, and different kernel revs use different names... */ #define stat kernel_stat +#define new_stat kernel_stat #include +#undef new_stat #undef stat /* Now pull in libc's version of stat */ diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index c0630e1fd..a0bad06be 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -135,11 +135,19 @@ _syscall3(int, mknod, const char *, pathname, mode_t, mode, dev_t, dev); _syscall2(int, chmod, const char *, path, mode_t, mode); #endif +/* Old kernels don't have lchown -- do chown instead. This + * is sick and wrong, but at least things will compile. + * They may not follow links when they should though... */ +#ifndef __NR_lchown +#define __NR_lchown __NR_chown +#endif + //#define __NR_lchown 16 #ifdef L_lchown #include _syscall3(int, lchown, const char *, path, uid_t, owner, gid_t, group); #endif +#endif //#define __NR_break 17 @@ -325,11 +333,13 @@ gid_t getegid(void) //#define __NR_acct 51 +#ifdef __NR_umount2 /* Old kernels don't have umount2 */ //#define __NR_umount2 52 #ifdef L_umount2 #include _syscall2(int, umount2, const char *, special_file, int, flags); #endif +#endif //#define __NR_lock 53 @@ -639,6 +649,7 @@ _syscall2(int, statfs, const char *, path, struct statfs *, buf); _syscall2(int, fstatfs, int, fd, struct statfs *, buf); #endif +#ifndef __HAS_NO_MMU__ //#define __NR_ioperm 101 #ifdef L_ioperm #include @@ -646,6 +657,7 @@ syscall3(int, ioperm, unsigned, long, from, unsigned long, num, int, turn_on); #endif +#endif //#define __NR_socketcall 102 #ifdef L_socketcall @@ -737,11 +749,13 @@ int fstat(int fd, struct libc_stat *cstat) //#define __NR_olduname 109 +#ifndef __HAS_NO_MMU__ //#define __NR_iopl 110 #ifdef L_iopl #include _syscall1(int, iopl, int, level); #endif +#endif //#define __NR_vhangup 111 #ifdef L_vhangup -- cgit v1.2.3