[PATCH v1] scripts: Add support for build x86-64 glibc with multiple ISA levels

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Thu Jul 14 12:14:50 GMT 2022



On 04/07/22 01:15, Noah Goldstein via Libc-alpha wrote:
> Tested all added builds on x86-64-v3 machine.
> ---
> I was a bit concerned we would need to check the host (building) machine
> before enabling higher ISA builds, but everything seems to be working.
> 
> I tested the x86-64 v4 build on a v3 machine. If there is a case I missed
> and we do need to check host machine LMK.
> 
> Result running all x86-64 builds:
> 
> rm -rf build-many;  python3 src/glibc/scripts/build-many-glibcs.py build-many/ checkout gcc-vcs-11; python3 src/glibc/scripts/build-many-glibcs.py build-many/ host-libraries --keep=failed; python3 src/glibc/scripts/build-many-glibcs.py build-many compilers x86_64-linux-gnu --keep=failed; python3 src/glibc/scripts/build-many-glibcs.py build-many glibcs x86_64-linux-gnu x86_64-linux-gnu-disable-multi-arch x86_64-linux-gnu-isa-v2 x86_64-linux-gnu-isa-v2-disable-multi-arch x86_64-linux-gnu-isa-v3 x86_64-linux-gnu-isa-v3-disable-multi-arch x86_64-linux-gnu-isa-v4 x86_64-linux-gnu-isa-v4-disable-multi-arch x86_64-linux-gnu-minimal x86_64-linux-gnu-no-pie x86_64-linux-gnu-x32 x86_64-linux-gnu-x32-no-pie x86_64-linux-gnu --keep=failed
> configure.ac:83: installing 'build-aux/compile'
> configure.ac:46: installing 'build-aux/config.guess'
> configure.ac:46: installing 'build-aux/config.sub'
> configure.ac:26: installing 'build-aux/install-sh'
> configure.ac:26: installing 'build-aux/missing'
> Makefile.am: installing './INSTALL'
> Makefile.am: installing 'build-aux/depcomp'
> Makefile.am:32: installing 'build-aux/mdate-sh'
> doc/Makefrag.am:106: warning: user target '$(srcdir)/doc/version.texi' defined here ...
> Makefile.am:155:   'doc/Makefrag.am' included from here
> /usr/share/automake-1.16/am/texi-vers.am: ... overrides Automake target '$(srcdir)/doc/version.texi' defined here
> Makefile.am:32: installing 'build-aux/texinfo.tex'
> parallel-tests: installing 'build-aux/test-driver'
> configure.ac:25: installing 'build-aux/compile'
> configure.ac:9: installing 'build-aux/config.guess'
> configure.ac:9: installing 'build-aux/config.sub'
> configure.ac:14: installing 'build-aux/install-sh'
> configure.ac:14: installing 'build-aux/missing'
> Makefile.am: installing './INSTALL'
> Makefile.am: installing 'build-aux/depcomp'
> configure.ac: installing 'build-aux/ylwrap'
> parallel-tests: installing 'build-aux/test-driver'
> PASS: host-libraries gmp rm
> PASS: host-libraries gmp mkdir
> PASS: host-libraries gmp configure
> PASS: host-libraries gmp build
> PASS: host-libraries gmp check
> PASS: host-libraries gmp install
> PASS: host-libraries gmp cleanup
> PASS: host-libraries mpfr rm
> PASS: host-libraries mpfr mkdir
> PASS: host-libraries mpfr configure
> PASS: host-libraries mpfr build
> PASS: host-libraries mpfr check
> PASS: host-libraries mpfr install
> PASS: host-libraries mpfr cleanup
> PASS: host-libraries mpc rm
> PASS: host-libraries mpc mkdir
> PASS: host-libraries mpc configure
> PASS: host-libraries mpc build
> PASS: host-libraries mpc check
> PASS: host-libraries mpc install
> PASS: host-libraries mpc cleanup
> PASS: host-libraries done
> PASS: compilers-x86_64-linux-gnu check-host-libraries
> PASS: compilers-x86_64-linux-gnu binutils rm
> PASS: compilers-x86_64-linux-gnu binutils mkdir
> PASS: compilers-x86_64-linux-gnu binutils configure
> PASS: compilers-x86_64-linux-gnu binutils build
> PASS: compilers-x86_64-linux-gnu binutils install
> PASS: compilers-x86_64-linux-gnu binutils cleanup
> PASS: compilers-x86_64-linux-gnu linux rm
> PASS: compilers-x86_64-linux-gnu linux mkdir
> PASS: compilers-x86_64-linux-gnu linux install-headers
> PASS: compilers-x86_64-linux-gnu linux cleanup
> PASS: compilers-x86_64-linux-gnu gcc-first rm
> PASS: compilers-x86_64-linux-gnu gcc-first mkdir
> PASS: compilers-x86_64-linux-gnu gcc-first configure
> PASS: compilers-x86_64-linux-gnu gcc-first build
> PASS: compilers-x86_64-linux-gnu gcc-first install
> PASS: compilers-x86_64-linux-gnu gcc-first cleanup
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu rm
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu mkdir
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu configure
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu build
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu install
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu mkdir-lib
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu cleanup
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 rm
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 mkdir
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 configure
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 build
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 install
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 mkdir-lib
> PASS: compilers-x86_64-linux-gnu glibc x86_64-linux-gnu-x32 cleanup
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu rm
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu mkdir
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu configure
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu build
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu install
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu mkdir-lib
> PASS: compilers-x86_64-linux-gnu glibc i686-linux-gnu cleanup
> PASS: compilers-x86_64-linux-gnu gcc rm
> PASS: compilers-x86_64-linux-gnu gcc mkdir
> PASS: compilers-x86_64-linux-gnu gcc configure
> PASS: compilers-x86_64-linux-gnu gcc build
> PASS: compilers-x86_64-linux-gnu gcc install
> PASS: compilers-x86_64-linux-gnu gcc cleanup
> PASS: compilers-x86_64-linux-gnu done
> Makefile:161: warning: overriding recipe for target 'glibcs-x86_64-linux-gnu'
> Makefile:5: warning: ignoring old recipe for target 'glibcs-x86_64-linux-gnu'
> PASS: glibcs-x86_64-linux-gnu check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v3 check-compilers
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v4 check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v2 check-compilers
> PASS: glibcs-x86_64-linux-gnu-minimal check-compilers
> PASS: glibcs-x86_64-linux-gnu-no-pie check-compilers
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie check-compilers
> PASS: glibcs-x86_64-linux-gnu-x32 check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch check-compilers
> PASS: glibcs-x86_64-linux-gnu-isa-v3 rm
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch rm
> PASS: glibcs-x86_64-linux-gnu rm
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch rm
> PASS: glibcs-x86_64-linux-gnu-isa-v4 rm
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch rm
> PASS: glibcs-x86_64-linux-gnu-isa-v2 rm
> PASS: glibcs-x86_64-linux-gnu-minimal rm
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie rm
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch rm
> PASS: glibcs-x86_64-linux-gnu-no-pie rm
> PASS: glibcs-x86_64-linux-gnu-x32 rm
> PASS: glibcs-x86_64-linux-gnu mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch mkdir
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v2 mkdir
> PASS: glibcs-x86_64-linux-gnu-minimal mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v3 mkdir
> PASS: glibcs-x86_64-linux-gnu-no-pie mkdir
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch mkdir
> PASS: glibcs-x86_64-linux-gnu-isa-v4 mkdir
> PASS: glibcs-x86_64-linux-gnu-x32 mkdir
> PASS: glibcs-x86_64-linux-gnu-minimal configure
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch configure
> PASS: glibcs-x86_64-linux-gnu configure
> PASS: glibcs-x86_64-linux-gnu-x32 configure
> PASS: glibcs-x86_64-linux-gnu-isa-v2 configure
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch configure
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie configure
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch configure
> PASS: glibcs-x86_64-linux-gnu-isa-v3 configure
> PASS: glibcs-x86_64-linux-gnu-no-pie configure
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch configure
> PASS: glibcs-x86_64-linux-gnu-isa-v4 configure
> PASS: glibcs-x86_64-linux-gnu-minimal build
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch build
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch build
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch build
> PASS: glibcs-x86_64-linux-gnu-minimal install
> PASS: glibcs-x86_64-linux-gnu-minimal mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch build
> PASS: glibcs-x86_64-linux-gnu build
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie build
> PASS: glibcs-x86_64-linux-gnu-isa-v2 build
> PASS: glibcs-x86_64-linux-gnu-no-pie build
> PASS: glibcs-x86_64-linux-gnu-isa-v4 build
> PASS: glibcs-x86_64-linux-gnu-x32 build
> PASS: glibcs-x86_64-linux-gnu-isa-v3 build
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch install
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch install
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch install
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch install
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch mkdir-lib
> PASS: glibcs-x86_64-linux-gnu install
> PASS: glibcs-x86_64-linux-gnu mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v2 install
> PASS: glibcs-x86_64-linux-gnu-isa-v2 mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie install
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-no-pie install
> PASS: glibcs-x86_64-linux-gnu-no-pie mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v3 install
> PASS: glibcs-x86_64-linux-gnu-isa-v3 mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-isa-v4 install
> PASS: glibcs-x86_64-linux-gnu-isa-v4 mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-x32 install
> PASS: glibcs-x86_64-linux-gnu-x32 mkdir-lib
> PASS: glibcs-x86_64-linux-gnu-minimal check
> PASS: glibcs-x86_64-linux-gnu-minimal save-logs
> PASS: glibcs-x86_64-linux-gnu-minimal cleanup
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch check
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch save-logs
> PASS: glibcs-x86_64-linux-gnu-disable-multi-arch cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch check
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch check
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v3-disable-multi-arch cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v2-disable-multi-arch cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch check
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v4-disable-multi-arch cleanup
> PASS: glibcs-x86_64-linux-gnu check
> PASS: glibcs-x86_64-linux-gnu save-logs
> PASS: glibcs-x86_64-linux-gnu cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v2 check
> PASS: glibcs-x86_64-linux-gnu-isa-v2 save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v2 cleanup
> PASS: glibcs-x86_64-linux-gnu-x32 check
> PASS: glibcs-x86_64-linux-gnu-x32 save-logs
> PASS: glibcs-x86_64-linux-gnu-x32 cleanup
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie check
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie save-logs
> PASS: glibcs-x86_64-linux-gnu-x32-no-pie cleanup
> PASS: glibcs-x86_64-linux-gnu-no-pie check
> PASS: glibcs-x86_64-linux-gnu-no-pie save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v3 check
> PASS: glibcs-x86_64-linux-gnu-isa-v3 save-logs
> PASS: glibcs-x86_64-linux-gnu-no-pie cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v4 check
> PASS: glibcs-x86_64-linux-gnu-isa-v4 save-logs
> PASS: glibcs-x86_64-linux-gnu-isa-v3 cleanup
> PASS: glibcs-x86_64-linux-gnu-isa-v4 cleanup
> 
> 
>  scripts/build-many-glibcs.py | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
> index 35b82752fa..54f9b2318c 100755
> --- a/scripts/build-many-glibcs.py
> +++ b/scripts/build-many-glibcs.py
> @@ -458,7 +458,22 @@ class Context(object):
>                                        {'arch': 'i486',
>                                         'ccopts': '-m32 -march=i486'},
>                                        {'arch': 'i586',
> -                                       'ccopts': '-m32 -march=i586'}])
> +                                       'ccopts': '-m32 -march=i586'},
> +                                      {'variant': 'isa-v2',
> +                                       'ccopts': '-march=x86-64-v2'},
> +                                      {'variant': 'isa-v2-disable-multi-arch',
> +                                       'ccopts': '-march=x86-64-v2',
> +                                       'cfg': ['--disable-multi-arch']},
> +                                      {'variant': 'isa-v3',
> +                                       'ccopts': '-march=x86-64-v3'},
> +                                      {'variant': 'isa-v3-disable-multi-arch',
> +                                       'ccopts': '-march=x86-64-v3',
> +                                       'cfg': ['--disable-multi-arch']},
> +                                      {'variant': 'isa-v4',
> +                                       'ccopts': '-march=x86-64-v4'},
> +                                      {'variant': 'isa-v4-disable-multi-arch',
> +                                       'ccopts': '-march=x86-64-v4',
> +                                       'cfg': ['--disable-multi-arch']}])
>  
>      def add_config(self, **args):
>          """Add an individual build configuration."""

LGTM, although you might want to check with Joseph since it might incur
in more load to the buildbot he keeps.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>


More information about the Libc-alpha mailing list