483 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			483 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/configure.ac
 | 
						|
+++ b/configure.ac
 | 
						|
@@ -16,7 +16,7 @@ echo "Configuring Dante ${version}${pren
 | 
						|
 
 | 
						|
 AM_INIT_AUTOMAKE(dante, ${version}${prename})
 | 
						|
 AC_CONFIG_SRCDIR(include/common.h)
 | 
						|
-AM_CONFIG_HEADER(include/autoconf.h)
 | 
						|
+AM_CONFIG_HEADER(autoconfig-is-soo-stupid.h include/autoconf.h)
 | 
						|
 
 | 
						|
 AC_DEFINE(BAREFOOTD, 0, [we are Dante])
 | 
						|
 
 | 
						|
@@ -38,17 +38,6 @@ AC_PROG_CPP
 | 
						|
 
 | 
						|
 AM_CONDITIONAL(PRERELEASE, test x$prerelease != x)
 | 
						|
 
 | 
						|
-#known keywords for --enable/disable-foo(=yes/no)?
 | 
						|
-LTINTERNAL="dlopen|dlopen_self|dlopen_self_static|fast_install|libtool_lock|win32_dll|shared_with_static_runtimes|shared_with_static_runtimes_CXX|shared_with_static_runtimes_F77"
 | 
						|
-KNOWN_KEYWORDS="$LTINTERNAL|shared|static|debug|warnings|diagnostic|profiling|linting|libwrap|preload|serverdl|clientdl|internal|pidfile|drt_fallback"
 | 
						|
-for keyword in `set | egrep '^enable_' | sed -e 's/^enable_\(.*\)=.*/\1/'`; do
 | 
						|
-    echo $keyword | egrep "^(${KNOWN_KEYWORDS})$" > /dev/null
 | 
						|
-    if test $? -ne 0; then
 | 
						|
-	AC_MSG_WARN([unknown option '$keyword', ignoring ...])
 | 
						|
-	sleep 10;
 | 
						|
-    fi
 | 
						|
-done
 | 
						|
-
 | 
						|
 case $host in
 | 
						|
     *-*-osf*)
 | 
						|
       	AC_MSG_WARN([OSF support might be removed in the near future.])
 | 
						|
@@ -175,31 +164,6 @@ case $host in
 | 
						|
     #XXX make sure compiling with compiler options works
 | 
						|
 esac
 | 
						|
 
 | 
						|
-AC_MSG_CHECKING([for support for -pipe compiler flag])
 | 
						|
-oCFLAGS=$CFLAGS
 | 
						|
-CFLAGS="$CFLAGS -pipe"
 | 
						|
-AC_TRY_RUN([
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-	return 0;
 | 
						|
-}], [AC_MSG_RESULT([yes])
 | 
						|
-     comp_flags="${comp_flags} -pipe"],
 | 
						|
-    AC_MSG_RESULT([no]))
 | 
						|
-CFLAGS="$oCFLAGS"
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([for support for -Wbounded compiler flag])
 | 
						|
-oCFLAGS=$CFLAGS
 | 
						|
-CFLAGS="$CFLAGS -Wbounded"
 | 
						|
-AC_TRY_RUN([
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-        return 0;
 | 
						|
-}], [AC_MSG_RESULT([yes])
 | 
						|
-     comp_flags="${comp_flags} -Wbounded"],
 | 
						|
-    [AC_MSG_RESULT([no])
 | 
						|
-     AC_DEFINE(__bounded__(a,b,c), , [empty __bounded__ macro])])
 | 
						|
-CFLAGS="$oCFLAGS"
 | 
						|
-
 | 
						|
 AC_MSG_CHECKING([for compilation with debugging])
 | 
						|
 AC_ARG_ENABLE(debug,
 | 
						|
 [  --enable-debug          compile with debugging support],
 | 
						|
@@ -608,43 +572,6 @@ else
 | 
						|
 fi], [AC_MSG_RESULT(no)
 | 
						|
       AC_MSG_WARN([performance in the server might be degraded without support for the SO_SNDLOWAT socket option])])
 | 
						|
 
 | 
						|
-AC_MSG_CHECKING([whether realloc with a NULL pointer calls malloc])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <stdlib.h>
 | 
						|
-#ifndef NULL
 | 
						|
-#define NULL (char *)0
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-	/* will assume this test doesn\'t fail because of lack of memory */
 | 
						|
-	if (realloc(NULL, 1) == NULL)
 | 
						|
-		return 1;
 | 
						|
-	else
 | 
						|
-		return 0;
 | 
						|
-}], [AC_MSG_RESULT(yes)],
 | 
						|
-    [AC_DEFINE(HAVE_NOMALLOC_REALLOC, 1, [realloc never calls malloc])
 | 
						|
-     AC_MSG_RESULT(no)])
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([whether free can be called with NULL])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <stdlib.h>
 | 
						|
-#ifndef NULL
 | 
						|
-#define NULL (char *)0
 | 
						|
-#endif
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-	/* will assume core dump/seg fault if it doesn\'t work */
 | 
						|
-	free(NULL);
 | 
						|
-	return 0;
 | 
						|
-}], [AC_MSG_RESULT(yes)],
 | 
						|
-    [AC_DEFINE(HAVE_NONULL_FREE, 1, [free does not accept NULL parameter])
 | 
						|
-     AC_MSG_RESULT(no)])
 | 
						|
-
 | 
						|
-#A good time to save the cache (preload code might fail)
 | 
						|
-AC_CACHE_SAVE
 | 
						|
-
 | 
						|
 m4_include(preload.m4)
 | 
						|
 
 | 
						|
 #construct SUBDIRS variable
 | 
						|
@@ -722,31 +649,8 @@ case $host in
 | 
						|
 	;;
 | 
						|
 esac
 | 
						|
 
 | 
						|
-AC_MSG_CHECKING([for CMSG_SPACE in sys/socket.h])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <sys/types.h>
 | 
						|
-#include <sys/socket.h>
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-   int d = CMSG_SPACE(4);
 | 
						|
-   return 0;
 | 
						|
-}
 | 
						|
-], [AC_MSG_RESULT(yes)
 | 
						|
-    AC_DEFINE(HAVE_CMSG_SPACE, 1, CMSG_SPACE exists)],
 | 
						|
-   [AC_MSG_RESULT(no)])
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([for CMSG_LEN in sys/socket.h])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <sys/types.h>
 | 
						|
-#include <sys/socket.h>
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-   int d = CMSG_LEN(4);
 | 
						|
-   return 0;
 | 
						|
-}], [AC_MSG_RESULT(yes)
 | 
						|
-    AC_DEFINE(HAVE_CMSG_LEN, 1, [CMSG_LEN exists])],
 | 
						|
-   [AC_MSG_RESULT(no)])
 | 
						|
+AC_DEFINE(HAVE_CMSG_SPACE, 1, [CMSG_SPACE exists])
 | 
						|
+AC_DEFINE(HAVE_CMSG_LEN, 1, [CMSG_LEN exists])
 | 
						|
 
 | 
						|
 AC_MSG_CHECKING([for sa_len in sockaddr])
 | 
						|
 AC_TRY_COMPILE([
 | 
						|
@@ -913,10 +817,6 @@ else
 | 
						|
     AC_MSG_RESULT([yes])
 | 
						|
 fi
 | 
						|
 
 | 
						|
-dnl determine GSSAPI support
 | 
						|
-no_gssapi=t
 | 
						|
-m4_include(gssapi.m4)
 | 
						|
-
 | 
						|
 dnl compatibility library tests
 | 
						|
 m4_include(libscompat.m4)
 | 
						|
 
 | 
						|
@@ -978,15 +878,6 @@ global:
 | 
						|
 fi
 | 
						|
 AC_SUBST(MAPOPT)
 | 
						|
 
 | 
						|
-#expected select behaviour?
 | 
						|
-unset nb_select_err
 | 
						|
-L_UNCON_SELECT([],
 | 
						|
- [nb_select_err=t])
 | 
						|
-
 | 
						|
-if test x"${nb_select_err}" = xt; then
 | 
						|
-   AC_MSG_WARN([operations on nonblocking sockets might fail on this platform])
 | 
						|
-fi
 | 
						|
-
 | 
						|
 AC_MSG_CHECKING([direct route fallback in client enabled])
 | 
						|
 with_drtfallback=t
 | 
						|
 AC_ARG_ENABLE(drt-fallback,
 | 
						|
--- a/acinclude.m4
 | 
						|
+++ b/acinclude.m4
 | 
						|
@@ -180,63 +180,7 @@ selectcheck(s)
 | 
						|
     [AC_MSG_RESULT(no)
 | 
						|
      [$2]])])
 | 
						|
 
 | 
						|
