Disable LFS if Solaris/gcc bug is detected. Fixes #618095.
This commit is contained in:
parent
c7cdd7182a
commit
399a6890f5
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh
|
||||
# From configure.in Revision: 1.349 .
|
||||
# From configure.in Revision: 1.350 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.53.
|
||||
#
|
||||
|
@ -4423,6 +4423,64 @@ _ACEOF
|
|||
|
||||
fi
|
||||
|
||||
# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
|
||||
# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
|
||||
# defined, but the compiler does not support pragma redefine_extname,
|
||||
# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
|
||||
# structures (such as rlimit64) without declaring them. As a
|
||||
# work-around, disable LFS on such configurations
|
||||
|
||||
use_lfs=yes
|
||||
echo "$as_me:$LINENO: checking Solaris LFS bug" >&5
|
||||
echo $ECHO_N "checking Solaris LFS bug... $ECHO_C" >&6
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
#line $LINENO "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#define _LARGEFILE_SOURCE 1
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#include <sys/resource.h>
|
||||
|
||||
#ifdef F77_DUMMY_MAIN
|
||||
# ifdef __cplusplus
|
||||
extern "C"
|
||||
# endif
|
||||
int F77_DUMMY_MAIN() { return 1; }
|
||||
#endif
|
||||
int
|
||||
main ()
|
||||
{
|
||||
struct rlimit foo;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } &&
|
||||
{ ac_try='test -s conftest.$ac_objext'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
sol_lfs_bug=no
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
sol_lfs_bug=yes
|
||||
fi
|
||||
rm -f conftest.$ac_objext conftest.$ac_ext
|
||||
echo "$as_me:$LINENO: result: $sol_lfs_bug" >&5
|
||||
echo "${ECHO_T}$sol_lfs_bug" >&6
|
||||
if test "$sol_lfs_bug" = "yes"; then
|
||||
use_lfs=no
|
||||
fi
|
||||
|
||||
if test "$use_lfs" = "yes"; then
|
||||
# Two defines needed to enable largefile support on various platforms
|
||||
# These may affect some typedefs
|
||||
|
||||
|
@ -4435,6 +4493,7 @@ cat >>confdefs.h <<\_ACEOF
|
|||
#define _FILE_OFFSET_BITS 64
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
# Add some code to confdefs.h so that the test for off_t works on SCO
|
||||
cat >> confdefs.h <<\EOF
|
||||
|
|
21
configure.in
21
configure.in
|
@ -654,12 +654,33 @@ if test "$ac_cv_has_makedev" = "yes"; then
|
|||
AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
|
||||
fi
|
||||
|
||||
# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
|
||||
# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
|
||||
# defined, but the compiler does not support pragma redefine_extname,
|
||||
# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
|
||||
# structures (such as rlimit64) without declaring them. As a
|
||||
# work-around, disable LFS on such configurations
|
||||
|
||||
use_lfs=yes
|
||||
AC_MSG_CHECKING(Solaris LFS bug)
|
||||
AC_TRY_COMPILE([
|
||||
#define _LARGEFILE_SOURCE 1
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#include <sys/resource.h>
|
||||
],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
|
||||
AC_MSG_RESULT($sol_lfs_bug)
|
||||
if test "$sol_lfs_bug" = "yes"; then
|
||||
use_lfs=no
|
||||
fi
|
||||
|
||||
if test "$use_lfs" = "yes"; then
|
||||
# Two defines needed to enable largefile support on various platforms
|
||||
# These may affect some typedefs
|
||||
AC_DEFINE(_LARGEFILE_SOURCE, 1,
|
||||
[This must be defined on some systems to enable large file support.])
|
||||
AC_DEFINE(_FILE_OFFSET_BITS, 64,
|
||||
[This must be set to 64 on some systems to enable large file support.])
|
||||
fi
|
||||
|
||||
# Add some code to confdefs.h so that the test for off_t works on SCO
|
||||
cat >> confdefs.h <<\EOF
|
||||
|
|
Loading…
Reference in New Issue