------
Trying to build on SuSE Linux 9.3:
uname -a
Linux 2.6.11.4-21.11-bigsmp #1 SMP Thu Feb 2 20:54:26
UTC 2006 i686 i686 i386 GNU/Linux
------
------
strace version 4.5.14.
------
------
I created the Makefile with:
CFLAGS=-I/usr/src/linux/include ./configure
as suggested in README-linux (although I must admit
that I'm not certain that this is the correct header
path... this is a valid path with many header files,
though).
------
------
make complains:
resource.c: In function `sys_quotactl':
resource.c:527: error: storage size of `dq' isn't known
resource.c:533: error: invalid application of `sizeof'
to an incomplete type
resource.c:527: warning: unused variable `dq'
------
------
here is the configure output:
strace-4.5.14 # CFLAGS=-I/usr/src/linux/include ./configure
checking for a BSD-compatible install...
/usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions
of Makefiles... no
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for supported operating system... linux
checking for supported architecture... i386
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for primary include directory... /usr/include
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking whether gcc needs -traditional... no
checking for a BSD-compatible install...
/usr/bin/install -c
checking for an ANSI C-conforming const... yes
checking for ANSI C header files... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking whether stat file-mode macros are broken... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_aclcnt... no
checking for struct stat.st_flags... no
checking for struct stat.st_fstype... no
checking for struct stat.st_gen... no
checking for struct stat.st_level... no
checking for struct stat.st_rdev... yes
checking for stat64 in (asm|sys)/stat.h... yes
checking return type of signal handlers... void
checking for uid_t in sys/types.h... yes
checking for mode_t... yes
checking type of array argument to getgroups... gid_t
checking whether sys/types.h defines makedev... yes
checking for sig_atomic_t... yes
checking for siginfo_t... yes
checking for struct sockaddr_in6.sin6_scope_id... yes
checking for long long... yes
checking for little endian long long... yes
checking for long long off_t... no
checking for long long rlim_t... no
checking for struct opthdr... no
checking for struct t_opthdr... no
checking for sigaction... yes
checking for strerror... yes
checking for strsignal... yes
checking for pread... yes
checking for sys_siglist... yes
checking for _sys_siglist... yes
checking for getdents... no
checking for mctl... no
checking for prctl... yes
checking for sendmsg... yes
checking for inet_ntop... yes
checking for if_indextoname... yes
checking sys/reg.h usability... yes
checking sys/reg.h presence... yes
checking for sys/reg.h... yes
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking sys/acl.h usability... no
checking sys/acl.h presence... no
checking for sys/acl.h... no
checking sys/asynch.h usability... no
checking sys/asynch.h presence... no
checking for sys/asynch.h... no
checking sys/door.h usability... no
checking sys/door.h presence... no
checking for sys/door.h... no
checking stropts.h usability... yes
checking stropts.h presence... yes
checking for stropts.h... yes
checking sys/conf.h usability... no
checking sys/conf.h presence... no
checking for sys/conf.h... no
checking sys/stream.h usability... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
checking sys/tihdr.h usability... no
checking sys/tihdr.h presence... no
checking for sys/tihdr.h... no
checking sys/tiuser.h usability... no
checking sys/tiuser.h presence... no
checking for sys/tiuser.h... no
checking sys/sysconfig.h usability... no
checking sys/sysconfig.h presence... no
checking for sys/sysconfig.h... no
checking ioctls.h usability... no
checking ioctls.h presence... no
checking for ioctls.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/ptrace.h usability... yes
checking sys/ptrace.h presence... yes
checking for sys/ptrace.h... yes
checking termio.h usability... yes
checking termio.h presence... yes
checking for termio.h... yes
checking linux/ptrace.h usability... yes
checking linux/ptrace.h presence... yes
checking for linux/ptrace.h... yes
checking asm/reg.h usability... no
checking asm/reg.h presence... no
checking for asm/reg.h... no
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/aio.h usability... no
checking sys/aio.h presence... no
checking for sys/aio.h... no
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking sys/vfs.h usability... yes
checking sys/vfs.h presence... yes
checking for sys/vfs.h... yes
checking asm/sysmips.h usability... no
checking asm/sysmips.h presence... no
checking for asm/sysmips.h... no
checking linux/utsname.h usability... yes
checking linux/utsname.h presence... yes
checking for linux/utsname.h... yes
checking sys/nscsys.h usability... no
checking sys/nscsys.h presence... no
checking for sys/nscsys.h... no
checking mqueue.h usability... yes
checking mqueue.h presence... yes
checking for mqueue.h... yes
checking sys/epoll.h usability... yes
checking sys/epoll.h presence... yes
checking for sys/epoll.h... yes
checking libaio.h usability... no
checking libaio.h presence... no
checking for libaio.h... no
checking for linux/icmp.h... yes
checking for linux/in6.h... yes
checking for linux/netlink.h... yes
checking for linux/if_packet.h... yes
checking for asm/sigcontext.h... yes
checking for netinet/tcp.h... yes
checking for netinet/udp.h... yes
checking for MP procfs... no
checking for pollable procfs... no
checking for struct msghdr.msg_control... yes
checking for pr_syscall in struct prstatus... no
checking for struct T_conn_res.QUEUE_ptr... no
checking for struct T_conn_res.ACCEPTOR_id... no
checking for struct __old_kernel_stat... yes
checking for struct pt_all_user_regs... no
checking for struct ia64_fpreg... no
checking for struct user_desc... yes
checking for struct dqblk.dqb_curblocks... no
checking whether sys_errlist is declared... yes
checking whether sys_siglist is declared... yes
checking whether _sys_siglist is declared... yes
checking for perl... /usr/bin/perl
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
------
------
here is the make output:
strace-4.5.14 # make
make all-am
make[1]: Entering directory `/root/erics/strace-4.5.14'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT strace.o -MD -MP -MF
".deps/strace.Tpo" -c -o strace.o strace.c; \
then mv -f ".deps/strace.Tpo" ".deps/strace.Po"; else
rm -f ".deps/strace.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT syscall.o -MD -MP -MF
".deps/syscall.Tpo" -c -o syscall.o syscall.c; \
then mv -f ".deps/syscall.Tpo" ".deps/syscall.Po"; else
rm -f ".deps/syscall.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT util.o -MD -MP -MF
".deps/util.Tpo" -c -o util.o util.c; \
then mv -f ".deps/util.Tpo" ".deps/util.Po"; else rm -f
".deps/util.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT desc.o -MD -MP -MF
".deps/desc.Tpo" -c -o desc.o desc.c; \
then mv -f ".deps/desc.Tpo" ".deps/desc.Po"; else rm -f
".deps/desc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT file.o -MD -MP -MF
".deps/file.Tpo" -c -o file.o file.c; \
then mv -f ".deps/file.Tpo" ".deps/file.Po"; else rm -f
".deps/file.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT ipc.o -MD -MP -MF
".deps/ipc.Tpo" -c -o ipc.o ipc.c; \
then mv -f ".deps/ipc.Tpo" ".deps/ipc.Po"; else rm -f
".deps/ipc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT io.o -MD -MP -MF
".deps/io.Tpo" -c -o io.o io.c; \
then mv -f ".deps/io.Tpo" ".deps/io.Po"; else rm -f
".deps/io.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT ioctl.o -MD -MP -MF
".deps/ioctl.Tpo" -c -o ioctl.o ioctl.c; \
then mv -f ".deps/ioctl.Tpo" ".deps/ioctl.Po"; else rm
-f ".deps/ioctl.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT mem.o -MD -MP -MF
".deps/mem.Tpo" -c -o mem.o mem.c; \
then mv -f ".deps/mem.Tpo" ".deps/mem.Po"; else rm -f
".deps/mem.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT net.o -MD -MP -MF
".deps/net.Tpo" -c -o net.o net.c; \
then mv -f ".deps/net.Tpo" ".deps/net.Po"; else rm -f
".deps/net.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT process.o -MD -MP -MF
".deps/process.Tpo" -c -o process.o process.c; \
then mv -f ".deps/process.Tpo" ".deps/process.Po"; else
rm -f ".deps/process.Tpo"; exit 1; fi
In file included from process.c:91:
/usr/src/linux/include/linux/ptrace.h:11:1: warning:
"PTRACE_PEEKUSR" redefined
process.c:76:1: warning: this is the location of the
previous definition
/usr/src/linux/include/linux/ptrace.h:14:1: warning:
"PTRACE_POKEUSR" redefined
process.c:79:1: warning: this is the location of the
previous definition
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT bjm.o -MD -MP -MF
".deps/bjm.Tpo" -c -o bjm.o bjm.c; \
then mv -f ".deps/bjm.Tpo" ".deps/bjm.Po"; else rm -f
".deps/bjm.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -Ilinux/i386
-I./linux/i386 -Ilinux -I./linux -Wall
-I/usr/src/linux/include -MT resource.o -MD -MP -MF
".deps/resource.Tpo" -c -o resource.o resource.c; \
then mv -f ".deps/resource.Tpo" ".deps/resource.Po";
else rm -f ".deps/resource.Tpo"; exit 1; fi
resource.c: In function `sys_quotactl':
resource.c:534: error: storage size of `dq' isn't known
resource.c:544: error: invalid application of `sizeof'
to an incomplete type
resource.c:534: warning: unused variable `dq'
make[1]: *** [resource.o] Error 1
make[1]: Leaving directory `/root/erics/strace-4.5.14'
make: *** [all] Error 2
Fixed in ef5c3d657dee362898d84e697efea4a5e48a7b96 with the introduction of the new quotactl parser.