From de86d1f9262a0af47db63cb1e3e7b82fc74f7000 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 13 Aug 2026 23:15:03 -0300 Subject: [PATCH] gcc: compile gfortran --- host-recipes/libgfortran | 17 +++++++++++++++++ host-recipes/libquadmath | 17 +++++++++++++++++ host-recipes/xgcc | 4 ++-- recipes/gcc | 4 ++-- recipes/libgfortran | 17 +++++++++++++++++ recipes/libquadmath | 17 +++++++++++++++++ util/cmake | 1 + util/crossfile | 1 + 8 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 host-recipes/libgfortran create mode 100644 host-recipes/libquadmath create mode 100644 recipes/libgfortran create mode 100644 recipes/libquadmath diff --git a/host-recipes/libgfortran b/host-recipes/libgfortran new file mode 100644 index 00000000..f04bcf80 --- /dev/null +++ b/host-recipes/libgfortran @@ -0,0 +1,17 @@ +name=libgfortran +revision=1 +from_source=gcc +imagedeps="build-essential" +hostdeps="automake autoconf xbinutils xgcc libquadmath" +clean_workdirs=no +deps="mlibc" + +build() { + cd ${build_dir}/host-builds/xgcc + make all-target-libgfortran -j${parallelism} +} + +package(){ + cd ${build_dir}/host-builds/xgcc/x86_64-astral/libgfortran + make DESTDIR="${dest_dir}" install +} diff --git a/host-recipes/libquadmath b/host-recipes/libquadmath new file mode 100644 index 00000000..e3e2cf71 --- /dev/null +++ b/host-recipes/libquadmath @@ -0,0 +1,17 @@ +name=libquadmath +revision=1 +from_source=gcc +imagedeps="build-essential" +hostdeps="automake autoconf xbinutils xgcc" +clean_workdirs=no +deps="mlibc" + +build() { + cd ${build_dir}/host-builds/xgcc + make all-target-libquadmath -j${parallelism} +} + +package(){ + cd ${build_dir}/host-builds/xgcc + make DESTDIR="${dest_dir}" install-target-libquadmath +} diff --git a/host-recipes/xgcc b/host-recipes/xgcc index e81a3411..b8d64321 100644 --- a/host-recipes/xgcc +++ b/host-recipes/xgcc @@ -1,5 +1,5 @@ name=xgcc -revision=2 +revision=3 from_source=gcc imagedeps="build-essential libmpfr-dev libmpc-dev libgmp-dev" hostdeps="automake autoconf xbinutils pkgconfig" @@ -7,7 +7,7 @@ deps="mlibc-headers" clean_workdirs=no configure() { - ${source_dir}/configure --target=x86_64-astral --prefix=${prefix} --with-sysroot=${sysroot_dir} --enable-languages=c,c++ --enable-threads=posix --enable-libgomp --disable-multilib --enable-shared --enable-host-shared --with-pic + ${source_dir}/configure --target=x86_64-astral --prefix=${prefix} --with-sysroot=${sysroot_dir} --enable-languages=c,c++,fortran --enable-threads=posix --enable-libgomp --disable-multilib --enable-shared --enable-host-shared --with-pic } build() { diff --git a/recipes/gcc b/recipes/gcc index d6d5e186..26a6f8d7 100644 --- a/recipes/gcc +++ b/recipes/gcc @@ -1,5 +1,5 @@ name=gcc -revision=2 +revision=4 from_source=gcc imagedeps="build-essential" hostrundeps="automake autoconf xgcc xbinutils libstdc++-v3" @@ -7,7 +7,7 @@ deps="base gmp mpfr mpc binutils" clean_workdirs=no configure() { - ${source_dir}/configure --host=x86_64-astral --target=x86_64-astral --prefix=${prefix} --enable-languages=c,c++ --enable-threads=posix --enable-libgomp --with-sysroot=/ --with-build-sysroot=${sysroot_dir} + ${source_dir}/configure --host=x86_64-astral --target=x86_64-astral --prefix=${prefix} --enable-languages=c,c++,fortran --enable-threads=posix --enable-libgomp --with-pic --with-sysroot=/ --with-build-sysroot=${sysroot_dir} } build() { diff --git a/recipes/libgfortran b/recipes/libgfortran new file mode 100644 index 00000000..f0d0bb20 --- /dev/null +++ b/recipes/libgfortran @@ -0,0 +1,17 @@ +name=libgfortran +revision=1 +from_source=gcc +imagedeps="build-essential" +hostrundeps="xgcc xbinutils libstdc++-v3" +clean_workdirs=no +deps="gcc libquadmath" + +build() { + cd ${build_dir}/builds/gcc + make all-target-libgfortran -j${parallelism} +} + +package() { + cd ${build_dir}/builds/gcc/x86_64-astral/libgfortran + make DESTDIR="${dest_dir}" install +} diff --git a/recipes/libquadmath b/recipes/libquadmath new file mode 100644 index 00000000..d7e3dd8d --- /dev/null +++ b/recipes/libquadmath @@ -0,0 +1,17 @@ +name=libquadmath +revision=1 +from_source=gcc +imagedeps="build-essential" +hostrundeps="xgcc xbinutils libstdc++-v3" +clean_workdirs=no +deps="gcc" + +build() { + cd ${build_dir}/builds/gcc + make all-target-libquadmath -j${parallelism} +} + +package() { + cd ${build_dir}/builds/gcc + make DESTDIR="${dest_dir}" install-target-libquadmath +} diff --git a/util/cmake b/util/cmake index 44a7f7f6..cc986589 100644 --- a/util/cmake +++ b/util/cmake @@ -5,6 +5,7 @@ set(CMAKE_FIND_ROOT_PATH /sysroot) set(CMAKE_C_COMPILER x86_64-astral-gcc) set(CMAKE_CXX_COMPILER x86_64-astral-g++) +set(CMAKE_Fortran_COMPILER x86_64-astral-gfortran) # search for programs in the build host directories SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) diff --git a/util/crossfile b/util/crossfile index 72930ad1..2cee388a 100644 --- a/util/crossfile +++ b/util/crossfile @@ -6,6 +6,7 @@ endian = 'little' [binaries] c = 'x86_64-astral-gcc' cpp = 'x86_64-astral-g++' +fortran = 'x86_64-astral-gfortran' ar = 'x86_64-astral-ar' strip = 'x86_64-astral-strip' ld = 'x86_64-astral-ld'