-#can it really be this simple?
 | 
						|
-#nope, doesn't handle coff files which also have no underscore
 | 
						|
-AC_DEFUN([L_SYMBOL_UNDERSCORE],
 | 
						|
-[AC_MSG_CHECKING(for object file type)
 | 
						|
-AH_TEMPLATE([HAVE_NO_SYMBOL_UNDERSCORE], [platform symbol type])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-/* look for ELF identification header at the start of argv[0] */
 | 
						|
-
 | 
						|
-#include <stdio.h>
 | 
						|
-#include <fcntl.h>
 | 
						|
-#include <string.h>
 | 
						|
-
 | 
						|
-/*
 | 
						|
- * ELF header, from ELF standard (Portable Formats Specification,
 | 
						|
- *  Version 1.1).
 | 
						|
- */
 | 
						|
-char elfheader[] = { 0x7f, 'E', 'L', 'F' };
 | 
						|
-
 | 
						|
-int
 | 
						|
-main (argc, argv)
 | 
						|
-	int argc;
 | 
						|
-	char *argv[];
 | 
						|
-{
 | 
						|
-	int fd;
 | 
						|
-	int len = sizeof(elfheader);
 | 
						|
-	char header[len];
 | 
						|
-
 | 
						|
-	if ((fd = open(argv[0], O_RDONLY, 0)) == -1) {
 | 
						|
-		perror("open");
 | 
						|
-		exit(1);
 | 
						|
-	}
 | 
						|
-	if (read(fd, header, len) != len) {
 | 
						|
-		perror("read");
 | 
						|
-		exit(1);
 | 
						|
-	}
 | 
						|
-	if (memcmp(header, elfheader, len) == 0)
 | 
						|
-		exit(0); /* pointy ears */
 | 
						|
-	else
 | 
						|
-		exit(1);
 | 
						|
-}
 | 
						|
-], [AC_MSG_RESULT(elf)
 | 
						|
-    AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE)],
 | 
						|
-   [
 | 
						|
-	#XXX exceptions for coff platforms, should be detected automatically
 | 
						|
-	case $host in
 | 
						|
-		alpha*-dec-osf*)
 | 
						|
-			AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE)
 | 
						|
-			AC_MSG_RESULT(coff)
 | 
						|
-			;;
 | 
						|
-		*-*-hpux*) #XXX apparently does not use underscore
 | 
						|
-			AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE)
 | 
						|
-			AC_MSG_RESULT(a.out?)
 | 
						|
-			;;
 | 
						|
-		*)
 | 
						|
-			AC_MSG_RESULT(a.out)
 | 
						|
-			;;
 | 
						|
-	esac])])
 | 
						|
+AC_DEFUN([L_SYMBOL_UNDERSCORE], [AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE, [1], [Automake sucks])])
 | 
						|
 
 | 
						|
 
 | 
						|
 dnl addproto - generate AC_DEFINE statements
 | 
						|
--- a/preload.m4
 | 
						|
+++ b/preload.m4
 | 
						|
