Hi!

On 2021-09-24T11:34:34+0100, Andrew Burgess <andrew.burg...@embecosm.com> wrote:
> The V2 patch below:
>
>   - Moves the check for gcc/ to much later in the configure script,
>     after we've finished building target_configdirs,
>
>   - Makes use of skipdirs to avoid building anything from
>     target_configdirs if we're not also building gcc.

Thanks, that looks better in line with how that script generally appears
to work (... per my not-in-depth understanding).  (But I can't formally
approve.)

    Reviewed-by: Thomas Schwinge <tho...@codesourcery.com>


Grüße
 Thomas


> commit 84c8b7f1605c8f2840d3c857a4d86abc7dde0668
> Author: Andrew Burgess <andrew.burg...@embecosm.com>
> Date:   Wed Sep 22 15:15:41 2021 +0100
>
>     top-level configure: setup target_configdirs based on repository
>
>     The top-level configure script is shared between the gcc repository
>     and the binutils-gdb repository.
>
>     The target_configdirs variable in the configure.ac script, defines
>     sub-directories that contain components that should be built for the
>     target using the target tools.
>
>     Some components, e.g. zlib, are built as both host and target
>     libraries.
>
>     This causes problems for binutils-gdb.  If we run 'make all' in the
>     binutils-gdb repository we end up trying to build a target version of
>     the zlib library, which requires the target compiler be available.
>     Often the target compiler isn't immediately available, and so the
>     build fails.
>
>     The problem with zlib impacted a previous attempt to synchronise the
>     top-level configure scripts from gcc to binutils-gdb, see this thread:
>
>       https://sourceware.org/pipermail/binutils/2019-May/107094.html
>
>     And I'm in the process of importing libbacktrace in to binutils-gdb,
>     which is also a host and target library, and triggers the same issues.
>
>     I believe that for binutils-gdb, at least at the moment, there are no
>     target libraries that we need to build.
>
>     In the configure script we build three lists of things we want to
>     build, $configdirs, $build_configdirs, and $target_configdirs, we also
>     build two lists of things we don't want to build, $skipdirs and
>     $noconfigdirs.  We then remove anything that is in the lists of things
>     not to build, from the list of things that should be built.
>
>     My proposal is to add everything in target_configdirs into skipdirs,
>     if the source tree doesn't contain a gcc/ sub-directory.  The result
>     is that for binutils-gdb no target tools or libraries will be built,
>     while for the gcc repository, nothing should change.
>
>     If a user builds a unified source tree, then the target tools and
>     libraries should still be built as the gcc/ directory will be present.
>
>     I've tested a build of gcc on x86-64, and the same set of target
>     libraries still seem to get built.  On binutils-gdb this change
>     resolves the issues with 'make all'.
>
>     ChangeLog:
>
>             * configure: Regenerate.
>             * configure.ac (skipdirs): Add the contents of target_configdirs 
> if
>             we are not building gcc.
>
> diff --git a/configure b/configure
> index 85ab9915402..785498efff5 100755
> --- a/configure
> +++ b/configure
> @@ -8874,6 +8874,16 @@ case ,${enable_languages}, in
>      ;;
>  esac
>
> +# If gcc/ is not in the source tree then we'll not be building a
> +# target compiler, assume in that case we don't want to build any
> +# target libraries or tools.
> +#
> +# This was added primarily for the benefit for binutils-gdb who reuse
> +# this configure script, but don't always have target tools available.
> +if test ! -d ${srcdir}/gcc; then
> +   skipdirs="${skipdirs} ${target_configdirs}"
> +fi
> +
>  # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
>  # $build_configdirs and $target_configdirs.
>  # If we have the source for $noconfigdirs entries, add them to $notsupp.
> diff --git a/configure.ac b/configure.ac
> index 1df038b04f3..c523083c346 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2272,6 +2272,16 @@ case ,${enable_languages}, in
>      ;;
>  esac
>
> +# If gcc/ is not in the source tree then we'll not be building a
> +# target compiler, assume in that case we don't want to build any
> +# target libraries or tools.
> +#
> +# This was added primarily for the benefit for binutils-gdb who reuse
> +# this configure script, but don't always have target tools available.
> +if test ! -d ${srcdir}/gcc; then
> +   skipdirs="${skipdirs} ${target_configdirs}"
> +fi
> +
>  # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
>  # $build_configdirs and $target_configdirs.
>  # If we have the source for $noconfigdirs entries, add them to $notsupp.
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955

Reply via email to