From: Rainer Orth Date: Thu, 30 Jul 2020 13:41:50 +0000 (+0200) Subject: Unify Solaris procfs and largefile handling X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c8693053f895626ae90b7856d3738de47d14d52c;p=binutils-gdb.git Unify Solaris procfs and largefile handling GDB currently doesn't build on 32-bit Solaris: * On Solaris 11.4/x86: In file included from /usr/include/sys/procfs.h:26, from /vol/src/gnu/gdb/hg/master/dist/gdb/i386-sol2-nat.c:24: /usr/include/sys/old_procfs.h:31:2: error: #error "Cannot use procfs in the large file compilation environment" #error "Cannot use procfs in the large file compilation environment" ^~~~~ * On Solaris 11.3/x86 there are several more instances of this. The interaction between procfs and large-file support historically has been a royal mess on Solaris: * There are two versions of the procfs interface: ** The old ioctl-based /proc, deprecated and not used any longer in either gdb or binutils. ** The `new' (introduced in Solaris 2.6, 1997) structured /proc. * There are two headers one can possibly include: ** which only provides the structured /proc, definining _STRUCTURED_PROC=1 and then including ... ** which defaults to _STRUCTURED_PROC=0, the ioctl-based /proc, but provides structured /proc if _STRUCTURED_PROC == 1. * procfs and the large-file environment didn't go well together: ** Until Solaris 11.3, would always #error in 32-bit compilations when the large-file environment was active (_FILE_OFFSET_BITS == 64). ** In both Solaris 11.4 and Illumos, this restriction was lifted for structured /proc. So one has to be careful always to define _STRUCTURED_PROC=1 when testing for or using on Solaris. As the errors above show, this isn't always the case in binutils-gdb right now. Also one may need to disable large-file support for 32-bit compilations on Solaris. config/largefile.m4 meant to do this by wrapping the AC_SYS_LARGEFILE autoconf macro with appropriate checks, yielding ACX_LARGEFILE. Unfortunately the macro doesn't always succeed because it neglects the _STRUCTURED_PROC part. To make things even worse, since GCC 9 g++ predefines _FILE_OFFSET_BITS=64 on Solaris. So even if largefile.m4 deciced not to enable large-file support, this has no effect, breaking the gdb build. This patch addresses all this as follows: * All tests for the header are made with _STRUCTURED_PROC=1, the definition going into the various config.h files instead of having to make them (and sometimes failing) in the affected sources. * To cope with the g++ predefine of _FILE_OFFSET_BITS=64, -U_FILE_OFFSET_BITS is added to various *_CPPFLAGS variables. It had been far easier to have just #undef _FILE_OFFSET_BITS in config.h, but unfortunately such a construct in config.in is commented by config.status irrespective of indentation and whitespace if large-file support is disabled. I found no way around this and putting the #undef in several global headers for bfd, binutils, ld, and gdb seemed way more invasive. * Last, the applicability check in largefile.m4 was modified only to disable largefile support if really needed. To do so, it checks if compiles with _FILE_OFFSET_BITS=64 defined. If it doesn't, the disabling only happens if gdb exists in-tree and isn't disabled, otherwise (building binutils from a tarball), there's no conflict. What initially confused me was the check for $plugins here, which originally caused the disabling not to take place. Since AC_PLUGINGS does enable plugin support if exists (which it does on Solaris), the disabling never happened. I could find no explanation why the linker plugin needs large-file support but thought it would be enough if gld and GCC's lto-plugin agreed on the _FILE_OFFSET_BITS value. Unfortunately, that's not enough: lto-plugin uses the simple-object interface from libiberty, which includes off_t arguments. So to fully disable large-file support would mean also disabling it in libiberty and its users: gcc and libstdc++-v3. This seems highly undesirable, so I decided to disable the linker plugin instead if large-file support won't work. The patch allows binutils+gdb to build on i386-pc-solaris2.11 (both Solaris 11.3 and 11.4, using GCC 9.3.0 which is the worst case due to predefined _FILE_OFFSET_BITS=64). Also regtested on amd64-pc-solaris2.11 (again on Solaris 11.3 and 11.4), x86_64-pc-linux-gnu and i686-pc-linux-gnu. config: * largefile.m4 (ACX_LARGEFILE) : Check for incompatilibity with large-file support on Solaris. Only disable large-file support and perhaps plugins if needed. Set, substitute LARGEFILE_CPPFLAGS if so. bfd: * bfd.m4 (BFD_SYS_PROCFS_H): New macro. (BFD_HAVE_SYS_PROCFS_TYPE): Require BFD_SYS_PROCFS_H. Don't define _STRUCTURED_PROC. (BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise. * elf.c [HAVE_SYS_PROCFS_H] (_STRUCTURED_PROC): Don't define. * configure.ac: Use BFD_SYS_PROCFS_H to check for . * configure, config.in: Regenerate. * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * Makefile.in, doc/Makefile.in: Regenerate. binutils: * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * Makefile.in, doc/Makefile.in: Regenerate. * configure: Regenerate. gas: * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * Makefile.in, doc/Makefile.in: Regenerate. * configure: Regenerate. gdb: * proc-api.c (_STRUCTURED_PROC): Don't define. * proc-events.c: Likewise. * proc-flags.c: Likewise. * proc-why.c: Likewise. * procfs.c: Likewise. * Makefile.in (INTERNAL_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * configure, config.in: Regenerate. gdbserver: * configure, config.in: Regenerate. gdbsupport: * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * common.m4 (GDB_AC_COMMON): Use BFD_SYS_PROCFS_H to check for . * Makefile.in: Regenerate. * configure, config.in: Regenerate. gnulib: * configure.ac: Run ACX_LARGEFILE before gl_EARLY. * configure: Regenerate. gprof: * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * Makefile.in: Regenerate. * configure: Regenerate. ld: * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. * Makefile.in: Regenerate. * configure: Regenerate. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e9d135ebb65..264e15a1fe5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,15 @@ +2020-07-30 Rainer Orth + + * bfd.m4 (BFD_SYS_PROCFS_H): New macro. + (BFD_HAVE_SYS_PROCFS_TYPE): Require BFD_SYS_PROCFS_H. + Don't define _STRUCTURED_PROC. + (BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): Likewise. + * elf.c [HAVE_SYS_PROCFS_H] (_STRUCTURED_PROC): Don't define. + * configure.ac: Use BFD_SYS_PROCFS_H to check for . + * configure, config.in: Regenerate. + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * Makefile.in, doc/Makefile.in: Regenerate. + 2020-07-30 H.J. Lu * elf-bfd.h (sym_cache): Moved before elf_link_hash_table. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index f48a8e708e9..d07c9605b6f 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -53,7 +53,7 @@ ZLIBINC = @zlibinc@ WARN_CFLAGS = @WARN_CFLAGS@ NO_WERROR = @NO_WERROR@ AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) -AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' +AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' @LARGEFILE_CPPFLAGS@ if PLUGINS bfdinclude_HEADERS += $(INCDIR)/plugin-api.h LIBDL = @lt_cv_dlopen_libs@ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index e2dce2501ee..9cad4da6f8f 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -330,6 +330,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBINTL = @LIBINTL@ @@ -479,9 +480,9 @@ libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ ZLIB = @zlibdir@ -lz ZLIBINC = @zlibinc@ AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) -AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' @HDEFINES@ \ - @COREFLAG@ @TDEFINES@ $(CSEARCH) $(CSWITCHES) $(HAVEVECS) \ - @INCINTL@ $(am__empty) +AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -DLIBDIR='"$(libdir)"' \ + @LARGEFILE_CPPFLAGS@ @HDEFINES@ @COREFLAG@ @TDEFINES@ \ + $(CSEARCH) $(CSWITCHES) $(HAVEVECS) @INCINTL@ @PLUGINS_TRUE@LIBDL = @lt_cv_dlopen_libs@ # bfd.h goes here, for now diff --git a/bfd/bfd.m4 b/bfd/bfd.m4 index d5c3b61c7c0..21c55903aba 100644 --- a/bfd/bfd.m4 +++ b/bfd/bfd.m4 @@ -17,15 +17,20 @@ dnl along with this program; see the file COPYING3. If not see dnl . dnl +dnl Check for sys/procfs.h, enforcing structured /proc on Solaris. + +AC_DEFUN([BFD_SYS_PROCFS_H], +[AC_DEFINE(_STRUCTURED_PROC, 1, [Use structured /proc on Solaris.]) + AC_CHECK_HEADERS(sys/procfs.h)]) + dnl Check for existence of a type $1 in sys/procfs.h AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE], -[AC_MSG_CHECKING([for $1 in sys/procfs.h]) +[AC_REQUIRE([BFD_SYS_PROCFS_H]) + AC_MSG_CHECKING([for $1 in sys/procfs.h]) AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_$1, [AC_TRY_COMPILE([ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include ], [$1 avar], bfd_cv_have_sys_procfs_type_$1=yes, @@ -41,12 +46,11 @@ AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE], dnl Check for existence of member $2 in type $1 in sys/procfs.h AC_DEFUN([BFD_HAVE_SYS_PROCFS_TYPE_MEMBER], -[AC_MSG_CHECKING([for $1.$2 in sys/procfs.h]) +[AC_REQUIRE([BFD_SYS_PROCFS_H]) + AC_MSG_CHECKING([for $1.$2 in sys/procfs.h]) AC_CACHE_VAL(bfd_cv_have_sys_procfs_type_member_$1_$2, [AC_TRY_COMPILE([ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include ], [$1 avar; void* aref = (void*) &avar.$2], bfd_cv_have_sys_procfs_type_member_$1_$2=yes, diff --git a/bfd/config.in b/bfd/config.in index be572969fc0..c7be6c51764 100644 --- a/bfd/config.in +++ b/bfd/config.in @@ -416,3 +416,6 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE + +/* Use structured /proc on Solaris. */ +#undef _STRUCTURED_PROC diff --git a/bfd/configure b/bfd/configure index ca255aaa55d..1b983aaa35c 100755 --- a/bfd/configure +++ b/bfd/configure @@ -699,6 +699,7 @@ PKGVERSION DEBUGDIR PLUGINS_FALSE PLUGINS_TRUE +LARGEFILE_CPPFLAGS OTOOL64 OTOOL LIPO @@ -11728,7 +11729,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11731 "configure" +#line 11732 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11834,7 +11835,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11837 "configure" +#line 11838 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12186,15 +12187,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac @@ -15310,7 +15352,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # ELF corefile support has several flavors, but all of # them use something called - for ac_header in sys/procfs.h + +$as_echo "#define _STRUCTURED_PROC 1" >>confdefs.h + + for ac_header in sys/procfs.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/procfs.h" "ac_cv_header_sys_procfs_h" "$ac_includes_default" if test "x$ac_cv_header_sys_procfs_h" = xyes; then : @@ -15323,7 +15368,8 @@ fi done if test "$ac_cv_header_sys_procfs_h" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for prstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15332,8 +15378,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15360,7 +15404,8 @@ $as_echo "#define HAVE_PRSTATUS_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prstatus_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prstatus_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t in sys/procfs.h" >&5 $as_echo_n "checking for prstatus32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prstatus32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15369,8 +15414,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15397,7 +15440,8 @@ $as_echo "#define HAVE_PRSTATUS32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prstatus32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prstatus32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t.pr_who in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus_t.pr_who in sys/procfs.h" >&5 $as_echo_n "checking for prstatus_t.pr_who in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who+:} false; then : $as_echo_n "(cached) " >&6 @@ -15406,8 +15450,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15434,7 +15476,8 @@ $as_echo "#define HAVE_PRSTATUS_T_PR_WHO 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 $as_echo_n "checking for prstatus32_t.pr_who in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who+:} false; then : $as_echo_n "(cached) " >&6 @@ -15443,8 +15486,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15471,7 +15512,8 @@ $as_echo "#define HAVE_PRSTATUS32_T_PR_WHO 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for pstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_pstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15480,8 +15522,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15508,7 +15548,8 @@ $as_echo "#define HAVE_PSTATUS_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pstatus_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_pstatus_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pxstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pxstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for pxstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_pxstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15517,8 +15558,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15545,7 +15584,8 @@ $as_echo "#define HAVE_PXSTATUS_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pxstatus_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_pxstatus_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pstatus32_t in sys/procfs.h" >&5 $as_echo_n "checking for pstatus32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_pstatus32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15554,8 +15594,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15582,7 +15620,8 @@ $as_echo "#define HAVE_PSTATUS32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pstatus32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_pstatus32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prpsinfo_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15591,8 +15630,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15619,7 +15656,8 @@ $as_echo "#define HAVE_PRPSINFO_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prpsinfo_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prpsinfo_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t.pr_pid in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo_t.pr_pid in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_prpsinfo_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 @@ -15628,8 +15666,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15656,7 +15692,8 @@ $as_echo "#define HAVE_PRPSINFO_T_PR_PID 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_prpsinfo_t_pr_pid" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_prpsinfo_t_pr_pid" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prpsinfo32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15665,8 +15702,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15693,7 +15728,8 @@ $as_echo "#define HAVE_PRPSINFO32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prpsinfo32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prpsinfo32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t.pr_pid in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prpsinfo32_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for prpsinfo32_t.pr_pid in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_prpsinfo32_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 @@ -15702,8 +15738,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15730,7 +15764,8 @@ $as_echo "#define HAVE_PRPSINFO32_T_PR_PID 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_prpsinfo32_t_pr_pid" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_prpsinfo32_t_pr_pid" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t in sys/procfs.h" >&5 $as_echo_n "checking for psinfo_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_psinfo_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15739,8 +15774,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15767,7 +15800,8 @@ $as_echo "#define HAVE_PSINFO_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psinfo_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_psinfo_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t.pr_pid in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for psinfo_t.pr_pid in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_psinfo_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 @@ -15776,8 +15810,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15804,7 +15836,8 @@ $as_echo "#define HAVE_PSINFO_T_PR_PID 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_psinfo_t_pr_pid" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_psinfo_t_pr_pid" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t in sys/procfs.h" >&5 $as_echo_n "checking for psinfo32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_psinfo32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15813,8 +15846,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15841,7 +15872,8 @@ $as_echo "#define HAVE_PSINFO32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psinfo32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_psinfo32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t.pr_pid in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psinfo32_t.pr_pid in sys/procfs.h" >&5 $as_echo_n "checking for psinfo32_t.pr_pid in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_psinfo32_t_pr_pid+:} false; then : $as_echo_n "(cached) " >&6 @@ -15850,8 +15882,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15878,7 +15908,8 @@ $as_echo "#define HAVE_PSINFO32_T_PR_PID 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_psinfo32_t_pr_pid" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_psinfo32_t_pr_pid" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_lwpstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15887,8 +15918,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15915,7 +15944,8 @@ $as_echo "#define HAVE_LWPSTATUS_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_lwpstatus_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_lwpstatus_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpxstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpxstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpxstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_lwpxstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15924,8 +15954,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15952,7 +15980,8 @@ $as_echo "#define HAVE_LWPXSTATUS_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_lwpxstatus_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_lwpxstatus_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_context in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context+:} false; then : $as_echo_n "(cached) " >&6 @@ -15961,8 +15990,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15989,7 +16016,8 @@ $as_echo "#define HAVE_LWPSTATUS_T_PR_CONTEXT 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_reg in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg+:} false; then : $as_echo_n "(cached) " >&6 @@ -15998,8 +16026,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -16026,7 +16052,8 @@ $as_echo "#define HAVE_LWPSTATUS_T_PR_REG 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_fpreg in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpstatus_t.pr_fpreg in sys/procfs.h" >&5 $as_echo_n "checking for lwpstatus_t.pr_fpreg in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg+:} false; then : $as_echo_n "(cached) " >&6 @@ -16035,8 +16062,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -16063,7 +16088,8 @@ $as_echo "#define HAVE_LWPSTATUS_T_PR_FPREG 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_fpreg" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32_pstatus_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32_pstatus_t in sys/procfs.h" >&5 $as_echo_n "checking for win32_pstatus_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_win32_pstatus_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -16072,8 +16098,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () diff --git a/bfd/configure.ac b/bfd/configure.ac index ee3075aca34..769aa87fe64 100644 --- a/bfd/configure.ac +++ b/bfd/configure.ac @@ -1039,7 +1039,7 @@ changequote([,])dnl # ELF corefile support has several flavors, but all of # them use something called - AC_CHECK_HEADERS(sys/procfs.h) + BFD_SYS_PROCFS_H if test "$ac_cv_header_sys_procfs_h" = yes; then BFD_HAVE_SYS_PROCFS_TYPE(prstatus_t) BFD_HAVE_SYS_PROCFS_TYPE(prstatus32_t) diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in index 2c1ddd45b8d..7e29b4852f0 100644 --- a/bfd/doc/Makefile.in +++ b/bfd/doc/Makefile.in @@ -272,6 +272,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBINTL = @LIBINTL@ diff --git a/bfd/elf.c b/bfd/elf.c index 59fde16ca79..5fb1995bad2 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -9453,8 +9453,6 @@ _bfd_elf_rel_vtable_reloc_fn out details about the corefile. */ #ifdef HAVE_SYS_PROCFS_H -/* Needed for new procfs interface on sparc-solaris. */ -# define _STRUCTURED_PROC 1 # include #endif diff --git a/binutils/ChangeLog b/binutils/ChangeLog index dc369d3ba00..acd04df6860 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2020-07-30 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * Makefile.in, doc/Makefile.in: Regenerate. + * configure: Regenerate. + 2020-07-30 H.J. Lu * testsuite/binutils-all/i386/compressed-1a.d: Pass --gdwarf-3 diff --git a/binutils/Makefile.am b/binutils/Makefile.am index fb54653fd3a..94d7616c2e3 100644 --- a/binutils/Makefile.am +++ b/binutils/Makefile.am @@ -116,6 +116,7 @@ INCDIR = $(BASEDIR)/include AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ @HDEFINES@ \ @INCINTL@ \ + @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" \ -Dbin_dummy_emulation=$(EMULATION_VECTOR) diff --git a/binutils/Makefile.in b/binutils/Makefile.in index 6b15696df62..5ddae25558d 100644 --- a/binutils/Makefile.in +++ b/binutils/Makefile.in @@ -451,6 +451,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi` @@ -624,6 +625,7 @@ INCDIR = $(BASEDIR)/include AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \ @HDEFINES@ \ @INCINTL@ \ + @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" \ -Dbin_dummy_emulation=$(EMULATION_VECTOR) diff --git a/binutils/configure b/binutils/configure index 18316b7696d..6dde3053a35 100755 --- a/binutils/configure +++ b/binutils/configure @@ -691,6 +691,7 @@ DEBUGINFOD_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG +LARGEFILE_CPPFLAGS OTOOL64 OTOOL LIPO @@ -11551,7 +11552,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11554 "configure" +#line 11555 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11657,7 +11658,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11660 "configure" +#line 11661 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12007,15 +12008,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in index 9ad9236dfc9..04576ab9b31 100644 --- a/binutils/doc/Makefile.in +++ b/binutils/doc/Makefile.in @@ -284,6 +284,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ diff --git a/config/ChangeLog b/config/ChangeLog index f93d86a969b..ba1fc7f2ab2 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,11 @@ +2020-07-30 Rainer Orth + + * largefile.m4 (ACX_LARGEFILE) : + Check for incompatilibity with large-file support + on Solaris. + Only disable large-file support and perhaps plugins if needed. + Set, substitute LARGEFILE_CPPFLAGS if so. + 2020-07-28 H.J. Lu PR binutils/26301 diff --git a/config/largefile.m4 b/config/largefile.m4 index 4a88fd738fd..937596334cd 100644 --- a/config/largefile.m4 +++ b/config/largefile.m4 @@ -1,5 +1,5 @@ # This macro wraps AC_SYS_LARGEFILE with one exception for Solaris. -# PR 9992/binutils: We have to replicate everywhere the behaviour of +# PR binutils/9992: We have to replicate everywhere the behaviour of # bfd's configure script so that all the directories agree on the size # of structures used to describe files. @@ -16,17 +16,38 @@ AC_REQUIRE([AC_CANONICAL_TARGET]) AC_PLUGINS case "${host}" in -changequote(,)dnl - sparc-*-solaris*|i[3-7]86-*-solaris*) -changequote([,])dnl - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + AC_TRY_COMPILE([#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include ], , acx_cv_procfs_lfs=yes, acx_cv_procfs_lfs=no) + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + AC_MSG_WARN([ +plugin support disabled; require large-file support which is incompatible with GDB.]) + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + AC_SUBST(LARGEFILE_CPPFLAGS) + fi ;; esac diff --git a/gas/ChangeLog b/gas/ChangeLog index 27ebd233297..2e52252db90 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2020-07-30 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * Makefile.in, doc/Makefile.in: Regenerate. + * configure: Regenerate. + 2020-07-30 H.J. Lu * testsuite/gas/elf/dwarf2-3.d:Pass --gdwarf-3 to assembler. diff --git a/gas/Makefile.am b/gas/Makefile.am index 09205fbeede..4ff0c4f0276 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -389,7 +389,7 @@ INCDIR = $(BASEDIR)/include # so that tm.h and config.h will be found in the compilation # subdirectory rather than in the source directory. AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config \ - -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ \ + -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" # How to link with both our special library facilities diff --git a/gas/Makefile.in b/gas/Makefile.in index 85c7b04daaf..5d241e2df84 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -303,6 +303,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = `if [ -f ../flex/flex ] ; then echo ../flex/flex ; else echo @LEX@ ; fi` @@ -768,7 +769,7 @@ INCDIR = $(BASEDIR)/include # so that tm.h and config.h will be found in the compilation # subdirectory rather than in the source directory. AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(srcdir)/config \ - -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ \ + -I$(INCDIR) -I$(srcdir)/.. -I$(BFDDIR) @INCINTL@ @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" diff --git a/gas/configure b/gas/configure index d6ad62559ff..813ed93f14c 100755 --- a/gas/configure +++ b/gas/configure @@ -676,6 +676,7 @@ NO_WERROR WARN_CFLAGS_FOR_BUILD WARN_CFLAGS do_compare +LARGEFILE_CPPFLAGS OTOOL64 OTOOL LIPO @@ -11343,7 +11344,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11346 "configure" +#line 11347 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11449,7 +11450,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11452 "configure" +#line 11453 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11799,15 +11800,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in index f2336ec8c9b..27fd0539727 100644 --- a/gas/doc/Makefile.in +++ b/gas/doc/Makefile.in @@ -265,6 +265,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a61a57355b5..7e1d5b9befd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2020-07-30 Rainer Orth + + * proc-api.c (_STRUCTURED_PROC): Don't define. + * proc-events.c: Likewise. + * proc-flags.c: Likewise. + * proc-why.c: Likewise. + * procfs.c: Likewise. + + * Makefile.in (INTERNAL_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * configure, config.in: Regenerate. + 2020-07-30 Tom de Vries PR build/26320 diff --git a/gdb/Makefile.in b/gdb/Makefile.in index f9bde2b9a95..0d6d8137b59 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -589,7 +589,8 @@ CPPFLAGS = @CPPFLAGS@ # are sometimes a little generic, we think that the risk of collision # with other header files is high. If that happens, we try to mitigate # a bit the consequences by putting the Python includes last in the list. -INTERNAL_CPPFLAGS = $(CPPFLAGS) @GUILE_CPPFLAGS@ @PYTHON_CPPFLAGS@ +INTERNAL_CPPFLAGS = $(CPPFLAGS) @GUILE_CPPFLAGS@ @PYTHON_CPPFLAGS@ \ + @LARGEFILE_CPPFLAGS@ # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. INTERNAL_CFLAGS_BASE = \ diff --git a/gdb/config.in b/gdb/config.in index 1aeb8603a14..9755458f9c6 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -799,6 +799,9 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE +/* Use structured /proc on Solaris. */ +#undef _STRUCTURED_PROC + /* Define to empty if `const' does not conform to ANSI C. */ #undef const diff --git a/gdb/configure b/gdb/configure index 5ef85e8c866..e7811e807a6 100755 --- a/gdb/configure +++ b/gdb/configure @@ -795,6 +795,7 @@ HAVE_CXX11 INSTALL_STRIP_PROGRAM STRIP install_sh +LARGEFILE_CPPFLAGS target_os target_vendor target_cpu @@ -4769,15 +4770,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac @@ -12995,7 +13037,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi - for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h sys/procfs.h proc_service.h poll.h sys/poll.h sys/select.h + for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h proc_service.h poll.h sys/poll.h sys/select.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14891,8 +14933,24 @@ fi fi fi + +$as_echo "#define _STRUCTURED_PROC 1" >>confdefs.h + + for ac_header in sys/procfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/procfs.h" "ac_cv_header_sys_procfs_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_procfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_PROCFS_H 1 +_ACEOF + +fi + +done + if test "$ac_cv_header_sys_procfs_h" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 $as_echo_n "checking for gregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_gregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -14901,8 +14959,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -14929,7 +14985,8 @@ $as_echo "#define HAVE_GREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_gregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_gregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -14938,8 +14995,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -14966,7 +15021,8 @@ $as_echo "#define HAVE_FPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_fpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_fpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -14975,8 +15031,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15003,7 +15057,8 @@ $as_echo "#define HAVE_PRGREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prfpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prfpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15012,8 +15067,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15040,7 +15093,8 @@ $as_echo "#define HAVE_PRFPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prfpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prfpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15049,8 +15103,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15077,7 +15129,8 @@ $as_echo "#define HAVE_PRGREGSET32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpid_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_lwpid_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15086,8 +15139,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15114,7 +15165,8 @@ $as_echo "#define HAVE_LWPID_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_lwpid_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_lwpid_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 $as_echo_n "checking for psaddr_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_psaddr_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15123,8 +15175,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -15151,7 +15201,8 @@ $as_echo "#define HAVE_PSADDR_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psaddr_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_psaddr_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for elf_fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_elf_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -15160,8 +15211,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () diff --git a/gdb/proc-api.c b/gdb/proc-api.c index d7ad5031b0a..2db4a19d1a6 100644 --- a/gdb/proc-api.c +++ b/gdb/proc-api.c @@ -28,8 +28,6 @@ #include "gdbcmd.h" #include "completer.h" -#define _STRUCTURED_PROC 1 - #include #include #include /* for struct proc */ diff --git a/gdb/proc-events.c b/gdb/proc-events.c index e921c47f8f0..1f970b8f5c8 100644 --- a/gdb/proc-events.c +++ b/gdb/proc-events.c @@ -30,8 +30,6 @@ #include "defs.h" -#define _STRUCTURED_PROC 1 - #include #include #include diff --git a/gdb/proc-flags.c b/gdb/proc-flags.c index de263a4dfc4..e51ae089ba9 100644 --- a/gdb/proc-flags.c +++ b/gdb/proc-flags.c @@ -27,8 +27,6 @@ #include "defs.h" -#define _STRUCTURED_PROC 1 - #include #include diff --git a/gdb/proc-why.c b/gdb/proc-why.c index 8d73538d67c..88bed16061c 100644 --- a/gdb/proc-why.c +++ b/gdb/proc-why.c @@ -20,8 +20,6 @@ #include "defs.h" -#define _STRUCTURED_PROC 1 - #include #include diff --git a/gdb/procfs.c b/gdb/procfs.c index d3085a20fce..b628c2d0355 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -33,8 +33,6 @@ #include "nat/fork-inferior.h" #include "gdbarch.h" -#define _STRUCTURED_PROC 1 /* Should be done by configure script. */ - #include #include #include diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index ee80fce4c1f..743aa139c17 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2020-07-30 Rainer Orth + + * configure, config.in: Regenerate. + 2020-07-26 Eli Zaretskii * configure.ac (AC_CHECK_HEADERS): Add ws2tcpip.h. diff --git a/gdbserver/config.in b/gdbserver/config.in index c2ac4fea7e8..63853b6189c 100644 --- a/gdbserver/config.in +++ b/gdbserver/config.in @@ -495,6 +495,9 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE +/* Use structured /proc on Solaris. */ +#undef _STRUCTURED_PROC + /* Define to `int' if does not define. */ #undef pid_t diff --git a/gdbserver/configure b/gdbserver/configure index 1f9c3f8ef49..6e24cc4e156 100755 --- a/gdbserver/configure +++ b/gdbserver/configure @@ -6706,7 +6706,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi - for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h sys/procfs.h proc_service.h poll.h sys/poll.h sys/select.h + for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h proc_service.h poll.h sys/poll.h sys/select.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -8602,8 +8602,24 @@ fi fi fi + +$as_echo "#define _STRUCTURED_PROC 1" >>confdefs.h + + for ac_header in sys/procfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/procfs.h" "ac_cv_header_sys_procfs_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_procfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_PROCFS_H 1 +_ACEOF + +fi + +done + if test "$ac_cv_header_sys_procfs_h" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 $as_echo_n "checking for gregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_gregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8612,8 +8628,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8640,7 +8654,8 @@ $as_echo "#define HAVE_GREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_gregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_gregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8649,8 +8664,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8677,7 +8690,8 @@ $as_echo "#define HAVE_FPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_fpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_fpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8686,8 +8700,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8714,7 +8726,8 @@ $as_echo "#define HAVE_PRGREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prfpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prfpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8723,8 +8736,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8751,7 +8762,8 @@ $as_echo "#define HAVE_PRFPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prfpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prfpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8760,8 +8772,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8788,7 +8798,8 @@ $as_echo "#define HAVE_PRGREGSET32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpid_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_lwpid_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8797,8 +8808,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8825,7 +8834,8 @@ $as_echo "#define HAVE_LWPID_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_lwpid_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_lwpid_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 $as_echo_n "checking for psaddr_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_psaddr_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8834,8 +8844,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -8862,7 +8870,8 @@ $as_echo "#define HAVE_PSADDR_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psaddr_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_psaddr_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for elf_fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_elf_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -8871,8 +8880,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog index 45c2ce70a31..27132444cc3 100644 --- a/gdbsupport/ChangeLog +++ b/gdbsupport/ChangeLog @@ -1,3 +1,11 @@ +2020-07-30 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * common.m4 (GDB_AC_COMMON): Use BFD_SYS_PROCFS_H to check for + . + * Makefile.in: Regenerate. + * configure, config.in: Regenerate. + 2020-07-28 Tom de Vries PR build/26281 diff --git a/gdbsupport/Makefile.am b/gdbsupport/Makefile.am index e95ee5dbc50..9763c96cd3d 100644 --- a/gdbsupport/Makefile.am +++ b/gdbsupport/Makefile.am @@ -22,7 +22,8 @@ ACLOCAL_AMFLAGS = -I . -I ../config AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../gdb \ -I../gnulib/import -I$(srcdir)/../gnulib/import \ - -I.. -I$(srcdir)/.. $(INCINTL) -I../bfd -I$(srcdir)/../bfd + -I.. -I$(srcdir)/.. $(INCINTL) -I../bfd -I$(srcdir)/../bfd \ + @LARGEFILE_CPPFLAGS@ override CXX += $(CXX_DIALECT) diff --git a/gdbsupport/Makefile.in b/gdbsupport/Makefile.in index 5051ab31a49..0223f6d6b35 100644 --- a/gdbsupport/Makefile.in +++ b/gdbsupport/Makefile.in @@ -257,6 +257,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBINTL = @LIBINTL@ LIBINTL_DEP = @LIBINTL_DEP@ @@ -351,7 +352,8 @@ AUTOMAKE_OPTIONS = no-dist foreign ACLOCAL_AMFLAGS = -I . -I ../config AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../gdb \ -I../gnulib/import -I$(srcdir)/../gnulib/import \ - -I.. -I$(srcdir)/.. $(INCINTL) -I../bfd -I$(srcdir)/../bfd + -I.. -I$(srcdir)/.. $(INCINTL) -I../bfd -I$(srcdir)/../bfd \ + @LARGEFILE_CPPFLAGS@ AM_CXXFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) noinst_LIBRARIES = libgdbsupport.a diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4 index b461f5f017d..e8fd64c7a8e 100644 --- a/gdbsupport/common.m4 +++ b/gdbsupport/common.m4 @@ -46,7 +46,7 @@ AC_DEFUN([GDB_AC_COMMON], [ thread_db.h wait.h dnl termios.h dnl dlfcn.h dnl - linux/elf.h sys/procfs.h proc_service.h dnl + linux/elf.h proc_service.h dnl poll.h sys/poll.h sys/select.h) AC_FUNC_MMAP @@ -173,6 +173,7 @@ AC_DEFUN([GDB_AC_COMMON], [ fi fi + BFD_SYS_PROCFS_H if test "$ac_cv_header_sys_procfs_h" = yes; then BFD_HAVE_SYS_PROCFS_TYPE(gregset_t) BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t) diff --git a/gdbsupport/config.in b/gdbsupport/config.in index 55565013952..973561b1170 100644 --- a/gdbsupport/config.in +++ b/gdbsupport/config.in @@ -412,6 +412,9 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE +/* Use structured /proc on Solaris. */ +#undef _STRUCTURED_PROC + /* Define to `int' if does not define. */ #undef pid_t diff --git a/gdbsupport/configure b/gdbsupport/configure index 51caeeb180f..bd95b6d7f49 100755 --- a/gdbsupport/configure +++ b/gdbsupport/configure @@ -651,6 +651,7 @@ LIBINTL USE_NLS CXX_DIALECT HAVE_CXX11 +LARGEFILE_CPPFLAGS EGREP GREP CPP @@ -5627,15 +5628,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac @@ -8404,7 +8446,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi - for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h sys/procfs.h proc_service.h poll.h sys/poll.h sys/select.h + for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.h linux/elf.h proc_service.h poll.h sys/poll.h sys/select.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -10300,8 +10342,24 @@ fi fi fi + +$as_echo "#define _STRUCTURED_PROC 1" >>confdefs.h + + for ac_header in sys/procfs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/procfs.h" "ac_cv_header_sys_procfs_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_procfs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_PROCFS_H 1 +_ACEOF + +fi + +done + if test "$ac_cv_header_sys_procfs_h" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5 $as_echo_n "checking for gregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_gregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10310,8 +10368,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10338,7 +10394,8 @@ $as_echo "#define HAVE_GREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_gregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_gregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10347,8 +10404,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10375,7 +10430,8 @@ $as_echo "#define HAVE_FPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_fpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_fpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10384,8 +10440,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10412,7 +10466,8 @@ $as_echo "#define HAVE_PRGREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prfpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for prfpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prfpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10421,8 +10476,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10449,7 +10502,8 @@ $as_echo "#define HAVE_PRFPREGSET_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prfpregset_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prfpregset_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prgregset32_t in sys/procfs.h" >&5 $as_echo_n "checking for prgregset32_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_prgregset32_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10458,8 +10512,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10486,7 +10538,8 @@ $as_echo "#define HAVE_PRGREGSET32_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prgregset32_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_prgregset32_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lwpid_t in sys/procfs.h" >&5 $as_echo_n "checking for lwpid_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_lwpid_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10495,8 +10548,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10523,7 +10574,8 @@ $as_echo "#define HAVE_LWPID_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_lwpid_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_lwpid_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for psaddr_t in sys/procfs.h" >&5 $as_echo_n "checking for psaddr_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_psaddr_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10532,8 +10584,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () @@ -10560,7 +10610,8 @@ $as_echo "#define HAVE_PSADDR_T 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psaddr_t" >&5 $as_echo "$bfd_cv_have_sys_procfs_type_psaddr_t" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_fpregset_t in sys/procfs.h" >&5 $as_echo_n "checking for elf_fpregset_t in sys/procfs.h... " >&6; } if ${bfd_cv_have_sys_procfs_type_elf_fpregset_t+:} false; then : $as_echo_n "(cached) " >&6 @@ -10569,8 +10620,6 @@ else /* end confdefs.h. */ #define _SYSCALL32 -/* Needed for new procfs interface on sparc-solaris. */ -#define _STRUCTURED_PROC 1 #include int main () diff --git a/gnulib/ChangeLog b/gnulib/ChangeLog index 6dcf93a446f..eb84213a155 100644 --- a/gnulib/ChangeLog +++ b/gnulib/ChangeLog @@ -1,3 +1,8 @@ +2020-07-30 Rainer Orth + + * configure.ac: Run ACX_LARGEFILE before gl_EARLY. + * configure: Regenerate. + 2020-02-22 Simon Marchi * update-gnulib.sh (GNULIB_COMMIT_SHA1): Bump to diff --git a/gnulib/Makefile.in b/gnulib/Makefile.in index 15f51508a92..2ffbf0d54bd 100644 --- a/gnulib/Makefile.in +++ b/gnulib/Makefile.in @@ -1122,6 +1122,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ diff --git a/gnulib/configure b/gnulib/configure index ae07f4f07e9..87c16ace66b 100644 --- a/gnulib/configure +++ b/gnulib/configure @@ -1814,6 +1814,10 @@ ALLOCA_H ALLOCA GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE +RANLIB +ARFLAGS +AR +LARGEFILE_CPPFLAGS target_os target_vendor target_cpu @@ -1826,9 +1830,6 @@ build_os build_vendor build_cpu build -RANLIB -ARFLAGS -AR EGREP GREP CPP @@ -1884,9 +1885,9 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode +enable_plugins enable_largefile enable_threads -enable_plugins enable_cross_guesses enable_dependency_tracking enable_silent_rules @@ -2522,11 +2523,11 @@ Optional Features: --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer + --enable-plugins Enable support for plugins --disable-largefile omit support for large files --enable-threads={isoc|posix|isoc+posix|windows} specify multithreading API --disable-threads build without multithread safety - --enable-plugins Enable support for plugins --enable-cross-guesses={conservative|risky} specify policy for cross-compilation guesses --enable-dependency-tracking @@ -5680,252 +5681,8 @@ $as_echo "$ac_cv_should_define__xopen_source" >&6; } $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h - - - - - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 -$as_echo_n "checking for Minix Amsterdam compiler... " >&6; } -if ${gl_cv_c_amsterdam_compiler+:} false; then : - $as_echo_n "(cached) " >&6 -else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef __ACK__ -Amsterdam -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "Amsterdam" >/dev/null 2>&1; then : - gl_cv_c_amsterdam_compiler=yes -else - gl_cv_c_amsterdam_compiler=no -fi -rm -f conftest* - - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 -$as_echo "$gl_cv_c_amsterdam_compiler" >&6; } - - if test $gl_cv_c_amsterdam_compiler = yes; then - if test -z "$AR"; then - AR='cc -c.a' - fi - if test -z "$ARFLAGS"; then - ARFLAGS='-o' - fi - else - : - fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="ar" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - - if test -z "$ARFLAGS"; then - ARFLAGS='cr' - fi - - - - if test -z "$RANLIB"; then - if test $gl_cv_c_amsterdam_compiler = yes; then - RANLIB=':' - else - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - fi - fi - - - +# Needs to run before gl_EARLY so it can override AC_SYS_LARGEFILE included +# there. ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then @@ -6026,34 +5783,210 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac - # IEEE behaviour is the default on all CPUs except Alpha and SH - # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 - # and the GCC 4.1.2 manual). - case "$host_cpu" in - alpha*) - # On Alpha systems, a compiler option provides the behaviour. - # See the ieee(3) manual page, also available at - # - if test -n "$GCC"; then - # GCC has the option -mieee. - # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. - CPPFLAGS="$CPPFLAGS -mieee" - else - # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. - # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. - CPPFLAGS="$CPPFLAGS -ieee" - fi - ;; - sh*) - if test -n "$GCC"; then - # GCC has the option -mieee. - CPPFLAGS="$CPPFLAGS -mieee" +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +# The tests for host and target for $enable_largefile require +# canonical names. + + + +# As the $enable_largefile decision depends on --enable-plugins we must set it +# even in directories otherwise not depending on the $plugins option. + + + maybe_plugins=no + for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + maybe_plugins=yes +fi + +done + + for ac_header in windows.h +do : + ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default +" +if test "x$ac_cv_header_windows_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINDOWS_H 1 +_ACEOF + maybe_plugins=yes +fi + +done + + + # Check whether --enable-plugins was given. +if test "${enable_plugins+set}" = set; then : + enableval=$enable_plugins; case "${enableval}" in + no) plugins=no ;; + *) plugins=yes + if test "$maybe_plugins" != "yes" ; then + as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 + fi ;; + esac +else + plugins=$maybe_plugins + +fi + + if test "$plugins" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5 +$as_echo_n "checking for library containing dlsym... " >&6; } +if ${ac_cv_search_dlsym+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlsym (); +int +main () +{ +return dlsym (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_dlsym=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_dlsym+:} false; then : + break +fi +done +if ${ac_cv_search_dlsym+:} false; then : + +else + ac_cv_search_dlsym=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5 +$as_echo "$ac_cv_search_dlsym" >&6; } +ac_res=$ac_cv_search_dlsym +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + fi + + +case "${host}" in + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no fi - ;; - esac + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi + ;; +esac # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : @@ -6263,607 +6196,515 @@ fi - # Check whether --enable-threads was given. -if test "${enable_threads+set}" = set; then : - enableval=$enable_threads; gl_use_threads=$enableval -else - if test -n "$gl_use_threads_default"; then - gl_use_threads="$gl_use_threads_default" - else - case "$host_os" in - osf*) gl_use_threads=no ;; - cygwin*) - case `uname -r` in - 1.[0-5].*) gl_use_threads=no ;; - *) gl_use_threads=yes ;; - esac - ;; - mingw*) - case "$gl_use_winpthreads_default" in - yes) gl_use_threads=posix ;; - no) gl_use_threads=windows ;; - *) gl_use_threads=yes ;; - esac - ;; - *) gl_use_threads=yes ;; - esac - fi -fi - if test "$gl_use_threads" = yes \ - || test "$gl_use_threads" = isoc \ - || test "$gl_use_threads" = posix \ - || test "$gl_use_threads" = isoc+posix; then - # For using or : - if test -z "$gl_anythreadlib_early_done"; then - case "$host_os" in - osf*) - # On OSF/1, the compiler needs the flag -D_REENTRANT so that it - # groks . cc also understands the flag -pthread, but - # we don't use it because 1. gcc-2.95 doesn't understand -pthread, - # 2. putting a flag into CPPFLAGS that has an effect on the linker - # causes the AC_LINK_IFELSE test below to succeed unexpectedly, - # leading to wrong values of LIBTHREAD and LTLIBTHREAD. - CPPFLAGS="$CPPFLAGS -D_REENTRANT" - ;; - esac - # Some systems optimize for single-threaded programs by default, and - # need special flags to disable these optimizations. For example, the - # definition of 'errno' in . - case "$host_os" in - aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; - solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; - esac - gl_anythreadlib_early_done=done - fi - - fi - - - - # Pre-early section. - - - - - # Code from module absolute-header: - # Code from module alloca: - # Code from module alloca-opt: - # Code from module arpa_inet: - # Code from module assure: - # Code from module at-internal: - # Code from module builtin-expect: - # Code from module c99: - # Code from module canonicalize-lgpl: - # Code from module chdir: - # Code from module chdir-long: - # Code from module cloexec: - # Code from module close: - # Code from module closedir: - # Code from module count-one-bits: - # Code from module d-ino: - # Code from module d-type: - # Code from module dirent: - # Code from module dirfd: - # Code from module dirname-lgpl: - # Code from module dosname: - # Code from module double-slash-root: - # Code from module dup: - # Code from module dup2: - # Code from module environ: - # Code from module errno: - # Code from module error: - # Code from module exitfail: - # Code from module extensions: - # Code from module extern-inline: - # Code from module fchdir: - # Code from module fcntl: - # Code from module fcntl-h: - # Code from module fd-hook: - # Code from module fd-safer-flag: - # Code from module fdopendir: - # Code from module filename: - # Code from module filenamecat-lgpl: - # Code from module flexmember: - # Code from module float: - # Code from module fnmatch: - # Code from module fnmatch-gnu: - # Code from module fnmatch-h: - # Code from module fpieee: - - # Code from module fpucw: - # Code from module frexp: - # Code from module frexpl: - # Code from module fstat: - # Code from module fstatat: - # Code from module getcwd: - # Code from module getcwd-lgpl: - # Code from module getdtablesize: - # Code from module getlogin_r: - # Code from module getprogname: - # Code from module gettext-h: - # Code from module gettimeofday: - # Code from module glob: - # Code from module glob-h: - # Code from module hard-locale: - # Code from module include_next: - # Code from module inet_ntop: - # Code from module intprops: - # Code from module inttypes: - # Code from module inttypes-incomplete: - # Code from module isnand-nolibm: - # Code from module isnanl-nolibm: - # Code from module largefile: - - # Code from module libc-config: - # Code from module limits-h: - # Code from module localcharset: - # Code from module locale: - # Code from module localtime-buffer: - # Code from module lock: - # Code from module lstat: - # Code from module malloc-posix: - # Code from module malloca: - # Code from module math: - # Code from module mbrtowc: - # Code from module mbsinit: - # Code from module mbsrtowcs: - # Code from module memchr: - # Code from module memmem: - # Code from module memmem-simple: - # Code from module mempcpy: - # Code from module memrchr: - # Code from module mkdir: - # Code from module mkdtemp: - # Code from module mkostemp: - # Code from module msvc-inval: - # Code from module msvc-nothrow: - # Code from module multiarch: - # Code from module netinet_in: - # Code from module nocrash: - # Code from module open: - # Code from module openat: - # Code from module openat-die: - # Code from module openat-h: - # Code from module opendir: - # Code from module pathmax: - # Code from module rawmemchr: - # Code from module readdir: - # Code from module readlink: - # Code from module realloc-posix: - # Code from module rename: - # Code from module rewinddir: - # Code from module rmdir: - # Code from module same-inode: - # Code from module save-cwd: - # Code from module scratch_buffer: - # Code from module setenv: - # Code from module setlocale-null: - # Code from module signal-h: - # Code from module snippet/_Noreturn: - # Code from module snippet/arg-nonnull: - # Code from module snippet/c++defs: - # Code from module snippet/warn-on-use: - # Code from module socklen: - # Code from module ssize_t: - # Code from module stat: - # Code from module stat-time: - # Code from module std-gnu11: - # Code from module stdalign: - # Code from module stdbool: - # Code from module stddef: - # Code from module stdint: - # Code from module stdio: - # Code from module stdlib: - # Code from module strchrnul: - # Code from module strdup-posix: - # Code from module streq: - # Code from module strerror: - # Code from module strerror-override: - # Code from module strerror_r-posix: - # Code from module string: - # Code from module strnlen1: - # Code from module strstr: - # Code from module strstr-simple: - # Code from module strtok_r: - # Code from module sys_socket: - # Code from module sys_stat: - # Code from module sys_time: - # Code from module sys_types: - # Code from module sys_uio: - # Code from module tempname: - # Code from module threadlib: + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 +$as_echo_n "checking for Minix Amsterdam compiler... " >&6; } +if ${gl_cv_c_amsterdam_compiler+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __ACK__ +Amsterdam +#endif - # Code from module time: - # Code from module time_r: - # Code from module unistd: - # Code from module unistd-safer: - # Code from module unsetenv: - # Code from module update-copyright: - # Code from module verify: - # Code from module wchar: - # Code from module wctype-h: - # Code from module windows-mutex: - # Code from module windows-once: - # Code from module windows-recmutex: - # Code from module windows-rwlock: - # Code from module xalloc-oversized: +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Amsterdam" >/dev/null 2>&1; then : + gl_cv_c_amsterdam_compiler=yes +else + gl_cv_c_amsterdam_compiler=no +fi +rm -f conftest* -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 +$as_echo "$gl_cv_c_amsterdam_compiler" >&6; } + if test $gl_cv_c_amsterdam_compiler = yes; then + if test -z "$AR"; then + AR='cc -c.a' + fi + if test -z "$ARFLAGS"; then + ARFLAGS='-o' + fi + else + : + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 -$as_echo_n "checking target system type... " >&6; } -if ${ac_cv_target+:} false; then : + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else - if test "x$target_alias" = x; then - ac_cv_target=$ac_cv_host + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. else - ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 -fi +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 -$as_echo "$ac_cv_target" >&6; } -case $ac_cv_target in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; -esac -target=$ac_cv_target -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_target -shift -target_cpu=$1 -target_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -target_os=$* -IFS=$ac_save_IFS -case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -# The tests for host and target for $enable_largefile require -# canonical names. +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "x$ac_ct_AR" = x; then + AR="ar" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi -# As the $enable_largefile decision depends on --enable-plugins we must set it -# even in directories otherwise not depending on the $plugins option. + if test -z "$ARFLAGS"; then + ARFLAGS='cr' + fi - maybe_plugins=no - for ac_header in dlfcn.h -do : - ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLFCN_H 1 -_ACEOF - maybe_plugins=yes -fi + if test -z "$RANLIB"; then + if test $gl_cv_c_amsterdam_compiler = yes; then + RANLIB=':' + else + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi done + done +IFS=$as_save_IFS - for ac_header in windows.h -do : - ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default -" -if test "x$ac_cv_header_windows_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_WINDOWS_H 1 -_ACEOF - maybe_plugins=yes fi - -done - - - # Check whether --enable-plugins was given. -if test "${enable_plugins+set}" = set; then : - enableval=$enable_plugins; case "${enableval}" in - no) plugins=no ;; - *) plugins=yes - if test "$maybe_plugins" != "yes" ; then - as_fn_error $? "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 - fi ;; - esac +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - plugins=$maybe_plugins - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi - if test "$plugins" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlsym" >&5 -$as_echo_n "checking for library containing dlsym... " >&6; } -if ${ac_cv_search_dlsym+:} false; then : + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlsym (); -int -main () -{ -return dlsym (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dl; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_dlsym=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_dlsym+:} false; then : - break -fi done -if ${ac_cv_search_dlsym+:} false; then : + done +IFS=$as_save_IFS -else - ac_cv_search_dlsym=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlsym" >&5 -$as_echo "$ac_cv_search_dlsym" >&6; } -ac_res=$ac_cv_search_dlsym -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" fi + fi fi -case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} - ;; -esac -# 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 ${ac_cv_sys_largefile_CC+:} false; 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 - /* 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 + # IEEE behaviour is the default on all CPUs except Alpha and SH + # (according to the test results of Bruno Haible's ieeefp/fenv_default.m4 + # and the GCC 4.1.2 manual). + case "$host_cpu" in + alpha*) + # On Alpha systems, a compiler option provides the behaviour. + # See the ieee(3) manual page, also available at + # + if test -n "$GCC"; then + # GCC has the option -mieee. + # For full IEEE compliance (rarely needed), use option -mieee-with-inexact. + CPPFLAGS="$CPPFLAGS -mieee" + else + # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact. + # For full IEEE compliance (rarely needed), use option -ieee_with_inexact. + CPPFLAGS="$CPPFLAGS -ieee" + fi + ;; + sh*) + if test -n "$GCC"; then + # GCC has the option -mieee. + CPPFLAGS="$CPPFLAGS -mieee" + fi + ;; + esac - { $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 ${ac_cv_sys_file_offset_bits+:} false; then : - $as_echo_n "(cached) " >&6 -else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* 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 - /* 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 ${ac_cv_sys_large_files+:} false; then : - $as_echo_n "(cached) " >&6 + + + + + # Check whether --enable-threads was given. +if test "${enable_threads+set}" = set; then : + enableval=$enable_threads; gl_use_threads=$enableval else - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* 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 () -{ + if test -n "$gl_use_threads_default"; then + gl_use_threads="$gl_use_threads_default" + else + case "$host_os" in + osf*) gl_use_threads=no ;; + cygwin*) + case `uname -r` in + 1.[0-5].*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ;; + mingw*) + case "$gl_use_winpthreads_default" in + yes) gl_use_threads=posix ;; + no) gl_use_threads=windows ;; + *) gl_use_threads=yes ;; + esac + ;; + *) gl_use_threads=yes ;; + esac + fi - ; - 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 - /* 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* + if test "$gl_use_threads" = yes \ + || test "$gl_use_threads" = isoc \ + || test "$gl_use_threads" = posix \ + || test "$gl_use_threads" = isoc+posix; then + # For using or : + + + if test -z "$gl_anythreadlib_early_done"; then + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_LINK_IFELSE test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + gl_anythreadlib_early_done=done fi + fi -$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h -fi + # Pre-early section. + + + + + # Code from module absolute-header: + # Code from module alloca: + # Code from module alloca-opt: + # Code from module arpa_inet: + # Code from module assure: + # Code from module at-internal: + # Code from module builtin-expect: + # Code from module c99: + # Code from module canonicalize-lgpl: + # Code from module chdir: + # Code from module chdir-long: + # Code from module cloexec: + # Code from module close: + # Code from module closedir: + # Code from module count-one-bits: + # Code from module d-ino: + # Code from module d-type: + # Code from module dirent: + # Code from module dirfd: + # Code from module dirname-lgpl: + # Code from module dosname: + # Code from module double-slash-root: + # Code from module dup: + # Code from module dup2: + # Code from module environ: + # Code from module errno: + # Code from module error: + # Code from module exitfail: + # Code from module extensions: + # Code from module extern-inline: + # Code from module fchdir: + # Code from module fcntl: + # Code from module fcntl-h: + # Code from module fd-hook: + # Code from module fd-safer-flag: + # Code from module fdopendir: + # Code from module filename: + # Code from module filenamecat-lgpl: + # Code from module flexmember: + # Code from module float: + # Code from module fnmatch: + # Code from module fnmatch-gnu: + # Code from module fnmatch-h: + # Code from module fpieee: + + # Code from module fpucw: + # Code from module frexp: + # Code from module frexpl: + # Code from module fstat: + # Code from module fstatat: + # Code from module getcwd: + # Code from module getcwd-lgpl: + # Code from module getdtablesize: + # Code from module getlogin_r: + # Code from module getprogname: + # Code from module gettext-h: + # Code from module gettimeofday: + # Code from module glob: + # Code from module glob-h: + # Code from module hard-locale: + # Code from module include_next: + # Code from module inet_ntop: + # Code from module intprops: + # Code from module inttypes: + # Code from module inttypes-incomplete: + # Code from module isnand-nolibm: + # Code from module isnanl-nolibm: + # Code from module largefile: + + # Code from module libc-config: + # Code from module limits-h: + # Code from module localcharset: + # Code from module locale: + # Code from module localtime-buffer: + # Code from module lock: + # Code from module lstat: + # Code from module malloc-posix: + # Code from module malloca: + # Code from module math: + # Code from module mbrtowc: + # Code from module mbsinit: + # Code from module mbsrtowcs: + # Code from module memchr: + # Code from module memmem: + # Code from module memmem-simple: + # Code from module mempcpy: + # Code from module memrchr: + # Code from module mkdir: + # Code from module mkdtemp: + # Code from module mkostemp: + # Code from module msvc-inval: + # Code from module msvc-nothrow: + # Code from module multiarch: + # Code from module netinet_in: + # Code from module nocrash: + # Code from module open: + # Code from module openat: + # Code from module openat-die: + # Code from module openat-h: + # Code from module opendir: + # Code from module pathmax: + # Code from module rawmemchr: + # Code from module readdir: + # Code from module readlink: + # Code from module realloc-posix: + # Code from module rename: + # Code from module rewinddir: + # Code from module rmdir: + # Code from module same-inode: + # Code from module save-cwd: + # Code from module scratch_buffer: + # Code from module setenv: + # Code from module setlocale-null: + # Code from module signal-h: + # Code from module snippet/_Noreturn: + # Code from module snippet/arg-nonnull: + # Code from module snippet/c++defs: + # Code from module snippet/warn-on-use: + # Code from module socklen: + # Code from module ssize_t: + # Code from module stat: + # Code from module stat-time: + # Code from module std-gnu11: + # Code from module stdalign: + # Code from module stdbool: + # Code from module stddef: + # Code from module stdint: + # Code from module stdio: + # Code from module stdlib: + # Code from module strchrnul: + # Code from module strdup-posix: + # Code from module streq: + # Code from module strerror: + # Code from module strerror-override: + # Code from module strerror_r-posix: + # Code from module string: + # Code from module strnlen1: + # Code from module strstr: + # Code from module strstr-simple: + # Code from module strtok_r: + # Code from module sys_socket: + # Code from module sys_stat: + # Code from module sys_time: + # Code from module sys_types: + # Code from module sys_uio: + # Code from module tempname: + # Code from module threadlib: + + + + # Code from module time: + # Code from module time_r: + # Code from module unistd: + # Code from module unistd-safer: + # Code from module unsetenv: + # Code from module update-copyright: + # Code from module verify: + # Code from module wchar: + # Code from module wctype-h: + # Code from module windows-mutex: + # Code from module windows-once: + # Code from module windows-recmutex: + # Code from module windows-rwlock: + # Code from module xalloc-oversized: + + +am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc ac_aux_dir= diff --git a/gnulib/configure.ac b/gnulib/configure.ac index 7661b8b7cd3..acc1b1a322e 100644 --- a/gnulib/configure.ac +++ b/gnulib/configure.ac @@ -27,11 +27,12 @@ AM_MAINTAINER_MODE AC_PROG_CC AC_USE_SYSTEM_EXTENSIONS +# Needs to run before gl_EARLY so it can override AC_SYS_LARGEFILE included +# there. +ACX_LARGEFILE gl_EARLY AM_PROG_CC_STDC -ACX_LARGEFILE - AC_CONFIG_AUX_DIR(..) AC_CANONICAL_SYSTEM diff --git a/gnulib/import/Makefile.in b/gnulib/import/Makefile.in index 1d54bfacabe..9316e8d40ff 100644 --- a/gnulib/import/Makefile.in +++ b/gnulib/import/Makefile.in @@ -1215,6 +1215,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ diff --git a/gprof/ChangeLog b/gprof/ChangeLog index b6286e9b19d..316d71d5635 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,9 @@ +2020-07-30 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * Makefile.in: Regenerate. + * configure: Regenerate. + 2020-07-09 Nick Clifton * po/tr.po: Updated Turkish translation. diff --git a/gprof/Makefile.am b/gprof/Makefile.am index 27dfc3110e8..5dfd0bb4e17 100644 --- a/gprof/Makefile.am +++ b/gprof/Makefile.am @@ -34,7 +34,7 @@ NO_WERROR = @NO_WERROR@ AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -DDEBUG -I../bfd -I$(srcdir)/../include \ - -I$(srcdir)/../bfd @INCINTL@ -I. \ + -I$(srcdir)/../bfd @INCINTL@ @LARGEFILE_CPPFLAGS@ -I. \ -DLOCALEDIR="\"$(datadir)/locale\"" bin_PROGRAMS = gprof diff --git a/gprof/Makefile.in b/gprof/Makefile.in index efc2b80eb8b..6c5190a71b9 100644 --- a/gprof/Makefile.in +++ b/gprof/Makefile.in @@ -338,6 +338,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBINTL = @LIBINTL@ @@ -446,7 +447,7 @@ BFDDIR = $(BASEDIR)/bfd INCDIR = $(BASEDIR)/include AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -DDEBUG -I../bfd -I$(srcdir)/../include \ - -I$(srcdir)/../bfd @INCINTL@ -I. \ + -I$(srcdir)/../bfd @INCINTL@ @LARGEFILE_CPPFLAGS@ -I. \ -DLOCALEDIR="\"$(datadir)/locale\"" sources = basic_blocks.c call_graph.c cg_arcs.c cg_dfn.c \ diff --git a/gprof/configure b/gprof/configure index 0f3ef07ad03..74d22db79b6 100755 --- a/gprof/configure +++ b/gprof/configure @@ -657,6 +657,7 @@ INCINTL LIBINTL_DEP LIBINTL USE_NLS +LARGEFILE_CPPFLAGS OTOOL64 OTOOL LIPO @@ -11190,7 +11191,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11193 "configure" +#line 11194 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11296,7 +11297,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11299 "configure" +#line 11300 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11646,15 +11647,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac diff --git a/ld/ChangeLog b/ld/ChangeLog index 6b619f240fd..0e03aa1ed1a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2020-07-30 Rainer Orth + + * Makefile.am (AM_CPPFLAGS): Add LARGEFILE_CPPFLAGS. + * Makefile.in: Regenerate. + * configure: Regenerate. + 2020-07-29 Maciej W. Rozycki * testsuite/ld-elf/sec64k.exp: Also accept a section symbol with diff --git a/ld/Makefile.am b/ld/Makefile.am index 168f65dfe77..e5b19203d14 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -139,7 +139,7 @@ TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \ -I $(top_srcdir)/../libiberty AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @zlibinc@ \ - @INCINTL@ $(HDEFINES) $(CFLAGS) \ + @INCINTL@ $(HDEFINES) $(CFLAGS) @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" BFDLIB = ../bfd/libbfd.la diff --git a/ld/Makefile.in b/ld/Makefile.in index 0c4dff3615d..48ecc756906 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -399,6 +399,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ +LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi` @@ -626,7 +627,7 @@ TEXI2DVI = texi2dvi -I $(srcdir) -I $(BFDDIR)/doc -I ../bfd/doc \ -I $(top_srcdir)/../libiberty AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @zlibinc@ \ - @INCINTL@ $(HDEFINES) $(CFLAGS) \ + @INCINTL@ $(HDEFINES) $(CFLAGS) @LARGEFILE_CPPFLAGS@ \ -DLOCALEDIR="\"$(datadir)/locale\"" BFDLIB = ../bfd/libbfd.la diff --git a/ld/configure b/ld/configure index b63bc88bdfc..d2df419414e 100755 --- a/ld/configure +++ b/ld/configure @@ -686,6 +686,7 @@ install_as_default TARGET_SYSTEM_ROOT_DEFINE TARGET_SYSTEM_ROOT use_sysroot +LARGEFILE_CPPFLAGS CXXCPP OTOOL64 OTOOL @@ -12038,7 +12039,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12041 "configure" +#line 12042 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12144,7 +12145,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12147 "configure" +#line 12148 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15510,15 +15511,56 @@ fi case "${host}" in - sparc-*-solaris*|i[3-7]86-*-solaris*) - # On native 32bit sparc and ia32 solaris, large-file and procfs support - # are mutually exclusive; and without procfs support, the bfd/ elf module - # cannot provide certain routines such as elfcore_write_prpsinfo - # or elfcore_write_prstatus. So unless the user explicitly requested - # large-file support through the --enable-largefile switch, disable - # large-file support in favor of procfs support. - test "${target}" = "${host}" -a "x$plugins" = xno \ - && : ${enable_largefile="no"} + sparc-*-solaris*|i?86-*-solaris*) + # On native 32-bit Solaris/SPARC and x86, large-file and procfs support + # were mutually exclusive until Solaris 11.3. Without procfs support, + # the bfd/ elf module cannot provide certain routines such as + # elfcore_write_prpsinfo or elfcore_write_prstatus. So unless the user + # explicitly requested large-file support through the + # --enable-largefile switch, disable large-file support in favor of + # procfs support. + # + # Check if is incompatible with large-file support. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#define _STRUCTURED_PROC 1 +#include +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + acx_cv_procfs_lfs=yes +else + acx_cv_procfs_lfs=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # + # Forcefully disable large-file support only if necessary, gdb is in + # tree and enabled. + if test "${target}" = "${host}" -a "$acx_cv_procfs_lfs" = no \ + -a -d $srcdir/../gdb -a "$enable_gdb" != no; then + : ${enable_largefile="no"} + if test "$plugins" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&5 +$as_echo "$as_me: WARNING: +plugin support disabled; require large-file support which is incompatible with GDB." >&2;} + plugins=no + fi + fi + # + # Explicitly undef _FILE_OFFSET_BITS if enable_largefile=no for the + # benefit of g++ 9+ which predefines it on Solaris. + if test "$enable_largefile" = no; then + LARGEFILE_CPPFLAGS="-U_FILE_OFFSET_BITS" + + fi ;; esac