diff mbox series

[COMMITTED] config: Sync largefile.m4 from binutils-gdb

Message ID yddsgbsei6w.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series [COMMITTED] config: Sync largefile.m4 from binutils-gdb | expand

Commit Message

Rainer Orth Sept. 8, 2020, 9:22 a.m. UTC
The following patch improves handling of largefile support with procfs
on 32-bit Solaris.  It has already been approved and installed for
binutils-gdb in the thread starting at

	[PATCH] Unify Solaris procfs and largefile handling
        https://sourceware.org/pipermail/gdb-patches/2020-June/169977.html

I'm syncing the config/largefile.m4 part to gcc now which is the master
for config.  Since ACX_LARGEFILE isn't used anywhere in the gcc tree,
I'm installing it as obvious.

[Or rather: I meant to and failed:

remote: *** ChangeLog format failed:
remote: ERR: first line should start with a tab, an asterisk and a space:"	Sync from binutils-gdb."
remote: ERR: additional author must be indented with one tab and four spaces:"	2020-07-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>"
remote: ERR: first line should start with a tab, an asterisk and a space:"	2020-07-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>"
remote: 
remote: Please see: https://gcc.gnu.org/codingconventions.html#ChangeLogs
remote: 
abort: git remote error: refs/heads/master failed to update

How am I supposed to install a ChangeLog entry like the one below?  The
format is analogous to the one used for backports.  Martin?]

	Rainer

Comments

Martin Liška Sept. 21, 2020, 8:04 a.m. UTC | #1
On 9/8/20 11:22 AM, Rainer Orth wrote:
> How am I supposed to install a ChangeLog entry like the one below?  The
> format is analogous to the one used for backports.  Martin?]

Hello.

Currently we do not allow a changelog entry that prepends file changes.
You can put the:
'''
	Sync from binutils-gdb.
	2020-07-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
'''

just to the commit message.

Martin
diff mbox series

Patch

# HG changeset patch
# Parent  9631429b03ab5d025fee1443d88e46caa38dbd23
config: Sync largefile.m4 from binutils-gdb

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 <sys/procfs.h> is incompatible with large-file support.
+    AC_TRY_COMPILE([#define _FILE_OFFSET_BITS 64
+#define _STRUCTURED_PROC 1
+#include <sys/procfs.h>], , 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