public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH/RFC] libgloss: build with -nostdinc
@ 2022-02-12  7:23 Mike Frysinger
  2022-02-16  8:43 ` Corinna Vinschen
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Frysinger @ 2022-02-12  7:23 UTC (permalink / raw)
  To: newlib

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH/RFC] libgloss: build with -nostdinc
  2022-02-12  7:23 [PATCH/RFC] libgloss: build with -nostdinc Mike Frysinger
@ 2022-02-16  8:43 ` Corinna Vinschen
  0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2022-02-16  8:43 UTC (permalink / raw)
  To: newlib

On Feb 12 02:23, Mike Frysinger wrote:
> 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(+)

Great, please push.


Thanks,
Corinna


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-02-16  8:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-12  7:23 [PATCH/RFC] libgloss: build with -nostdinc Mike Frysinger
2022-02-16  8:43 ` Corinna Vinschen

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).