@@ -517,91 +517,6 @@ AC_DEFINE_UNQUOTED(LIBRARY_LIBC, "${LIBC
 | 
						|
 
 | 
						|
 L_SYMBOL_UNDERSCORE()
 | 
						|
 
 | 
						|
-AC_MSG_CHECKING([for working dlsym])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <dlfcn.h>
 | 
						|
-#include <stdio.h>
 | 
						|
-
 | 
						|
-#include "include/symbols.h"
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-	void *lib;
 | 
						|
-	void *sym;
 | 
						|
-
 | 
						|
-	if ((lib = dlopen(LIBRARY_CONNECT, DL_LAZY)) == NULL) {
 | 
						|
-		fprintf(stderr, "dlopen: %s", dlerror());
 | 
						|
-		return 1;
 | 
						|
-	}
 | 
						|
-	(void)dlerror();
 | 
						|
-	if ((sym = dlsym(lib, SYMBOL_CONNECT)) == NULL) {
 | 
						|
-		fprintf(stderr, "dlsym: %s", dlerror());
 | 
						|
-		return 1;
 | 
						|
-	}
 | 
						|
-	return 0;
 | 
						|
-}], [AC_MSG_RESULT(yes)],
 | 
						|
-    [AC_MSG_RESULT(no)
 | 
						|
-     no_preload_client=t
 | 
						|
-     no_preload_server=t
 | 
						|
-     no_preload=t])
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([for working RTLD_NEXT])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#define _GNU_SOURCE
 | 
						|
-#include <dlfcn.h>
 | 
						|
-#include <stdio.h>
 | 
						|
-
 | 
						|
-#include "include/symbols.h"
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-	void *sym;
 | 
						|
-
 | 
						|
-	if ((sym = dlsym(RTLD_NEXT, SYMBOL_READ)) == NULL) {
 | 
						|
-		fprintf(stderr, "dlsym: %s", dlerror());
 | 
						|
-		return 1;
 | 
						|
-	}
 | 
						|
-	return 0;
 | 
						|
-}], [AC_MSG_RESULT(yes)
 | 
						|
-     AC_DEFINE(HAVE_RTLD_NEXT, 1, [have working dlsym RTLD_NEXT])],
 | 
						|
-    [AC_MSG_RESULT(no)
 | 
						|
-     AC_DEFINE(HAVE_RTLD_NEXT, 0, [no working dlsym RTLD_NEXT])])
 | 
						|
-
 | 
						|
-#solaris might block preloading
 | 
						|
-AC_MSG_CHECKING([libc preload blocking])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <stdlib.h>
 | 
						|
-#include <string.h>
 | 
						|
-#include <unistd.h>                                                             
 | 
						|
-int
 | 
						|
-main(int argc, char *argv[])
 | 
						|
-{
 | 
						|
-   char buf[1024];
 | 
						|
-  
 | 
						|
-   strcpy(buf, "lari -V ");
 | 
						|
-   strcat(buf, argv[0]);
 | 
						|
-   strcat(buf, " | grep read | grep protected > /dev/null");
 | 
						|
-
 | 
						|
-   /*
 | 
						|
-    * return error if 'protected'
 | 
						|
-    * (ignore errors, not indicative of blocking) */ 
 | 
						|
-   if (system(buf) == 0)
 | 
						|
-        return 1;
 | 
						|
-   else
 | 
						|
-        return 0;
 | 
						|
-}
 | 
						|
-
 | 
						|
-ssize_t
 | 
						|
-read(d, buf, nbytes)
 | 
						|
-   int d;
 | 
						|
-   void *buf;
 | 
						|
-   size_t nbytes;
 | 
						|
-{
 | 
						|
-   return 0;
 | 
						|
-}
 | 
						|
-], [AC_MSG_RESULT(no)],
 | 
						|
-   [AC_MSG_RESULT(yes)
 | 
						|
-    AC_MSG_WARN([this platform blocks preloading of libraries])
 | 
						|
-    blocked_preload=t])
 | 
						|
