Kenneth,
Markus,

I finally tracked down the issues with /lib64 vs /lib.

[Note for others: On SuSE, when installing packages based on GNU
autotools, libraries often end up in <prefix>/lib64 instead of
<prefix>/lib like on other Linux variants. This often causes failures
in the sanity_check step with EasyBuild, which makes you angry at some
point if you had to re-install a package with a re-worked sanity check
the 10th time ;-) ]

It boils down to site-specific defaults as described in the GNU
autotools documentation (e.g. see
http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Site-Defaults.html#Site-Defaults).

On SuSE, /etc/profile.d/site.sh sets
CONFIG_SITE="/usr/share/site/x86_64-unknown-linux-gnu"
(file attached), which changes libdir to /lib64 on 64-bit systems.

I confirmed the behavior: the next library installed with EasyBuild ended
up in /lib when I unsetted CONFIG_SITE and in /lib64, when I restored it

So as discussed last week, sanity_checks needs a 'library' key, where
one would specify only the name of the library and EasyBuild checks
whether it is in the right lib<whatever> dirctory (of course taking
CONFIG_SITE into account when installing autotools packages !)

Bernd

--
Dr.-Ing. Bernd Mohr
Juelich Supercomputing Centre
Institute for Advanced Simulation

E-Mail: [email protected]
WWW:    
http://www.fz-juelich.de/SharedDocs/Personen/IAS/JSC/EN/staff/mohr_b.html


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

#!/bin/sh
# Site script for configure. It is resourced via $CONFIG_SITE environment 
varaible.

# If user did not specify libdir, guess the correct target:
# Use lib64 for 64 bit bi-arch targets, keep the default for the rest.
if test "$libdir" = '${exec_prefix}/lib' ; then

        ac_config_site_64bit_host=NONE

        case "$host" in
        "" )
                # User did not specify host target.
                # The native platform x86_64 is a bi-arch platform.
                # Try to detect cross-compilation to inferior architecture.

                # We are trying to guess 32-bit target compilation. It's not as 
easy as
                # it sounds, as there is possible several intermediate 
combinations.
                ac_config_site_cross_to_32bit_host=NONE

                # User defined -m32 in CFLAGS or CXXFLAGS:
                # (It's sufficient for 32-bit, but alone may cause mis-behavior 
of some checks.)
                case "$CFLAGS" in
                *-m32*)
                        ac_config_site_cross_to_32bit_host=YES
                        ;;
                esac
                case "$CXXFLAGS" in
                *-m32*)
                        ac_config_site_cross_to_32bit_host=YES
                        ;;
                esac

                # Running with linux32:
                # (Changes detected platform, but not the toolchain target.)
                case "`/bin/uname -i`" in
                x86_64 | ppc64 | s390x )
                        ;;
                * )
                        ac_config_site_cross_to_32bit_host=YES
                        ;;
                esac

                if test "x$ac_config_site_cross_to_32bit_host" = xNONE; then
                        ac_config_site_64bit_host=YES
                fi

                ;;
        *x86_64* | *ppc64* | *s390x* )
                ac_config_site_64bit_host=YES
                ;;
        esac

        if test "x$ac_config_site_64bit_host" = xYES; then
                libdir='${exec_prefix}/lib64'
        fi
fi

# If user did not specify libexecdir, set the correct target:
# Nor FHS nor openSUSE allow prefix/libexec. Let's default to prefix/lib.

if test "$libexecdir" = '${exec_prefix}/libexec' ; then
        libexecdir='${exec_prefix}/lib'
fi

# Continue with the standard behavior of configure defined in AC_SITE_LOAD:
if test "x$prefix" != xNONE; then
        ac_site_file1=$prefix/share/config.site
        ac_site_file2=$prefix/etc/config.site
else
        ac_site_file1=$ac_default_prefix/share/config.site
        ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
        test "x$ac_site_file" = xNONE && continue
        if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
                { $as_echo 
"/usr/share/site/x86_64-unknown-linux-gnu:${as_lineno-$LINENO}: loading site 
script $ac_site_file" >&5
$as_echo "/usr/share/site/x86_64-unknown-linux-gnu: loading site script 
$ac_site_file" >&6;}
                sed 's/^/| /' "$ac_site_file" >&5
                . "$ac_site_file" \
                        || { { $as_echo 
"/usr/share/site/x86_64-unknown-linux-gnu:${as_lineno-$LINENO}: error: in 
\`$ac_pwd':" >&5
$as_echo "/usr/share/site/x86_64-unknown-linux-gnu: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
        fi
done

Reply via email to