[PATCH v2] build-many-glibcs.py: Add --exclude option

Sam James sam@gentoo.org
Tue Dec 24 21:27:06 GMT 2024


"H.J. Lu" <hjl.tools@gmail.com> writes:

> m68k-linux-gnu-coldfire-soft GCC and glibc often won't build due to
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103370
>
> which results in build-many-glibcs.py failure.  Add an option, --exclude,
> to exclude some targets.
>

Reviewed-by: Sam James <sam@gentoo.org>

I think it's uncontroversial enough to push now, just of course be
prepared if Joseph has follow-up comments.

> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> ---
>  scripts/build-many-glibcs.py | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
> index c53aa8964c..62fb51ff3d 100755
> --- a/scripts/build-many-glibcs.py
> +++ b/scripts/build-many-glibcs.py
> @@ -107,7 +107,7 @@ class Context(object):
>      """The global state associated with builds in a given directory."""
>  
>      def __init__(self, topdir, parallelism, keep, replace_sources, strip,
> -                 full_gcc, action, shallow=False):
> +                 full_gcc, action, exclude, shallow=False):
>          """Initialize the context."""
>          self.topdir = topdir
>          self.parallelism = parallelism
> @@ -115,6 +115,7 @@ class Context(object):
>          self.replace_sources = replace_sources
>          self.strip = strip
>          self.full_gcc = full_gcc
> +        self.exclude = exclude
>          self.shallow = shallow
>          self.srcdir = os.path.join(topdir, 'src')
>          self.versions_json = os.path.join(self.srcdir, 'versions.json')
> @@ -502,6 +503,8 @@ class Context(object):
>      def add_config(self, **args):
>          """Add an individual build configuration."""
>          cfg = Config(self, **args)
> +        if self.exclude and cfg.name in self.exclude:
> +            return
>          if cfg.name in self.configs:
>              print('error: duplicate config %s' % cfg.name)
>              exit(1)
> @@ -1884,6 +1887,8 @@ def get_parser():
>                          help='Build GCC with all languages and libsanitizer')
>      parser.add_argument('--shallow', action='store_true',
>                          help='Do not download Git history during checkout')
> +    parser.add_argument('--exclude', dest='exclude',
> +                        help='Targets to be excluded', nargs='*')
>      parser.add_argument('topdir',
>                          help='Toplevel working directory')
>      parser.add_argument('action',
> @@ -1978,7 +1983,7 @@ def main(argv):
>      opts = parser.parse_args(argv)
>      topdir = os.path.abspath(opts.topdir)
>      ctx = Context(topdir, opts.parallelism, opts.keep, opts.replace_sources,
> -                  opts.strip, opts.full_gcc, opts.action,
> +                  opts.strip, opts.full_gcc, opts.action, opts.exclude,
>                    shallow=opts.shallow)
>      ctx.run_builds(opts.action, opts.configs)


More information about the Libc-alpha mailing list