+AC_DEFINE(HAVE_RTLD_NEXT, 1, [have working dlsym RTLD_NEXT])
 | 
						|
 
 | 
						|
 AC_CONFIG_FILES(bin/socksify)
 | 
						|
--- a/libscompat.m4
 | 
						|
+++ b/libscompat.m4
 | 
						|
@@ -1,70 +1,6 @@
 | 
						|
 dnl libscompat.m4 - tests related to replacement code in libscompat directory
 | 
						|
 
 | 
						|
-AC_MSG_CHECKING([for __attribute__ support])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <stdlib.h>
 | 
						|
-
 | 
						|
-void errfunc(void) __attribute((noreturn));
 | 
						|
-
 | 
						|
-void errfunc(void)
 | 
						|
-{
 | 
						|
-    exit(0);
 | 
						|
-}
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-    errfunc();
 | 
						|
-}], [AC_MSG_RESULT([yes])],
 | 
						|
-    [AC_MSG_RESULT([no])
 | 
						|
-     AC_DEFINE(__attribute__(a), , [empty __attribute__ macro])])
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([for __printf__ attribute support])
 | 
						|
-if test x"$have_suncc" = xt; then
 | 
						|
-    AC_MSG_RESULT([disabled for sun cc])
 | 
						|
-    AC_DEFINE(format(a,b,c), , [empty format attribute macro])
 | 
						|
-else
 | 
						|
-    AC_TRY_RUN([
 | 
						|
-#include <stdlib.h>
 | 
						|
-
 | 
						|
-void func(const char *fmt, ...)
 | 
						|
-   __attribute__((format(__printf__, 1, 2)));
 | 
						|
-
 | 
						|
-void func(const char *fmt, ...) {
 | 
						|
-     (void)fmt;
 | 
						|
-     return;
 | 
						|
-}
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-    func("foo");
 | 
						|
-    return 0;
 | 
						|
-}], [AC_MSG_RESULT([yes])],
 | 
						|
-    [AC_MSG_RESULT([no])
 | 
						|
-     AC_DEFINE(format(a,b,c), , [empty format attribute macro])])
 | 
						|
-fi
 | 
						|
-
 | 
						|
-AC_MSG_CHECKING([for timer macros])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <sys/time.h>
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-    struct timeval tv, tv2, tv3;
 | 
						|
-
 | 
						|
-    tv.tv_sec = 0;
 | 
						|
-    tv.tv_usec = 0;
 | 
						|
-    tv2.tv_sec = 0;
 | 
						|
-    tv2.tv_usec = 0;
 | 
						|
-    tv3.tv_sec = 0;
 | 
						|
-    tv3.tv_usec = 0;
 | 
						|
-
 | 
						|
-    timeradd(&tv, &tv2, &tv3);
 | 
						|
-    timersub(&tv3, &tv2, &tv);
 | 
						|
-
 | 
						|
-    return 0; }],
 | 
						|
-[AC_MSG_RESULT(yes)
 | 
						|
- AC_DEFINE(HAVE_TIMER_MACROS, 1, [timeradd(), timersub etc. exist in sys/time.h])],
 | 
						|
-[AC_MSG_RESULT(no)])
 | 
						|
+AC_DEFINE(HAVE_TIMER_MACROS, 1, [timeradd(), timersub etc. exist in sys/time.h])
 | 
						|
 
 | 
						|
 AC_CHECK_FUNCS(daemon difftime getifaddrs freeifaddrs hstrerror inet_aton)
 | 
						|
 AC_CHECK_FUNCS(inet_pton issetugid memmove seteuid setegid)
 | 
						|
