[5/7] gdb, gdbserver: remove the .NOEXPORT target

Message ID 20260831185300.572297-6-simon.marchi@efficios.com
State New
Headers
Series Some Makefile cleanups |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 fail Patch failed to apply

Commit Message

Simon Marchi Aug. 31, 2026, 6:51 p.m. UTC
  gdb/Makefile.in and gdbserver/Makefile.in both contain:

    # GNU Make has an annoying habit of putting *all* the Makefile variables
    # into the environment, unless you include this target as a circumvention.
    # Rumor is that this will be fixed (and this target can be removed)
    # in GNU Make 4.0.
    .NOEXPORT:

This was introduced in gdb in commit 625453dcfda0 ("Merge in irix
support", 1991-08-31), and copied to gdbserver's Makefile.in when it was
created, in commit c033ec179a2a (1993-08-27).

It was a legitimate workaround at the time, but only for a few months.
GNU make commit b8d48ad379dc, from 1992-05-03, removed the handling of
.NOEXPORT:

    -  int noexport = enter_file (".NOEXPORT")->is_target;
    ...
    -	      /* If `.NOEXPORT' was specified, only export command-line and
    -		 environment variables.  This is a temporary (very ugly) hack
    -		 until I fix this problem the right way in version 4.  Ick.  */

So .NOEXPORT has done nothing for any GNU make for a very long time,
remove it.

Change-Id: I173807df18447d3ae2f6728ccb711d43d1f9d307
---
 gdb/Makefile.in       | 6 ------
 gdbserver/Makefile.in | 6 ------
 2 files changed, 12 deletions(-)
  

Comments

Tom Tromey Sept. 1, 2026, 4:37 p.m. UTC | #1
>>>>> "Simon" == Simon Marchi <simon.marchi@efficios.com> writes:

Simon> It was a legitimate workaround at the time, but only for a few months.
Simon> GNU make commit b8d48ad379dc, from 1992-05-03, removed the handling of
Simon> .NOEXPORT:

TIL.  Thanks.
Approved-By: Tom Tromey <tom@tromey.com>

Tom
  

Patch

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index cdf73ec708e0..74361808bf5a 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -2604,12 +2604,6 @@  gdb.cxref: $(SFILES)
 
 force_update:
 
-# GNU Make has an annoying habit of putting *all* the Makefile variables
-# into the environment, unless you include this target as a circumvention.
-# Rumor is that this will be fixed (and this target can be removed)
-# in GNU Make 4.0.
-.NOEXPORT:
-
 # GNU Make 3.63 has a different problem: it keeps tacking command line
 # overrides onto the definition of $(MAKE).  This variable setting
 # will remove them.
diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
index 7c6ab64196e2..5054597bf6ef 100644
--- a/gdbserver/Makefile.in
+++ b/gdbserver/Makefile.in
@@ -473,12 +473,6 @@  stamp-xml: $(XML_DIR)/feature_to_c.sh Makefile $(XML_FILES)
 
 .PRECIOUS: xml-builtin.cc
 
-# GNU Make has an annoying habit of putting *all* the Makefile variables
-# into the environment, unless you include this target as a circumvention.
-# Rumor is that this will be fixed (and this target can be removed)
-# in GNU Make 4.0.
-.NOEXPORT:
-
 # GNU Make 3.63 has a different problem: it keeps tacking command line
 # overrides onto the definition of $(MAKE).  This variable setting
 # will remove them.