From 5cbc9c59229ab1778c4ba8027cbc853bd12f7bba Mon Sep 17 00:00:00 2001 From: Jacob Hansen Date: Wed, 7 Feb 2018 13:35:33 +0200 Subject: 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. --- testsuites/aclocal/gcc-specs.m4 | 16 ++++++++++++++++ testsuites/aclocal/prog-cc.m4 | 7 ++++++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 testsuites/aclocal/gcc-specs.m4 (limited to 'testsuites') 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 -- cgit v1.2.3