From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id C293D3858C50 for ; Sun, 23 Apr 2023 22:46:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C293D3858C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from csb.redhat.com (deer0x03.wildebeest.org [172.31.17.133]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 6932D302BB02; Mon, 24 Apr 2023 00:46:27 +0200 (CEST) Received: by csb.redhat.com (Postfix, from userid 10916) id 3728E10E25C; Mon, 24 Apr 2023 00:46:27 +0200 (CEST) From: Mark Wielaard To: buildbot@sourceware.org Cc: Mark Wielaard Subject: [PATCH] Add mingw container and gcc builder Date: Mon, 24 Apr 2023 00:46:24 +0200 Message-Id: <20230423224624.1208235-1-mark@klomp.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3036.5 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,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: --- builder/containers/Containerfile-fedora-mingw | 35 +++++++++++++++ builder/master.cfg | 45 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 builder/containers/Containerfile-fedora-mingw diff --git a/builder/containers/Containerfile-fedora-mingw b/builder/containers/Containerfile-fedora-mingw new file mode 100644 index 0000000..1bb8657 --- /dev/null +++ b/builder/containers/Containerfile-fedora-mingw @@ -0,0 +1,35 @@ +# Setup the (minimal) image, upgrade and install all devel packages +FROM registry.fedoraproject.org/fedora:latest +RUN dnf upgrade -y && \ + dnf install -y \ + ccache gcc gcc-c++ gcc-gfortran make texinfo autogen \ + automake autoconf libtool git dejagnu file tar \ + isl-devel libmpc-devel mpfr-devel gmp-devel \ + patch util-linux diffutils sharutils coreutils findutils \ + gettext-devel bison flex expat-devel \ + bzip2 bzip2-devel xz xz-devel gzip zlib-devel zstd libzstd-devel \ + mingw64-filesystem mingw64-crt mingw64-winpthreads mingw64-libgcc \ + mingw64-bzip2 mingw64-headers mingw64-zlib mingw64-cpp \ + mingw64-binutils mingw64-gcc mingw64-gcc-c++ mingw64-libzip \ + mingw64-termcap mingw64-libstdc++ mingw64-gmp mingw64-mpfr \ + mingw64-readline mingw64-zstd mingw64-xz-libs mingw64-libgomp \ + mingw64-libffi mingw64-gcc-gfortran mingw64-expat mingw64-win-iconv \ + wget buildbot-worker && \ + dnf clean all + +# Setup user with same id as host user id. +RUN adduser -u 1001 -U -d /home/builder -m builder + +# Set image specific environment variables used by bb-start.sh +ENV IMAGE_NAME=fedora-mingw64 +ENV CCACHE_LIBDIR=/usr/lib64/ccache + +# Put bb-start.sh script in homedir and make it executable +RUN wget -O /home/builder/bb-start.sh \ + 'https://sourceware.org/git/?p=builder.git;a=blob_plain;f=builder/containers/bb-start.sh' \ + && chmod 755 /home/builder/bb-start.sh + +# And now run the script +USER builder +WORKDIR /home/builder +ENTRYPOINT /home/builder/bb-start.sh diff --git a/builder/master.cfg b/builder/master.cfg index 278dc98..cb2ee6c 100644 --- a/builder/master.cfg +++ b/builder/master.cfg @@ -954,6 +954,7 @@ gcc_build_scheduler = schedulers.SingleBranchScheduler( branch="master"), reason="gcc project master branch update", builderNames=["gcc-fedora-x86_64", + "gcc-fedora-mingw", "gcc-fedora-arm64", "gcc-gentoo-sparc", "gcc-rawhide-x86_64", @@ -3258,6 +3259,28 @@ gcc_build_configure_step = steps.Configure( haltOnFailure=True, logfiles={"config.log": "config.log"}) +gcc_mingw_configure_step = steps.Configure( + workdir='gcc-build', + command=['../gcc/configure', + '--with-gnu-as', + '--with-gnu-ld', + '--without-newlib', + '--disable-multilib', + '--disable-plugin', + '--with-system-zlib', + '--disable-nls', + '--without-included-gettext', + '--disable-win32-registry', + '--enable-languages=c,c++,fortran,rust', + '--enable-threads=posix', + '--with-sysroot=/usr/x86_64-w64-mingw32/sys-root', + '--enable-libstdcxx-backtrace', + '--disable-libstdcxx-pch', + '--target=x86_64-w64-mingw32'], + name='configure', + haltOnFailure=True, + logfiles={"config.log": "config.log"}) + gcc_build_make_clean_step = steps.ShellCommand( workdir='gcc-build', command=["make", "clean"], @@ -3308,6 +3331,28 @@ gcc_build_factory.addStep(steps.Compile( haltOnFailure=True)) gcc_build_factory.addStep(gcc_rm_build_step) +gcc_mingw_factory = util.BuildFactory() +gcc_mingw_factory.addStep(gcc_build_git_step) +gcc_mingw_factory.addStep(gcc_rm_build_step) +gcc_mingw_factory.addStep(gcc_mingw_configure_step) +gcc_mingw_factory.addStep(steps.Compile( + workdir='gcc-build', + command=addOutputSync.withArgs(['make', + util.Interpolate('-j%(prop:ncpus)s')]), + name='make', + haltOnFailure=True)) +gcc_mingw_factory.addStep(gcc_rm_build_step) + +gcc_fedora_mingw_builder = util.BuilderConfig( + name="gcc-fedora-mingw", + collapseRequests=True, + properties={'container-file': + readContainerFile('fedora-mingw')}, + workernames=vm_workers, + tags=["gcc", "fedora", "mingw"], + factory=gcc_mingw_factory) +c['builders'].append(gcc_fedora_mingw_builder) + gcc_fedora_x86_64_builder = util.BuilderConfig( name="gcc-fedora-x86_64", collapseRequests=True, -- 2.31.1