From 96b7fab22a9b35d14c9b3c186dedf748711b7c7a Mon Sep 17 00:00:00 2001 From: RVG|lory <87276663+LoryPelli@users.noreply.github.com> Date: Fri, 7 Apr 2023 23:03:27 +0200 Subject: [PATCH] Updated to `GCC 12.2.0` --- packages/gcc/12.2.0/build.sh | 25 +++++++++++++++++++++++++ packages/gcc/12.2.0/compile | 29 +++++++++++++++++++++++++++++ packages/gcc/12.2.0/environment | 5 +++++ packages/gcc/12.2.0/metadata.json | 22 ++++++++++++++++++++++ packages/gcc/12.2.0/run | 6 ++++++ packages/gcc/12.2.0/test.c | 6 ++++++ packages/gcc/12.2.0/test.cpp | 6 ++++++ packages/gcc/12.2.0/test.d | 5 +++++ packages/gcc/12.2.0/test.f90 | 3 +++ 9 files changed, 107 insertions(+) create mode 100644 packages/gcc/12.2.0/build.sh create mode 100644 packages/gcc/12.2.0/compile create mode 100644 packages/gcc/12.2.0/environment create mode 100644 packages/gcc/12.2.0/metadata.json create mode 100644 packages/gcc/12.2.0/run create mode 100644 packages/gcc/12.2.0/test.c create mode 100644 packages/gcc/12.2.0/test.cpp create mode 100644 packages/gcc/12.2.0/test.d create mode 100644 packages/gcc/12.2.0/test.f90 diff --git a/packages/gcc/12.2.0/build.sh b/packages/gcc/12.2.0/build.sh new file mode 100644 index 0000000..4e90e34 --- /dev/null +++ b/packages/gcc/12.2.0/build.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Put instructions to build your package in here +[[ -d "bin" ]] && exit 0 +PREFIX=$(realpath $(dirname $0)) + +mkdir -p build obj + +cd build + +curl "https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz" -o gcc.tar.gz + +tar xzf gcc.tar.gz --strip-components=1 + +./contrib/download_prerequisites + +cd ../obj + +# === autoconf based === +../build/configure --prefix "$PREFIX" --enable-languages=c,c++,d,fortran --disable-multilib --disable-bootstrap + +make -j$(nproc) +make install -j$(nproc) +cd ../ +rm -rf build obj diff --git a/packages/gcc/12.2.0/compile b/packages/gcc/12.2.0/compile new file mode 100644 index 0000000..a77ba35 --- /dev/null +++ b/packages/gcc/12.2.0/compile @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# Put instructions to compile source code, remove this file if the language does not require this stage + + +case "${PISTON_LANGUAGE}" in + c) + rename 's/$/\.c/' "$@" # Add .c extension + gcc -std=c11 *.c -lm + ;; + c++) + rename 's/$/\.cpp/' "$@" # Add .cpp extension + g++ -std=c++17 *.cpp + ;; + d) + rename 's/.code$/\.d/' "$@" # Add .d extension + gdc *.d + ;; + fortran) + rename 's/.code$/\.f90/' "$@" # Add .f90 extension + gfortran *.f90 + ;; + *) + echo "How did you get here? (${PISTON_LANGUAGE})" + exit 1 + ;; +esac + +chmod +x a.out \ No newline at end of file diff --git a/packages/gcc/12.2.0/environment b/packages/gcc/12.2.0/environment new file mode 100644 index 0000000..2152f76 --- /dev/null +++ b/packages/gcc/12.2.0/environment @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# Put 'export' statements here for environment variables +export PATH=$PWD/bin:$PATH +export LD_LIBRARY_PATH="$PWD/lib:$PWD/lib64" # Need this to properly link Fortran \ No newline at end of file diff --git a/packages/gcc/12.2.0/metadata.json b/packages/gcc/12.2.0/metadata.json new file mode 100644 index 0000000..2d22b9c --- /dev/null +++ b/packages/gcc/12.2.0/metadata.json @@ -0,0 +1,22 @@ +{ + "language": "gcc", + "version": "12.2.0", + "provides": [ + { + "language": "c", + "aliases": ["gcc"] + }, + { + "language": "c++", + "aliases": ["cpp", "g++"] + }, + { + "language": "d", + "aliases": ["gdc"] + }, + { + "language": "fortran", + "aliases": ["fortran", "f90"] + } + ] +} \ No newline at end of file diff --git a/packages/gcc/12.2.0/run b/packages/gcc/12.2.0/run new file mode 100644 index 0000000..ed66ece --- /dev/null +++ b/packages/gcc/12.2.0/run @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# Put instructions to run the runtime + +shift # Discard main filename +./a.out "$@" \ No newline at end of file diff --git a/packages/gcc/12.2.0/test.c b/packages/gcc/12.2.0/test.c new file mode 100644 index 0000000..fafae75 --- /dev/null +++ b/packages/gcc/12.2.0/test.c @@ -0,0 +1,6 @@ +#include + +int main(void) { + printf("OK"); + return 0; +} \ No newline at end of file diff --git a/packages/gcc/12.2.0/test.cpp b/packages/gcc/12.2.0/test.cpp new file mode 100644 index 0000000..9d0499e --- /dev/null +++ b/packages/gcc/12.2.0/test.cpp @@ -0,0 +1,6 @@ +#include + +int main(void) { + printf("OK"); + return 0; +} \ No newline at end of file diff --git a/packages/gcc/12.2.0/test.d b/packages/gcc/12.2.0/test.d new file mode 100644 index 0000000..e74851d --- /dev/null +++ b/packages/gcc/12.2.0/test.d @@ -0,0 +1,5 @@ +import std.stdio; + +void main() { + writeln("OK"); +} \ No newline at end of file diff --git a/packages/gcc/12.2.0/test.f90 b/packages/gcc/12.2.0/test.f90 new file mode 100644 index 0000000..177e03a --- /dev/null +++ b/packages/gcc/12.2.0/test.f90 @@ -0,0 +1,3 @@ +program test + print "(a)", 'OK' +end program test \ No newline at end of file