@@ -72,53 +8,7 @@ AC_CHECK_FUNCS(setproctitle sockatmark s
 | 
						|
 AC_CHECK_FUNCS(bzero)
 | 
						|
 #inet_ntoa - only checked for incorrect behavior
 | 
						|
 
 | 
						|
-#try to detect gcc bug (irix 64 problem, affects among others inet_ntoa)
 | 
						|
-AC_MSG_CHECKING([for incorrect inet_ntoa behaviour])
 | 
						|
-AC_TRY_RUN([
 | 
						|
-#include <sys/types.h>
 | 
						|
-#include <netinet/in.h>
 | 
						|
-#include <arpa/inet.h>
 | 
						|
-#include <sys/socket.h>
 | 
						|
-int main(void)
 | 
						|
-{
 | 
						|
-    struct sockaddr_in addr;
 | 
						|
-    char *a, *b = "195.195.195.195";
 | 
						|
-    addr.sin_addr.s_addr = inet_addr(b);
 | 
						|
-    a = inet_ntoa(addr.sin_addr);
 | 
						|
-    if (strcmp(a, b) == 0)
 | 
						|
-	return 1;
 | 
						|
-    else
 | 
						|
-	return 0;
 | 
						|
-}
 | 
						|
-], [AC_DEFINE(HAVE_BROKEN_INET_NTOA, 1, [platform bug])
 | 
						|
-    AC_MSG_RESULT(yes)
 | 
						|
-    ac_cv_func_inet_ntoa=no],
 | 
						|
-    AC_MSG_RESULT(no))
 | 
						|
-
 | 
						|
-if test x${ac_cv_func_sockatmark} = xyes; then
 | 
						|
-   AC_MSG_CHECKING([for working sockatmark])
 | 
						|
-   AC_TRY_RUN([
 | 
						|
-#include <sys/types.h>
 | 
						|
-#include <sys/socket.h>
 | 
						|
-
 | 
						|
-int
 | 
						|
-main()
 | 
						|
-{
 | 
						|
-    int s;
 | 
						|
-    int r;
 | 
						|
-
 | 
						|
-    if ((s = socket(PF_UNIX, SOCK_STREAM, 0)) == -1)
 | 
						|
-	return 1;
 | 
						|
-    if ((r = sockatmark(s)) == -1)
 | 
						|
-	return 1;
 | 
						|
-    if (r == 0)
 | 
						|
-	return 0;
 | 
						|
-    else
 | 
						|
-	return 1; /* would likely indicate an error */
 | 
						|
-}], [AC_MSG_RESULT(yes)],
 | 
						|
-    [AC_MSG_RESULT(no)
 | 
						|
-     ac_cv_func_sockatmark=no])
 | 
						|
-fi
 | 
						|
+ac_cv_func_sockatmark=no
 | 
						|
 
 | 
						|
 #only compile files that are needed
 | 
						|
 unset LIBSCSRC
 | 
						|
@@ -139,24 +29,3 @@ AC_SUBST([LIBSCSRC])
 | 
						|
 if test x${ac_cv_func_bzero} = xno; then
 | 
						|
     AC_DEFINE(bzero(b, len), memset((b), 0, (len)), [bzero replacement])
 | 
						|
 fi
 | 
						|
-
 | 
						|
-#causes problems with packaging, allow test to be turned off
 | 
						|
-AC_ARG_WITH(glibc-secure,
 | 
						|
-[  --without-glibc-secure  disable libc_enable_secure check @<:@default=detect@:>@],
 | 
						|
-[GLIBCSEC=$withval])
 | 
						|
-
 | 
						|
-if test "${GLIBCSEC}" != no; then
 | 
						|
-    AC_MSG_CHECKING([for __libc_enable_secure])
 | 
						|
-    AC_TRY_RUN([
 | 
						|
-extern int __libc_enable_secure;
 | 
						|
-
 | 
						|
-int main()
 | 
						|
-{
 | 
						|
-    if (__libc_enable_secure == 0)
 | 
						|
-	return 0;
 | 
						|
-
 | 
						|
-	return 1;
 | 
						|
-}],[AC_MSG_RESULT([yes])
 | 
						|
-    AC_DEFINE(HAVE_LIBC_ENABLE_SECURE, 1, [linux version of issetugid()])],
 | 
						|
-    AC_MSG_RESULT([no]))
 | 
						|
-fi
 |