public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] Add mingw container and gcc builder
@ 2023-04-23 22:46 Mark Wielaard
  0 siblings, 0 replies; only message in thread
From: Mark Wielaard @ 2023-04-23 22:46 UTC (permalink / raw)
  To: buildbot; +Cc: Mark Wielaard

---
 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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-04-23 22:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-23 22:46 [PATCH] Add mingw container and gcc builder Mark Wielaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).