From nobody Fri May 3 08:25:04 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1542573338245184.38579823852808; Sun, 18 Nov 2018 12:35:38 -0800 (PST) Received: from localhost ([::1]:53317 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gOTn1-0006jD-6S for importer@patchew.org; Sun, 18 Nov 2018 15:35:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36437) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gOTl2-0005Qy-Hc for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gOTl0-0000g6-Dp for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:28 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:36524) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gOTl0-0000fX-4o for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:26 -0500 Received: by mail-wr1-x444.google.com with SMTP id z13-v6so29874334wrs.3 for ; Sun, 18 Nov 2018 12:33:26 -0800 (PST) Received: from x1.local (2.red-83-59-163.dynamicip.rima-tde.net. [83.59.163.2]) by smtp.gmail.com with ESMTPSA id i7-v6sm42788321wrb.3.2018.11.18.12.33.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Nov 2018 12:33:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NRye5gPpOxd9BKeSBcgbdV4z7ohErT99/HR27fCI/fw=; b=urhbB6m43dJKRDcNPGgTDjTP2NZ4Y8vnFQQ36iRc9F4xyv+1n5dALVFN0fFq6M4VYi 60suHXQVaZ32Q6COlZkV7RSZqRYJEiAm4+RohvbFoD6DjvtiNKsyqAnBeps+LN7ei0rT vIUJ6pY91oaj/c1fhyi4t1PBuzW8mKYDkHKIO29gf2DcUNGUIKU9vT6O3CGo5O03L+OH reyh+IaHl2lmf+zmbh8ZS63Q3ABstlrKqRWZAWRKGUz9iewZaTgs0Sf6yCrOFxAA5kZ5 L6Vpq2tqEtzdehvcxZ5FXxsH+NzelcsVsczb+HpD6HjbvI4oSjlTsoLZ5hp5FUB8rQUz mGbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=NRye5gPpOxd9BKeSBcgbdV4z7ohErT99/HR27fCI/fw=; b=CcBBB+836iAg2KPU9QXUyC1qk8whqG6u4ql3riF0IgaYQy2WWvQwcC/eFi+59mmH+P P51k3JW28Lk3EBBKPn2CU2jYnr7D14Bwbw5c/f0dD2gEmfA0SbCD8OPYt8nBheUBsAMA ao5g1iIX2MWFhD2fucfEFQ8T4n01NUxlQewXUsTGz/XiKyzNhy0tUcUsVUEVOrSSYqiT W1c5YNR63M4tfyos5uueO8wf9YlaNyZv8PXlqxKXByfcUfE6h2N6nZ6iD2XDgt1xmE0q tT/6swoGbFxCbeiH5jTaL3HErkCKQ/2pBMGbzlxA2QJJM9Ht4xaAbCiGVI2bs22jcWY5 VbSA== X-Gm-Message-State: AA+aEWbd6LSPuXii8VxlNdlMrEjIB18L4G7JiPf4QgF6dQPm5+jSq9gh NCAwaVwuWqrJu2FGV2lcR7w= X-Google-Smtp-Source: AFSGD/X+UtO22BMKqod6/RyyXzpeXf1Ad1EbzJKuO9+373hTJq7FvLWsh22O04Daulbv44gSQhjyFQ== X-Received: by 2002:adf:e6ce:: with SMTP id y14mr5876745wrm.239.1542573204879; Sun, 18 Nov 2018 12:33:24 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Fredrik Noring , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Fam Zheng Date: Sun, 18 Nov 2018 21:33:11 +0100 Message-Id: <20181118203312.5376-2-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181118203312.5376-1-f4bug@amsat.org> References: <20181118203312.5376-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [RFC PATCH 1/2] docker: Add gentoo-mipsr5900el-cross image X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mike Frysinger , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This image is based on Gentoo and the toolchain is built using crossdev. Recipe from: https://lists.gnu.org/archive/html/qemu-devel/2018-09/msg03944.html Suggested-by: Fredrik Noring Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- TODO: - Add Fredrik Noring S-o-b in his patches - Check patch merged upstream tests/docker/Makefile.include | 6 + .../gentoo-mipsr5900el-cross.docker | 39 ++++ .../binutils-v2.30-ps2-llsc.patch | 36 +++ .../crossdev.conf | 5 + .../gcc-v7.2.0-ps2-llsc.patch | 23 ++ .../gcc-v7.2.0-ps2.patch | 219 ++++++++++++++++++ 6 files changed, 328 insertions(+) create mode 100644 tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker create mode 100644 tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docke= r.d/binutils-v2.30-ps2-llsc.patch create mode 100644 tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docke= r.d/crossdev.conf create mode 100644 tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docke= r.d/gcc-v7.2.0-ps2-llsc.patch create mode 100644 tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docke= r.d/gcc-v7.2.0-ps2.patch diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 9467e9d088..6ca615206f 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -119,6 +119,12 @@ docker-image-debian-sparc64-cross: docker-image-debian= -sid docker-image-debian-mips64-cross: docker-image-debian-sid docker-image-debian-riscv64-cross: docker-image-debian-sid docker-image-debian-powerpc-cross: docker-image-debian-sid +docker-image-gentoo-mipsr5900el-cross: EXTRA_FILES:=3D$(addprefix \ + $(SRC_PATH)/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/= ,\ + crossdev.conf \ + binutils-v2.30-ps2-llsc.patch \ + gcc-v7.2.0-ps2.patch \ + gcc-v7.2.0-ps2-llsc.patch) docker-image-travis: NOUSER=3D1 =20 # Specialist build images, sometimes very limited tools diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker b/tes= ts/docker/dockerfiles/gentoo-mipsr5900el-cross.docker new file mode 100644 index 0000000000..dbc2eb007b --- /dev/null +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker @@ -0,0 +1,39 @@ +# +# Docker mipsel (r5900) cross-compiler target +# +# Using multi-stage builds, this image requires docker-17.05.0 or later. +# (See: https://github.com/gentoo/gentoo-docker-images) +# +# SPDX-License-Identifier: GPL-2.0-or-later + +# name the portage image +FROM gentoo/portage:latest as portage + +# image is based on stage3-amd64 +FROM gentoo/stage3-amd64:latest + +# copy the entire portage volume in +COPY --from=3Dportage /usr/portage /usr/portage + +MAINTAINER Philippe Mathieu-Daud=C3=A9 + +# continue with image build ... +RUN emerge -qv sys-devel/crossdev + +# set CROSSDEV_OVERLAY to /usr/local/portage-crossdev +RUN mkdir -p /usr/local/portage-crossdev/{profiles,metadata} && \ + echo 'crossdev' > /usr/local/portage-crossdev/profiles/repo_name && \ + echo 'masters =3D gentoo' > /usr/local/portage-crossdev/metadata/layou= t.conf && \ + chown -R portage:portage /usr/local/portage-crossdev && \ + mkdir -p /etc/portage/repos.conf +ADD crossdev.conf /etc/portage/repos.conf/crossdev.conf + +# Fredrik's patches +RUN mkdir -p /etc/portage/patches/cross-mipsr5900el-unknown-linux-gnu/{bin= utils,gcc} +ADD binutils-v2.30-ps2-llsc.patch /etc/portage/patches/cross-mipsr5900el-u= nknown-linux-gnu/binutils +ADD gcc-v7.2.0-ps2.patch /etc/portage/patches/cross-mipsr5900el-unknown-li= nux-gnu/gcc +ADD gcc-v7.2.0-ps2-llsc.patch /etc/portage/patches/cross-mipsr5900el-unkno= wn-linux-gnu/gcc + +RUN crossdev -s3 -t mipsr5900el-unknown-linux-gnu --binutils ">=3D2.30" --= gcc ">=3D7.2.0" + +ENV QEMU_CONFIGURE_OPTS --cross-prefix=3Dmipsr5900el-unknown-linux-gnu- diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/bin= utils-v2.30-ps2-llsc.patch b/tests/docker/dockerfiles/gentoo-mipsr5900el-cr= oss.docker.d/binutils-v2.30-ps2-llsc.patch new file mode 100644 index 0000000000..62ecc3267a --- /dev/null +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/binutils-v= 2.30-ps2-llsc.patch @@ -0,0 +1,36 @@ +diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c +index 1cbcbc6..0986b0a 100644 +--- a/opcodes/mips-opc.c ++++ b/opcodes/mips-opc.c +@@ -1280,11 +1280,11 @@ const struct mips_opcode mips_builtin_opcodes[] = =3D + {"li.s", "t,f", 0, (int) M_LI_S, INSN_MACRO, INSN2_M_FP_S, I1, 0, = 0 }, + {"li.s", "T,l", 0, (int) M_LI_SS, INSN_MACRO, INSN2_M_FP_S, I1, 0,= 0 }, + {"ll", "t,+j(b)", 0x7c000036, 0xfc00007f, WR_1|RD_3|LM, 0, I37, 0, 0= }, +-{"ll", "t,o(b)", 0xc0000000, 0xfc000000, WR_1|RD_3|LM, 0, I2, 0, EE|= I37 }, +-{"ll", "t,A(b)", 0, (int) M_LL_AB, INSN_MACRO, 0, I2, 0, EE }, ++{"ll", "t,o(b)", 0xc0000000, 0xfc000000, WR_1|RD_3|LM, 0, I2, 0, I37= }, ++{"ll", "t,A(b)", 0, (int) M_LL_AB, INSN_MACRO, 0, I2, 0, 0 }, + {"lld", "t,+j(b)", 0x7c000037, 0xfc00007f, WR_1|RD_3|LM, 0, I69, 0, = 0 }, +-{"lld", "t,o(b)", 0xd0000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, EE= |I69 }, +-{"lld", "t,A(b)", 0, (int) M_LLD_AB, INSN_MACRO, 0, I3, 0, EE }, ++{"lld", "t,o(b)", 0xd0000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, I6= 9 }, ++{"lld", "t,A(b)", 0, (int) M_LLD_AB, INSN_MACRO, 0, I3, 0, 0 }, + {"lq", "t,o(b)", 0x78000000, 0xfc000000, WR_1|RD_3|LM, 0, MMI, 0, 0 = }, + {"lq", "t,A(b)", 0, (int) M_LQ_AB, INSN_MACRO, 0, MMI, 0, 0 }, + {"lqc2", "+7,o(b)", 0xd8000000, 0xfc000000, RD_3|WR_C2|LM, 0, EE, 0, = 0 }, +@@ -1810,11 +1810,11 @@ const struct mips_opcode mips_builtin_opcodes[] = =3D + {"sb", "t,o(b)", 0xa0000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 }, + {"sb", "t,A(b)", 0, (int) M_SB_AB, INSN_MACRO, 0, I1, 0, 0 }, + {"sc", "t,+j(b)", 0x7c000026, 0xfc00007f, MOD_1|RD_3|SM, 0, I37, 0, = 0 }, +-{"sc", "t,o(b)", 0xe0000000, 0xfc000000, MOD_1|RD_3|SM, 0, I2, 0, EE= |I37 }, +-{"sc", "t,A(b)", 0, (int) M_SC_AB, INSN_MACRO, 0, I2, 0, EE }, ++{"sc", "t,o(b)", 0xe0000000, 0xfc000000, MOD_1|RD_3|SM, 0, I2, 0, I3= 7 }, ++{"sc", "t,A(b)", 0, (int) M_SC_AB, INSN_MACRO, 0, I2, 0, 0 }, + {"scd", "t,+j(b)", 0x7c000027, 0xfc00007f, MOD_1|RD_3|SM, 0, I69, 0,= 0 }, +-{"scd", "t,o(b)", 0xf0000000, 0xfc000000, MOD_1|RD_3|SM, 0, I3, 0, E= E|I69 }, +-{"scd", "t,A(b)", 0, (int) M_SCD_AB, INSN_MACRO, 0, I3, 0, EE }, ++{"scd", "t,o(b)", 0xf0000000, 0xfc000000, MOD_1|RD_3|SM, 0, I3, 0, I= 69 }, ++{"scd", "t,A(b)", 0, (int) M_SCD_AB, INSN_MACRO, 0, I3, 0, 0 }, + /* The macro has to be first to handle o32 correctly. */ + {"sd", "t,A(b)", 0, (int) M_SD_AB, INSN_MACRO, 0, I1, 0, 0 }, + {"sd", "t,o(b)", 0xfc000000, 0xfc000000, RD_1|RD_3|SM, 0, I3, 0, 0 }, diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/cro= ssdev.conf b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/cro= ssdev.conf new file mode 100644 index 0000000000..b8fa368c1c --- /dev/null +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/crossdev.c= onf @@ -0,0 +1,5 @@ +[crossdev] +location =3D /usr/local/portage-crossdev +priority =3D 10 +masters =3D gentoo +auto-sync =3D no diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/gcc= -v7.2.0-ps2-llsc.patch b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.= docker.d/gcc-v7.2.0-ps2-llsc.patch new file mode 100644 index 0000000000..59bc0e6e83 --- /dev/null +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/gcc-v7.2.0= -ps2-llsc.patch @@ -0,0 +1,23 @@ +diff --git a/gcc/config.gcc b/gcc/config.gcc +index a9196cd..5b497f6 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -3558,14 +3558,14 @@ fi + # Infer a default setting for --with-llsc. + if test x$with_llsc =3D x; then + case ${target} in +- mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) +- # The R5900 doesn't support LL(D) and SC(D). +- with_llsc=3Dno +- ;; + mips*-*-linux*) + # The kernel emulates LL and SC where necessary. + with_llsc=3Dyes + ;; ++ mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) ++ # The R5900 doesn't support LL(D) and SC(D). ++ with_llsc=3Dno ++ ;; + esac + fi +=20 diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/gcc= -v7.2.0-ps2.patch b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docke= r.d/gcc-v7.2.0-ps2.patch new file mode 100644 index 0000000000..a3337dbf61 --- /dev/null +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker.d/gcc-v7.2.0= -ps2.patch @@ -0,0 +1,219 @@ +commit ff785b9af62d5dfe1c0e3d3cf0052e7b5cf281ad +Author: Rick Gaiser +Date: Thu Apr 26 22:30:11 2018 +0200 + + Apply gcc-7.2.0-libgcc.patch from uyjulian + +diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c +index 6bfd86a..2996ebc 100644 +--- a/gcc/config/mips/mips.c ++++ b/gcc/config/mips/mips.c +@@ -19747,6 +19747,11 @@ mips_option_override (void) + error ("unsupported combination: %s", + "-march=3Dr5900 -mhard-float -mdouble-float"); +=20 ++ /* The R5900 does not support some MIPS16 instructions. */ ++ if (TARGET_MIPS5900 && ((mips_base_compression_flags & MASK_MIPS16) != =3D 0)) ++ error("unsupported combination: %s", ++ "-march=3Dr5900 -mips16"); ++ + /* If a -mlong* option was given, check that it matches the ABI, + otherwise infer the -mlong* setting from the other options. */ + if ((target_flags_explicit & MASK_LONG64) !=3D 0) +diff --git a/libgcc/config.host b/libgcc/config.host +index bedcf10..4a85a15 100644 +--- a/libgcc/config.host ++++ b/libgcc/config.host +@@ -144,7 +144,11 @@ mips*-*-*) + cpu_type=3Dmips + tmake_file=3D"mips/t-mips" + if test "${libgcc_cv_mips_hard_float}" =3D yes; then ++ if test "${libgcc_cv_mips_single_float}" =3D yes; then ++ tmake_file=3D"${tmake_file} t-hardfp-sf t-hardfp" ++ else + tmake_file=3D"${tmake_file} t-hardfp-sfdf t-hardfp" ++ fi + else + tmake_file=3D"${tmake_file} t-softfp-sfdf" + fi +@@ -858,19 +862,16 @@ mips*-*-netbsd*) # NetBSD/mips, either endian. + mips*-*-linux*) # Linux MIPS, either endian. + extra_parts=3D"$extra_parts crtfastmath.o" + tmake_file=3D"${tmake_file} t-crtfm" +- case ${host} in +- mips64r5900* | mipsr5900*) +- # The MIPS16 support code uses floating point +- # instructions that are not supported on r5900. +- ;; +- *) ++ if test "${libgcc_cv_mips16}" =3D yes; then + tmake_file=3D"${tmake_file} mips/t-mips16 t-slibgcc-libgcc" +- ;; +- esac ++ fi + md_unwind_header=3Dmips/linux-unwind.h + ;; + mips*-sde-elf*) +- tmake_file=3D"$tmake_file mips/t-crtstuff mips/t-mips16" ++ tmake_file=3D"$tmake_file mips/t-crtstuff" ++ if test "${libgcc_cv_mips16}" =3D yes; then ++ tmake_file=3D"${tmake_file} mips/t-mips16" ++ fi + case "${with_newlib}" in + yes) + # newlib / libgloss. +@@ -900,7 +901,10 @@ mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mips-*-elf* | mipsel-*-elf*) +- tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" ++ tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff" ++ if test "${libgcc_cv_mips16}" =3D yes; then ++ tmake_file=3D"${tmake_file} mips/t-mips16" ++ fi + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mipsr5900-*-elf* | mipsr5900el-*-elf*) +@@ -908,7 +912,10 @@ mipsr5900-*-elf* | mipsr5900el-*-elf*) + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mips64-*-elf* | mips64el-*-elf*) +- tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" ++ tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff" ++ if test "${libgcc_cv_mips16}" =3D yes; then ++ tmake_file=3D"${tmake_file} mips/t-mips16" ++ fi + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mips64r5900-*-elf* | mips64r5900el-*-elf*) +@@ -924,7 +931,10 @@ mips64orion-*-elf* | mips64orionel-*-elf*) + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mips*-*-rtems*) +- tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" ++ tmake_file=3D"$tmake_file mips/t-elf mips/t-crtstuff" ++ if test "${libgcc_cv_mips16}" =3D yes; then ++ tmake_file=3D"${tmake_file} mips/t-mips16" ++ fi + extra_parts=3D"$extra_parts crti.o crtn.o" + ;; + mips-wrs-vxworks) +diff --git a/libgcc/config/t-hardfp-sf b/libgcc/config/t-hardfp-sf +new file mode 100644 +index 0000000..e63ad47 +--- /dev/null ++++ b/libgcc/config/t-hardfp-sf +@@ -0,0 +1,32 @@ ++# Copyright (C) 2014-2015 Free Software Foundation, Inc. ++ ++# This file is part of GCC. ++ ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++ ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++hardfp_float_modes :=3D sf ++# di and ti are provided by libgcc2.c where needed. ++hardfp_int_modes :=3D si ++hardfp_extensions :=3D ++hardfp_truncations :=3D ++ ++# Emulate 64 bit float: ++FPBIT =3D true ++DPBIT =3D true ++# Don't build functions handled by 32 bit hardware: ++LIB2FUNCS_EXCLUDE =3D _addsub_sf _mul_sf _div_sf \ ++ _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ ++ _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf \ ++ _thenan_sf _sf_to_usi _usi_to_sf +diff --git a/libgcc/configure b/libgcc/configure +index 42dda7f..716bba9 100644 +--- a/libgcc/configure ++++ b/libgcc/configure +@@ -4871,6 +4871,48 @@ rm -f core conftest.err conftest.$ac_objext conftes= t.$ac_ext + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_mips_hard_flo= at" >&5 + $as_echo "$libgcc_cv_mips_hard_float" >&6; } ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target is= single-float" >&5 ++$as_echo_n "checking whether the target is single-float... " >&6; } ++if test "${libgcc_cv_mips_single_float+set}" =3D set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#ifndef __mips_single_float ++ #error FOO ++ #endif ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libgcc_cv_mips_single_float=3Dyes ++else ++ libgcc_cv_mips_single_float=3Dno ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_mips_single_f= loat" >&5 ++$as_echo "$libgcc_cv_mips_single_float" >&6; } ++ # Some targets (i.e. R5900) don't support some MIPS16 instructions. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target su= pports the MIPS16 ASE" >&5 ++$as_echo_n "checking whether the target supports MIPS16 ASE... " >&6; } ++if test "${libgcc_cv_mips16+set}" =3D set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ CFLAGS_hold=3D$CFLAGS ++ CFLAGS=3D"$CFLAGS -mips16" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int i; ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ libgcc_cv_mips16=3Dyes ++else ++ libgcc_cv_mips16=3Dno ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS=3D$CFLAGS_hold ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgcc_cv_mips16" >&5 ++$as_echo "$libgcc_cv_mips16" >&6; } + esac +=20 + case ${host} in +diff --git a/libgcc/configure.ac b/libgcc/configure.ac +index 6bcaad6..5bce467 100644 +--- a/libgcc/configure.ac ++++ b/libgcc/configure.ac +@@ -292,6 +292,23 @@ mips*-*-*) + #endif], + [libgcc_cv_mips_hard_float=3Dyes], + [libgcc_cv_mips_hard_float=3Dno])]) ++ AC_CACHE_CHECK([whether the target is single-float], ++ [libgcc_cv_mips_single_float], ++ [AC_COMPILE_IFELSE( ++ [#ifndef __mips_single_float ++ #error FOO ++ #endif], ++ [libgcc_cv_mips_single_float=3Dyes], ++ [libgcc_cv_mips_single_float=3Dno])]) ++ # Some targets (i.e. R5900) don't support some MIPS16 instructions. ++ AC_CACHE_CHECK([whether the target supports the MIPS16 ASE], ++ [libgcc_cv_mips16], ++ [CFLAGS_hold=3D$CFLAGS ++ CFLAGS=3D"$CFLAGS -mips16" ++ AC_COMPILE_IFELSE([[int i;]], ++ [libgcc_cv_mips16=3Dyes], ++ [libgcc_cv_mips16=3Dno]) ++ CFLAGS=3D$CFLAGS_hold]) + esac +=20 + case ${host} in --=20 2.17.2 From nobody Fri May 3 08:25:04 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1542573337553449.0027212497296; Sun, 18 Nov 2018 12:35:37 -0800 (PST) Received: from localhost ([::1]:53315 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gOTmw-0006ff-Jm for importer@patchew.org; Sun, 18 Nov 2018 15:35:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36428) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gOTl2-0005Qx-6x for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gOTl1-0000gi-Dn for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:28 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:42467) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gOTl1-0000gH-80 for qemu-devel@nongnu.org; Sun, 18 Nov 2018 15:33:27 -0500 Received: by mail-wr1-x435.google.com with SMTP id u5-v6so24579694wrn.9 for ; Sun, 18 Nov 2018 12:33:27 -0800 (PST) Received: from x1.local (2.red-83-59-163.dynamicip.rima-tde.net. [83.59.163.2]) by smtp.gmail.com with ESMTPSA id i7-v6sm42788321wrb.3.2018.11.18.12.33.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Nov 2018 12:33:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0qkZ/9AxgSSXVjGxCjpFcOBuHwR6ugsDz9CODXIsqUk=; b=EmNnBJo+gXpnl+7noPGuvwRUcgESx/CtwUgn7aGNdSTDg5VUNp4L/gF4D9Woz+qyv6 2O+Hrs5484sZfdqNyGw3sVoF7cjEnjhySuUM0Ikv/148fo0EWXo0Z796WH9h8bXV2K8l CMt3QzUMvsanVSN/+3ez5sXapdtioveYVCyxcu/x/oAgTnOsdC5JKWR4t2E0ODdr3fcu Xc0fkKBrF2iZjg8Ja1bhKlvDgiYqhVgW4F173UFyvyAqEbxjQY8wqMZ09/jvryijBLhP sR5n3EbBEtrtBFwqa5ejQ37lELZBAz0f9lO9qfZNXlspOEAg8BSj6Ma3hw7TW024PFUZ ehYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=0qkZ/9AxgSSXVjGxCjpFcOBuHwR6ugsDz9CODXIsqUk=; b=C4paWZOXn7Wp1csheRPwrgDB7k4qKAI/37SyK8qztUcvznvkIwEgwpoVXXK3Am0S3K oGHfIqlXXw2yUeIljZhmiZGabRZ/UjjazFlUpIClCtA4hQRRDAXWJ7BQHQ73L/ONFVi/ JT6YWPIPlXCko4X66QRD4m8s6sU8mRIP4rGeB+P5sKGmDQZM58wKF03YR5V3eQbegzVa sE2TR+vU5P51mkdlCcvTpuosfzZat+41S57kMT6BcLjNyZ6VMzlxQVHknSNu7Icl8++Y ECgQ4jUBujRfKR+x4b5NKGOAmqE8ZJxI7t0sFO2DJdWCDLcZkYzA7VaIGZrP10JsA23d W1Nw== X-Gm-Message-State: AGRZ1gJN2fHyD6E1Zqk2FZS7SIbtuWvyXoLWobu/bDqxAZbtnwsyYNAM hRnjpGL5+zFTcoL5IrutI24= X-Google-Smtp-Source: AJdET5c4LWdF8x9lc3+yrqLkovSeGNmt4UCfEcmeZ2U7Y0xibS6K2Scj9yQwslfe9uYbKo2359vh4Q== X-Received: by 2002:a5d:52c8:: with SMTP id r8-v6mr16236446wrv.123.1542573206241; Sun, 18 Nov 2018 12:33:26 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Fredrik Noring , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Fam Zheng Date: Sun, 18 Nov 2018 21:33:12 +0100 Message-Id: <20181118203312.5376-3-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181118203312.5376-1-f4bug@amsat.org> References: <20181118203312.5376-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::435 Subject: [Qemu-devel] [RFC PATCH 2/2] shippable: Add the mipsr5900el linux-user target X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mike Frysinger , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Shippable node pool must be updated to use at lease v5.8.2: http://docs.shippable.com/platform/runtime/machine-image/ami-v582/ Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- .shippable.yml | 2 ++ tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker | 3 +++ 2 files changed, 5 insertions(+) diff --git a/.shippable.yml b/.shippable.yml index f74a3de3ff..bd3316df91 100644 --- a/.shippable.yml +++ b/.shippable.yml @@ -25,6 +25,8 @@ env: TARGET_LIST=3Dmips64el-softmmu,mips64el-linux-user - IMAGE=3Ddebian-ppc64el-cross TARGET_LIST=3Dppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user + - IMAGE=3Dgentoo-mipsr5900el-cross + TARGET_LIST=3Dmips64el-linux-user build: pre_ci: - make docker-image-${IMAGE} V=3D1 diff --git a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker b/tes= ts/docker/dockerfiles/gentoo-mipsr5900el-cross.docker index dbc2eb007b..b35f779718 100644 --- a/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker +++ b/tests/docker/dockerfiles/gentoo-mipsr5900el-cross.docker @@ -37,3 +37,8 @@ ADD gcc-v7.2.0-ps2-llsc.patch /etc/portage/patches/cross-= mipsr5900el-unknown-lin RUN crossdev -s3 -t mipsr5900el-unknown-linux-gnu --binutils ">=3D2.30" --= gcc ">=3D7.2.0" =20 ENV QEMU_CONFIGURE_OPTS --cross-prefix=3Dmipsr5900el-unknown-linux-gnu- + +# kludge for Shippable which checks clang available. +RUN ln -s /bin/true /usr/bin/clang + +RUN emerge -qv dev-vcs/git ">=3Ddev-libs/glib-2.0" sys-libs/zlib dev-lang/= python --=20 2.17.2