This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] LFS support for libbacktrace


On Wed, 14 Jun 2017, Richard Biener wrote:

> 
> This fixes the [f]open use in libgfortran.  Doesn't fix the ones
> in libsanitizer because those appearantly use a copy because they
> need to rename stuff...
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu, ok for trunk
> and branches?

Ping.

Richard.

> Thanks,
> Richard.
> 
> 2017-06-14  Richard Biener  <rguenther@suse.de>
> 
> 	* configure.ac: Add AC_SYS_LARGEFILE.
> 	* config.h.in: Regenerate.
> 	* configure: Likewise.
> 
> Index: config.h.in
> ===================================================================
> --- config.h.in	(revision 249158)
> +++ config.h.in	(working copy)
> @@ -123,6 +123,12 @@
>  #endif
>  
>  
> +/* Number of bits in a file offset, on hosts where this is settable. */
> +#undef _FILE_OFFSET_BITS
> +
> +/* Define for large files, on AIX-style hosts. */
> +#undef _LARGE_FILES
> +
>  /* Define to 1 if on MINIX. */
>  #undef _MINIX
>  
> Index: configure
> ===================================================================
> --- configure	(revision 249158)
> +++ configure	(working copy)
> @@ -734,6 +734,7 @@ with_pic
>  enable_fast_install
>  with_gnu_ld
>  enable_libtool_lock
> +enable_largefile
>  with_system_libunwind
>  enable_host_shared
>  '
> @@ -1374,6 +1375,7 @@ Optional Features:
>    --enable-fast-install[=PKGS]
>                            optimize for fast installation [default=yes]
>    --disable-libtool-lock  avoid locking (might break parallel builds)
> +  --disable-largefile     omit support for large files
>    --enable-host-shared    build host code as shared libraries
>  
>  Optional Packages:
> @@ -11134,7 +11136,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 11137 "configure"
> +#line 11139 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -11240,7 +11242,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 11243 "configure"
> +#line 11245 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -11479,6 +11481,205 @@ CC="$lt_save_CC"
>  
>  
>  
> +# Check whether --enable-largefile was given.
> +if test "${enable_largefile+set}" = set; then :
> +  enableval=$enable_largefile;
> +fi
> +
> +if test "$enable_largefile" != no; then
> +
> +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
> +$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
> +if test "${ac_cv_sys_largefile_CC+set}" = set; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +  ac_cv_sys_largefile_CC=no
> +     if test "$GCC" != yes; then
> +       ac_save_CC=$CC
> +       while :; do
> +	 # IRIX 6.2 and later do not support large files by default,
> +	 # so use the C compiler's -n32 option if that helps.
> +	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +#include <sys/types.h>
> + /* Check that off_t can represent 2**63 - 1 correctly.
> +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
> +    since some C++ compilers masquerading as C compilers
> +    incorrectly reject 9223372036854775807.  */
> +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> +		       && LARGE_OFF_T % 2147483647 == 1)
> +		      ? 1 : -1];
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +	 if ac_fn_c_try_compile "$LINENO"; then :
> +  break
> +fi
> +rm -f core conftest.err conftest.$ac_objext
> +	 CC="$CC -n32"
> +	 if ac_fn_c_try_compile "$LINENO"; then :
> +  ac_cv_sys_largefile_CC=' -n32'; break
> +fi
> +rm -f core conftest.err conftest.$ac_objext
> +	 break
> +       done
> +       CC=$ac_save_CC
> +       rm -f conftest.$ac_ext
> +    fi
> +fi
> +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
> +$as_echo "$ac_cv_sys_largefile_CC" >&6; }
> +  if test "$ac_cv_sys_largefile_CC" != no; then
> +    CC=$CC$ac_cv_sys_largefile_CC
> +  fi
> +
> +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
> +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
> +if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +  while :; do
> +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +#include <sys/types.h>
> + /* Check that off_t can represent 2**63 - 1 correctly.
> +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
> +    since some C++ compilers masquerading as C compilers
> +    incorrectly reject 9223372036854775807.  */
> +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> +		       && LARGE_OFF_T % 2147483647 == 1)
> +		      ? 1 : -1];
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +  ac_cv_sys_file_offset_bits=no; break
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +#define _FILE_OFFSET_BITS 64
> +#include <sys/types.h>
> + /* Check that off_t can represent 2**63 - 1 correctly.
> +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
> +    since some C++ compilers masquerading as C compilers
> +    incorrectly reject 9223372036854775807.  */
> +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> +		       && LARGE_OFF_T % 2147483647 == 1)
> +		      ? 1 : -1];
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +  ac_cv_sys_file_offset_bits=64; break
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +  ac_cv_sys_file_offset_bits=unknown
> +  break
> +done
> +fi
> +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
> +$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
> +case $ac_cv_sys_file_offset_bits in #(
> +  no | unknown) ;;
> +  *)
> +cat >>confdefs.h <<_ACEOF
> +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
> +_ACEOF
> +;;
> +esac
> +rm -rf conftest*
> +  if test $ac_cv_sys_file_offset_bits = unknown; then
> +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
> +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
> +if test "${ac_cv_sys_large_files+set}" = set; then :
> +  $as_echo_n "(cached) " >&6
> +else
> +  while :; do
> +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +#include <sys/types.h>
> + /* Check that off_t can represent 2**63 - 1 correctly.
> +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
> +    since some C++ compilers masquerading as C compilers
> +    incorrectly reject 9223372036854775807.  */
> +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> +		       && LARGE_OFF_T % 2147483647 == 1)
> +		      ? 1 : -1];
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +  ac_cv_sys_large_files=no; break
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> +/* end confdefs.h.  */
> +#define _LARGE_FILES 1
> +#include <sys/types.h>
> + /* Check that off_t can represent 2**63 - 1 correctly.
> +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
> +    since some C++ compilers masquerading as C compilers
> +    incorrectly reject 9223372036854775807.  */
> +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
> +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
> +		       && LARGE_OFF_T % 2147483647 == 1)
> +		      ? 1 : -1];
> +int
> +main ()
> +{
> +
> +  ;
> +  return 0;
> +}
> +_ACEOF
> +if ac_fn_c_try_compile "$LINENO"; then :
> +  ac_cv_sys_large_files=1; break
> +fi
> +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> +  ac_cv_sys_large_files=unknown
> +  break
> +done
> +fi
> +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
> +$as_echo "$ac_cv_sys_large_files" >&6; }
> +case $ac_cv_sys_large_files in #(
> +  no | unknown) ;;
> +  *)
> +cat >>confdefs.h <<_ACEOF
> +#define _LARGE_FILES $ac_cv_sys_large_files
> +_ACEOF
> +;;
> +esac
> +rm -rf conftest*
> +  fi
> +fi
> +
> +
>  backtrace_supported=yes
>  
>  if test -n "${with_target_subdir}"; then
> Index: configure.ac
> ===================================================================
> --- configure.ac	(revision 249158)
> +++ configure.ac	(working copy)
> @@ -82,6 +82,8 @@ esac
>  LT_INIT
>  AM_PROG_LIBTOOL
>  
> +AC_SYS_LARGEFILE
> +
>  backtrace_supported=yes
>  
>  if test -n "${with_target_subdir}"; then
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]