summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorJacob Hansen <jacob.hansen@gaisler.com>2018-02-07 13:35:33 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2018-09-20 12:48:32 +0200
commit5cbc9c59229ab1778c4ba8027cbc853bd12f7bba (patch)
tree1df71d88e89290ed473390ed875d762bf7843617 /testsuites
parentleon: remove warning missing string.h (diff)
downloadrtems-5cbc9c59229ab1778c4ba8027cbc853bd12f7bba.tar.bz2
clang: Keep -qrtems and -B for compilers without -specs support
This is needed for building rtems correctly with Clang. Note that this change does not mean rtems can build correctly with mainline clang. However the change allows building rtems with a Clang toolchain that has a rtems frontend similar that of GCC's builtin rtems specs.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/aclocal/gcc-specs.m416
-rw-r--r--testsuites/aclocal/prog-cc.m47
2 files changed, 22 insertions, 1 deletions
diff --git a/testsuites/aclocal/gcc-specs.m4 b/testsuites/aclocal/gcc-specs.m4
new file mode 100644
index 0000000000..ddcc2bfb0c
--- /dev/null
+++ b/testsuites/aclocal/gcc-specs.m4
@@ -0,0 +1,16 @@
+dnl Check whether the target compiler accepts -specs
+
+AC_DEFUN([RTEMS_GCC_SPECS],
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
+[
+rtems_cv_gcc_specs=no
+if test x"$GCC" = x"yes"; then
+ touch confspec
+ echo 'void f(){}' >conftest.c
+ if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then
+ rtems_cv_gcc_specs=yes
+ fi
+fi
+rm -f confspec conftest*
+])])
diff --git a/testsuites/aclocal/prog-cc.m4 b/testsuites/aclocal/prog-cc.m4
index 44d07d8585..cf6be7d9d0 100644
--- a/testsuites/aclocal/prog-cc.m4
+++ b/testsuites/aclocal/prog-cc.m4
@@ -24,9 +24,14 @@ AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
dnl check target cc
RTEMS_PROG_CC
+dnl check if the compiler supports -specs
+RTEMS_GCC_SPECS
+
AS_IF([test x"$GCC" = xyes],[
GCCSPECS="-B\$(RTEMS_SOURCE_ROOT)/bsps/\$(RTEMS_CPU)/\$(RTEMS_BSP_FAMILY)/start"
-GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"])
+AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[
+GCCSPECS="${GCCSPECS} -specs bsp_specs"])
+GCCSPECS="${GCCSPECS} -qrtems"])
AC_SUBST(GCCSPECS)
RTEMS_INCLUDES