From 117857250845985ced00e909b48702694a14ec1b Mon Sep 17 00:00:00 2001 From: zhao Date: Sun, 23 Mar 2025 18:30:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20toolchain/build.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhao --- toolchain/build.sh | 160 +-------------------------------------------- 1 file changed, 1 insertion(+), 159 deletions(-) diff --git a/toolchain/build.sh b/toolchain/build.sh index 0afa12c..a23afb5 100644 --- a/toolchain/build.sh +++ b/toolchain/build.sh @@ -1,9 +1,7 @@ #!/bin/bash -e -export Github=https://raw.githubusercontent.com/oppen321/ZeroWrt-Action/refs/heads/master - # Clone source code -git clone -b openwrt-24.10 --single-branch --filter=blob:none https://github.com/openwrt/openwrt openwrt +git clone -b openwrt-24.10 --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt openwrt # Enter source code cd openwrt @@ -12,132 +10,6 @@ cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a -# x86 - disable mitigations -sed -i 's/noinitrd/noinitrd mitigations=off/g' target/linux/x86/image/grub-efi.cfg - -# gcc15 patches -curl -s $Github/patch/gcc-15/202-toolchain-gcc-add-support-for-GCC-15.patch | patch -p1 - -# GCC Optimization level -O3 -if [ "$model" = "OpenWrt_Rockchip_v24.10" ]; then - curl -s $Github/patch/target-modify_for_rockchip.patch | patch -p1 -elif [ "$model" = "OpenWrt_X86_64_v24.10" ]; then - curl -s $Github/patch/target-modify_for_x86_64.patch | patch -p1 -fi - -# fix gcc14 -if [ "$USE_GCC14" = y ] || [ "$USE_GCC15" = y ]; then - # linux-atm - rm -rf package/network/utils/linux-atm - git clone https://github.com/sbwml/package_network_utils_linux-atm package/network/utils/linux-atm - # glibc - # Added the compiler flag -Wno-implicit-function-declaration to suppress - # warnings about implicit function declarations during the build process. - # This change addresses build issues in environments where some functions - # are used without prior declaration. - if [ "$ENABLE_GLIBC" = "y" ]; then - # perl - sed -i "/Target perl/i\TARGET_CFLAGS_PERL += -Wno-implicit-function-declaration -Wno-int-conversion\n" feeds/packages/lang/perl/Makefile - sed -i '/HOST_BUILD_PARALLEL/aPKG_BUILD_FLAGS:=no-mold' feeds/packages/lang/perl/Makefile - # lucihttp - sed -i "/TARGET_CFLAGS/i\TARGET_CFLAGS += -Wno-implicit-function-declaration" feeds/luci/contrib/package/lucihttp/Makefile - # rpcd - sed -i "/TARGET_LDFLAGS/i\TARGET_CFLAGS += -Wno-implicit-function-declaration" package/system/rpcd/Makefile - # ucode-mod-lua - sed -i "/Build\/Configure/i\TARGET_CFLAGS += -Wno-implicit-function-declaration" feeds/luci/contrib/package/ucode-mod-lua/Makefile - # luci-base - sed -i "s/-DNDEBUG/-DNDEBUG -Wno-implicit-function-declaration/g" feeds/luci/modules/luci-base/src/Makefile - # uhttpd - sed -i "/Package\/uhttpd\/install/i\TARGET_CFLAGS += -Wno-implicit-function-declaration\n" package/network/services/uhttpd/Makefile - # shadow - sed -i '/TARGET_LDFLAGS/d' feeds/packages/utils/shadow/Makefile - sed -i 's/libxcrypt/openssl/g' feeds/packages/utils/shadow/Makefile - fi -fi - -# fix gcc-15 -if [ "$USE_GCC15" = y ]; then - # Mbedtls - curl -s $Github/patch/gcc-15/mbedtls/901-tests-fix-string-initialization-error-on-gcc15.patch > package/libs/mbedtls/patches/901-tests-fix-string-initialization-error-on-gcc15.patch - sed -i '/TARGET_CFLAGS/ s/$/ -Wno-error=unterminated-string-initialization/' package/libs/mbedtls/Makefile - # elfutils - curl -s $Github/patch/gcc-15/elfutils/901-backends-fix-string-initialization-error-on-gcc15.patch > package/libs/elfutils/patches/901-backends-fix-string-initialization-error-on-gcc15.patch - # libwebsockets - mkdir -p feeds/packages/libs/libwebsockets/patches - curl -s $Github/patch/gcc-15/libwebsockets/901-fix-string-initialization-error-on-gcc15.patch > feeds/packages/libs/libwebsockets/patches/901-fix-string-initialization-error-on-gcc15.patch - # libxcrypt - mkdir -p feeds/packages/libs/libxcrypt/patches - curl -s $Github/patch/gcc-15/libxcrypt/901-fix-string-initialization-error-on-gcc15.patch > feeds/packages/libs/libxcrypt/patches/901-fix-string-initialization-error-on-gcc15.patch -fi - -# fix gcc-15.0.1 C23 -if [ "$USE_GCC15" = y ]; then - # gmp - mkdir -p package/libs/gmp/patches - curl -s $Github/patch/gcc-15-c23/gmp/001-fix-build-with-gcc-15.patch > package/libs/gmp/patches/001-fix-build-with-gcc-15.patch - # htop - mkdir -p feeds/packages/admin/htop/patches - curl -s $Github/patch/gcc-15-c23/htop/001-Avoid-compilation-issues-with-ncurses-on-GCC-15.patch > feeds/packages/admin/htop/patches/001-Avoid-compilation-issues-with-ncurses-on-GCC-15.patch - # libtirpc - sed -i '/TARGET_CFLAGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/libs/libtirpc/Makefile - # libsepol - sed -i '/HOST_MAKE_FLAGS/i TARGET_CFLAGS += -std=gnu17\n' package/libs/libsepol/Makefile - # tree - sed -i '/MAKE_FLAGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/tree/Makefile - # gdbm - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/libs/gdbm/Makefile - # libical - sed -i '/CMAKE_OPTIONS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/libs/libical/Makefile - # libconfig - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' package/feeds/packages/libconfig/Makefile - # lsof - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/lsof/Makefile - # screen - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/screen/Makefile - # ppp - sed -i '/CONFIGURE_VARS/i \\nTARGET_CFLAGS += -std=gnu17\n' package/network/services/ppp/Makefile - # vim - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/vim/Makefile - # mtd - sed -i '/target=/i TARGET_CFLAGS += -std=gnu17\n' package/system/mtd/Makefile - # libselinux - sed -i '/MAKE_FLAGS/i TARGET_CFLAGS += -std=gnu17\n' package/libs/libselinux/Makefile - # avahi - sed -i '/TARGET_CFLAGS +=/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/libs/avahi/Makefile - # bash - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/bash/Makefile - # xl2tpd - sed -i '/ifneq (0,0)/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/net/xl2tpd/Makefile - # dnsmasq - sed -i '/MAKE_FLAGS/i TARGET_CFLAGS += -std=gnu17\n' package/network/services/dnsmasq/Makefile - # bluez - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/bluez/Makefile - # e2fsprogs - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' package/utils/e2fsprogs/Makefile - # f2fs-tools - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' package/utils/f2fs-tools/Makefile - # krb5 - sed -i '/CONFIGURE_VARS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/net/krb5/Makefile - # parted - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/parted/Makefile - # iperf3 - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/net/iperf3/Makefile - # db - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/libs/db/Makefile - # python3 - sed -i '/TARGET_CONFIGURE_OPTS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/lang/python/python3/Makefile - # uwsgi - sed -i '/MAKE_VARS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/net/uwsgi/Makefile - # perl - sed -i '/Target perl/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/lang/perl/Makefile - # rsync - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/net/rsync/Makefile - # shine - sed -i '/Build\/InstallDev/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/sound/shine/Makefile - # jq - sed -i '/CONFIGURE_ARGS/i TARGET_CFLAGS += -std=gnu17\n' feeds/packages/utils/jq/Makefile -fi - # Load devices Config if [ "$model" = "OpenWrt_Rockchip_v24.10" ]; then curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/immortalwrt_rockchip.config > .config @@ -145,41 +17,11 @@ elif [ "$model" = "OpenWrt_X86_64_v24.10" ]; then curl -s https://git.kejizero.online/zhao/files/raw/branch/main/toolchain/Configs/immortalwrt_x86_64.config > .config fi -# bpf -[ "$ENABLE_BPF" = "y" ] && curl -s $Github/generic/config-bpf >> .config - -# LTO -export ENABLE_LTO=$ENABLE_LTO -[ "$ENABLE_LTO" = "y" ] && curl -s $Github/generic/config-lto >> .config - -# mold -[ "$ENABLE_MOLD" = "y" ] && echo 'CONFIG_USE_MOLD=y' >> .config - -# glibc -[ "$ENABLE_GLIBC" = "y" ] && { - curl -s $Github/generic/config-glibc >> .config - sed -i '/NaiveProxy/d' .config -} - -# mold -[ "$ENABLE_MOLD" = "y" ] && echo 'CONFIG_USE_MOLD=y' >> .config - -# ccache -if [ "$USE_GCC15" = "y" ] && [ "$ENABLE_CCACHE" = "y" ]; then - echo "CONFIG_CCACHE=y" >> .config - echo "CONFIG_CCACHE_DIR=\"/builder/.ccache\"" >> .config - tools_suffix="_ccache" -fi - # gcc14 & 15 if [ "$USE_GCC13" = y ]; then export USE_GCC13=y gcc_version=13 elif [ "$USE_GCC14" = y ]; then export USE_GCC14=y gcc_version=14 -elif [ "$USE_GCC15" = y ]; then - export USE_GCC15=y gcc_version=15 -else - export USE_GCC14=y gcc_version=14 fi # gcc config