forked from Imagelibrary/rtems
Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
The patch below actuallly consists of two patches: 1) moving librpc to c/src/librpc similar to what has been done to librtems++ 2) reworked configure scripts, many safety and dependency checks added to aclocal/*.m4 macros + configuration fixes. To apply: mkdir c/src/librpc mkdir c/src/librpc/src cp c/src/lib/librpc/*.c c/src/librpc/src cp c/src/lib/librpc/Makefile.in c/src/librpc/src mkdir c/src/librpc/include mkdir c/src/librpc/include/rpc cp c/src/lib/include/rpc/* c/src/librpc/include/rpc patch -p1 < ../rtems-rc-19990820-7.diff rm -rf c/src/lib/librpc rm -rf c/src/lib/include/rpc ./autogen The additional checks in aclocal/*m4 macros add rather restrictive, sometimes unnecessarily restrictive constraints on the sequence of how macros can be used in a configure.in script. Adding them has let my problems with some more complicated configuration options vanish. Apparently some macros had not been in the required order . ---- Now I still get some linking errors for some cpus and bsps, esp when linking cdtest, but also at other locations: e.g. this happens for mips64orion/p4600: # make[5]: Entering directory `/lfs/poseidon/users/rtems/src/multi/build/mips64orion-rtems/c/p4600/tests/samples/hello' /opt/rtems/bin/mips64orion-rtems-gcc --pipe -B../../../../../../p4600/lib/ -specs bsp_specs -qrtems -DP4000 -DCPU_R4000 -DP3_DIAG -D_R4000 -D__mips=3 -mcpu=4600 -G0 -I../../../../../../p4600/lib/include/networking -g -Wall -ansi -fasm -O4 -fomit-frame-pointer -o o-p4600/hello.exe o-p4600/init.o ../../../../../../p4600/lib/no-dpmem.rel ../../../../../../p4600/lib/no-event.rel ../../../../../../p4600/lib/no-msg.rel ../../../../../../p4600/lib/no-mp.rel ../../../../../../p4600/lib/no-part.rel ../../../../../../p4600/lib/no-signal.rel ../../../../../../p4600/lib/no-timer.rel ../../../../../../p4600/lib/no-rtmon.rel /opt/rtems/mips64orion-rtems/lib/libc.a(dtoa.o): In function `_dtoa_r': /opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol /opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol /opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol collect2: ld returned 1 exit status # mips64orion-rtems-gcc -v Reading specs from /opt/rtems/lib/gcc-lib/mips64orion-rtems/2.95.1/specs gcc version 2.95.1 19990816 (release) # mips64orion-rtems-ld -v GNU ld version 2.9.5 (with BFD 2.9.5)
This commit is contained in:
@@ -39,6 +39,8 @@ AC_MSG_RESULT([[$]$1 .. done])
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||
if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
@@ -5,6 +5,8 @@ AC_DEFUN(RTEMS_CHECK_CPU,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
# Is this a supported CPU?
|
||||
AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
|
||||
if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
|
||||
|
||||
@@ -6,6 +6,8 @@ AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP supports multiprocessing],
|
||||
rtems_cv_HAS_MP,
|
||||
[dnl
|
||||
|
||||
@@ -3,6 +3,9 @@ dnl
|
||||
AC_DEFUN(RTEMS_CHECK_NETWORKING,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP supports networking],
|
||||
rtems_cv_HAS_NETWORKING,
|
||||
[dnl
|
||||
|
||||
@@ -3,6 +3,8 @@ dnl
|
||||
AC_DEFUN(RTEMS_CHECK_POSIX_API,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP supports libposix],
|
||||
rtems_cv_HAS_POSIX_API,
|
||||
[dnl
|
||||
|
||||
@@ -4,6 +4,8 @@ AC_DEFUN(RTEMS_CHECK_RDBG,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
|
||||
AC_CACHE_CHECK([whether BSP supports librdbg],
|
||||
rtems_cv_HAS_RDBG,
|
||||
[
|
||||
|
||||
@@ -2,6 +2,8 @@ dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||
|
||||
AC_ARG_ENABLE(networking,
|
||||
[ --enable-networking enable TCP/IP stack],
|
||||
[case "${enableval}" in
|
||||
|
||||
@@ -2,6 +2,8 @@ dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_POSIX,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(posix,
|
||||
[ --enable-posix enable posix interface],
|
||||
[case "${enableval}" in
|
||||
|
||||
@@ -2,6 +2,8 @@ dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_RDBG,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||
|
||||
AC_ARG_ENABLE(rdbg,
|
||||
[ --enable-rdbg enable remote debugger],
|
||||
[case "${enableval}" in
|
||||
|
||||
@@ -5,6 +5,7 @@ dnl used by the toplevel configure script
|
||||
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
||||
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])dnl
|
||||
AC_ARG_ENABLE(rtemsbsp,
|
||||
[ --enable-rtemsbsp=bsp1 bsp2 .. BSPs to include in build],
|
||||
[case "${enableval}" in
|
||||
@@ -17,6 +18,12 @@ dnl Pass a single BSP via an environment variable
|
||||
dnl used by per BSP configure scripts
|
||||
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
|
||||
[dnl
|
||||
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
||||
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_MULTIPROCESSING])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
AC_MSG_CHECKING([for RTEMS_BSP])
|
||||
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
|
||||
[dnl
|
||||
|
||||
@@ -3,8 +3,6 @@ dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -specs
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_GCC_SPECS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
|
||||
@@ -10,6 +10,7 @@ AC_DEFUN(RTEMS_PROG_CC,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
|
||||
|
||||
dnl Only accept gcc and cc
|
||||
|
||||
@@ -10,6 +10,7 @@ AC_DEFUN(RTEMS_PROG_CXX,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CXX])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
|
||||
|
||||
dnl Only accept g++ and c++
|
||||
|
||||
@@ -7,6 +7,9 @@ dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
||||
dnl
|
||||
AC_DEFUN(RTEMS_TOP,
|
||||
[dnl
|
||||
AC_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
|
||||
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
|
||||
|
||||
AC_ARG_WITH(target-subdir,
|
||||
[ --with-target-subdir=DIR],
|
||||
TARGET_SUBDIR="$withval",
|
||||
|
||||
Reference in New Issue
Block a user