From: Jacob Hansen <jacob.han...@gaisler.com> 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. --- c/src/aclocal/prog-cc.m4 | 6 ++++-- testsuites/aclocal/gcc-specs.m4 | 16 ++++++++++++++++ testsuites/aclocal/prog-cc.m4 | 7 ++++++- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 testsuites/aclocal/gcc-specs.m4 diff --git a/c/src/aclocal/prog-cc.m4 b/c/src/aclocal/prog-cc.m4 index 54f3a08..39bec69 100644 --- a/c/src/aclocal/prog-cc.m4 +++ b/c/src/aclocal/prog-cc.m4 @@ -28,10 +28,12 @@ test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe" dnl check if the compiler supports --specs RTEMS_GCC_SPECS -AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ +dnl Compilers that does not support --specs (Clang) still needs -B and -qrtems 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"]) AC_SUBST(GCCSPECS) +GCCSPECS="${GCCSPECS} -qrtems" AS_IF([test "$GCC" = yes],[ RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -r" diff --git a/testsuites/aclocal/gcc-specs.m4 b/testsuites/aclocal/gcc-specs.m4 new file mode 100644 index 0000000..ddcc2bf --- /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 44d07d8..cf6be7d 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 -- 2.7.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel