Subject: bug#11302: Automake 1.11d on openSUSE 12.1

From: Bruno Haible <[email-masked]>
Date: Sun, 22 Apr 2012 19:48:36 +0200

Hi Stefano,

> > The test looks for a lib/ directory, but "make install" created a lib64/
> > directory. This is due to the /usr/share/site/x86_64-unknown-linux-gnu
> > (from $CONFIG_SITE, set by /etc/profile.d/site.sh) which sets a libdir
> > that ends in /lib64 rather than /lib if it finds that the compiler is
> > generating 64-bit code.
> >
> Could you post the contents of the files '/etc/profile.d/site.sh' and
> (most importantly) '/usr/share/site/x86_64-unknown-linux-gnu'?

Sure:

=========================== /etc/profile.d/site.sh ===========================
CONFIG_SITE="/usr/share/site/x86_64-unknown-linux-gnu"
export CONFIG_SITE
================== /usr/share/site/x86_64-unknown-linux-gnu ==================
#!/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 targets, keep the default for the rest.
if test "$libdir" = '${exec_prefix}/lib' ; then

	# 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_32bit_target=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_32bit_target=YES
			;;
	esac
	case "$CXXFLAGS" in
		*-m32*)
			ac_config_site_32bit_target=YES
			;;
	esac

	# User explicitly specified counterpart --host:
	# (If cross toolchain is installed, generates 32-bit, else generates native.)
	case "$host" in
			*i[3456]86-* | ppc-* | s390-* )
			ac_config_site_32bit_target=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_32bit_target=YES
			;;
	esac

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

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

libexecdir='${exec_prefix}/lib'

# 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
==============================================================================

You can see:
  1. To avoid the libdir variable to be clobbered by this script, it is
     sufficient to pass a --libdir option.
  2. It is not possible to avoid the libexecdir variable modification.
     You can either live with it, or clobber it afterwards.

Bruno