From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.CeBiTec.Uni-Bielefeld.DE (smtp.CeBiTec.Uni-Bielefeld.DE [129.70.160.84]) by sourceware.org (Postfix) with ESMTPS id 0EB5F3858D35; Thu, 30 Jul 2020 09:17:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0EB5F3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=CeBiTec.Uni-Bielefeld.DE Authentication-Results: sourceware.org; spf=none smtp.mailfrom=ro@cebitec.uni-bielefeld.de Received: from localhost (localhost [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id E4FDB814B4; Thu, 30 Jul 2020 11:17:12 +0200 (CEST) X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a_QIpzmIo0AZ; Thu, 30 Jul 2020 11:17:08 +0200 (CEST) Received: from manam.CeBiTec.Uni-Bielefeld.DE (p4fddbb33.dip0.t-ipconnect.de [79.221.187.51]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id E41518115B; Thu, 30 Jul 2020 11:17:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1596100628; bh=+QO9tn33sBF+B4uz4qMereuTI9no4VyTL5qUoxU8rjY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=JEB3HJg4Arm8XqKSgW9J5wWBj3RnWr0qhp9UNqcnbBKY5O84pI4SFfj/wGRdehb+k EAQxawwMg0trXCWuJwzoFWe1fNidEDj8A6UlNiTmPQaRqZ69+MEwHoYuYYCvAad7VJ OyDDJO3fvCiC+nDMmr0xNtG31p4cKS7vF9T1Br5neAXmOnuxeiJ+SlwynYPk136TkX EAPm2ACnriCMl4QEqWuXLL/uTzJ29Wxhm67kbiYUQUBImiaXvzxricgJpdinhmruNM Ce2aKOwkjDt0LXQbr+e5qRfZ7T9t/tpaItWwOKe9mi5v2pJ8rhLWXSyLbH29p5hNIH a6Ou9HtUp5fGw== From: Rainer Orth To: Simon Marchi Cc: binutils@sourceware.org, gdb-patches@sourceware.org Subject: Re: [PATCH] Unify Solaris procfs and largefile handling References: <51f44a63-3062-39e5-14c5-ed08e32f2129@simark.ca> <5aae580e-ab2e-f008-91c6-f3b1c1f757b7@simark.ca> <169bf482-296b-737d-2a48-581d5b1d92bb@simark.ca> Date: Thu, 30 Jul 2020 11:17:06 +0200 In-Reply-To: <169bf482-296b-737d-2a48-581d5b1d92bb@simark.ca> (Simon Marchi's message of "Wed, 29 Jul 2020 15:55:11 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (usg-unix-v) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Status: No, score=-3795.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jul 2020 09:17:24 -0000 --=-=-= Content-Type: text/plain Hi Simon, > On 2020-07-29 7:19 a.m., Rainer Orth wrote: >> It's even simpler: every configure script has code to parse >> --enable-foo/--disable-foo and turn the result into enable_foo=[yes|no]. > > Ok, nice! > >> No: the code has been (and should remain) like this. It allows the user >> to override the automatic largefile detection with explicit >> --enable-largefile/--disable-largefile options without having to change >> the code. > > Ack. > >> I've now removed AC_ARG_ENABLE from largefile.m4. Retested on >> i386-pc-solaris2.11 without and with --disable-gdb, checking that >> _FILE_OFFSET_BITS are set as expected, and amd64-pc-solaris2.11. >> >> Ok for master now? > > When I run `autoreconf -vf`, I get a lot of changes. Make sure to run > it in any directory you touch that has a configure.ac and add the resulting > changes. I didn't use autoreconf, but ran the appropriate autoconf/autoheader/aclocal/automake dance manually. With one exception (LARGEFILE_CPPFLAGS in gnulib Makefile.in) I'd gotten things right :-) I don't usually include generated files in patch submissions, though: they are heavily frowned upon at least over in GCC because they make review quite difficult, espcially in a case like this where the largefile.m4 change spreads to lots of configure scripts, obscuring the change proper. Does GDB handle things differently here? Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=sol2-procfs-lfs.patch # HG changeset patch # Parent 63ff2b219c5109e8da097c04842499d908c25ebb Unify Solaris procfs and largefile handling diff --git a/bfd/Makefile.am b/bfd/Makefile.am --- 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 --- 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) -rel 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 --- a/bfd/bfd.m4 +++ b/bfd/bfd.m4 @@ -17,15 +17,20 @@ dnl along with this program; see the fil 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 --- 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 --- 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_obj # 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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 --- 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 --- 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 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -9453,8 +9453,6 @@ bfd_reloc_status_type 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/Makefile.am b/binutils/Makefile.am --- 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 --- 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 --- 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 --- 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/largefile.m4 b/config/largefile.m4 --- 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/Makefile.am b/gas/Makefile.am --- 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 --- 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 --- 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 --- 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/Makefile.in b/gdb/Makefile.in --- 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 --- 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 --- 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 @@ fi 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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 --- 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 --- 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 --- 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 --- 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 --- 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/config.in b/gdbserver/config.in --- 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 --- a/gdbserver/configure +++ b/gdbserver/configure @@ -6706,7 +6706,7 @@ fi 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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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/Makefile.am b/gdbsupport/Makefile.am --- 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 --- 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 --- 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 --- 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 --- 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 @@ fi 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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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 @@ fi { $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/Makefile.in b/gnulib/Makefile.in --- 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 --- 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,6 +5681,516 @@ fi $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h +# 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 + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +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 + + +# 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 + 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 : + 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 + + { $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 +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_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* + fi + + +$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h + +fi + + @@ -5926,106 +6437,6 @@ fi -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - @@ -6055,208 +6466,6 @@ case $host_os in *\ *) host_os=`echo "$h ;; 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 - - { $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 -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_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* - fi - - -$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h - -fi - @@ -6498,374 +6707,6 @@ fi am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -{ $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 - - -# 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[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 - - { $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 -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_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* - fi - - -$as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h - -fi - - - ac_aux_dir= for ac_dir in .. "$srcdir"/..; do if test -f "$ac_dir/install-sh"; then diff --git a/gnulib/configure.ac b/gnulib/configure.ac --- 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 --- 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/Makefile.am b/gprof/Makefile.am --- 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 --- 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 --- 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/Makefile.am b/ld/Makefile.am --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -139,7 +139,7 @@ TEXI2DVI = texi2dvi -I $(srcdir) -I $(BF -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 --- 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 $(BF -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 --- 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 --=-=-=--