public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin/main] newlib: filter out versions from newlib.h to simplify autoreconf
@ 2023-11-28 17:51 Michael Frysinger
  0 siblings, 0 replies; only message in thread
From: Michael Frysinger @ 2023-11-28 17:51 UTC (permalink / raw)
  To: newlib-cvs

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=dab15f6740ff73e8b17b7ddddcbb678895a916a2

commit dab15f6740ff73e8b17b7ddddcbb678895a916a2
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Sun Oct 15 15:14:13 2023 +0545

    newlib: filter out versions from newlib.h to simplify autoreconf
    
    We've been manually editing newlib.hin after generating it with
    autoheader to drop the version defines that we keep in the separate
    _newlib_version.h header.  This is confusing for people, and is an
    easy source of mistakes/errors.
    
    Since we're already running sed on newlib.h during configure to
    filter out defines we don't want to expose, add the version macros
    there too.  This way we don't have to manually edit newlib.hin.
    
    This simplifies the autoreconf step in exchange for a slightly more
    complicated configure+sed step, but seems worth the trade-off.

Diff:
---
 newlib/configure    | 2 +-
 newlib/configure.ac | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/newlib/configure b/newlib/configure
index 0585e0ee8..b21d9bf45 100755
--- a/newlib/configure
+++ b/newlib/configure
@@ -9269,7 +9269,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
 
   case $ac_file$ac_mode in
-    "newlib.h":H) sed -i.tmp -e '/^#define [^_]/d' -e '/^\/\* #undef [^_]/d' newlib.h && rm -f newlib.h.tmp ;;
+    "newlib.h":H) sed -i.tmp -E -e '/^#define [^_]/d' -e '/^\/\* #undef [^_]/d' -e '/_NEWLIB_VERSION|__NEWLIB_(MINOR|PATCHLEVEL)__|__NEWLIB__/d' newlib.h && rm -f newlib.h.tmp ;;
     "default-1":C)
 # Only add multilib support code if we just rebuilt the top-level
 # Makefile.
diff --git a/newlib/configure.ac b/newlib/configure.ac
index 94242c082..55e5a9446 100644
--- a/newlib/configure.ac
+++ b/newlib/configure.ac
@@ -8,8 +8,11 @@ dnl Since we can't control what defines autoheader picks up (various autoconf
 dnl macros will add their own), filter out all the ones w/out a _ prefix.  All
 dnl the ones we want to export use a _ prefix, and all the rest we don't want
 dnl to export as it'll pollute the namespace of newlib users.
+dnl We also filter out version defines that we want in _newlib_version.h.
 dnl NB: newlib.h must be the first AC_CONFIG_HEADERS call for autoheader.
-AC_CONFIG_HEADERS([newlib.h:newlib.hin], [sed -i.tmp -e '/^#define [^_]/d' -e '/^\/\* #undef [^_]/d' newlib.h && rm -f newlib.h.tmp])
+AC_CONFIG_HEADERS(
+  [newlib.h:newlib.hin],
+  [sed -i.tmp -E -e '/^#define [^_]/d' -e '/^\/\* #undef [^_]/d' -e '/_NEWLIB_VERSION|__NEWLIB_(MINOR|PATCHLEVEL)__|__NEWLIB__/d' newlib.h && rm -f newlib.h.tmp])
 AH_TOP([/* NB: The contents are filtered before being installed. */
 
 #ifndef __NEWLIB_H__

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-11-28 17:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-28 17:51 [newlib-cygwin/main] newlib: filter out versions from newlib.h to simplify autoreconf Michael Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).