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.
This commit is contained in:
Jacob Hansen
2018-09-20 12:48:32 +02:00
committed by Daniel Hellstrom
parent 9ed109cc7f
commit 5cbc9c5922
3 changed files with 26 additions and 3 deletions
+4 -2
View File
@@ -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"
+16
View File
@@ -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*
])])
+6 -1
View File
@@ -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