From: Jim Meyering <[EMAIL PROTECTED]> Date: 03 May 2000 11:04:31 +0200 In sh-utils, with your largefile.m4 change, I now get this: In file included from regex.c:31: ../config.h:955: warning: `_GNU_SOURCE' redefined regex.c:28: warning: this is the location of the previous definition Because config.h now defines _GNU_SOURCE and regex.c has this code: #undef _GNU_SOURCE #define _GNU_SOURCE #ifdef HAVE_CONFIG_H # include <config.h> #endif I don't see any harm reversing those blocks: #ifdef HAVE_CONFIG_H # include <config.h> #endif #undef _GNU_SOURCE #define _GNU_SOURCE Unfortunately Emacs config.h includes some system include files, so I think that workaround might break Emacs. We are on thin ice here. I wish glibc didn't have the bug that causes it to ignore _LARGEFILE_SOURCE. I'll file a bug report about this to bug-glibc. However, the following further patch worked for me, and I don't see how it would break anything else. It uses _XOPEN_SOURCE instead of _GNU_SOURCE. Please give it a try. One Emacs source file (lib-src/fakemail.c) defines _XOPEN_SOURCE but it does so safely. I'd also like to fix largefile.m4 so that it didn't depend on $host_os and AC_CANONICAL_HOST, but that's a larger project.... 2000-05-03 Paul Eggert <[EMAIL PROTECTED]> * m4/largefile.m4 (AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500, instead of _GNU_SOURCE to be 1, to work around glibc 2.1.3 bug. This avoids a clash when files like regex.c define _GNU_SOURCE. =================================================================== RCS file: m4/largefile.m4,v retrieving revision 1.10 retrieving revision 1.11 diff -pu -r1.10 -r1.11 --- m4/largefile.m4 2000/05/03 16:25:59 1.10 +++ m4/largefile.m4 2000/05/03 16:48:08 1.11 @@ -1,4 +1,4 @@ -#serial 10 +#serial 11 dnl By default, many hosts won't let programs access large files; dnl one must use special compiler options to get large-file access to work. @@ -107,14 +107,6 @@ AC_DEFUN(AC_SYS_LARGEFILE, [ hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)] ac_cv_sys_file_offset_bits=64 ;; esac]) - AC_SYS_LARGEFILE_MACRO_VALUE(_GNU_SOURCE, - ac_cv_sys_gnu_source, - [Define to make ftello visible on some hosts (e.g. glibc 2.1.3).], - [AC_TRY_COMPILE([#include <stdio.h>], [return !ftello;], , - [AC_TRY_COMPILE([#define _GNU_SOURCE 1 -#include <stdio.h>], - [return !ftello;], - ac_cv_sys_gnu_source=1)])]) AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, ac_cv_sys_largefile_source, [Define to make ftello visible on some hosts (e.g. HP-UX 10.20).], @@ -130,5 +122,13 @@ AC_DEFUN(AC_SYS_LARGEFILE, [ aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)] ac_cv_sys_large_files=1 ;; esac]) + AC_SYS_LARGEFILE_MACRO_VALUE(_XOPEN_SOURCE, + ac_cv_sys_xopen_source, + [Define to make ftello visible on some hosts (e.g. glibc 2.1.3).], + [AC_TRY_COMPILE([#include <stdio.h>], [return !ftello;], , + [AC_TRY_COMPILE([#define _XOPEN_SOURCE 500 +#include <stdio.h>], + [return !ftello;], + ac_cv_sys_xopen_source=500)])]) fi ])