[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gnulib] Re: AIX tests failures
From: |
Bruno Haible |
Subject: |
Re: [bug-gnulib] Re: AIX tests failures |
Date: |
Tue, 30 May 2006 21:11:04 +0200 |
User-agent: |
KMail/1.5 |
Ralf Wildenhues wrote:
> Not sure if I have much motivation for fighting this into glibc, but
> here you go. I'm unsure if conditionalizing away the #undef __strndup
> is wrong for some system.
>
> Tested on AIX 4.3.3, 5.1, 5.2 (first has strnlen and strndup broken,
> second has strnlen fixed, last has both fixed)
gnulib does not support SunOS 4 and AIX 3, but AIX 5.1 is quite recent and
IMO worth supporting.
I added your patch to gnulib, with 4 modifications:
- In strdup.c, #undef __strndup can stay unconditional.
- In strndup.m4, I think you dropped the code that cares about defining
HAVE_STRNDUP (used by strndup.h).
- In strndup.m4, why use AC_INCLUDES_DEFAULT when later on, strndup.h includes
only <string.h>?
- In strndup.m4, when cross-compiling, don't penalize glibc systems. Assume
the function needs a replacement only on AIX.
> + test $gl_cv_func_strndup = no &&
> + if test $gl_cv_func_strndup = no; then
Was this intended redundancy or a typo?
Bruno
2006-05-30 Ralf Wildenhues <address@hidden>
Bruno Haible <address@hidden>
* strndup.m4 (gl_FUNC_STRNDUP): Replace the AC_REPLACE_FUNCS with a
check for the declaration of strnlen and a run test that exposes the
AIX 5.1 strnlen bug. In the failure case, #define strndup to
rpl_strndup.
2006-05-30 Ralf Wildenhues <address@hidden>
Bruno Haible <address@hidden>
* strndup.c (strndup) [!_LIBC]: Don't undefine macro definition.
diff -c -3 -r1.5 strndup.m4
*** m4/strndup.m4 11 Aug 2005 09:56:12 -0000 1.5
--- m4/strndup.m4 30 May 2006 19:12:29 -0000
***************
*** 1,5 ****
! # strndup.m4 serial 5
! dnl Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- 1,5 ----
! # strndup.m4 serial 6
! dnl Copyright (C) 2002-2003, 2005-2006 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
***************
*** 11,18 ****
dnl Persuade glibc <string.h> to declare strndup().
AC_REQUIRE([AC_GNU_SOURCE])
! AC_REPLACE_FUNCS(strndup)
! if test $ac_cv_func_strndup = no; then
gl_PREREQ_STRNDUP
fi
])
--- 11,46 ----
dnl Persuade glibc <string.h> to declare strndup().
AC_REQUIRE([AC_GNU_SOURCE])
! AC_CHECK_DECLS_ONCE([strndup])
!
! # AIX 5.1 fails to add the terminating '\0'.
! AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup,
! [AC_RUN_IFELSE([
! AC_LANG_PROGRAM([#include <string.h>], [[
! #ifndef HAVE_DECL_STRNDUP
! extern char *strndup (const char *, size_t);
! #endif
! char *s;
! s = strndup ("some longer string", 15);
! free (s);
! s = strndup ("shorter string", 13);
! return s[13] != '\0';]])],
! [gl_cv_func_strndup=yes],
! [gl_cv_func_strndup=no],
! [AC_EGREP_CPP([too risky], [
! #ifdef _AIX
! too risky
! #endif
! ],
! [gl_cv_func_strndup=no],
! [gl_cv_func_strndup=yes])])])
! if test $gl_cv_func_strndup = yes; then
! AC_DEFINE([HAVE_STRNDUP], 1,
! [Define if you have the strndup() function and it works.])
! else
! AC_LIBOBJ([strndup])
! AC_DEFINE(strndup, rpl_strndup,
! [Define to rpl_strndup if the replacement function should be used,])
gl_PREREQ_STRNDUP
fi
])
diff -c -3 -r1.14 strndup.c
*** lib/strndup.c 24 Jan 2006 07:40:58 -0000 1.14
--- lib/strndup.c 30 May 2006 19:12:29 -0000
***************
*** 36,42 ****
#endif
#undef __strndup
! #undef strndup
#ifndef weak_alias
# define __strndup strndup
--- 36,44 ----
#endif
#undef __strndup
! #if _LIBC
! # undef strndup
! #endif
#ifndef weak_alias
# define __strndup strndup
- Re: AIX tests failures, (continued)
Re: AIX tests failures, Jim Meyering, 2006/05/28
Re: AIX tests failures, Jim Meyering, 2006/05/28
- Re: AIX tests failures, Ralf Wildenhues, 2006/05/28
- Re: AIX tests failures, Jim Meyering, 2006/05/28
- Re: AIX tests failures, Paul Eggert, 2006/05/28
- Re: AIX tests failures, Ralf Wildenhues, 2006/05/28
- Re: AIX tests failures, Paul Eggert, 2006/05/29
- Re: [bug-gnulib] Re: AIX tests failures,
Bruno Haible <=
- Re: [bug-gnulib] Re: AIX tests failures, Ralf Wildenhues, 2006/05/30
- Re: [bug-gnulib] AIX tests failures, Bruno Haible, 2006/05/30
- Re: [bug-gnulib] AIX tests failures, Ralf Wildenhues, 2006/05/30
- Re: [bug-gnulib] AIX tests failures, Bruno Haible, 2006/05/30
- Re: [bug-gnulib] AIX tests failures, Albert Chin, 2006/05/30
Re: [bug-gnulib] AIX tests failures, Albert Chin, 2006/05/30
Re: AIX tests failures, Albert Chin, 2006/05/29
Re: AIX tests failures, Jim Meyering, 2006/05/30
Re: AIX tests failures, Albert Chin, 2006/05/30
Re: AIX tests failures, Albert Chin, 2006/05/29