From 538d7117f937a07ea63042d66f463bc15500e618 Mon Sep 17 00:00:00 2001 From: LLONSIT <76184758+LLONSIT@users.noreply.github.com> Date: Tue, 21 Mar 2023 21:08:55 -0500 Subject: [PATCH] 5.3 C++ (#706) * 5.3 c++ * black * tmp * Update sandbox.py * mount /tmp as bindmout * Update sandbox.py --- backend/compilers/download.py | 12 +++++++++++ backend/coreapp/compilers.py | 20 +++++++++++++++++++ backend/coreapp/sandbox.py | 1 + .../src/lib/i18n/locales/en/compilers.json | 2 ++ 4 files changed, 35 insertions(+) diff --git a/backend/compilers/download.py b/backend/compilers/download.py index a0065918..bbf2c9e2 100644 --- a/backend/compilers/download.py +++ b/backend/compilers/download.py @@ -412,6 +412,18 @@ def download_n64(): dest_name="ido6.0", ) + dest = COMPILERS_DIR / "ido5.3_c++" + if dest.is_dir(): + print(f"{dest} already exists, skipping") + else: + dest.mkdir() + download_tar( + url="https://github.com/LLONSIT/qemu-irix-helpers/raw/n/qemu/ido5.3_c++.tar.xz", + mode="r:xz", + dl_name="ido5.3_c++" + ".tar.xz", + dest_name="ido5.3_c++", + ) + # SN dest = COMPILERS_DIR / "gcc2.7.2sn" if dest.is_dir(): diff --git a/backend/coreapp/compilers.py b/backend/coreapp/compilers.py index 369b5fc0..11bfddbf 100644 --- a/backend/coreapp/compilers.py +++ b/backend/coreapp/compilers.py @@ -44,6 +44,7 @@ COMPILER_BASE_PATH: Path = settings.COMPILER_BASE_PATH class Language(enum.Enum): C = "C" + OLD_CXX = "C++" CXX = "C++" PASCAL = "Pascal" @@ -51,6 +52,7 @@ class Language(enum.Enum): return { Language.C: "c", Language.CXX: "cpp", + Language.OLD_CXX: "c++", Language.PASCAL: "p", }[self] @@ -425,6 +427,14 @@ IDO53_IRIX = IDOCompiler( base_id="ido5.3", ) +IDO53_CXX_IRIX = IDOCompiler( + id="ido5.3_c++_irix", + platform=IRIX, + cc='"${COMPILER_DIR}"/usr/bin/qemu-irix -L "${COMPILER_DIR}" "${COMPILER_DIR}/usr/lib/CC" -I "${COMPILER_DIR}"/usr/include -c -Xcpluscomm -G0 -non_shared -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"', + base_id="ido5.3_c++", + language=Language.OLD_CXX, +) + IDO53PASCAL = IDOCompiler( id="ido5.3Pascal", platform=IRIX, @@ -463,6 +473,14 @@ IDO53 = IDOCompiler( cc='USR_LIB="${COMPILER_DIR}" "${COMPILER_DIR}/cc" -c -Xcpluscomm -G0 -non_shared -Wab,-r4300_mul -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"', ) +IDO53_CXX = IDOCompiler( + id="ido5.3_c++", + platform=N64, + cc='"${COMPILER_DIR}"/usr/bin/qemu-irix -L "${COMPILER_DIR}" "${COMPILER_DIR}/usr/lib/CC" -I "{COMPILER_DIR}"/usr/include -c -Xcpluscomm -G0 -non_shared -woff 649,838,712 -32 ${COMPILER_FLAGS} -o "${OUTPUT}" "${INPUT}"', + base_id="ido5.3_c++", + language=Language.OLD_CXX, +) + IDO71 = IDOCompiler( id="ido7.1", platform=N64, @@ -868,6 +886,7 @@ _all_compilers: List[Compiler] = [ MWCPS2_30B22_020926, # N64 IDO53, + IDO53_CXX, IDO60, IDO71, GCC272KMC, @@ -878,6 +897,7 @@ _all_compilers: List[Compiler] = [ EGCS1124, # IRIX IDO53_IRIX, + IDO53_CXX_IRIX, IDO53PASCAL, IDO60_IRIX, IDO71_IRIX, diff --git a/backend/coreapp/sandbox.py b/backend/coreapp/sandbox.py index f8a352f3..e993d132 100644 --- a/backend/coreapp/sandbox.py +++ b/backend/coreapp/sandbox.py @@ -66,6 +66,7 @@ class Sandbox(contextlib.AbstractContextManager["Sandbox"]): "--bindmount_ro", "/lib64", "--bindmount_ro", "/usr", "--bindmount_ro", "/proc", + "--bindmount", f"{self.path}:/var/tmp", "--bindmount_ro", str(settings.COMPILER_BASE_PATH), "--env", "PATH=/usr/bin:/bin", "--cwd", "/tmp", diff --git a/frontend/src/lib/i18n/locales/en/compilers.json b/frontend/src/lib/i18n/locales/en/compilers.json index 3e25fca9..72ad9459 100644 --- a/frontend/src/lib/i18n/locales/en/compilers.json +++ b/frontend/src/lib/i18n/locales/en/compilers.json @@ -37,10 +37,12 @@ "gcc2.8.1sn-cxx": "GCC 2.8.1 (SN) (C++)", "gcc2.8.1": "GCC 2.8.1", "ido5.3_irix": "IDO 5.3", + "ido5.3_c++_irix": "IDO 5.3 C++", "ido6.0_irix": "IDO 6.0", "ido6.0": "IDO 6.0", "ido7.1_irix": "IDO 7.1", "ido5.3": "IDO 5.3", + "ido5.3_c++": "IDO 5.3 C++", "ido5.3Pascal": "IDO 5.3 Pascal", "ido7.1": "IDO 7.1", "ido7.1Pascal": "IDO 7.1 Pascal",