From: Mike Frysinger <vapier@gentoo.org>
To: newlib@sourceware.org
Subject: [PATCH/RFC] libgloss: build with -nostdinc
Date: Sat, 12 Feb 2022 02:23:37 -0500 [thread overview]
Message-ID: <20220212072337.21734-1-vapier@gentoo.org> (raw)
We don't want libgloss building against C library headers that happened
to be installed with the toolchain, so add -nostdinc to the build. We
still need access to the compiler internal headers, so probe those and
include them via -isystem. This uses a similar probing style as glibc,
which has used it for over a decade, so it should be safe & stable.
This should prevent any latent bugs due to testing with a toolchain that
is fully configured & installed already.
---
NB: tested against these targets:
aarch64-elf arc-elf arm-eabi
bfin-elf
cr16-elf cris-elf csky-elf
epiphany-elf
frv-elf
h8300-elf
i686-pc-cygwin iq2000-elf
m68k-elf microblaze-elf mips-elf mn10300-elf moxie-elf
nds32le-elf
or1k-elf
powerpc-elf
sparc-elf sparc-rtems
v850e-elf visium-elf
libgloss/configure | 20 ++++++++++++++++++++
libgloss/configure.ac | 11 +++++++++++
2 files changed, 31 insertions(+)
diff --git a/libgloss/configure b/libgloss/configure
index 08b2609062f3..6cdd4842ae9d 100755
--- a/libgloss/configure
+++ b/libgloss/configure
@@ -4998,6 +4998,26 @@ $as_echo "#define MISSING_SYSCALL_NAMES 1" >>confdefs.h
esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler search settings" >&5
+$as_echo_n "checking for compiler search settings... " >&6; }
+if ${libc_cv_compiler_isystem+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ for subdir in include include-fixed; do
+ if dir=`$CC -print-file-name=$subdir`; then :
+ if test -n "$dir"; then :
+ libc_cv_compiler_isystem="$libc_cv_compiler_isystem -isystem $dir"
+
+fi
+
+fi
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_isystem" >&5
+$as_echo "$libc_cv_compiler_isystem" >&6; }
+CC="$CC -nostdinc $libc_cv_compiler_isystem"
+
host_makefile_frag_path=$host_makefile_frag
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 486492b7bf0d..e26f295f5d00 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -323,6 +323,17 @@ AC_DEFINE_UNQUOTED(__SYMBOL_PREFIX, "$libc_cv_symbol_prefix", [symbol prefix])
m4_include([libnosys/acinclude.m4])
+AC_CACHE_CHECK([for compiler search settings], libc_cv_compiler_isystem, [dnl
+ for subdir in include include-fixed; do
+ AS_IF([dir=`$CC -print-file-name=$subdir`], [dnl
+ AS_IF([test -n "$dir"], [dnl
+ libc_cv_compiler_isystem="$libc_cv_compiler_isystem -isystem $dir"
+ ])
+ ])
+ done
+])
+CC="$CC -nostdinc $libc_cv_compiler_isystem"
+
dnl We have to assign the same value to other variables because autoconf
dnl doesn't provide a mechanism to substitute a replacement keyword with
dnl arbitrary data or pathnames.
--
2.34.1
next reply other threads:[~2022-02-12 7:23 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-12 7:23 Mike Frysinger [this message]
2022-02-16 8:43 ` Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220212072337.21734-1-vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=newlib@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).