summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2010-12-17 19:48:09 +0100
committerDan McGee <dan@archlinux.org>2010-12-30 02:24:13 +0100
commit81dd9d3ebc3eca04fade4df4689c53d1d11c5f19 (patch)
tree443566a22e9787f2cfac44a9eb2e59631ab118d1
parentfcc09bd7e35766a5f025282491501824ee11cf27 (diff)
downloadpacman-81dd9d3ebc3eca04fade4df4689c53d1d11c5f19.tar.gz
pacman-81dd9d3ebc3eca04fade4df4689c53d1d11c5f19.tar.xz
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 <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--acinclude.m416
-rw-r--r--configure.ac3
-rw-r--r--lib/libalpm/be_sync.c1
-rw-r--r--lib/libalpm/db.h1
-rw-r--r--lib/libalpm/dload.c1
-rw-r--r--lib/libalpm/error.c1
-rw-r--r--lib/libalpm/package.c1
-rw-r--r--lib/libalpm/sync.c1
-rw-r--r--lib/libalpm/trans.c1
-rw-r--r--src/util/cleanupdelta.c2
-rw-r--r--src/util/testdb.c2
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 <limits.h>
+#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 <errno.h>
#include <ctype.h>
#include <locale.h>
+#include <limits.h>
/* libarchive */
#include <archive.h>
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 <limits.h>
#include <time.h>
/* 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 <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
-#include <limits.h>
/* the following two are needed on BSD for libfetch */
#if defined(HAVE_SYS_SYSLIMITS_H)
#include <sys/syslimits.h> /* 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 <stdio.h>
-#include <limits.h>
/* the following two are needed on BSD for libfetch */
#if defined(HAVE_SYS_SYSLIMITS_H)
#include <sys/syslimits.h> /* 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 <stdio.h>
#include <stdlib.h>
-#include <limits.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
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 <stdint.h> /* intmax_t */
#include <unistd.h>
#include <time.h>
+#include <limits.h>
/* 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 <sys/stat.h>
#include <sys/statvfs.h>
#include <errno.h>
+#include <limits.h>
/* 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 <http://www.gnu.org/licenses/>.
*/
+#include "config.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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 <http://www.gnu.org/licenses/>.
*/
+#include "config.h"
+
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>