diff options
author | Mike Frysinger <vapier@gentoo.org> | 2023-10-15 15:14:13 +0545 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2023-11-28 12:50:44 -0500 |
commit | dab15f6740ff73e8b17b7ddddcbb678895a916a2 (patch) | |
tree | 784f6fc0a1d953754f56dfcfa79d4e2aca5d9009 | |
parent | 65831f88d6c4cd943969b5ee531bc6162c7b0f60 (diff) | |
download | newlib-dab15f6740ff73e8b17b7ddddcbb678895a916a2.zip newlib-dab15f6740ff73e8b17b7ddddcbb678895a916a2.tar.gz newlib-dab15f6740ff73e8b17b7ddddcbb678895a916a2.tar.bz2 |
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.
-rwxr-xr-x | newlib/configure | 2 | ||||
-rw-r--r-- | newlib/configure.ac | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/newlib/configure b/newlib/configure index 0585e0e..b21d9bf 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 94242c0..55e5a94 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__ |