Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
Index: create.patch.sh
===================================================================
--- create.patch.sh	(nonexistent)
+++ create.patch.sh	(revision 19)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=1.31
+
+tar --files-from=file.list -xJvf ../fakeroot-$VERSION.tar.xz
+mv fakeroot-$VERSION fakeroot-$VERSION-orig
+
+cp -rf ./fakeroot-$VERSION-new ./fakeroot-$VERSION
+
+diff --unified -Nr  fakeroot-$VERSION-orig  fakeroot-$VERSION > fakeroot-$VERSION-host-os.patch
+
+mv fakeroot-$VERSION-host-os.patch ../patches
+
+rm -rf ./fakeroot-$VERSION
+rm -rf ./fakeroot-$VERSION-orig

Property changes on: create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: fakeroot-1.31-new/configure.ac
===================================================================
--- fakeroot-1.31-new/configure.ac	(nonexistent)
+++ fakeroot-1.31-new/configure.ac	(revision 19)
@@ -0,0 +1,705 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT([fakeroot],[1.31],[clint@debian.org],[fakeroot])
+AC_PREREQ([2.71])
+AC_CONFIG_MACRO_DIR([build-aux])
+LT_PREREQ(2.1a)
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE
+AM_MAINTAINER_MODE
+AC_CONFIG_HEADERS([config.h])
+AC_PROG_CPP
+AC_PROG_MAKE_SET
+LT_INIT
+LT_LANG(C)
+
+AH_BOTTOM([#if ! HAVE_BUILTIN_EXPECT
+#define __builtin_expect(x, expected_value) (x)
+#endif])
+
+AC_ARG_WITH([ipc],
+	    AS_HELP_STRING([--with-ipc@<:@=IPCTYPE@:>@],
+			   [method of IPC to use: either sysv (default) or tcp]),
+	    [ac_cv_use_ipc=$withval],
+	    [ac_cv_use_ipc=sysv])
+
+AC_CACHE_CHECK([which IPC method to use],
+	       [ac_cv_use_ipc],
+	       [ac_cv_use_ipc=sysv])
+
+if test $ac_cv_use_ipc = "sysv"; then
+  AC_MSG_CHECKING([whether SysV IPC message queues are actually working on the host])
+
+  AC_LANG_PUSH(C)
+  AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+#include <time.h>
+#include <unistd.h>
+
+int main() {
+
+  srandom(time(NULL)+getpid()*33151);
+  key_t msg_key = random();
+  int msg_get = msgget(msg_key, IPC_CREAT|0600);
+
+  if (msg_get==-1) {
+    return 1;
+  } else {
+    msgctl(msg_get, IPC_RMID, NULL);
+    return 0;
+  }
+
+}]])],[ac_cv_use_ipc=sysv],[ac_cv_use_ipc=tcp],[ac_cv_use_ipc=cross])
+
+  if test $ac_cv_use_ipc = cross; then
+    approved=
+    case $host_os in
+      linux-gnu*)
+        approved=yes
+        ;;
+      *)
+        approved=no
+        ;;
+    esac
+    if test "$approved" = "yes"; then
+      ac_cv_use_ipc=sysv
+      AC_MSG_RESULT([cross, guessing yes])
+    else
+      (set -o posix; set)
+      AC_MSG_ERROR([cross compiling, unknown result for $host_os])
+    fi
+  elif test $ac_cv_use_ipc = "tcp"; then
+    AC_MSG_RESULT([No, using TCP])
+  else
+    AC_MSG_RESULT([Yes])
+  fi
+
+  AC_LANG_POP(C)
+fi
+
+AC_ARG_WITH([dbformat],
+	    AS_HELP_STRING([--with-dbformat@<:@=DBFORMAT@:>@],
+			   [database format to use: either inode (default) or path]),
+	    [ac_cv_dbformat=$withval],
+	    [ac_cv_dbformat=inode])
+
+AC_CACHE_CHECK([which database format to use],
+	       [ac_cv_dbformat],
+	       [ac_cv_dbformat=inode])
+
+AH_TEMPLATE([FAKEROOT_DB_PATH], [store path in the database instead of inode and device])
+if test $ac_cv_dbformat = "path"; then
+AC_DEFINE_UNQUOTED(FAKEROOT_DB_PATH, [1])
+fi
+
+dnl Checks for programs.
+
+dnl Checks for libraries.
+dnl Replace `main' with a function in -ldl:
+AC_CHECK_LIB(dl, dlopen)
+AH_TEMPLATE([FAKEROOT_FAKENET], [use TCP instead of SysV IPC])
+if test $ac_cv_use_ipc = "tcp"; then
+AC_DEFINE_UNQUOTED(FAKEROOT_FAKENET, [TCP])
+AC_CHECK_LIB(pthread, pthread_self)
+AC_CHECK_LIB(socket, connect)
+signal=HUP
+else
+signal=TERM
+fi
+
+AC_SUBST(signal)
+
+dnl Checks for header files.
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(fcntl.h unistd.h features.h sys/feature_tests.h pthread.h stdint.h inttypes.h grp.h endian.h sys/sysmacros.h sys/socket.h sys/acl.h sys/capability.h sys/xattr.h fts.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_CHECK_TYPE(mode_t, int)
+AC_CHECK_TYPE(off_t, long)
+AC_CHECK_TYPE(size_t, unsigned)
+
+AH_TEMPLATE([FAKEROOT_ATTR], [for packed])
+if test -n "$GCC";
+then
+AC_DEFINE_UNQUOTED(FAKEROOT_ATTR(x), [__attribute__ ((x))])
+else
+AC_DEFINE_UNQUOTED(FAKEROOT_ATTR(x), [])
+fi
+
+dnl The parameters to the wrapped functions have to match
+dnl those in the system header files. I don't know how to
+dnl really get the names of the paramters, but this seems to work.
+AC_MSG_CHECKING([for return value and second and third argument of readlink])
+readlink_buf_arg=unknown
+readlink_bufsize_arg=unknown
+for zeroth in ssize_t int; do
+  for second in void char; do
+    for third in size_t int; do
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>
+#include <stdio.h>
+        $zeroth readlink(const char *path, $second *buf, $third bufsiz);]], [[puts("hello, world");]])],
+	[readlink_retval=$zeroth
+	 readlink_buf_arg=$second
+	 readlink_bufsize_arg=$third
+        ],[])
+    done
+  done
+done
+AC_MSG_RESULT([$readlink_retval, $readlink_buf_arg, $readlink_bufsize_arg])
+AH_TEMPLATE([READLINK_RETVAL_TYPE], [type of readlink return value])
+AH_TEMPLATE([READLINK_BUF_TYPE], [type of readlink buf])
+AH_TEMPLATE([READLINK_BUFSIZE_TYPE], [type of readlink bufsize])
+AC_DEFINE_UNQUOTED(READLINK_RETVAL_TYPE, $readlink_retval)
+AC_DEFINE_UNQUOTED(READLINK_BUF_TYPE, $readlink_buf_arg)
+AC_DEFINE_UNQUOTED(READLINK_BUFSIZE_TYPE, $readlink_bufsize_arg)
+
+AC_MSG_CHECKING([for first argument of setgroups])
+setgroups_size_arg=unknown
+for first in size_t int; do
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _BSD_SOURCE
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#include <unistd.h>
+#include <stdio.h>
+#ifdef HAVE_GRP_H
+#include <grp.h>
+#endif
+  int setgroups($first size, const gid_t *list);]], [[puts("hello, world");]])],[setgroups_size_arg=$first],[])
+done
+AC_MSG_RESULT([$setgroups_size_arg])
+AH_TEMPLATE([SETGROUPS_SIZE_TYPE], [type of setgroups size])
+AC_DEFINE_UNQUOTED(SETGROUPS_SIZE_TYPE, $setgroups_size_arg)
+
+
+AH_TEMPLATE([HAVE_SEMUN_DEF], [have the semun union])
+AC_MSG_CHECKING([for union semun])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       # include <sys/types.h>
+       # include <sys/ipc.h>
+       # include <sys/sem.h>
+  ]], [[
+       union semun s;
+  ]])],[AC_DEFINE(HAVE_SEMUN_DEF)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+
+AH_TEMPLATE([XMKNOD_FRTH_ARG], [fourth argument of __xmknod])
+dnl glibc uses `* dev' as fourth argument of __xmknod.
+dnl Although the test below should probably be more general
+dnl (not just __xmknod, but also mknod etc), at the moment this
+dnl seems enough, as probably glibc is the only that does this.
+AC_MSG_CHECKING([for type of arg of __xmknod])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/stat.h>
+       #include <fcntl.h>
+       #include <unistd.h>
+  ]], [[
+#ifndef __GLIBC__
+#error no extra *
+#endif
+       int __xmknod  ( int ver,
+                       const char *pathname ,
+                       mode_t  mode ,  dev_t *dev);
+  ]])],[
+   AC_DEFINE(XMKNOD_FRTH_ARG,[*])
+   AC_MSG_RESULT([needs *])
+  ],[
+   AC_DEFINE(XMKNOD_FRTH_ARG,)
+   AC_MSG_RESULT([no extra *])
+
+  ])
+
+dnl Possibly this should only be done if we actually have mknodat
+dnl on the system.  Nothing  breaks by running the test itself though.
+AH_TEMPLATE([XMKNODAT_FIFTH_ARG], [fifth argument of __xmknodat])
+dnl glibc uses `* dev' as fifth argument of __xmknodat.
+dnl Although the test below should probably be more general
+dnl (not just __xmknodat, but also mknod etc), at the moment this
+dnl seems enough, as probably glibc is the only that does this.
+AC_MSG_CHECKING([for type of arg of __xmknodat])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/stat.h>
+       #include <fcntl.h>
+       #include <unistd.h>
+  ]], [[
+#ifndef __GLIBC__
+#error no extra *
+#endif
+       int __xmknodat  ( int ver,
+                         int dirfd,
+                         const char *pathname ,
+                         mode_t  mode ,  dev_t *dev);
+  ]])],[
+   AC_DEFINE(XMKNODAT_FIFTH_ARG,[*])
+   AC_MSG_RESULT([needs *])
+  ],[
+   AC_DEFINE(XMKNODAT_FIFTH_ARG,)
+   AC_MSG_RESULT([no extra *])
+
+  ])
+
+AH_TEMPLATE([INITGROUPS_SECOND_ARG], [second argument of initgroups])
+dnl FreeBSD 4.7 uses int instead of gid_t
+AC_MSG_CHECKING([for type of arg of initgroups])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int initgroups ( const char *user, gid_t group );
+  ]])],[
+   AC_DEFINE(INITGROUPS_SECOND_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(INITGROUPS_SECOND_ARG, int)
+   AC_MSG_RESULT([not gid_t; will assume int])
+  ])
+
+AH_TEMPLATE([SETREUID_ARG], [argument of setreuid])
+dnl OpenBSD 2.8 uses int instead of uid_t
+AC_MSG_CHECKING([for type of arg of setreuid])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int setreuid ( uid_t ruid, uid_t euid );
+  ]])],[
+   AC_DEFINE(SETREUID_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(SETREUID_ARG, int)
+   AC_MSG_RESULT([not uid_t; will assume int])
+  ])
+
+AH_TEMPLATE([SETREGID_ARG], [argument of setregid])
+dnl OpenBSD 2.8 uses int instead of gid_t
+AC_MSG_CHECKING([for type of arg of setregid])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int setreuid ( gid_t rgid, gid_t egid );
+  ]])],[
+   AC_DEFINE(SETREGID_ARG, gid_t)
+   AC_MSG_RESULT([gid_t])
+  ],[
+   AC_DEFINE(SETREGID_ARG, int)
+   AC_MSG_RESULT([not gid_t; will assume int])
+  ])
+
+AH_TEMPLATE([STAT_SECOND_ARG], [second argument of stat])
+dnl Tru64 or something uses stat * instead of struct stat *
+AC_MSG_CHECKING([for type of second arg to stat])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/stat.h>
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int stat ( const char *file_name, struct stat *buf);
+  ]])],[
+   AC_DEFINE(STAT_SECOND_ARG, struct stat *)
+   AC_MSG_RESULT([struct stat *])
+  ],[
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/stat.h>
+       #include <sys/types.h>
+       #include <unistd.h>
+  ]], [[
+       int stat ( const char *file_name, stat *buf);
+  ]])],[
+   AC_DEFINE(STAT_SECOND_ARG, stat *)
+   AC_MSG_RESULT([stat *])
+  ],[
+  AC_MSG_ERROR(cannot determine second stat argument)
+  ])
+])
+
+for field in d_off d_type; do
+AC_MSG_CHECKING([for ${field} in struct dirent])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <dirent.h>
+  ]], [[
+
+       struct dirent d;
+       d.${field}=0
+  ]])],[AC_DEFINE_UNQUOTED(STAT_HAS_${field},1)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+done
+
+AH_TEMPLATE([HAVE_ACL_T], [acl_t data type and associated functions are provided by OS])
+AC_MSG_CHECKING([for acl_t struct])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <sys/types.h>
+       #include <sys/acl.h>
+  ]], [[
+       acl_t t;
+  ]])],[AC_DEFINE_UNQUOTED(HAVE_ACL_T,1)
+   AC_MSG_RESULT([yes])
+  ],[ AC_MSG_RESULT([no])
+  ])
+
+AC_CHECK_FUNCS(fchmodat fchownat fstatat mkdirat mknodat openat renameat unlinkat lchmod fgetattrlist fchown32)
+
+save_LIBS="$LIBS"
+# Linux
+AC_SEARCH_LIBS(acl_get_fd, acl)
+AC_CHECK_FUNCS(acl_get_fd)
+
+# Illumos
+AC_SEARCH_LIBS(acl_trivial, sec)
+AC_CHECK_FUNCS(acl_trivial)
+LIBS="$save_LIBS"
+
+AC_CHECK_FUNCS(capset listxattr llistxattr flistxattr getxattr lgetxattr fgetxattr setxattr lsetxattr fsetxattr removexattr lremovexattr fremovexattr)
+
+AC_CHECK_FUNCS(statx)
+
+dnl find out how stat() etc are called. On linux systems, we really
+dnl need to wrap (IIRC):
+dnl  Linux       : __xstat
+dnl  Solaris <=9 : _stat
+dnl  Solaris 10  : _xstat
+dnl  Digital Unix: stat
+
+time64_hack=no
+AH_TEMPLATE([TIME64_HACK], [time64 shuffle])
+AC_MSG_CHECKING([if we need to cope with time64])
+AC_EGREP_CPP([time64],[
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+#define __USE_TIME_BITS64 1
+#include <sys/stat.h>
+stat
+#else
+NO
+#endif
+],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(TIME64_HACK)
+time64_hack=yes
+],
+       [AC_MSG_RESULT([no]);])
+
+:>fakerootconfig.h.tmp
+
+for SEARCH in %stat f%stat l%stat f%statat %stat64 f%stat64 l%stat64 f%statat64 %mknod %mknodat; do
+  FUNC=`echo $SEARCH|sed -e 's/.*%//'`
+  PRE=`echo $SEARCH|sed -e 's/%.*//'`
+  FOUND=
+  for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC} __${PRE}${FUNC}; do
+    AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
+dnl
+dnl to unconditionally define only the _* functions, comment out the 2 lines above,
+dnl and uncomment the 2 lines below.
+dnl
+dnl  for WRAPPED in _${PRE}${FUNC}; do
+dnl    FOUND=$WRAPPED
+    if test -n "$FOUND"; then
+      PF=[`echo ${PRE}${FUNC}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_WRAP=[`echo wrap_${PRE}${FUNC}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_NEXT=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_ARG=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      AC_DEFINE_UNQUOTED(WRAP_${PF}, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_RAW, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_QUOTE, "$FOUND")
+      AC_DEFINE_UNQUOTED(TMP_${PF}, tmp_$FOUND)
+      AC_DEFINE_UNQUOTED(NEXT_${PF}_NOARG, next_$FOUND)
+      if test __"${PRE}x${FUNC}" != "${WRAPPED}" && test _"${PRE}x${FUNC}" != "${WRAPPED}" ; then
+        DEF_BEGIN=""
+      else
+        DEF_BEGIN="a,"
+      fi
+      if test "${FUNC}" = "mknod"; then
+        DEF_END=",d"
+      elif test "${FUNC}" = "mknodat"; then
+        DEF_END=",d,e"
+      elif test "${FUNC}" = "statat"; then
+        DEF_END=",d,e"
+      elif test "${FUNC}" = "statat64"; then
+        DEF_END=",d,e"
+      else
+        DEF_END=""
+      fi
+      dnl no matter what I do, the resulting define looks like
+      dnl #define macro (a,b,c) (a,b,c)
+      dnl with a space in between "macro" and "(". To prevent this,
+      dnl I leave the space here, and remove it later with sed
+      dnl at (end of configure.in)
+      dnl AC_DEFINE_UNQUOTED(NEXT_${PF}(a,b,c${DEF_END}),
+      dnl		     next_$FOUND(${DEF_BEGIN}b,c${DEF_END}))
+      dnl AC_DEFINE_UNQUOTED(${PF}[_ARG(a,b,c${DEF_END})],
+      dnl		     (${DEF_BEGIN}b,c${DEF_END}))
+
+      dnl Anyway the trickery above also leads to automake problems
+      dnl (tries to remake config.h.in, but fails). So, as a way
+      dnl out, Yann DIRSON wrote this:
+      {
+       echo "#define NEXT_${PF}(a,b,c${DEF_END}) next_$FOUND(${DEF_BEGIN}b,c${DEF_END})"
+       echo "#define ${PF}_ARG(a,b,c${DEF_END}) (${DEF_BEGIN}b,c${DEF_END})"
+      } >>fakerootconfig.h.tmp
+
+      break
+    fi
+  done
+done
+
+if test "x$time64_hack" = "xyes"; then
+for SEARCH in stat64_time64 fstat64_time64 lstat64_time64 fstatat64_time64; do
+  FOUND=
+  for WRAPPED in __${SEARCH} ${SEARCH}; do
+    AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
+    if test -n "$FOUND"; then
+      PF=[`echo ${SEARCH}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_WRAP=[`echo wrap_${SEARCH}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_NEXT=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      DEFINE_ARG=[`echo wrap_${FOUND}| tr '[a-z]' '[A-Z]'`]
+      AC_DEFINE_UNQUOTED(WRAP_${PF}, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_RAW, $FOUND)
+      AC_DEFINE_UNQUOTED(WRAP_${PF}_QUOTE, "$FOUND")
+      AC_DEFINE_UNQUOTED(TMP_${PF}, tmp_$FOUND)
+      AC_DEFINE_UNQUOTED(NEXT_${PF}_NOARG, next_$FOUND)
+      DEF_BEGIN=""
+      case "$SEARCH" in
+	     (*statat64_time64)
+	     DEF_END=",d,e"
+	     ;;
+	     (*)
+	     DEF_END=""
+	     ;;
+      esac
+      {
+       echo "#define NEXT_${PF}(a,b,c${DEF_END}) next_$FOUND(${DEF_BEGIN}b,c${DEF_END})"
+       echo "#define ${PF}_ARG(a,b,c${DEF_END}) (${DEF_BEGIN}b,c${DEF_END})"
+      } >>fakerootconfig.h.tmp
+
+      break
+    fi
+  done
+done
+fi
+
+if test -r fakerootconfig.h
+then
+       if test "`diff fakerootconfig.h fakerootconfig.h.tmp`" = ""
+       then
+               AC_MSG_RESULT([fakerootconfig.h not changed])
+               rm fakerootconfig.h.tmp
+       else
+               AC_MSG_RESULT([recreated fakerootconfig.h])
+               rm fakerootconfig.h ; mv fakerootconfig.h.tmp fakerootconfig.h
+       fi
+else
+       AC_MSG_RESULT([created fakerootconfig.h])
+       mv fakerootconfig.h.tmp fakerootconfig.h
+fi
+
+dnl This should really be done intelligently.
+DLSUFFIX=".so"
+LDLIBPATHVAR="LD_LIBRARY_PATH"
+LDPRELOADVAR="LD_PRELOAD"
+LDPRELOADABS=0
+LDEXTRAVAR=""
+case $target_cpu:$target_os in
+	(alpha*:linux*|ia64*:linux*)
+		libcpath="/lib/libc.so.6.1"
+		;;
+	(*:linux*)
+	        libcpath="/lib/libc.so.6"
+		;;
+	(*:k*bsd*-gnu)
+	        libcpath="/lib/libc.so.0.1"
+		;;
+	(*:freebsd*)
+		libcpath="/usr/lib/libc.so.4"
+		;;
+	(*:netbsd*)
+		libcpath="/usr/lib/libc.so.12"
+		;;
+	(*:openbsd*|*:mirbsd*)
+		libcpath=$(/bin/ls -1 /usr/lib/libc.so.* | \
+		    sort -nt. -k3 | tail -1)
+		;;
+	(*:midnightbsd*)
+		libcpath=$(/bin/ls -1 /lib/libc.so.* | \
+		    sort -nt. -k3 | tail -1)
+		;;
+	(*:hpux*)
+		libcpath="/usr/lib/hpux32/libc.so.1"
+		;;
+	(*:osf*)
+		libcpath="/shlib/libc.so"
+		;;
+	(*:solaris*)
+		libcpath="/lib/libc.so.1"
+		;;
+	(*:darwin*)
+		libcpath="/usr/lib/libSystem.dylib"
+		DLSUFFIX=".dylib"
+		LDLIBPATHVAR="DYLD_LIBRARY_PATH"
+		LDPRELOADVAR="DYLD_INSERT_LIBRARIES"
+		LDPRELOADABS=1
+		;;
+	(*)
+		AC_MSG_WARN([don't know where libc is for $target_os on
+			     $target_cpu, setting to /lib/libc.so])
+		libcpath="/lib/libc.so"
+		;;
+esac
+
+AC_DEFINE_UNQUOTED([LIBCPATH], "$libcpath", [path to libc shared object])
+AC_SUBST(DLSUFFIX)
+AC_SUBST(LDLIBPATHVAR)
+AC_SUBST(LDPRELOADVAR)
+AC_SUBST(LDPRELOADABS)
+AC_SUBST(LDEXTRAVAR)
+
+dnl Checks for library functions.
+AC_CHECK_FUNCS(strdup strstr getresuid setresuid getresgid setresgid setfsuid setfsgid fts_read fts_children)
+
+AC_CHECK_DECLS([setenv, unsetenv])
+AC_REPLACE_FUNCS([setenv])
+
+dnl Checks for __builtin_expect
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
+     [[]])],[AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
+     [Define to 1 if the compiler understands __builtin_expect.])],[])
+
+dnl kludge
+AH_VERBATIM([WRAP_STAT],
+[/* Stuff.  */
+#define WRAP_STAT  __astat
+#define WRAP_STAT_QUOTE  __astat
+#define WRAP_STAT_RAW  __astat
+#define TMP_STAT  __astat
+#define NEXT_STAT_NOARG  next___astat
+
+#define WRAP_LSTAT_QUOTE  __astat
+#define WRAP_LSTAT  __astat
+#define WRAP_LSTAT_RAW  __astat
+#define TMP_LSTAT  __astat
+#define NEXT_LSTAT_NOARG  next___astat
+
+#define WRAP_FSTAT_QUOTE  __astat
+#define WRAP_FSTAT  __astat
+#define WRAP_FSTAT_RAW  __astat
+#define TMP_FSTAT  __astat
+#define NEXT_FSTAT_NOARG  next___astat
+
+#define WRAP_FSTATAT_QUOTE  __astatat
+#define WRAP_FSTATAT  __astatat
+#define WRAP_FSTATAT_RAW  __astatat
+#define TMP_FSTATAT  __astatat
+#define NEXT_FSTATAT_NOARG  next___astatat
+
+#define WRAP_STAT64_QUOTE  __astat64
+#define WRAP_STAT64  __astat64
+#define WRAP_STAT64_RAW  __astat64
+#define TMP_STAT64  __astat64
+#define NEXT_STAT64_NOARG  next___astat64
+
+#define WRAP_LSTAT64_QUOTE  __astat64
+#define WRAP_LSTAT64  __astat64
+#define WRAP_LSTAT64_RAW  __astat64
+#define TMP_LSTAT64  __astat64
+#define NEXT_LSTAT64_NOARG  next___astat64
+
+#define WRAP_FSTAT64_QUOTE  __astat64
+#define WRAP_FSTAT64  __astat64
+#define WRAP_FSTAT64_RAW  __astat64
+#define TMP_FSTAT64  __astat64
+#define NEXT_FSTAT64_NOARG  next___astat64
+
+#define WRAP_FSTATAT64_QUOTE  __astatat64
+#define WRAP_FSTATAT64  __astatat64
+#define WRAP_FSTATAT64_RAW  __astatat64
+#define TMP_FSTATAT64  __astatat64
+#define NEXT_FSTATAT64_NOARG  next___astatat64
+
+#define WRAP_MKNOD_QUOTE  __amknod
+#define WRAP_MKNOD  __amknod
+#define WRAP_MKNOD_RAW  __amknod
+#define TMP_MKNOD  __amknod
+#define NEXT_MKNOD_NOARG  next___amknod
+
+#define WRAP_MKNODAT_QUOTE  __amknodat
+#define WRAP_MKNODAT  __amknodat
+#define WRAP_MKNODAT_RAW  __amknodat
+#define TMP_MKNODAT  __amknodat
+#define NEXT_MKNODAT_NOARG  next___amknodat
+
+#define WRAP_STAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_STAT64_TIME64  __astat64_time64
+#define WRAP_STAT64_TIME64_RAW  __astat64_time64
+#define TMP_STAT64_TIME64  __astat64_time64
+#define NEXT_STAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_LSTAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_LSTAT64_TIME64  __astat64_time64
+#define WRAP_LSTAT64_TIME64_RAW  __astat64_time64
+#define TMP_LSTAT64_TIME64  __astat64_time64
+#define NEXT_LSTAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_FSTAT64_TIME64_QUOTE  __astat64_time64
+#define WRAP_FSTAT64_TIME64  __astat64_time64
+#define WRAP_FSTAT64_TIME64_RAW  __astat64_time64
+#define TMP_FSTAT64_TIME64  __astat64_time64
+#define NEXT_FSTAT64_TIME64_NOARG  next___astat64_time64
+
+#define WRAP_FSTATAT64_TIME64_QUOTE  __astatat64_time64
+#define WRAP_FSTATAT64_TIME64  __astat64_time64
+#define WRAP_FSTATAT64_TIME64_RAW  __astat64_time64
+#define TMP_FSTATAT64_TIME64  __astat64_time64
+#define NEXT_FSTATAT64_TIME64_NOARG  next___astat64_time64
+
+])
+dnl kludge end
+
+case "$target_cpu:$target_os" in
+	(alpha*:linux*)
+	AH_TEMPLATE([STUPID_ALPHA_HACK], [stat-struct conversion hackery])
+	AC_MSG_CHECKING([if we need to do stat-struct conversion hackery])
+	AC_EGREP_CPP([3:3],[
+#include <sys/stat.h>
+_STAT_VER:_STAT_VER_GLIBC2_3_4
+],
+       [AC_MSG_RESULT([yes]); AC_DEFINE(STUPID_ALPHA_HACK)
+CPPFLAGS="$CPPFLAGS -I\$(srcdir)/statconv/glibc/linux/alpha"
+],
+       [AC_MSG_RESULT([no]);])
+        ;;
+esac
+
+dnl AH_TEMPLATE([MACOSX], [is __APPLE__ defined by the compiler])
+AC_MSG_CHECKING([for macOS/Darwin])
+  AC_PREPROC_IFELSE(
+    [AC_LANG_PROGRAM([[
+       #ifndef __APPLE__
+       #error Not Apple
+       #endif
+  ]])],
+    [macosx=true
+     AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])
+     macosx=false]
+  )
+AM_CONDITIONAL([MACOSX], [test x$macosx = xtrue])
+
+AC_CONFIG_FILES([
+   Makefile
+   scripts/Makefile
+   doc/Makefile
+   doc/de/Makefile doc/es/Makefile doc/fr/Makefile doc/nl/Makefile doc/pt/Makefile doc/sv/Makefile
+   test/Makefile test/defs])
+AC_OUTPUT
+
+dnl Local variables:
+dnl mode: m4
+dnl End:
Index: file.list
===================================================================
--- file.list	(nonexistent)
+++ file.list	(revision 19)
@@ -0,0 +1 @@
+fakeroot-1.31/configure.ac