[OE-core] [PATCH 1/1] autotools.bbclass: use relative path for acpaths whenever possible
Saul Wold
sgw at linux.intel.com
Thu Nov 22 00:19:26 UTC 2012
On 11/08/2012 09:47 PM, Qi.Chen at windriver.com wrote:
> From: Chen Qi <Qi.Chen at windriver.com>
>
> When the TMPDIR is very long, say, 410 characters, aclocal would
> fail because the argument list is too long. This patch is an effort
> to use relative path for acpaths whenever possible, aiming at
> making the build system work correctly when the sanity check says OK.
>
> With the current implementation of autoreconf, it's impossible to
> thoroughly replace absolute path with relative path. Therefore, we
> use relative path when there's on subdirectory to configure; otherwise,
> we use absolute path.
>
Have you done a world build long path names with this patch on 1.4 and
does it cause any failures with autoreconf and subdirs?
Sau!
> [YOCTO #2766]
>
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
> meta/classes/autotools.bbclass | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass
> index b97d74b..86d8939 100644
> --- a/meta/classes/autotools.bbclass
> +++ b/meta/classes/autotools.bbclass
> @@ -123,8 +123,11 @@ autotools_do_configure() {
> rm -f `dirname $ac`/configure
> done )
> if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then
> + [ -e configure.in ] && CONFIGURE_AC=configure.in || CONFIGURE_AC=configure.ac
> olddir=`pwd`
> cd ${S}
> + # Determine whether there's subdirs to configure
> + grep -q -m 1 AC_CONFIG_SUBDIRS $CONFIGURE_AC && sub_cfg=1 || sub_cfg=0
> # Remove any previous copy of the m4 macros
> rm -rf ${B}/aclocal-copy/
> ACLOCAL="aclocal --system-acdir=${B}/aclocal-copy/"
> @@ -132,6 +135,11 @@ autotools_do_configure() {
> acpaths=
> for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
> grep -v 'acinclude.m4' | grep -v 'aclocal-copy' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
> + # If no subdirs to configure, we use relative path
> + # This is used for supporting long TMPDIR in Yocto
> + if [ $sub_cfg == 0 ]; then
> + i=`echo $i | sed -e 's#${S}#\.#'`
> + fi
> acpaths="$acpaths -I $i"
> done
> else
> @@ -161,11 +169,7 @@ autotools_do_configure() {
> if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then
> rm -f aclocal.m4
> fi
> - if [ -e configure.in ]; then
> - CONFIGURE_AC=configure.in
> - else
> - CONFIGURE_AC=configure.ac
> - fi
> +
> if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
> if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
> : do nothing -- we still have an old unmodified configure.ac
>
More information about the Openembedded-core
mailing list