1 Purpose: Try to get insserv building on hurd, by avoiding the dummy *at
2 functions which exist in libc but always return an error.
3 Status: Not yet submitted upstream.
6 Index: insserv/listing.h
7 ===================================================================
8 --- insserv.orig/listing.h 2009-09-27 15:45:38.000000000 +0200
9 +++ insserv/listing.h 2009-09-27 15:45:38.000000000 +0200
12 {char *restrict tmp = (char *restrict)ptr; if (ptr && *tmp) free(ptr);} ptr = NULL
14 -#if defined(HAS_unlinkat) && defined(_ATFILE_SOURCE)
15 +#if defined(HAS_unlinkat) && defined(_ATFILE_SOURCE) && !defined(__stub_unlinkat)
16 # define xremove(d,x) (__extension__ ({ if ((dryrun ? 0 : \
17 (unlinkat(d,x,0) != 0 && (errno != EISDIR || unlinkat(d,x,AT_REMOVEDIR) != 0)))) \
18 warn ("can not remove(%s%s): %s\n", rcd, x, strerror(errno)); \
21 info(1, "remove service %s/%s%s\n", path, rcd, x); }))
23 -#if defined(HAS_symlinkat) && defined(_ATFILE_SOURCE)
24 +#if defined(HAS_symlinkat) && defined(_ATFILE_SOURCE) && !defined(__stub_symlinkat)
25 # define xsymlink(d,x,y) (__extension__ ({ if ((dryrun ? 0 : (symlinkat(x, d, y) != 0))) \
26 warn ("can not symlink(%s, %s%s): %s\n", x, rcd, y, strerror(errno)); \
30 info(1, "enable service %s -> %s/%s%s\n", x, path, rcd, y); }))
32 -#if defined(HAS_fstatat) && defined(_ATFILE_SOURCE)
33 +#if defined(HAS_fstatat) && defined(_ATFILE_SOURCE) && !defined(__stub_fstatat)
34 # define xstat(d,x,s) (__extension__ ({ fstatat(d,x,s, 0); }))
35 # define xlstat(d,x,s) (__extension__ ({ fstatat(d,x,s, AT_SYMLINK_NOFOLLOW); }))
37 # define xstat(d,x,s) (__extension__ ({ stat(x,s); }))
38 # define xlstat(d,x,s) (__extension__ ({ lstat(x,s); }))
40 -#if defined(HAS_readlinkat) && defined(_ATFILE_SOURCE)
41 +#if defined(HAS_readlinkat) && defined(_ATFILE_SOURCE) && !defined(__stub_readlinkat)
42 # define xreadlink(d,x,b,l) (__extension__ ({ readlinkat(d,x,b,l); }))
44 # define xreadlink(d,x,b,l) (__extension__ ({ readlink(x,b,l); }))
46 -#if defined(HAS_openat) && defined(_ATFILE_SOURCE)
47 +#if defined(HAS_openat) && defined(_ATFILE_SOURCE) && !defined(__stub_openat)
48 # define xopen(d,x,f) (__extension__ ({ openat(d,x,f); }))
50 # define xopen(d,x,f) (__extension__ ({ open(x,f); }))