On Fri, 21 Nov 2014, Ilya Enkovich wrote: > +# Disable libmpx on unsupported systems. > +if test -d ${srcdir}/libmpx; then > + if test x$enable_libmpx = x; then > + AC_MSG_CHECKING([for libmpx support]) > + if (srcdir=${srcdir}/libmpx; \ > + . ${srcdir}/configure.tgt; \ > + test "$LIBMPX_SUPPORTED" != "yes") > + then > + AC_MSG_RESULT([no]) > + noconfigdirs="$noconfigdirs target-libmpx" > + else > + AC_MSG_RESULT([yes]) > + fi > + fi > +fi
Using this at toplevel you can only enable or disable for all multilibs - this code runs just once. But: > diff --git a/libmpx/configure.tgt b/libmpx/configure.tgt > +LIBMPX_SUPPORTED=no > +case "${target}" in > + x86_64-*-linux* | i?86-*-linux*) > + # X32 doesn't support MPX. > + echo "int i[sizeof (void *) == 4 ? 1 : -1] = { __x86_64__ };" > > conftestx.c > + if ${CC} ${CFLAGS} -c -o conftestx.o conftestx.c > /dev/null 2>&1; then > + LIBMPX_SUPPORTED=no > + else > + LIBMPX_SUPPORTED=yes > + fi > + ;; Here you are testing something per-multilib. Furthermore, using CC and CFLAGS here is wrong when used by toplevel configure, as at toplevel they'll relate to the host rather than the target. So you need to separate the two tests of (a) might MPX be supported for some multilib on the target (usable at toplevel, not using CC or CFLAGS) and (b) is it supported for the present multilib. Thus the libmpx directory will need configuring for all multilibs for supported targets. Then, if the particular multilib doesn't support it (i.e. is x32), you'll need to arrange for the directory not to build or install anything - much like the libquadmath directory gets configured in some cases where it doesn't build anything. -- Joseph S. Myers jos...@codesourcery.com