diff options
author | Chris Johns <chrisj@rtems.org> | 2018-01-04 09:02:17 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-01-05 14:23:59 +0100 |
commit | 9d234716bad79ed0e9ce7c1685da0fe5365f6b5d (patch) | |
tree | 2d3a165e3a17a332ea0a59702daf92333a444999 | |
parent | 07ae36186571efb577040e8b951ba77b6e4c46ce (diff) |
FIXME linkcmds
-rw-r--r-- | testsuites/aclocal/rtems-bsp-linkcmds.m4 | 40 | ||||
-rw-r--r-- | testsuites/automake/compile.am | 2 |
2 files changed, 34 insertions, 8 deletions
diff --git a/testsuites/aclocal/rtems-bsp-linkcmds.m4 b/testsuites/aclocal/rtems-bsp-linkcmds.m4 index d84d270c5c..6517598542 100644 --- a/testsuites/aclocal/rtems-bsp-linkcmds.m4 +++ b/testsuites/aclocal/rtems-bsp-linkcmds.m4 @@ -1,31 +1,55 @@ dnl dnl RTEMS Include paths. dnl +dnl This is messy because the linkcmds have no clear and defined structure. +dnl There are BSP named linkcmds files, plain linkcmds file, configure template +dnl .in files configure changes and shared versions of these. The approach to have +dnl a single file for a number of BSPs in a family is sound, the lack of rules +dnl means we have a range of variants and this results in following code. +dnl +dnl The preinstall hid a number of questionable things and preinstall has gone. +dnl AC_DEFUN([RTEMS_BSP_LINKCMDS], [ AC_REQUIRE([RTEMS_SOURCE_TOP]) AC_REQUIRE([RTEMS_BUILD_TOP]) +AC_MSG_CHECKING([BSP linkcmds]) + RTEMS_BSP_ARCH_PATH="${RTEMS_SOURCE_ROOT}/c/src/lib/libbsp/${RTEMS_CPU}" RTEMS_BSP_ARCH_LINKCMDS_PATH="${RTEMS_BSP_ARCH_PATH}/shared/startup" -AC_SUBST(RTEMS_BSP_ARCH_LINKCMDS_PATH) RTEMS_BSP_LINKCMDS_PATH="${RTEMS_BSP_ARCH_PATH}/${RTEMS_BSP_FAMILY}/startup" -AC_SUBST(RTEMS_BSP_LINKCMDS_PATH) RTEMS_BSP_LINKCMDS_SCRIPT= -for f in "linkcmds.${RTEMS_BSP}" "linkcmds.${RTEMS_BSP_FAMILY}" "linkcmds"; +for p in "${RTEMS_BSP_LINKCMDS_PATH}" "${RTEMS_BSP_ARCH_LINKCMDS_PATH}"; do - AS_IF([test -f "${RTEMS_BSP_LINKCMDS_PATH}/$f"],[ - RTEMS_BSP_LINKCMDS_SCRIPT="$f" - break]) + for f in "linkcmds.${RTEMS_BSP}" "linkcmds.${RTEMS_BSP_FAMILY}" "linkcmds" "linkcmds.in"; + do + AS_IF([test -f "$p/$f"],[ + RTEMS_BSP_LINKCMDS_SCRIPT="$f" + RTEMS_BSP_LINKCMDS_PATH="$p" + break]) + done + AS_IF([test ! -z "$RTEMS_BSP_LINKCMDS_SCRIPT"],[break]) done AS_IF([test -z "${RTEMS_BSP_LINKCMDS_SCRIPT}"],[ - AC_MSG_ERROR([can not determine linkcmds])]) + AC_MSG_RESULT([not found]) + AC_MSG_ERROR([can not determine linkcmds])]) RTEMS_BSP_LIBBSP_PATH="${RTEMS_BUILD_ROOT}/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}" -AC_SUBST(RTEMS_BSP_LIBBSP_PATH) +RTEMS_BSP_LIBBSP_STARTUP_PATH="${RTEMS_BSP_LIBBSP_PATH}/startup" +AS_IF([test "${RTEMS_BSP_LINKCMDS_SCRIPT}" == "linkcmds.in"],[ + RTEMS_BSP_LINKCMDS_PATH="${RTEMS_BSP_LIBBSP_PATH}/startup" + RTEMS_BSP_LINKCMDS_SCRIPT=linkcmds]) + +AC_MSG_RESULT([${RTEMS_BSP_LINKCMDS_PATH}/${RTEMS_BSP_LINKCMDS_SCRIPT}]) + +AC_SUBST(RTEMS_BSP_ARCH_LINKCMDS_PATH) +AC_SUBST(RTEMS_BSP_LIBBSP_PATH) +AC_SUBST(RTEMS_BSP_LIBBSP_STARTUP_PATH) +AC_SUBST(RTEMS_BSP_LINKCMDS_PATH) AC_SUBST(RTEMS_BSP_LINKCMDS_SCRIPT) ]) diff --git a/testsuites/automake/compile.am b/testsuites/automake/compile.am index 738cefe549..190a9ccc55 100644 --- a/testsuites/automake/compile.am +++ b/testsuites/automake/compile.am @@ -14,7 +14,9 @@ AM_CFLAGS = $(TEST_C_FLAGS) AM_CXXFLAGS = $(TEST_CXX_FLAGS) AM_LDFLAGS = -B$(RTEMS_BSP_LIBBSP_PATH) $(GCCSPECS) -qnolinkcmds \ -L$(PROJECT_LIB) \ + -L$(RTEMS_BSP_LIBBSP_STARTUP_PATH) \ -L$(RTEMS_BSP_ARCH_LINKCMDS_PATH) \ + -L$(RTEMS_BSP_LINKCMDS_PATH) \ -Wl,-T$(RTEMS_BSP_LINKCMDS_PATH)/$(RTEMS_BSP_LINKCMDS_SCRIPT) \ $(TEST_LD_FLAGS) |