Skip to content

Commit 6d2b349

Browse files
author
Roland McGrath
committed
2002-12-22 Roland McGrath <[email protected]>
Update to Autoconf 2.57, and Automakify with version 1.7. * Makefile.am: New file. * Makefile.in: File removed. * configure.in: Moved to ... * configure.ac: ... here. Update for Autoconf 2.5x and Automake. * aclocal.m4: Moved to ... * acinclude.m4: ... here. Update for Autoconf 2.5x. * AUTHORS: New file, makes automake happy. * autogen.sh: File removed. * README-CVS: Update to recommend autoreconf instead. * file.c: HAVE_ST_* -> HAVE_STRUCT_STAT_ST_*. * net.c: HAVE_SIN6_SCOPE_ID -> HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID, HAVE_MSG_CONTROL -> HAVE_STRUCT_MSGHDR_MSG_CONTROL. * strace.c: *_DECLARED -> HAVE_DECL_* * stream.c: HAVE_* -> HAVE_STRUCT_*
1 parent e4d2890 commit 6d2b349

File tree

9 files changed

+552
-53
lines changed

9 files changed

+552
-53
lines changed

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
See the file CREDITS. Automake likes us to have this file called AUTHORS.

Makefile.am

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Automake input for strace.
2+
3+
bin_PROGRAMS = strace
4+
man_MANS = strace.1
5+
6+
# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
7+
OS = @opsys@
8+
# ARCH is `i386', `m68k', `sparc', etc.
9+
ARCH = @arch@
10+
# OSARCH is OS/ARCH if a makefile exists there, otherwise just OS.
11+
OSARCH = @osarch@
12+
13+
INCLUDES = -I$(OS)/$(ARCH) -I$(srcdir)/$(OS)/$(ARCH) -I$(OS) -I$(srcdir)/$(OS)
14+
15+
SUBDIRS = $(OSARCH)
16+
DIST_SUBDIRS = test freebsd/i386 sunos4 svr4 linux
17+
18+
strace_SOURCES = strace.c version.c syscall.c util.c desc.c file.c ipc.c \
19+
io.c ioctl.c mem.c net.c process.c bjm.c \
20+
resource.c signal.c sock.c system.c term.c time.c \
21+
proc.c stream.c
22+
23+
EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c

README-CVS

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11

