📄 busybox-syscalls.patch
字号:
--- ptxdist-0.3.23/rules/busybox.make.old Sat Aug 23 23:50:14 2003+++ ptxdist-0.3.23/rules/busybox.make Sat Aug 23 23:48:51 2003@@ -72,6 +72,7 @@ $(STATEDIR)/busybox.prepare: $(busybox_prepare_deps) @$(call targetinfo, busybox.prepare)+ set -e; cd $(BUSYBOX_DIR); for p in $(TOPDIR)/patches/$(BUSYBOX)/*.patch; do if test -f $$p ; then $(PATCH) -p1 < $$p; fi; done # FIXME: is this necessary? touch $(BUSYBOX_DIR)/busybox.links $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) distclean $(BUSYBOX_MAKEVARS)--- /dev/null Sat Dec 14 13:56:51 2002+++ ptxdist-0.3.23/patches/busybox-0.61.pre-ptx9/syscalls.patch Sun Aug 24 14:52:20 2003@@ -0,0 +1,159 @@+# Dan Kegel 24 Aug 2003+# This is http://www.busybox.net/cgi-bin/cvsweb/busybox/libbb/syscalls.c.diff?r1=1.9&r2=1.10+# rediffed against whatever busybox ptxdist-0.3.23 uses.+# This should fix the error+# libbb/syscalls.c: In function `sysfs':+# libbb/syscalls.c:43: error: asm-specifier for variable `__sc_4' conflicts with asm clobber list+# libbb/syscalls.c:43: error: asm-specifier for variable `__sc_5' conflicts with asm clobber list+# libbb/syscalls.c: In function `pivot_root':+# libbb/syscalls.c:68: error: asm-specifier for variable `__sc_4' conflicts with asm clobber list+# make[1]: *** [libbb/syscalls.o] Error 1+# See also http://lists.debian.org/debian-glibc/2003/debian-glibc-200305/msg00190.html+# A similar fix is needed for fdisk.c++--- busybox-0.61.pre-ptx9/libbb/syscalls.c.old Sun Aug 24 13:59:04 2003++++ busybox-0.61.pre-ptx9/libbb/syscalls.c Sun Aug 24 14:01:52 2003+@@ -34,71 +34,67 @@+ #endif+ #include "libbb.h"+ +-#if defined(__ia64__)+ int sysfs( int option, unsigned int fs_index, char * buf)+ {+ return(syscall(__NR_sysfs, option, fs_index, buf));+ }+-#else+-_syscall3(int, sysfs, int, option, unsigned int, fs_index, char *, buf);+-#endif+ ++int pivot_root(const char * new_root,const char * put_old)++{+ #ifndef __NR_pivot_root+ #warning This kernel does not support the pivot_root syscall+ #warning -> The pivot_root system call is being stubbed out...+-int pivot_root(const char * new_root,const char * put_old)+-{+- /* BusyBox was compiled against a kernel that did not support+- * the pivot_root system call. To make this application work,+- * you will need to recompile with a kernel supporting the+- * pivot_root system call.+- */+- error_msg("\n\nTo make this application work, you will need to recompile\n"+- "with a kernel supporting the pivot_root system call. -Erik\n");+- errno=ENOSYS;+- return -1;+-}++ /* BusyBox was compiled against a kernel that did not support++ * the pivot_root system call. To make this application work,++ * you will need to recompile with a kernel supporting the++ * pivot_root system call.++ */++ error_msg("\n\nTo make this application work, you will need to recompile\n"++ "BusyBox with a kernel supporting the pivot_root system call.\n");++ errno=ENOSYS;++ return -1;+ #else+-# if defined(__ia64__)+- int pivot_root(const char * new_root,const char * put_old)+- {+- return(syscall(__NR_pivot_root, new_root, put_old));+- }+-# else+- _syscall2(int,pivot_root,const char *,new_root,const char *,put_old);+-# endif++ return(syscall(__NR_pivot_root, new_root, put_old));+ #endif+-++}+ + + + #if __GNU_LIBRARY__ < 5 || ((__GLIBC__ <= 2) && (__GLIBC_MINOR__ < 1))+++ /* These syscalls are not included as part of libc5 */+-_syscall2(int, bdflush, int, func, int, data);++int bdflush(int func, int data)++{++ return(syscall(__NR_bdflush, func, data));++}+ + #ifndef __alpha__+ # define __NR_klogctl __NR_syslog+- _syscall3(int, klogctl, int, type, char *, b, int, len);++int klogctl(int type, char *b, int len)++{++ return(syscall(__NR_klogctl, type, b, len));++}+ #endif+ +-#ifndef __NR_umount2+-# warning This kernel does not support the umount2 syscall+-# warning -> The umount2 system call is being stubbed out...+++ int umount2(const char * special_file, int flags)+ {+- /* BusyBox was compiled against a kernel that did not support+- * the umount2 system call. To make this application work,+- * you will need to recompile with a kernel supporting the+- * umount2 system call.+- */+- error_msg("\n\nTo make this application work, you will need to recompile\n"+- "with a kernel supporting the umount2 system call. -Erik\n");+- errno=ENOSYS;+- return -1;+-}+-# else+-_syscall2(int, umount2, const char *, special_file, int, flags);++#ifndef __NR_pivot_root++#warning This kernel does not support the umount2 syscall++#warning -> The umount2 system call is being stubbed out...++ /* BusyBox was compiled against a kernel that did not support++ * the umount2 system call. To make this application work,++ * you will need to recompile with a kernel supporting the++ * umount2 system call.++ */++ error_msg("\n\nTo make this application work, you will need to recompile\n"++ "BusyBox with a kernel supporting the umount2 system call.\n");++ errno=ENOSYS;++ return -1;++#else++ return(syscall(__NR_umount2, special_file, flags));+ #endif++}+ + + #endif /* __GNU_LIBRARY__ < 5 */+===================================================================++# This is http://www.busybox.net/cgi-bin/cvsweb/busybox/libpwdgrp/setgroups.c.diff?r2=1.4&r1=1.3&diff_format=u+# Should fix the error+# libpwdgrp/setgroups.c: In function `setgroups':+# libpwdgrp/setgroups.c:41: error: asm-specifier for variable `__sc_4' conflicts with asm clobber list+# make[1]: *** [libpwdgrp/setgroups.o] Error 1++===================================================================+RCS file: /var/cvs/busybox/libpwdgrp/setgroups.c,v+retrieving revision 1.3+retrieving revision 1.4+diff -u -r1.3 -r1.4+--- busybox/libpwdgrp/setgroups.c 2003/07/14 21:20:57 1.3++++ busybox/libpwdgrp/setgroups.c 2003/07/22 08:56:48 1.4+@@ -30,12 +30,11 @@+ _syscall* defined. */+ #define __LIBRARY__+ #include <sys/syscall.h>+-#if __GNU_LIBRARY__ < 5+-/* This is needed for libc5 */+-#include <asm/unistd.h>+-#endif+ #include "grp_.h"+ +-//#define __NR_setgroups 81+-_syscall2(int, setgroups, size_t, size, const gid_t *, list);++int setgroups(size_t size, const gid_t * list)++{++ return(syscall(__NR_setgroups, size, list));++}+++ +
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -