libgcov.a. [bnc#1044016] OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc48?expand=0&rev=210
317 lines
9.5 KiB
Diff
317 lines
9.5 KiB
Diff
Backport of
|
|
|
|
2017-06-14 Richard Biener <rguenther@suse.de>
|
|
|
|
PR gcov-profile/81080
|
|
* configure.ac: Add AC_SYS_LARGEFILE.
|
|
* libgcov.h: Include auto-target.h before tsystem.h to pick
|
|
up _FILE_OFFSET_BITS which might differ for multilibs.
|
|
* config.in: Regenerate.
|
|
* configure: Likewise.
|
|
|
|
|
|
Index: libgcc/config.in
|
|
===================================================================
|
|
--- libgcc/config.in (revision 235439)
|
|
+++ libgcc/config.in (working copy)
|
|
@@ -9,33 +9,6 @@
|
|
/* Define if the compiler supports init priority. */
|
|
#undef HAVE_INIT_PRIORITY
|
|
|
|
-/* Define to 1 if you have the <inttypes.h> header file. */
|
|
-#undef HAVE_INTTYPES_H
|
|
-
|
|
-/* Define to 1 if you have the <memory.h> header file. */
|
|
-#undef HAVE_MEMORY_H
|
|
-
|
|
-/* Define to 1 if you have the <stdint.h> header file. */
|
|
-#undef HAVE_STDINT_H
|
|
-
|
|
-/* Define to 1 if you have the <stdlib.h> header file. */
|
|
-#undef HAVE_STDLIB_H
|
|
-
|
|
-/* Define to 1 if you have the <strings.h> header file. */
|
|
-#undef HAVE_STRINGS_H
|
|
-
|
|
-/* Define to 1 if you have the <string.h> header file. */
|
|
-#undef HAVE_STRING_H
|
|
-
|
|
-/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
-#undef HAVE_SYS_STAT_H
|
|
-
|
|
-/* Define to 1 if you have the <sys/types.h> header file. */
|
|
-#undef HAVE_SYS_TYPES_H
|
|
-
|
|
-/* Define to 1 if you have the <unistd.h> header file. */
|
|
-#undef HAVE_UNISTD_H
|
|
-
|
|
/* Define if the C compiler is configured for setjmp/longjmp exceptions. */
|
|
#undef LIBGCC_SJLJ_EXCEPTIONS
|
|
|
|
@@ -63,8 +36,11 @@
|
|
/* The size of `long double', as computed by sizeof. */
|
|
#undef SIZEOF_LONG_DOUBLE
|
|
|
|
-/* Define to 1 if you have the ANSI C header files. */
|
|
-#undef STDC_HEADERS
|
|
-
|
|
/* Define to 1 if the target use emutls for thread-local storage. */
|
|
#undef USE_EMUTLS
|
|
+
|
|
+/* 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
|
|
Index: libgcc/configure
|
|
===================================================================
|
|
--- libgcc/configure (revision 235439)
|
|
+++ libgcc/configure (working copy)
|
|
@@ -659,6 +659,7 @@ enable_version_specific_runtime_libs
|
|
with_slibdir
|
|
enable_maintainer_mode
|
|
with_build_libsubdir
|
|
+enable_largefile
|
|
enable_decimal_float
|
|
with_system_libunwind
|
|
enable_sjlj_exceptions
|
|
@@ -1292,6 +1293,7 @@ Optional Features:
|
|
--enable-maintainer-mode
|
|
enable make rules and dependencies not useful (and
|
|
sometimes confusing) to the casual installer
|
|
+ --disable-largefile omit support for large files
|
|
--enable-decimal-float={no,yes,bid,dpd}
|
|
enable decimal float extension to C. Selecting 'bid'
|
|
or 'dpd' choses which decimal floating point format
|
|
@@ -3966,6 +3968,205 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|
ac_c_preproc_warn_flag=yes
|
|
|
|
|
|
+# 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
|
|
+
|
|
+
|
|
|
|
# The cast to long int works around a bug in the HP C Compiler
|
|
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
|
|
Index: libgcc/configure.ac
|
|
===================================================================
|
|
--- libgcc/configure.ac (revision 235439)
|
|
+++ libgcc/configure.ac (working copy)
|
|
@@ -163,6 +163,8 @@ GCC_NO_EXECUTABLES
|
|
AC_PROG_CC
|
|
AC_PROG_CPP_WERROR
|
|
|
|
+AC_SYS_LARGEFILE
|
|
+
|
|
AC_CHECK_SIZEOF([double])
|
|
AC_CHECK_SIZEOF([long double])
|
|
AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8])
|
|
Index: libgcc/libgcov.c
|
|
===================================================================
|
|
--- libgcc/libgcov.c (revision 235439)
|
|
+++ libgcc/libgcov.c (working copy)
|
|
@@ -24,6 +24,7 @@ see the files COPYING3 and COPYING.RUNTI
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#include "tconfig.h"
|
|
+#include "auto-target.h"
|
|
#include "tsystem.h"
|
|
#include "coretypes.h"
|
|
#include "tm.h"
|