musl-cross-make:bootstrap-1 (2994B)
1 {%- set pkg_source="git" -%} 2 {%- set src_dir="." -%} 3 {% extends "genlinks" %} 4 {%- block template_deps %}{% endblock %} 5 {% block package_deps -%} 6 #@pragma:nosandbox 7 #@pragma:nopath 8 #+{{pkg_install_name("musl-cross-make:bootstrap-0")}} 9 #@sha256:ab66fc2d1c3ec0359b8e08843c9f33b63e8707efdff5e4cc5c200eae24722cbf:musl-cross-make/sources/binutils-2.33.1.tar.xz 10 #@sha256:75d5d255a2a273b6e651f82eecfabf6cbcd8eaeae70e86b417384c8f4a58d8d3:musl-cross-make/sources/config.sub 11 #@sha256:d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b:musl-cross-make/sources/gcc-11.2.0.tar.xz 12 #@sha256:5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2:musl-cross-make/sources/gmp-6.1.2.tar.bz2 13 #@sha256:dc7abf734487553644258a3822cfd429d74656749e309f2b25f09f4282e05588:musl-cross-make/sources/linux-headers-4.19.88-2.tar.xz 14 #@sha256:6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e:musl-cross-make/sources/mpc-1.1.0.tar.gz 15 #@sha256:c05e3f02d09e0e9019384cdd58e0f19c64e6db1fd6f5ecf77b4b1c61ca253acc:musl-cross-make/sources/mpfr-4.0.2.tar.bz2 16 #@sha256:a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4:musl-cross-make/sources/musl-1.2.5.tar.gz 17 {% endblock %} 18 {% block configure -%} 19 bootstrap={{versions}}/musl-cross-make.{{pkg_sha256("musl-cross-make:bootstrap-0")}} 20 "$bootstrap/bin/{{triplet}}-gcc" --version 21 22 # For validating the compiler 23 printf '%s\n' 'int main(void) { return 0; }' >true.c 24 25 printf '%s\n' >musl-cross-make/config.mak \ 26 "OUTPUT=${pthbs_destdir%/}{{versions}}/$pthbs_package" \ 27 'GCC_VER=11.2.0' \ 28 "TARGET={{triplet}}" \ 29 'st=-static --static' \ 30 'fl=-g0 -O2' \ 31 "bbin=$bootstrap/bin" \ 32 'COMMON_CONFIG += CFLAGS="${fl}" CXXFLAGS="${fl}" FFLAGS="${fl}" LDFLAGS="-s ${st}"' \ 33 'COMMON_CONFIG += CC="${bbin}/{{triplet}}-gcc ${st}" CXX="${bbin}/{{triplet}}-g++ ${st}"' 34 35 touch musl-cross-make/sources/* 36 37 {% endblock %} 38 {% block build_and_install -%} 39 # Patch linker path for dynamic executables 40 make -C musl-cross-make gcc-11.2.0 41 sed -i -e 's|/lib/ld-musl-|{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/ld-musl-|' musl-cross-make/gcc-11.2.0/gcc/config/*/linux*.h 42 43 export PATH="$bootstrap/bin:$PATH" 44 {{make}} -C musl-cross-make 45 make -C musl-cross-make install 46 47 # Override linker symlink 48 for linkname in "${pthbs_destdir%/}"'{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/'ld-musl-*so*; do 49 ln -s -f libc.so "$linkname" 50 done 51 52 # Validate the compiler 53 "${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-gcc' --version 54 "${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-gcc' -o true true.c 55 "${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-readelf' --string-dump=.interp true >true.linker 56 grep -F "$pthbs_package" true.linker 57 58 {% endblock %} 59 {% block genlinks_begin %} 60 x["./bin/{{triplet}}-g++"]=1 61 x["./bin/{{triplet}}-gcc"]=1 62 {% endblock %} 63 {% block genlinks_rules %} 64 $2 == "bin" && $3 ~ /^{{triplet}}-/ { target=$3; sub("{{triplet}}-", "", target); link("./command/" target) } 65 {% endblock -%}