From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 05642385DC2B for ; Thu, 14 Dec 2023 15:02:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 05642385DC2B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 05642385DC2B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702566136; cv=none; b=guTgLav2x9rCKEKYxTMeaXwfVfKV/6n/EdWwLJmsfCN3Lgz+ielE1l2fP5C3gffSVXXGpmQi/o76lPwLv82LU/P1dtvuMCpWW1o6srLUvNlL9luNIoADMARQ+HnewerTrhulpfXCAYWWHJW+jus89Fo0YdpYHSDkf3xOsPmIIeg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702566136; c=relaxed/simple; bh=kksEfB/BPMqklvSmGC1+dLCuchhmqBXasNVnMrMyqFg=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=sq8fEkkuDmVT1dmmUTAjz3ByeuQ8lxFyLR/D3NvGYP3v6T9iVKEW1cqx2TOkhXo12sWugKrGH+EfvdJnHz1a7zoJyEIwaZdU3HxFgQ5ZmL11hB0iUt40HlQak1PJFa8En0QXjqRG7XdRCGYSKU/8p8kZNH14njKTUy3mlgqulbw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702566128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DwZ7zQ8cXQqDrkCvsBpiKOEYPtC8jWDgBJGIipYqFpQ=; b=N6ZCGr8Pylb250gFsiFVvM5M2M7NNzW+z7/ZrNj0ztIAmwhAHizer9ZOio0PFLcl5HnbeO e3lc9wpNw0AAge5pLmQjqo9ywhTwLnabgsteHUm2K6B8av4zIZRHz0Acp5V65JcVU9WCz/ tZBhHmnaJSqIAGbymPI+Ub2jcKVxH+M= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-488-zAeC-3pqMlucU_X8k3wrKQ-1; Thu, 14 Dec 2023 10:02:03 -0500 X-MC-Unique: zAeC-3pqMlucU_X8k3wrKQ-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3842F3C0F378; Thu, 14 Dec 2023 15:01:56 +0000 (UTC) Received: from t14s.localdomain.com (unknown [10.22.17.251]) by smtp.corp.redhat.com (Postfix) with ESMTP id 15D4D51E3; Thu, 14 Dec 2023 15:01:54 +0000 (UTC) From: David Malcolm To: Joseph Myers Cc: Mark Wielaard , Tobias Burnus , gcc-patches , David Malcolm Subject: [PATCH 0/4] v3 of: Option handling: add documentation URLs Date: Thu, 14 Dec 2023 10:01:39 -0500 Message-Id: <20231214150143.3305661-1-dmalcolm@redhat.com> In-Reply-To: <20231210233506.GC14917@gnu.wildebeest.org> References: <20231210233506.GC14917@gnu.wildebeest.org> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-5.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > Hi David, > > On Fri, Dec 08, 2023 at 06:35:56PM -0500, David Malcolm wrote: > > On Tue, 2023-11-21 at 23:43 +0000, Joseph Myers wrote: > > > On Tue, 21 Nov 2023, Tobias Burnus wrote: > > > > > > > On 21.11.23 14:57, David Malcolm wrote: > > > > > On Tue, 2023-11-21 at 02:09 +0100, Hans-Peter Nilsson wrote: > > > > > > Sorry for barging in though I did try finding the relevant > > > > > > discussion, but is committing this generated stuff necessary? > > > > > > Is it because we don't want to depend on Python being > > > > > > present at build time? > > > > > Partly, yes, [...] > > > > > > > > I wonder how to ensure that this remains up to date. Should there > > > > be an item at > > > > > > > > https://gcc.gnu.org/branching.html and/or > > > > https://gcc.gnu.org/releasing.html similar to the .pot generation? > > > > > > My suggestion earlier in the discussion was that it should be > > > added to the post-commit CI discussed starting at > > > (I > > > think that CI is now in operation). These are generated files > > > that ought to be kept up to date with each commit that affects > > > .opt files, unlike the .pot files where the expectation is that > > > they should be up to date for releases and updated from time to > > > time at other times for submission to the TP. > > > > > I had a go at scripting the testing of this, but I am terrible at shell > > scripts (maybe I should use Python?). Here's what I have so far: > > > > $ cat contrib/regenerate-index-urls.sh > > > > set -x > > > > SRC_DIR=$1 > > BUILD_DIR=$2 > > NUM_JOBS=$3 > > > > # FIXME: error-checking! > > > > mkdir -p $BUILD_DIR || exit 1 > > cd $BUILD_DIR > > $SRC_DIR/configure --disable-bootstrap --enable-languages=c,d,fortran || exit 2 > > make html-gcc -j$NUM_JOBS || exit 3 > > cd gcc || exit 4 > > make regenerate-opt-urls || exit 5 > > cd $SRC_DIR > > (git diff $1 > /dev/null ) && echo "regenerate-opt-urls needs to be run and the results committed" || exit 6 > > > > # e.g. > > # time bash contrib/regenerate-index-urls.sh $(pwd) $(pwd)/../build-ci 64 > > > > This takes about 100 seconds of wallclock on my 64-core box (mostly > > configuring gcc, which as well as the usual sequence of unparallelized > > tests seems to require building libiberty and lto-plugin). Is that > > something we want to do on every commit? Is implementing the CI a > > blocker for getting the patches in? (if so, I'll likely need some help) > > The CI builers don't have 64-cores, but a couple of hundred seconds > shouldn't be an issue to do on each commit (OSUOSL just got us a > second x86_64 container builder for larger jobs). The above can easily > be added to the existing gcc-autoregen builder: > https://builder.sourceware.org/buildbot/#/builders/gcc-autoregen > https://sourceware.org/cgit/builder/tree/builder/master.cfg#n3453 > > Once your patch is in please feel free to sent an email to > buildbot@sourceware.org > https://sourceware.org/mailman/listinfo/buildbot > And we'll add the above build steps and update the autotools > Containerfile to include the fortran (gfortran?) and d (gdc?) build > dependencies. > > Cheers, > > Mark Thanks Mark. Joseph: it seems that we have a way to add CI for this. I refreshed the patches and successfully bootstrapped & regrtested them on x86_64-pc-linux-gnu; here's the v3 version of them. Are these OK for trunk, assuming I followup with adding CI for this? (that said, I disappear for the rest of 2023 at the end of this week, so I'd work on the CI in early January) Thanks Dave David Malcolm (4): options: add gcc/regenerate-opt-urls.py Add generated .opt.urls files opts: add logic to generate options-urls.cc options: wire up options-urls.cc into gcc_urlifier gcc/Makefile.in | 34 +- gcc/ada/gcc-interface/lang.opt.urls | 30 + gcc/analyzer/analyzer.opt.urls | 206 ++ gcc/c-family/c.opt.urls | 1409 ++++++++++++++ gcc/common.opt.urls | 1832 ++++++++++++++++++ gcc/config/aarch64/aarch64.opt.urls | 84 + gcc/config/alpha/alpha.opt.urls | 76 + gcc/config/alpha/elf.opt.urls | 2 + gcc/config/arc/arc-tables.opt.urls | 2 + gcc/config/arc/arc.opt.urls | 260 +++ gcc/config/arm/arm-tables.opt.urls | 2 + gcc/config/arm/arm.opt.urls | 149 ++ gcc/config/arm/vxworks.opt.urls | 2 + gcc/config/avr/avr.opt.urls | 71 + gcc/config/bfin/bfin.opt.urls | 61 + gcc/config/bpf/bpf.opt.urls | 35 + gcc/config/c6x/c6x-tables.opt.urls | 2 + gcc/config/c6x/c6x.opt.urls | 18 + gcc/config/cris/cris.opt.urls | 65 + gcc/config/cris/elf.opt.urls | 8 + gcc/config/csky/csky.opt.urls | 104 + gcc/config/csky/csky_tables.opt.urls | 2 + gcc/config/darwin.opt.urls | 224 +++ gcc/config/dragonfly.opt.urls | 9 + gcc/config/epiphany/epiphany.opt.urls | 52 + gcc/config/fr30/fr30.opt.urls | 8 + gcc/config/freebsd.opt.urls | 9 + gcc/config/frv/frv.opt.urls | 111 ++ gcc/config/ft32/ft32.opt.urls | 20 + gcc/config/fused-madd.opt.urls | 4 + gcc/config/g.opt.urls | 5 + gcc/config/gcn/gcn.opt.urls | 23 + gcc/config/gnu-user.opt.urls | 9 + gcc/config/h8300/h8300.opt.urls | 29 + gcc/config/hpux11.opt.urls | 6 + gcc/config/i386/cygming.opt.urls | 30 + gcc/config/i386/cygwin.opt.urls | 6 + gcc/config/i386/djgpp.opt.urls | 2 + gcc/config/i386/i386.opt.urls | 602 ++++++ gcc/config/i386/mingw-w64.opt.urls | 5 + gcc/config/i386/mingw.opt.urls | 12 + gcc/config/i386/nto.opt.urls | 5 + gcc/config/ia64/ia64.opt.urls | 122 ++ gcc/config/ia64/ilp32.opt.urls | 8 + gcc/config/ia64/vms.opt.urls | 2 + gcc/config/iq2000/iq2000.opt.urls | 14 + gcc/config/linux-android.opt.urls | 11 + gcc/config/linux.opt.urls | 14 + gcc/config/lm32/lm32.opt.urls | 14 + gcc/config/loongarch/loongarch.opt.urls | 64 + gcc/config/lynx.opt.urls | 5 + gcc/config/m32c/m32c.opt.urls | 8 + gcc/config/m32r/m32r.opt.urls | 27 + gcc/config/m68k/ieee.opt.urls | 4 + gcc/config/m68k/m68k-tables.opt.urls | 2 + gcc/config/m68k/m68k.opt.urls | 107 + gcc/config/m68k/uclinux.opt.urls | 2 + gcc/config/mcore/mcore.opt.urls | 38 + gcc/config/microblaze/microblaze.opt.urls | 59 + gcc/config/mips/mips-tables.opt.urls | 2 + gcc/config/mips/mips.opt.urls | 269 +++ gcc/config/mips/sde.opt.urls | 2 + gcc/config/mmix/mmix.opt.urls | 44 + gcc/config/mn10300/mn10300.opt.urls | 32 + gcc/config/moxie/moxie.opt.urls | 14 + gcc/config/msp430/msp430.opt.urls | 53 + gcc/config/nds32/nds32-elf.opt.urls | 5 + gcc/config/nds32/nds32-linux.opt.urls | 5 + gcc/config/nds32/nds32.opt.urls | 57 + gcc/config/netbsd-elf.opt.urls | 5 + gcc/config/netbsd.opt.urls | 6 + gcc/config/nios2/elf.opt.urls | 14 + gcc/config/nios2/nios2.opt.urls | 50 + gcc/config/nvptx/nvptx-gen.opt.urls | 2 + gcc/config/nvptx/nvptx.opt.urls | 29 + gcc/config/openbsd.opt.urls | 6 + gcc/config/or1k/elf.opt.urls | 8 + gcc/config/or1k/or1k.opt.urls | 46 + gcc/config/pa/pa-hpux.opt.urls | 11 + gcc/config/pa/pa-hpux1010.opt.urls | 2 + gcc/config/pa/pa-hpux1111.opt.urls | 2 + gcc/config/pa/pa-hpux1131.opt.urls | 2 + gcc/config/pa/pa.opt.urls | 71 + gcc/config/pa/pa64-hpux.opt.urls | 8 + gcc/config/pdp11/pdp11.opt.urls | 41 + gcc/config/pru/pru.opt.urls | 17 + gcc/config/riscv/riscv.opt.urls | 88 + gcc/config/rl78/rl78.opt.urls | 31 + gcc/config/rpath.opt.urls | 2 + gcc/config/rs6000/476.opt.urls | 2 + gcc/config/rs6000/aix64.opt.urls | 23 + gcc/config/rs6000/darwin.opt.urls | 14 + gcc/config/rs6000/linux64.opt.urls | 4 + gcc/config/rs6000/rs6000-tables.opt.urls | 2 + gcc/config/rs6000/rs6000.opt.urls | 214 ++ gcc/config/rs6000/sysv4.opt.urls | 87 + gcc/config/rtems.opt.urls | 6 + gcc/config/rx/elf.opt.urls | 14 + gcc/config/rx/rx.opt.urls | 54 + gcc/config/s390/s390.opt.urls | 92 + gcc/config/s390/tpf.opt.urls | 8 + gcc/config/sh/sh.opt.urls | 174 ++ gcc/config/sh/superh.opt.urls | 4 + gcc/config/sol2.opt.urls | 21 + gcc/config/sparc/long-double-switch.opt.urls | 6 + gcc/config/sparc/sparc.opt.urls | 108 ++ gcc/config/stormy16/stormy16.opt.urls | 5 + gcc/config/v850/v850.opt.urls | 60 + gcc/config/vax/elf.opt.urls | 2 + gcc/config/vax/vax.opt.urls | 10 + gcc/config/visium/visium.opt.urls | 29 + gcc/config/vms/vms.opt.urls | 8 + gcc/config/vxworks-smp.opt.urls | 5 + gcc/config/vxworks.opt.urls | 20 + gcc/config/xtensa/elf.opt.urls | 5 + gcc/config/xtensa/uclinux.opt.urls | 2 + gcc/config/xtensa/xtensa.opt.urls | 37 + gcc/d/lang.opt.urls | 223 +++ gcc/diagnostic.h | 6 +- gcc/doc/options.texi | 26 + gcc/doc/sourcebuild.texi | 4 + gcc/fortran/lang.opt.urls | 161 ++ gcc/gcc-urlifier.cc | 106 +- gcc/gcc-urlifier.def | 2 - gcc/gcc-urlifier.h | 2 +- gcc/gcc.cc | 2 +- gcc/go/lang.opt.urls | 17 + gcc/lto/lang.opt.urls | 8 + gcc/m2/lang.opt.urls | 118 ++ gcc/opt-functions.awk | 15 + gcc/options-urls-cc-gen.awk | 105 + gcc/opts-diagnostic.h | 3 +- gcc/opts.cc | 95 +- gcc/opts.h | 8 + gcc/params.opt.urls | 2 + gcc/regenerate-opt-urls.py | 408 ++++ gcc/rust/lang.opt.urls | 29 + gcc/testsuite/lib/gcc-dg.exp | 6 + gcc/toplev.cc | 5 +- 139 files changed, 9351 insertions(+), 66 deletions(-) create mode 100644 gcc/ada/gcc-interface/lang.opt.urls create mode 100644 gcc/analyzer/analyzer.opt.urls create mode 100644 gcc/c-family/c.opt.urls create mode 100644 gcc/common.opt.urls create mode 100644 gcc/config/aarch64/aarch64.opt.urls create mode 100644 gcc/config/alpha/alpha.opt.urls create mode 100644 gcc/config/alpha/elf.opt.urls create mode 100644 gcc/config/arc/arc-tables.opt.urls create mode 100644 gcc/config/arc/arc.opt.urls create mode 100644 gcc/config/arm/arm-tables.opt.urls create mode 100644 gcc/config/arm/arm.opt.urls create mode 100644 gcc/config/arm/vxworks.opt.urls create mode 100644 gcc/config/avr/avr.opt.urls create mode 100644 gcc/config/bfin/bfin.opt.urls create mode 100644 gcc/config/bpf/bpf.opt.urls create mode 100644 gcc/config/c6x/c6x-tables.opt.urls create mode 100644 gcc/config/c6x/c6x.opt.urls create mode 100644 gcc/config/cris/cris.opt.urls create mode 100644 gcc/config/cris/elf.opt.urls create mode 100644 gcc/config/csky/csky.opt.urls create mode 100644 gcc/config/csky/csky_tables.opt.urls create mode 100644 gcc/config/darwin.opt.urls create mode 100644 gcc/config/dragonfly.opt.urls create mode 100644 gcc/config/epiphany/epiphany.opt.urls create mode 100644 gcc/config/fr30/fr30.opt.urls create mode 100644 gcc/config/freebsd.opt.urls create mode 100644 gcc/config/frv/frv.opt.urls create mode 100644 gcc/config/ft32/ft32.opt.urls create mode 100644 gcc/config/fused-madd.opt.urls create mode 100644 gcc/config/g.opt.urls create mode 100644 gcc/config/gcn/gcn.opt.urls create mode 100644 gcc/config/gnu-user.opt.urls create mode 100644 gcc/config/h8300/h8300.opt.urls create mode 100644 gcc/config/hpux11.opt.urls create mode 100644 gcc/config/i386/cygming.opt.urls create mode 100644 gcc/config/i386/cygwin.opt.urls create mode 100644 gcc/config/i386/djgpp.opt.urls create mode 100644 gcc/config/i386/i386.opt.urls create mode 100644 gcc/config/i386/mingw-w64.opt.urls create mode 100644 gcc/config/i386/mingw.opt.urls create mode 100644 gcc/config/i386/nto.opt.urls create mode 100644 gcc/config/ia64/ia64.opt.urls create mode 100644 gcc/config/ia64/ilp32.opt.urls create mode 100644 gcc/config/ia64/vms.opt.urls create mode 100644 gcc/config/iq2000/iq2000.opt.urls create mode 100644 gcc/config/linux-android.opt.urls create mode 100644 gcc/config/linux.opt.urls create mode 100644 gcc/config/lm32/lm32.opt.urls create mode 100644 gcc/config/loongarch/loongarch.opt.urls create mode 100644 gcc/config/lynx.opt.urls create mode 100644 gcc/config/m32c/m32c.opt.urls create mode 100644 gcc/config/m32r/m32r.opt.urls create mode 100644 gcc/config/m68k/ieee.opt.urls create mode 100644 gcc/config/m68k/m68k-tables.opt.urls create mode 100644 gcc/config/m68k/m68k.opt.urls create mode 100644 gcc/config/m68k/uclinux.opt.urls create mode 100644 gcc/config/mcore/mcore.opt.urls create mode 100644 gcc/config/microblaze/microblaze.opt.urls create mode 100644 gcc/config/mips/mips-tables.opt.urls create mode 100644 gcc/config/mips/mips.opt.urls create mode 100644 gcc/config/mips/sde.opt.urls create mode 100644 gcc/config/mmix/mmix.opt.urls create mode 100644 gcc/config/mn10300/mn10300.opt.urls create mode 100644 gcc/config/moxie/moxie.opt.urls create mode 100644 gcc/config/msp430/msp430.opt.urls create mode 100644 gcc/config/nds32/nds32-elf.opt.urls create mode 100644 gcc/config/nds32/nds32-linux.opt.urls create mode 100644 gcc/config/nds32/nds32.opt.urls create mode 100644 gcc/config/netbsd-elf.opt.urls create mode 100644 gcc/config/netbsd.opt.urls create mode 100644 gcc/config/nios2/elf.opt.urls create mode 100644 gcc/config/nios2/nios2.opt.urls create mode 100644 gcc/config/nvptx/nvptx-gen.opt.urls create mode 100644 gcc/config/nvptx/nvptx.opt.urls create mode 100644 gcc/config/openbsd.opt.urls create mode 100644 gcc/config/or1k/elf.opt.urls create mode 100644 gcc/config/or1k/or1k.opt.urls create mode 100644 gcc/config/pa/pa-hpux.opt.urls create mode 100644 gcc/config/pa/pa-hpux1010.opt.urls create mode 100644 gcc/config/pa/pa-hpux1111.opt.urls create mode 100644 gcc/config/pa/pa-hpux1131.opt.urls create mode 100644 gcc/config/pa/pa.opt.urls create mode 100644 gcc/config/pa/pa64-hpux.opt.urls create mode 100644 gcc/config/pdp11/pdp11.opt.urls create mode 100644 gcc/config/pru/pru.opt.urls create mode 100644 gcc/config/riscv/riscv.opt.urls create mode 100644 gcc/config/rl78/rl78.opt.urls create mode 100644 gcc/config/rpath.opt.urls create mode 100644 gcc/config/rs6000/476.opt.urls create mode 100644 gcc/config/rs6000/aix64.opt.urls create mode 100644 gcc/config/rs6000/darwin.opt.urls create mode 100644 gcc/config/rs6000/linux64.opt.urls create mode 100644 gcc/config/rs6000/rs6000-tables.opt.urls create mode 100644 gcc/config/rs6000/rs6000.opt.urls create mode 100644 gcc/config/rs6000/sysv4.opt.urls create mode 100644 gcc/config/rtems.opt.urls create mode 100644 gcc/config/rx/elf.opt.urls create mode 100644 gcc/config/rx/rx.opt.urls create mode 100644 gcc/config/s390/s390.opt.urls create mode 100644 gcc/config/s390/tpf.opt.urls create mode 100644 gcc/config/sh/sh.opt.urls create mode 100644 gcc/config/sh/superh.opt.urls create mode 100644 gcc/config/sol2.opt.urls create mode 100644 gcc/config/sparc/long-double-switch.opt.urls create mode 100644 gcc/config/sparc/sparc.opt.urls create mode 100644 gcc/config/stormy16/stormy16.opt.urls create mode 100644 gcc/config/v850/v850.opt.urls create mode 100644 gcc/config/vax/elf.opt.urls create mode 100644 gcc/config/vax/vax.opt.urls create mode 100644 gcc/config/visium/visium.opt.urls create mode 100644 gcc/config/vms/vms.opt.urls create mode 100644 gcc/config/vxworks-smp.opt.urls create mode 100644 gcc/config/vxworks.opt.urls create mode 100644 gcc/config/xtensa/elf.opt.urls create mode 100644 gcc/config/xtensa/uclinux.opt.urls create mode 100644 gcc/config/xtensa/xtensa.opt.urls create mode 100644 gcc/d/lang.opt.urls create mode 100644 gcc/fortran/lang.opt.urls create mode 100644 gcc/go/lang.opt.urls create mode 100644 gcc/lto/lang.opt.urls create mode 100644 gcc/m2/lang.opt.urls create mode 100644 gcc/options-urls-cc-gen.awk create mode 100644 gcc/params.opt.urls create mode 100755 gcc/regenerate-opt-urls.py create mode 100644 gcc/rust/lang.opt.urls -- 2.26.3