On Sat, 29 Mar 2025, Jakub Jelinek wrote:

> Hi!
> 
> Enabling cobol explicitly (at least unconditionally) in gcc_release has the
> disadvantage that the script no longer works for GCC <= 14, I think it would
> be better to keep it working for all still supported release branches.
> 
> And as mentioned in the PR, we still don't generate the
> --enable-generated-files-in-srcdir extras/infos/man pages for languages
> not actually enabled.
> Using --enable-languages=all would mean gcc_release takes far longer and
> more importantly, various FEs have extra dependencies, Ada requires a
> working Ada compiler (furthermore not newer than the gcc release, so if
> I run this on a system with say GCC 15 installed, even when I have Ada
> installed, I won't be able to gcc_release GCC 14 or 13 etc.), D working D
> compiler, Go takes a long time to build libgo.
> 
> So, the following patch instead takes similar approach to what
> make regenerate-opt-urls
> takes, it generates stuff even for non-enabled languages.
> For most languages it works just fine and is a matter of say for cobol
> make cobol.srcextra cobol.srcinfo cobol.srcman
> The only problem is Modula 2, which has some messed up dependencies and
> when the FE is not enabled, this will try to build the whole FE as well and
> fail.  I think it would be useful to fix that but at least before that is
> fixed on the trunk and all release branches, the following patch just
> conditionally (so that it works even for GCC 12 which doesn't have Modula 2)
> enables also m2.
> 
> And lastly, libffi seems to be only enabled for Go (and maybe D), I'd prefer
> not to enable those languages for the reasons stated above, so if we really
> need libffi.info in release tarballs (despite libffi being used only as
> implementation detail and not installed), the patch just generates it by
> hand.

Do we even install libffi.info?  I can't find any handling of it in my
spec files building GCC with go enabled.

> Tested on x86_64-linux, ok for trunk?

OK.

Richard.

> 2025-03-29  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR other/119510
>       * gcc_release: Use --enable-languages=c,c++,lto and if m2 is available,
>       with,m2 appended to that.  Check for all possible languages and run
>       make $lang.srcextra $lang.srcinfo $lang.srcman for those.  Add
>       libffi/doc/libffi.info.
> 
> --- maintainer-scripts/gcc_release.jj 2025-03-28 15:44:23.714526549 +0100
> +++ maintainer-scripts/gcc_release    2025-03-28 19:37:33.955981486 +0100
> @@ -266,10 +266,28 @@ EOF
>       '' | 0* | *[!0-9]*) num_cpus=1;;
>        esac
>      fi
> +    enable_langs=c,c++,lto
> +    if [ -f ${SOURCE_DIRECTORY}/gcc/m2/Make-lang.in ]; then
> +      enable_langs=$enable_langs,m2
> +    fi
>      contrib/gcc_build -d ${SOURCE_DIRECTORY} -o ${OBJECT_DIRECTORY} \
> -      -c "--enable-languages=default,cobol 
> --enable-generated-files-in-srcdir --disable-multilib" \
> +      -c "--enable-languages=$enable_langs 
> --enable-generated-files-in-srcdir --disable-multilib" \
>        -m "-j$num_cpus" build || \
>        error "Could not rebuild GCC"
> +    cd ${OBJECT_DIRECTORY}/gcc
> +    all_languages=`sed -n -e '/"all_languages"/s/^.*=//p' config.status \
> +                | sed -e 's/"//g'`
> +    for lang in $all_languages; do
> +      make $lang.srcextra $lang.srcinfo $lang.srcman || \
> +     error "Could not build GCC $lang source extras"
> +    done
> +    if [ -d ${SOURCE_DIRECTORY}/libffi/doc ]; then
> +      makeinfo --split-size=5000000  -I ${SOURCE_DIRECTORY}/gcc/doc/include \
> +     -I ${SOURCE_DIRECTORY}/libffi/doc/ -o 
> ${SOURCE_DIRECTORY}/libffi/doc/libffi.info \
> +     ${SOURCE_DIRECTORY}/libffi/doc/libffi.texi || \
> +     error "Could not build libffi.info"
> +    fi
> +    cd ${SOURCE_DIRECTORY}
>    fi
>  
>    # Move message catalogs to source directory.
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to