22
If you use the CVS version of strace there will be some files missing
3-
that you need to build strace. These files are generated by tools from
4-
the GNU autoconf package.
5-
6-
In order to generate the missing package you can run the autogen.sh script.
7-
For some architectures (powerpc, (ultra)sparc) you need a recent version
8-
of autoconf, otherwise it might fail to recognize your system.
9-
3+
that you need to build strace. These files are generated by tools from
4+
the GNU Autoconf and Automake packages. You need recent versions, which
5+
provide the `autoreconf -i' command that will do everything you need.

acinclude.m4

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,281 @@
1+
dnl
2+
dnl This file contains macros used in configure.ac.
3+
dnl automake uses this file to generate aclocal.m4, which is used by autoconf.
4+
dnl
5+
6+
dnl ### A macro to find the include directory, useful for cross-compiling.
7+
AC_DEFUN(AC_INCLUDEDIR,
8+
[AC_REQUIRE([AC_PROG_AWK])dnl
9+
AC_SUBST(includedir)
10+
AC_MSG_CHECKING(for primary include directory)
11+
includedir=/usr/include
12+
if test -n "$GCC"
13+
then
14+
>conftest.c
15+
new_includedir=`
16+
$CC -v -E conftest.c 2>&1 | $AWK '
17+
/^End of search list/ { print last; exit }
18+
{ last = [$]1 }
19+
'
20+
`
21+
rm -f conftest.c
22+
if test -n "$new_includedir" && test -d "$new_includedir"
23+
then
24+
includedir=$new_includedir
25+
fi
26+
fi
27+
AC_MSG_RESULT($includedir)
28+
])
29+
30+
dnl ### A macro to set gcc warning flags.
31+
define(AC_WARNFLAGS,
32+
[AC_SUBST(WARNFLAGS)
33+
if test -z "$WARNFLAGS"
34+
then
35+
if test -n "$GCC"
36+
then
37+
# If we're using gcc we want warning flags.
38+
WARNFLAGS=-Wall
39+
fi
40+
fi
41+
])
42+
43+
dnl ### A macro to determine if we have a "MP" type procfs
44+
AC_DEFUN(AC_MP_PROCFS,
45+
[AC_MSG_CHECKING(for MP procfs)
46+
AC_CACHE_VAL(ac_cv_mp_procfs,
47+
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
48+
#include <stdio.h>
49+
#include <signal.h>
50+
#include <sys/procfs.h>
51+
52+
main()
53+
{
54+
int pid;
55+
char proc[32];
56+
FILE *ctl;
57+
FILE *status;
58+
int cmd;
59+
struct pstatus pstatus;
60+
61+
if ((pid = fork()) == 0) {
62+
pause();
63+
exit(0);
64+
}
65+
sprintf(proc, "/proc/%d/ctl", pid);
66+
if ((ctl = fopen(proc, "w")) == NULL)
67+
goto fail;
68+
sprintf(proc, "/proc/%d/status", pid);
69+
if ((status = fopen (proc, "r")) == NULL)
70+
goto fail;
71+
cmd = PCSTOP;
72+
if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
73+
goto fail;
74+
if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
75+
goto fail;
76+
kill(pid, SIGKILL);
77+
exit(0);
78+
fail:
79+
kill(pid, SIGKILL);
80+
exit(1);
81+
}
82+
]])],[ac_cv_mp_procfs=yes],[ac_cv_mp_procfs=no],[
83+
# Guess or punt.
84+
case "$host_os" in
85+
svr4.2*|svr5*)
86+
ac_cv_mp_procfs=yes
87+
;;
88+
*)
89+
ac_cv_mp_procfs=no
90+
;;
91+
esac
92+
])])
93+
AC_MSG_RESULT($ac_cv_mp_procfs)
94+
if test "$ac_cv_mp_procfs" = yes
95+
then
96+
AC_DEFINE([HAVE_MP_PROCFS], 1,
97+
[Define if you have a SVR4 MP type procfs.
98+
I.E. /dev/xxx/ctl, /dev/xxx/status.
99+
Also implies that you have the pr_lwp member in prstatus.])
100+
fi
101+
])
102+
103+
dnl ### A macro to determine if procfs is pollable.
104+
AC_DEFUN(AC_POLLABLE_PROCFS,
105+
[AC_MSG_CHECKING(for pollable procfs)
106+
AC_CACHE_VAL(ac_cv_pollable_procfs,
107+
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
108+
#include <stdio.h>
109+
#include <signal.h>
110+
#include <sys/procfs.h>
111+
#include <sys/stropts.h>
112+
#include <poll.h>
113+
114+
#ifdef HAVE_MP_PROCFS
115+
#define PIOCSTOP PCSTOP
116+
#define POLLWANT POLLWRNORM
117+
#define PROC "/proc/%d/ctl"
118+
#define PROC_MODE "w"
119+
int IOCTL (int fd, int cmd, int arg) {
120+
return write (fd, &cmd, sizeof cmd);
121+
}
122+
#else
123+
#define POLLWANT POLLPRI
124+
#define PROC "/proc/%d"
125+
#define PROC_MODE "r+"
126+
#define IOCTL ioctl
127+
#endif
128+
129+
main()
130+
{
131+
int pid;
132+
char proc[32];
133+
FILE *pfp;
134+
struct pollfd pfd;
135+
136+
if ((pid = fork()) == 0) {
137+
pause();
138+
exit(0);
139+
}
140+
sprintf(proc, PROC, pid);
141+
if ((pfp = fopen(proc, PROC_MODE)) == NULL)
142+
goto fail;
143+
if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
144+
goto fail;
145+
pfd.fd = fileno(pfp);
146+
pfd.events = POLLWANT;
147+
if (poll(&pfd, 1, 0) < 0)
148+
goto fail;
149+
if (!(pfd.revents & POLLWANT))
150+
goto fail;
151+
kill(pid, SIGKILL);
152+
exit(0);
153+
fail:
154+
kill(pid, SIGKILL);
155+
exit(1);
156+
}
157+
]])],[ac_cv_pollable_procfs=yes],[ac_cv_pollable_procfs=no],[
158+
# Guess or punt.
159+
case "$host_os" in
160+
solaris2*|irix5*|svr4.2uw*|svr5*)
161+
ac_cv_pollable_procfs=yes
162+
;;
163+
*)
164+
ac_cv_pollable_procfs=no
165+
;;
166+
esac
167+
])])
168+
AC_MSG_RESULT($ac_cv_pollable_procfs)
169+
if test "$ac_cv_pollable_procfs" = yes
170+
then
171+
AC_DEFINE([HAVE_POLLABLE_PROCFS], 1,
172+
[Define if you have SVR4 and the poll system call works on /proc files.])
173+
fi
174+
])
175+
176+
dnl ### A macro to determine if the prstatus structure has a pr_syscall member.
177+
AC_DEFUN(AC_STRUCT_PR_SYSCALL,
178+
[AC_MSG_CHECKING(for pr_syscall in struct prstatus)
179+
AC_CACHE_VAL(ac_cv_struct_pr_syscall,
180+
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/procfs.h>]], [[#ifdef HAVE_MP_PROCFS
181+
pstatus_t s;
182+
s.pr_lwp.pr_syscall
183+
#else
184+
prstatus_t s;
185+
s.pr_syscall
186+
#endif]])],[ac_cv_struct_pr_syscall=yes],[ac_cv_struct_pr_syscall=no])])
187+
AC_MSG_RESULT($ac_cv_struct_pr_syscall)
188+
if test "$ac_cv_struct_pr_syscall" = yes
189+
then
190+
AC_DEFINE([HAVE_PR_SYSCALL], 1,
191+
[Define if the prstatus structure in sys/procfs.h has a pr_syscall member.])
192+
fi
193+
])
194+
195+
dnl ### A macro to determine whether stat64 is defined.
196+
AC_DEFUN(AC_STAT64,
197+
[AC_MSG_CHECKING(for stat64 in (asm|sys)/stat.h)
198+
AC_CACHE_VAL(ac_cv_type_stat64,
199+
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
200+
#include <linux/types.h>
201+
#include <asm/stat.h>
202+
#else
203+
#include <sys/stat.h>
204+
#endif]], [[struct stat64 st;]])],[ac_cv_type_stat64=yes],[ac_cv_type_stat64=no])])
205+
AC_MSG_RESULT($ac_cv_type_stat64)
206+
if test "$ac_cv_type_stat64" = yes
207+
then
208+
AC_DEFINE([HAVE_STAT64], 1,
209+
[Define if stat64 is available in asm/stat.h.])
210+
fi
211+
])
212+
213+
dnl ### A macro to determine if off_t is a long long
214+
AC_DEFUN(AC_OFF_T_IS_LONG_LONG,
215+
[AC_MSG_CHECKING(for long long off_t)
216+
AC_CACHE_VAL(ac_cv_have_long_long_off_t,
217+
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
218+
main () {
219+
if (sizeof (off_t) == sizeof (long long) &&
220+
sizeof (off_t) > sizeof (long))
221+
return 0;
222+
return 1;
223+
}
224+
]])],[ac_cv_have_long_long_off_t=yes],[ac_cv_have_long_long_off_t=no],[# Should try to guess here
225+
ac_cv_have_long_long_off_t=no
226+
])])
227+
AC_MSG_RESULT($ac_cv_have_long_long_off_t)
228+
if test "$ac_cv_have_long_long_off_t" = yes
229+
then
230+
AC_DEFINE([HAVE_LONG_LONG_OFF_T], 1, [Define if off_t is a long long.])
231+
fi
232+
])
233+
234+
dnl ### A macro to determine if rlim_t is a long long
235+
AC_DEFUN(AC_RLIM_T_IS_LONG_LONG,
236+
[AC_MSG_CHECKING(for long long rlim_t)
237+
AC_CACHE_VAL(ac_cv_have_long_long_rlim_t,
238+
[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
239+
#include <sys/time.h>
240+
#include <sys/resource.h>
241+
main () {
242+
if (sizeof (rlim_t) == sizeof (long long) &&
243+
sizeof (rlim_t) > sizeof (long))
244+
return 0;
245+
return 1;
246+
}
247+
]])],[ac_cv_have_long_long_rlim_t=yes],[ac_cv_have_long_long_rlim_t=no],[# Should try to guess here
248+
ac_cv_have_long_long_rlim_t=no
249+
])])
250+
AC_MSG_RESULT($ac_cv_have_long_long_rlim_t)
251+
if test "$ac_cv_have_long_long_rlim_t" = yes
252+
then
253+
AC_DEFINE([HAVE_LONG_LONG_RLIM_T], 1, [Define if rlim_t is a long long.])
254+
fi
255+
])
256+
257+
dnl ### A macro to determine endianness of long long
258+
AC_DEFUN(AC_LITTLE_ENDIAN_LONG_LONG,
259+
[AC_MSG_CHECKING(for little endian long long)
260+
AC_CACHE_VAL(ac_cv_have_little_endian_long_long,
261+
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
262+
int main () {
263+
union {
264+
long long ll;
265+
long l [2];
266+
} u;
267+
u.ll = 0x12345678;
268+
if (u.l[0] == 0x12345678)
269+
return 0;
270+
return 1;
271+
}
272+
]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
273+
ac_cv_have_little_endian_long_long=no
274+
])])
275+
AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
276+
if test "$ac_cv_have_little_endian_long_long" = yes
277+
then
278+
AC_DEFINE([HAVE_LITTLE_ENDIAN_LONG_LONG], 1,
279+
[Define if long long is little-endian.])
280+
fi
281+
])

0 commit comments

Comments
 (0)