From fe5851ceaec2e233c48fc5707ece2f69fce77090 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 29 Jun 2000 15:29:31 +0000 Subject: Patch rtems-rc-20000627-1 from Ralf Corsepius that is part of the multilib/gnu-canonicalization movement: Changes: * New m4-macro: aclocal/multilib.am * Suppress multiprocessing if --enable-multilib is given to configure Notes: For now this patch only suppresses multiprocessing if --enable-multilib is given to configure and should not have any other side-effects, ie. it works around a minor issue which prevents introduction of multilibs in general. The RTEMS_ENABLE_MULTILIB_MASTER macro is the core part to build real multilibs, but can not be applied before other multilib related issues with RTEMS have been solved. (e.g. sptables.h, bsp_specs, Cygnus/Gnu canonicalization, _RTEMS_version, targopts.h, changing the installation point/tooldir support, etc.). --- Makefile.am | 2 +- aclocal/check-multiprocessing.m4 | 19 +++++++++---- aclocal/multilib.m4 | 59 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 aclocal/multilib.m4 diff --git a/Makefile.am b/Makefile.am index 83561efa43..9d03bf5f6d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -29,7 +29,7 @@ ACLOCAL_FILES += aclocal/ar-s.m4 aclocal/bsp-alias.m4 \ aclocal/i386-gas-code16.m4 aclocal/path-ksh.m4 aclocal/path-perl.m4 \ aclocal/prog-cc.m4 aclocal/prog-cxx.m4 aclocal/project-root.m4 \ aclocal/rtems-top.m4 aclocal/sysv-ipc.m4 aclocal/target.m4 \ - aclocal/tool-paths.m4 aclocal/tool-prefix.m4 + aclocal/tool-paths.m4 aclocal/tool-prefix.m4 aclocal/multilib.m4 noinst_SCRIPTS = bootstrap diff --git a/aclocal/check-multiprocessing.m4 b/aclocal/check-multiprocessing.m4 index 7ee1b6d7d6..e2bbe80b48 100644 --- a/aclocal/check-multiprocessing.m4 +++ b/aclocal/check-multiprocessing.m4 @@ -4,6 +4,7 @@ dnl AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING, [dnl +AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl AC_REQUIRE([RTEMS_TOP])dnl AC_REQUIRE([RTEMS_CHECK_CPU])dnl @@ -13,14 +14,20 @@ AC_REQUIRE([RTEMS_BSP_ALIAS])dnl AC_CACHE_CHECK([whether BSP supports multiprocessing], rtems_cv_HAS_MP, [dnl - if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then - if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then - rtems_cv_HAS_MP="yes" ; + if test x"$multilib" = x"yes"; then + # FIXME: Currently, multilibs and multiprocessing can not be + # build simultaneously + rtems_cv_HAS_MP="disabled" + else + if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then + if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then + rtems_cv_HAS_MP="yes" ; + else + rtems_cv_HAS_MP="disabled"; + fi else - rtems_cv_HAS_MP="disabled"; + rtems_cv_HAS_MP="no"; fi - else - rtems_cv_HAS_MP="no"; fi]) if test "$rtems_cv_HAS_MP" = "yes"; then HAS_MP="yes" diff --git a/aclocal/multilib.m4 b/aclocal/multilib.m4 new file mode 100644 index 0000000000..2c975c8fbd --- /dev/null +++ b/aclocal/multilib.m4 @@ -0,0 +1,59 @@ +dnl This provides configure definitions used for multilib support + +dnl parts of these macros are derived from newlib-1.8.2's multilib support + +AC_DEFUN(RTEMS_ENABLE_MULTILIB, +[ +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +AM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes") +]) + +AC_DEFUN(RTEMS_ENABLE_MULTILIB_MASTER, +[ +AC_REQUIRE([RTEMS_ENABLE_MULTILIB]) + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}../ifelse([$2],,,[$2])" + else + multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}ifelse([$2],,,[$2])" + fi +else + multilib_basedir="[$]{srcdir}/ifelse([$2],,,[$2])" +fi +AC_SUBST(multilib_basedir) + +if test "${multilib}" = "yes"; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + +AC_OUTPUT_COMMANDS( + if test -n "$CONFIG_FILES"; do + $ac_file" = ifelse([$1],,Makefile,[$1]) \ + . ${multilib_basedir}/../config-ml.in + fi, + srcdir=${srcdir} + host=${host} + target=${target} +# with_multisrctop="${with_multisrctop}" +# with_target_subdir="${with_target_subdir}" + with_multisubdir="${with_multisubdir}" + ac_configure_args="${multilib_arg} ${ac_configure_args}" + CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + multilib_basedir=${multilib_basedir} + CC="${CC}") +]) -- cgit v1.2.3