From 81dd9d3ebc3eca04fade4df4689c53d1d11c5f19 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sat, 18 Dec 2010 04:48:09 +1000 Subject: Detect undefined PATH_MAX POSIX does not require PATH_MAX be defined when there is not actual limit to its value. This affects HURD based systems. Work around this by defining PATH_MAX to 4096 (as on Linux) when this is not defined. Also, clean up inclusions of limits.h and remove autoconf check for this header as we do not use macro shields for its inclusion anyway. Signed-off-by: Allan McRae Signed-off-by: Dan McGee --- acinclude.m4 | 16 ++++++++++++++++ configure.ac | 3 ++- lib/libalpm/be_sync.c | 1 + lib/libalpm/db.h | 1 - lib/libalpm/dload.c | 1 - lib/libalpm/error.c | 1 - lib/libalpm/package.c | 1 - lib/libalpm/sync.c | 1 + lib/libalpm/trans.c | 1 + src/util/cleanupdelta.c | 2 ++ src/util/testdb.c | 2 ++ 11 files changed, 25 insertions(+), 5 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 6693da44..7309d731 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -125,3 +125,19 @@ extern int getmntinfo (struct statfs **, int); [Defined as the filesystem stats type ('statvfs' or 'statfs')]) ]) +dnl Checks for PATH_MAX and defines it if not present +AC_DEFUN([PATH_MAX_DEFINED], + [AC_CACHE_CHECK([PATH_MAX defined], path_max_cv_defined, + [AC_EGREP_CPP(yes, [[ +#include +#if defined(PATH_MAX) +yes +#endif +]], + [path_max_cv_defined=yes], + [path_max_cv_defined=no])] + ) + if test $path_max_cv_defined = no; then + AC_DEFINE([PATH_MAX], 4096, [Define if PATH_MAX is undefined by limits.h.]) + fi +]) diff --git a/configure.ac b/configure.ac index 747c8b75..11b6b11a 100644 --- a/configure.ac +++ b/configure.ac @@ -172,7 +172,7 @@ AS_IF([test "x$with_fetch" != "xno"], AM_CONDITIONAL([HAVE_LIBFETCH], [test "x$ac_cv_lib_fetch_fetchParseURL" = "xyes"]) # Checks for header files. -AC_CHECK_HEADERS([fcntl.h glob.h libintl.h limits.h locale.h mntent.h string.h strings.h \ +AC_CHECK_HEADERS([fcntl.h glob.h libintl.h locale.h mntent.h string.h strings.h \ sys/ioctl.h sys/mount.h sys/param.h sys/statvfs.h sys/syslimits.h \ sys/time.h sys/types.h sys/ucred.h syslog.h wchar.h]) @@ -185,6 +185,7 @@ AC_TYPE_SIZE_T AC_STRUCT_TM AC_TYPE_UID_T AC_STRUCT_DIRENT_D_TYPE +PATH_MAX_DEFINED # Checks for library functions. AC_FUNC_FORK diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index d0f98c20..4786864a 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -23,6 +23,7 @@ #include #include #include +#include /* libarchive */ #include diff --git a/lib/libalpm/db.h b/lib/libalpm/db.h index ace366d1..10aa1644 100644 --- a/lib/libalpm/db.h +++ b/lib/libalpm/db.h @@ -23,7 +23,6 @@ #define _ALPM_DB_H #include "alpm.h" -#include #include /* libarchive */ diff --git a/lib/libalpm/dload.c b/lib/libalpm/dload.c index 1cb24e61..ea7f5570 100644 --- a/lib/libalpm/dload.c +++ b/lib/libalpm/dload.c @@ -29,7 +29,6 @@ #include #include #include -#include /* the following two are needed on BSD for libfetch */ #if defined(HAVE_SYS_SYSLIMITS_H) #include /* PATH_MAX */ diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index 78a78667..d4c296fc 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -22,7 +22,6 @@ /* TODO: needed for the libfetch stuff, unfortunately- we should kill it */ #include -#include /* the following two are needed on BSD for libfetch */ #if defined(HAVE_SYS_SYSLIMITS_H) #include /* PATH_MAX */ diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 2ea51251..edfb7bd3 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -25,7 +25,6 @@ #include #include -#include #include #include #include diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 8af32e45..0a978024 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -31,6 +31,7 @@ #include /* intmax_t */ #include #include +#include /* libalpm */ #include "sync.h" diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 5bc2c911..5c132111 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -31,6 +31,7 @@ #include #include #include +#include /* libalpm */ #include "trans.h" diff --git a/src/util/cleanupdelta.c b/src/util/cleanupdelta.c index c1ef18c4..20102824 100644 --- a/src/util/cleanupdelta.c +++ b/src/util/cleanupdelta.c @@ -17,6 +17,8 @@ * along with this program. If not, see . */ +#include "config.h" + #include #include #include diff --git a/src/util/testdb.c b/src/util/testdb.c index 53a0dfa3..332224e1 100644 --- a/src/util/testdb.c +++ b/src/util/testdb.c @@ -17,6 +17,8 @@ * along with this program. If not, see . */ +#include "config.h" + #include #include #include -- cgit v1.2.3-70-g09d2