Mercurial > hg > octave-nkf > gnulib-hg
changeset 8715:bce2b6584930
* lib/argz_.h: ensure error_t definition is obtained in same
mechanism system argz.h would have.
* m4/argz.m4 (gl_FUNC_ARGZ): add new test to check if $host's
argz facilities are known bad. Err on the side of caution if
cross-compiling.
author | Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
---|---|
date | Wed, 25 Apr 2007 21:18:41 +0000 |
parents | 50acfe842621 |
children | 43a9fb438a48 |
files | ChangeLog lib/argz_.h m4/argz.m4 |
diffstat | 3 files changed, 58 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-04-25 Charles Wilson <libtool@cwilson.fastmail.fm> + Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * lib/argz_.h: ensure error_t definition is obtained in same + mechanism system argz.h would have. + * m4/argz.m4 (gl_FUNC_ARGZ): add new test to check if $host's + argz facilities are known bad. Err on the side of caution if + cross-compiling. + 2007-04-25 Eric Blake <ebb9@byu.net> * lib/fpurge.c (includes): Use stdlib.h for free.
--- a/lib/argz_.h +++ b/lib/argz_.h @@ -1,6 +1,6 @@ /* lt__argz.h -- internal argz interface for non-glibc systems - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2007 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the @@ -32,6 +32,8 @@ #define LT__ARGZ_H 1 #include <stdlib.h> +#define __need_error_t +#include <errno.h> #include <sys/types.h> #if defined(LTDL)
--- a/m4/argz.m4 +++ b/m4/argz.m4 @@ -1,13 +1,13 @@ # Portability macros for glibc argz. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. # Written by Gary V. Vaughan <gary@gnu.org> # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 4 argz.m4 +# serial 5 argz.m4 AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ @@ -27,6 +27,50 @@ ARGZ_H= AC_CHECK_FUNCS([argz_append argz_create_sep argz_insert argz_next \ argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + save_IFS=$IFS + IFS=-. + set x `uname -r | $SED -e 's/^\([[0-9\.]]*\).*/\1/'` + IFS=$save_IFS + lt_os_major=$[]{2-0} + lt_os_minor=$[]{3-0} + lt_os_micro=$[]{4-0} + if test "$lt_os_major" -gt 1 || + { test "$lt_os_major" -eq 1 && + { test "$lt_os_minor" -gt 5 || + { test "$lt_os_minor" -eq 5 && + test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]) + AS_IF([test $lt_cv_sys_argz_works != yes], + [AC_DEFINE([SYSTEM_ARGZ_IS_BROKEN], 1, + [This value is set to 1 to indicate that the system argz facility does not work]) + ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + AC_SUBST([ARGZ_H]) ])