essence-os/ports/gcc/port.sh

209 lines
8.8 KiB
Bash
Executable File

set -ex
SYSROOT=`realpath root`
BINUTILS_VERSION=2.36.1
GCC_VERSION=11.1.0
GMP_VERSION=6.2.1
MPFR_VERSION=4.1.0
MPC_VERSION=1.2.1
rm -rf bin/gcc-src bin/binutils-src bin/mpc-src bin/gmp-src bin/mpfr-src
bin/script util/get_source.script checksum=e81d9edf373f193af428a0f256674aea62a9d74dfe93f65192d4eae030b0f3b0 directoryName=binutils-$BINUTILS_VERSION url=ftp://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz
mv bin/source bin/binutils-src
bin/script util/get_source.script checksum=4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf directoryName=gcc-$GCC_VERSION url=ftp://ftp.gnu.org/gnu/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.xz
mv bin/source bin/gcc-src
bin/script util/get_source.script checksum=fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2 directoryName=gmp-$GMP_VERSION url=ftp://ftp.gnu.org/gnu/gmp/gmp-$GMP_VERSION.tar.xz
mv bin/source bin/gmp-src
bin/script util/get_source.script checksum=0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f directoryName=mpfr-$MPFR_VERSION url=ftp://ftp.gnu.org/gnu/mpfr/mpfr-$MPFR_VERSION.tar.xz
mv bin/source bin/mpfr-src
bin/script util/get_source.script checksum=17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 directoryName=mpc-$MPC_VERSION url=ftp://ftp.gnu.org/gnu/mpc/mpc-$MPC_VERSION.tar.gz
mv bin/source bin/mpc-src
cp ports/gcc/changes/binutils_bfd_config.bfd bin/binutils-src/bfd/config.bfd
cp ports/gcc/changes/binutils_config.sub bin/binutils-src/config.sub
cp ports/gcc/changes/binutils_gas_configure.tgt bin/binutils-src/gas/configure.tgt
cp ports/gcc/changes/binutils_ld_configure.tgt bin/binutils-src/ld/configure.tgt
cp ports/gcc/changes/gcc_config.sub bin/gcc-src/config.sub
cp ports/gcc/changes/gcc_fixincludes_mkfixinc.sh bin/gcc-src/fixincludes/mkfixinc.sh
cp ports/gcc/changes/gcc_gcc_config_essence.h bin/gcc-src/gcc/config/essence.h
cp ports/gcc/changes/gcc_gcc_config_i386_t-x86_64-essence bin/gcc-src/gcc/config/i386/t-x86_64-essence
cp ports/gcc/changes/gcc_gcc_config.gcc bin/gcc-src/gcc/config.gcc
cp ports/gcc/changes/gcc_gcc_config_host_darwin.c bin/gcc-src/gcc/config/host-darwin.c
cp ports/gcc/changes/gcc_libgcc_config.host bin/gcc-src/libgcc/config.host
cp ports/gcc/changes/gcc_libstdc++-v3_configure bin/gcc-src/libstdc++-v3/configure
if [ "$1" = "download-only" ]; then
exit 0
fi
export ac_cv_func_calloc_0_nonnull="yes"
export ac_cv_func_chown_works="yes"
export ac_cv_func_getgroups_works="yes"
export ac_cv_func_malloc_0_nonnull="yes"
export gl_cv_func_cbrtl_ieee="yes"
export gl_cv_func_ceil_ieee="yes"
export gl_cv_func_ceilf_ieee="yes"
export gl_cv_func_ceill_ieee="yes"
export gl_cv_func_chown_ctime_works="yes"
export gl_cv_func_chown_slash_works="yes"
export gl_cv_func_exp2l_ieee="yes"
export gl_cv_func_expm1_ieee="yes"
export gl_cv_func_fcntl_f_dupfd_works="yes"
export gl_cv_func_fdopendir_works="yes"
export gl_cv_func_floorf_ieee="yes"
export gl_cv_func_fma_works="yes"
export gl_cv_func_fmaf_works="yes"
export gl_cv_func_fmal_works="yes"
export gl_cv_func_fmod_ieee="yes"
export gl_cv_func_fmodf_ieee="yes"
export gl_cv_func_fmodl_ieee="yes"
export gl_cv_func_fpurge_works="yes"
export gl_cv_func_futimens_works="yes"
export gl_cv_func_futimesat_works="yes"
export gl_cv_func_getgroups_works="yes"
export gl_cv_func_gettimeofday_clobber="yes"
export gl_cv_func_hypot_ieee="yes"
export gl_cv_func_hypotf_ieee="yes"
export gl_cv_func_hypotl_ieee="yes"
export gl_cv_func_isfinitel_works="yes"
export gl_cv_func_isnanl_works="yes"
export gl_cv_func_link_works="yes"
export gl_cv_func_linkat_slash="yes"
export gl_cv_func_log10_ieee="yes"
export gl_cv_func_log10f_ieee="yes"
export gl_cv_func_log1p_ieee="yes"
export gl_cv_func_log1pf_ieee="yes"
export gl_cv_func_log1pl_ieee="yes"
export gl_cv_func_log2_ieee="yes"
export gl_cv_func_log2f_ieee="yes"
export gl_cv_func_log_ieee="yes"
export gl_cv_func_logf_ieee="yes"
export gl_cv_func_lstat_dereferences_slashed_symlink="yes"
export gl_cv_func_mbrlen_empty_input="yes"
export gl_cv_func_mbrtowc_empty_input="yes"
export gl_cv_func_memchr_works="yes"
export gl_cv_func_memmem_works_fast="yes"
export gl_cv_func_mkdir_trailing_dot_works="yes"
export gl_cv_func_mkdir_trailing_slash_works="yes"
export gl_cv_func_mkfifo_works="yes"
export gl_cv_func_mknod_works="yes"
export gl_cv_func_modf_ieee="yes"
export gl_cv_func_modff_ieee="yes"
export gl_cv_func_modfl_ieee="yes"
export gl_cv_func_nanosleep="yes"
export gl_cv_func_open_directory_works="yes"
export gl_cv_func_perror_works="yes"
export gl_cv_func_printf_directive_a="yes"
export gl_cv_func_printf_directive_f="yes"
export gl_cv_func_printf_directive_n="yes"
export gl_cv_func_printf_enomem="yes"
export gl_cv_func_printf_flag_zero="yes"
export gl_cv_func_printf_infinite="yes"
export gl_cv_func_printf_infinite_long_double="yes"
export gl_cv_func_printf_sizes_c99="yes"
export gl_cv_func_pselect_detects_ebadf="yes"
export gl_cv_func_ptsname_sets_errno="yes"
export gl_cv_func_readlink_works="yes"
export gl_cv_func_realpath_works="yes"
export gl_cv_func_remainder_ieee="yes"
export gl_cv_func_remainderf_ieee="yes"
export gl_cv_func_remainderl_iee="yes"
export gl_cv_func_rename_dest_works="yes"
export gl_cv_func_rename_link_works="yes"
export gl_cv_func_rename_slash_dst_works="yes"
export gl_cv_func_rename_slash_src_works="yes"
export gl_cv_func_rmdir_works="yes"
export gl_cv_func_round_ieee="yes"
export gl_cv_func_roundf_ieee="yes"
export gl_cv_func_select_detects_ebadf="yes"
export gl_cv_func_setenv_works="yes"
export gl_cv_func_signbit="yes"
export gl_cv_func_signbit_gcc="yes"
export gl_cv_func_sleep_works="yes"
export gl_cv_func_snprintf_directive_n="yes"
export gl_cv_func_snprintf_retval_c99="yes"
export gl_cv_func_snprintf_truncation_c99="yes"
export gl_cv_func_stat_dir_slash="yes"
export gl_cv_func_stat_file_slash="yes"
export gl_cv_func_stpncpy="yes"
export gl_cv_func_strcasestr_linear="yes"
export gl_cv_func_strchrnul_works="yes"
export gl_cv_func_strerror_0_works="yes"
export gl_cv_func_strstr_linear="yes"
export gl_cv_func_strtod_works="yes"
export gl_cv_func_svid_putenv="yes"
export gl_cv_func_symlink_works="yes"
export gl_cv_func_tdelete_works="yes"
export gl_cv_func_trunc_ieee="yes"
export gl_cv_func_truncf_ieee="yes"
export gl_cv_func_truncl_iee="yes"
export gl_cv_func_tzset_clobber="yes"
export gl_cv_func_ungetc_works="yes"
export gl_cv_func_unlink_honors_slashes="yes"
export gl_cv_func_unsetenv_works="yes"
export gl_cv_func_usleep_works="yes"
export gl_cv_func_utimensat_works="yes"
export gl_cv_func_vsnprintf_posix="yes"
export gl_cv_func_vsnprintf_zerosize_c99="yes"
export gl_cv_func_vsprintf_posix="yes"
export gl_cv_func_wcwidth_works="yes"
export gl_cv_func_working_getdelim="yes"
export gl_cv_func_working_mkstemp="yes"
export gl_cv_func_working_mktime="yes"
export gl_cv_func_working_strerror="yes"
mkdir bin/build-gmp
cd bin/build-gmp
../gmp-src/configure --host=x86_64-essence --prefix=/Applications/POSIX --without-readline CC=x86_64-essence-gcc CXX=x86_64-essence-g++
make -j`nproc`
make DESTDIR=$SYSROOT install
cd ../..
rm -rf bin/build-gmp
mkdir bin/build-mpfr
cd bin/build-mpfr
../mpfr-src/configure --host=x86_64-essence --prefix=/Applications/POSIX CC=x86_64-essence-gcc CXX=x86_64-essence-g++
make -j`nproc`
make DESTDIR=$SYSROOT install
cd ../..
rm -rf bin/build-mpfr
mkdir bin/build-mpc
cd bin/build-mpc
../mpc-src/configure --host=x86_64-essence --prefix=/Applications/POSIX CC=x86_64-essence-gcc CXX=x86_64-essence-g++
make -j`nproc`
make DESTDIR=$SYSROOT install
cd ../..
rm -rf bin/build-mpc
mkdir bin/build-binutils
cd bin/build-binutils
../binutils-src/configure --host=x86_64-essence --target=x86_64-essence --prefix=/Applications/POSIX --with-local-prefix=/Applications/POSIX/local --with-build-sysroot=$SYSROOT --without-isl --disable-nls --disable-werror --without-target-bdw-gc CC=x86_64-essence-gcc CXX=x86_64-essence-g++
make -j`nproc`
make DESTDIR=$SYSROOT install
cd ../..
rm -rf bin/build-binutils
mkdir bin/build-gcc
cd bin/build-gcc
../gcc-src/configure --host=x86_64-essence --target=x86_64-essence --prefix=/Applications/POSIX --with-local-prefix=/Applications/POSIX/local --with-build-sysroot=$SYSROOT --without-isl --disable-nls --disable-werror --without-target-bdw-gc --enable-languages=c,c++ CC=x86_64-essence-gcc CXX=x86_64-essence-g++ LD=x86_64-essence-ld
make all-gcc -j`nproc`
make all-target-libgcc -j`nproc`
make DESTDIR=$SYSROOT install-strip-gcc
make DESTDIR=$SYSROOT install-target-libgcc
# TODO Waiting on GCC 11.3, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100017
# make all-target-libstdc++-v3
# make DESTDIR=$SYSROOT install-target-libstdc++-v3
cd ../..
rm -rf bin/build-gcc
cp bin/gcc-src/COPYING bin/GCC\ License.txt
cp bin/binutils-src/COPYING bin/Binutils\ License.txt
cp bin/gmp-src/COPYING bin/GMP\ License.txt
cp bin/mpc-src/COPYING.LESSER bin/MPC\ License.txt
cp bin/mpfr-src/COPYING.LESSER bin/MPFR\ License.txt
rm -rf bin/gcc-src bin/binutils-src bin/mpc-src bin/gmp-src bin/mpfr-src