1 --- libcap-1.92/libcap/Makefile.orig Fri Apr 23 08:15:10 1999
2 +++ libcap-1.92/libcap/Makefile Tue Oct 22 23:33:28 2002
4 # @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed
7 - $(LD) -soname $(MAJLIBNAME) -x -shared -o $@ $(OBJS)
8 + $(CC) -Wl,-soname -Wl,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS)
9 ln -sf $(MINLIBNAME) $(MAJLIBNAME)
10 ln -sf $(MAJLIBNAME) $(LIBNAME)
13 - $(CC) $(CFLAGS) -c $< -o $@
14 + $(CC) $(CFLAGS) -fPIC -c $< -o $@
17 mkdir -p -m 0755 $(INCDIR)/sys
18 --- libcap-1.92/libcap/cap_sys.c.orig 1999-04-23 08:16:31.000000000 +0200
19 +++ libcap-1.92/libcap/cap_sys.c 2003-07-26 23:46:58.000000000 +0200
22 #include <linux/unistd.h>
25 +/* ugh, _syscall{1+} don't support PIC on x86 :/ */
26 +int capget(cap_user_header_t header, cap_user_data_t data)
28 + __asm__ volatile ("pushl %%ebx\nmovl %%edx, %%ebx\nint $0x80\npopl %%ebx" \
30 + : "0" (__NR_capget), "d" (header), "c" (data));
31 + printf("%d", _libcap_kernel_version);
32 + __syscall_return(int, __res);
35 +int capset(cap_user_header_t header, const cap_user_data_t data)
37 + __asm__ volatile ("pushl %%ebx\nmovl %%edx, %%ebx\nint $0x80\npopl %%ebx" \
39 + : "0" (__NR_capset), "d" (header), "c" (data));
40 + __syscall_return(int, __res);
43 _syscall2(int, capget,
44 cap_user_header_t, header,
45 cap_user_data_t, data)
47 _syscall2(int, capset,
48 cap_user_header_t, header,
49 const cap_user_data_t, data)
52 /* library defaults to agreeing with the kernel under which it was