mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Handle lack of struct dirent64' and
readdir64_r ()' on HP-UX 11.11.
This commit is contained in:
parent
4696a66693
commit
450be18dff
7 changed files with 72 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2008-07-16 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
|
* configure.in: Look for `struct dirent64' and `readdir64_r ()',
|
||||||
|
not available on HP-UX 11.11.
|
||||||
|
|
||||||
2008-07-06 Ludovic Courtès <ludo@gnu.org>
|
2008-07-06 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
* configure.in: Update to Autoconf 2.61.
|
* configure.in: Update to Autoconf 2.61.
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -53,6 +53,7 @@ application code.
|
||||||
** `guile-config link' now prints `-L$libdir' before `-lguile'
|
** `guile-config link' now prints `-L$libdir' before `-lguile'
|
||||||
** Fix build issue on Tru64 and ia64-hp-hpux11.23 (`SCM_UNPACK' macro)
|
** Fix build issue on Tru64 and ia64-hp-hpux11.23 (`SCM_UNPACK' macro)
|
||||||
** Fix build issue on mips, mipsel, powerpc and ia64 (stack direction)
|
** Fix build issue on mips, mipsel, powerpc and ia64 (stack direction)
|
||||||
|
** Fix build issue on hppa2.0w-hp-hpux11.11 (`dirent64' and `readdir64_r')
|
||||||
|
|
||||||
|
|
||||||
Changes in 1.8.5 (since 1.8.4)
|
Changes in 1.8.5 (since 1.8.4)
|
||||||
|
|
34
configure.in
34
configure.in
|
@ -583,9 +583,38 @@ AC_SUBST([SCM_I_GSC_NEEDS_STDINT_H])
|
||||||
AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H])
|
AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H])
|
||||||
|
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
AC_HEADER_DIRENT
|
|
||||||
AC_HEADER_TIME
|
AC_HEADER_TIME
|
||||||
AC_HEADER_SYS_WAIT
|
AC_HEADER_SYS_WAIT
|
||||||
|
AC_HEADER_DIRENT
|
||||||
|
|
||||||
|
# Reason for checking:
|
||||||
|
#
|
||||||
|
# HP-UX 11.11 (at least) doesn't provide `struct dirent64', even
|
||||||
|
# with `_LARGEFILE64_SOURCE', so check whether it's available.
|
||||||
|
#
|
||||||
|
AC_CHECK_MEMBER([struct dirent64.d_name],
|
||||||
|
[SCM_I_GSC_HAVE_STRUCT_DIRENT64=1], [SCM_I_GSC_HAVE_STRUCT_DIRENT64=0],
|
||||||
|
[ #ifndef _LARGEFILE64_SOURCE
|
||||||
|
# define _LARGEFILE64_SOURCE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Per Autoconf manual. */
|
||||||
|
#include <sys/types.h>
|
||||||
|
#ifdef HAVE_DIRENT_H
|
||||||
|
# include <dirent.h>
|
||||||
|
#else
|
||||||
|
# define dirent direct
|
||||||
|
# ifdef HAVE_SYS_NDIR_H
|
||||||
|
# include <sys/ndir.h>
|
||||||
|
# endif
|
||||||
|
# ifdef HAVE_SYS_DIR_H
|
||||||
|
# include <sys/dir.h>
|
||||||
|
# endif
|
||||||
|
# ifdef HAVE_NDIR_H
|
||||||
|
# include <ndir.h>
|
||||||
|
# endif
|
||||||
|
#endif ])
|
||||||
|
AC_SUBST([SCM_I_GSC_HAVE_STRUCT_DIRENT64])
|
||||||
|
|
||||||
# Reasons for testing:
|
# Reasons for testing:
|
||||||
# complex.h - new in C99
|
# complex.h - new in C99
|
||||||
|
@ -684,6 +713,7 @@ AC_CHECK_HEADERS([assert.h crt_externs.h])
|
||||||
# pipe - not in mingw
|
# pipe - not in mingw
|
||||||
# _pipe - specific to mingw, taking 3 args
|
# _pipe - specific to mingw, taking 3 args
|
||||||
# readdir_r - recent posix, not on old systems
|
# readdir_r - recent posix, not on old systems
|
||||||
|
# readdir64_r - not available on HP-UX 11.11
|
||||||
# stat64 - SuS largefile stuff, not on old systems
|
# stat64 - SuS largefile stuff, not on old systems
|
||||||
# sysconf - not on old systems
|
# sysconf - not on old systems
|
||||||
# truncate - not in mingw
|
# truncate - not in mingw
|
||||||
|
@ -692,7 +722,7 @@ AC_CHECK_HEADERS([assert.h crt_externs.h])
|
||||||
# strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin
|
# strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin
|
||||||
# nl_langinfo - X/Open, not available on Windows.
|
# nl_langinfo - X/Open, not available on Windows.
|
||||||
#
|
#
|
||||||
AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime ftruncate fchown getcwd geteuid gettimeofday gmtime_r ioctl lstat mkdir mknod nice pipe _pipe readdir_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt stat64 strftime strptime symlink sync sysconf tcgetpgrp tcsetpgrp times uname waitpid strdup system usleep atexit on_exit chown link fcntl ttyname getpwent getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp index bcopy memcpy rindex truncate unsetenv isblank _NSGetEnviron strcoll strcoll_l newlocale nl_langinfo])
|
AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid fesetround ftime ftruncate fchown getcwd geteuid gettimeofday gmtime_r ioctl lstat mkdir mknod nice pipe _pipe readdir_r readdir64_r readlink rename rmdir select setegid seteuid setlocale setpgid setsid sigaction siginterrupt stat64 strftime strptime symlink sync sysconf tcgetpgrp tcsetpgrp times uname waitpid strdup system usleep atexit on_exit chown link fcntl ttyname getpwent getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp index bcopy memcpy rindex truncate unsetenv isblank _NSGetEnviron strcoll strcoll_l newlocale nl_langinfo])
|
||||||
|
|
||||||
# Reasons for testing:
|
# Reasons for testing:
|
||||||
# netdb.h - not in mingw
|
# netdb.h - not in mingw
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
2008-07-16 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
|
* gen-scmconfig.h.in (SCM_I_GSC_HAVE_STRUCT_DIRENT64): New.
|
||||||
|
* gen-scmconfig.c (main): Produce definitions of
|
||||||
|
`SCM_HAVE_STRUCT_DIRENT64' and `SCM_HAVE_READDIR64_R'.
|
||||||
|
* _scm.h (dirent_or_dirent64): Depend on
|
||||||
|
`SCM_HAVE_STRUCT_DIRENT64', for the sake of HP-UX 11.11.
|
||||||
|
(readdir_r_or_readdir64_r): Depend on `SCM_HAVE_READDIR64_R',
|
||||||
|
for HP-UX 11.11.
|
||||||
|
|
||||||
2008-07-05 Ludovic Courtès <ludo@gnu.org>
|
2008-07-05 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
|
||||||
* strings.c (scm_c_symbol_length): New function.
|
* strings.c (scm_c_symbol_length): New function.
|
||||||
|
|
|
@ -113,7 +113,11 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* These names are a bit long, but they make it clear what they represent. */
|
/* These names are a bit long, but they make it clear what they represent. */
|
||||||
#define dirent_or_dirent64 CHOOSE_LARGEFILE(dirent,dirent64)
|
#if SCM_HAVE_STRUCT_DIRENT64 == 1
|
||||||
|
# define dirent_or_dirent64 CHOOSE_LARGEFILE(dirent,dirent64)
|
||||||
|
#else
|
||||||
|
# define dirent_or_dirent64 dirent
|
||||||
|
#endif
|
||||||
#define fstat_or_fstat64 CHOOSE_LARGEFILE(fstat,fstat64)
|
#define fstat_or_fstat64 CHOOSE_LARGEFILE(fstat,fstat64)
|
||||||
#define ftruncate_or_ftruncate64 CHOOSE_LARGEFILE(ftruncate,ftruncate64)
|
#define ftruncate_or_ftruncate64 CHOOSE_LARGEFILE(ftruncate,ftruncate64)
|
||||||
#define lseek_or_lseek64 CHOOSE_LARGEFILE(lseek,lseek64)
|
#define lseek_or_lseek64 CHOOSE_LARGEFILE(lseek,lseek64)
|
||||||
|
@ -121,7 +125,11 @@
|
||||||
#define off_t_or_off64_t CHOOSE_LARGEFILE(off_t,off64_t)
|
#define off_t_or_off64_t CHOOSE_LARGEFILE(off_t,off64_t)
|
||||||
#define open_or_open64 CHOOSE_LARGEFILE(open,open64)
|
#define open_or_open64 CHOOSE_LARGEFILE(open,open64)
|
||||||
#define readdir_or_readdir64 CHOOSE_LARGEFILE(readdir,readdir64)
|
#define readdir_or_readdir64 CHOOSE_LARGEFILE(readdir,readdir64)
|
||||||
#define readdir_r_or_readdir64_r CHOOSE_LARGEFILE(readdir_r,readdir64_r)
|
#if SCM_HAVE_READDIR64_R == 1
|
||||||
|
# define readdir_r_or_readdir64_r CHOOSE_LARGEFILE(readdir_r,readdir64_r)
|
||||||
|
#else
|
||||||
|
# define readdir_r_or_readdir64_r readdir_r
|
||||||
|
#endif
|
||||||
#define stat_or_stat64 CHOOSE_LARGEFILE(stat,stat64)
|
#define stat_or_stat64 CHOOSE_LARGEFILE(stat,stat64)
|
||||||
#define truncate_or_truncate64 CHOOSE_LARGEFILE(truncate,truncate64)
|
#define truncate_or_truncate64 CHOOSE_LARGEFILE(truncate,truncate64)
|
||||||
#define scm_from_off_t_or_off64_t CHOOSE_LARGEFILE(scm_from_off_t,scm_from_int64)
|
#define scm_from_off_t_or_off64_t CHOOSE_LARGEFILE(scm_from_off_t,scm_from_int64)
|
||||||
|
|
|
@ -387,6 +387,19 @@ main (int argc, char *argv[])
|
||||||
pf ("#define SCM_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER %d /* 0 or 1 */\n",
|
pf ("#define SCM_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER %d /* 0 or 1 */\n",
|
||||||
SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER);
|
SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER);
|
||||||
|
|
||||||
|
pf ("\n\n/*** File system access ***/\n");
|
||||||
|
|
||||||
|
pf ("/* Define to 1 if `struct dirent64' is available. */\n");
|
||||||
|
pf ("#define SCM_HAVE_STRUCT_DIRENT64 %d /* 0 or 1 */\n",
|
||||||
|
SCM_I_GSC_HAVE_STRUCT_DIRENT64);
|
||||||
|
|
||||||
|
pf ("/* Define to 1 if `readdir64_r ()' is available. */\n");
|
||||||
|
#ifdef HAVE_READDIR64_R
|
||||||
|
pf ("#define SCM_HAVE_READDIR64_R 1 /* 0 or 1 */\n");
|
||||||
|
#else
|
||||||
|
pf ("#define SCM_HAVE_READDIR64_R 0 /* 0 or 1 */\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
#if USE_DLL_IMPORT
|
#if USE_DLL_IMPORT
|
||||||
pf ("\n");
|
pf ("\n");
|
||||||
pf ("/* Define some additional CPP macros on Win32 platforms. */\n");
|
pf ("/* Define some additional CPP macros on Win32 platforms. */\n");
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#define SCM_I_GSC_USE_NULL_THREADS @SCM_I_GSC_USE_NULL_THREADS@
|
#define SCM_I_GSC_USE_NULL_THREADS @SCM_I_GSC_USE_NULL_THREADS@
|
||||||
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_ONCE_INIT @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_ONCE_INIT@
|
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_ONCE_INIT @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_ONCE_INIT@
|
||||||
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER@
|
#define SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER @SCM_I_GSC_NEED_BRACES_ON_PTHREAD_MUTEX_INITIALIZER@
|
||||||
|
#define SCM_I_GSC_HAVE_STRUCT_DIRENT64 @SCM_I_GSC_HAVE_STRUCT_DIRENT64@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Local Variables:
|
Local Variables:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue