linux (3265B)
1 {%- set src_dir='linux-' + tarball_version -%} 2 {% extends "genlinks" %} 3 {%- import "package_sets" as ps -%} 4 {%- block template_deps -%} 5 #@pragma:nofail_digest 6 {{ ps.busybox_common() }} 7 #+{{pkg_install_name("busybox-modutils")}} 8 #+{{pkg_install_name("gnu-make")}} 9 {{ ps.toolchain() }} 10 #+{{pkg_install_name("findutils")}} 11 #+{{pkg_install_name("diffutils")}} 12 #+{{pkg_install_name("patch")}} 13 #+{{pkg_install_name("flex")}} 14 #+{{pkg_install_name("bison")}} 15 #+{{pkg_install_name("rsync")}} 16 #+{{pkg_install_name("zstd")}} 17 #+{{pkg_install_name("libelf")}} 18 #+{{pkg_install_name("pkgconf-pkg-config")}} 19 #+{{pkg_install_name("nawk")}} 20 {%- endblock template_deps %} 21 {%- block source_deps %} 22 #@untar:-J:sha256:{{ assertion(tarball_shasum) }}:. 23 {% if patch_version -%} 24 #@sha256:{{ assertion(patch_shasum) }}:patch-{{ patch_version }}.xz 25 {% endif -%} 26 #@sha256:{{files["lh_bootstrap-x86_64-config"]}}:linux.config 27 #@sha256:{{files["noobjtool.patch"]}}:noobjtool.patch 28 {% endblock source_deps %} 29 {%- block prepare %} 30 {{ super() }} 31 {% if patch_version -%} 32 unxz -c < '../patch-{{ patch_version }}.xz' | patch -p1 -N 33 {% endif -%} 34 patch -p1 -N <../noobjtool.patch 35 {% endblock prepare %} 36 {%- block configure %} 37 export CPATH="$pthbs_build_environment/{{includedir}}" 38 39 cp -v ../linux.config .config 40 {{ linux_arch_personality|default('') }} make olddefconfig 41 diff -u ../linux.config .config || true 42 43 {% endblock configure %} 44 {%- block build %} 45 {{ linux_arch_personality|default('') }} {{make}} \ 46 V=1 \ 47 HOSTLDFLAGS="-static -L$pthbs_build_environment/{{libdir}}" \ 48 HOSTCFLAGS="-L$pthbs_build_environment/{{libdir}}" 49 50 {% endblock build %} 51 {%- block install %} 52 mkdir -p "${dest}/{{docdir}}/linux" "${dest}/{{kernel_image_path}}" 53 cp -v .config "${dest}/{{configdir}}" 54 mv Documentation/* "${dest}/{{docdir}}/linux" 55 {{ linux_arch_personality|default('') }} make modules_install install \ 56 INSTALL_MOD_PATH="${dest}/{{kernel_mod_path}}" \ 57 INSTALL_MOD_STRIP=1 \ 58 INSTALL_PATH="${dest}/{{kernel_image_path}}" \ 59 INSTALL_DTBS_PATH="${dest}/{{kernel_dtbs_path}}" 60 61 # remove dangling symlinks 62 module_dir="${dest}/{{kernel_mod_path}}/lib/modules/{{ assertion(patch_version|default(tarball_version + ".0", True)) }}" 63 rm -f "$module_dir/build" "$module_dir/source" 64 ls -lhA "$module_dir" 65 66 {% endblock install %} 67 {% block genlinks_rules %} 68 $2 == "{{kernel_image_path}}" { link($0); next } 69 $2 == "lib" && $3 == "modules" { exit 3 } # make sure kernel modules do not mix with userspace libraries 70 function mod_path(s) { 71 sub("^[.]/{{kernel_mod_path}}/lib/", "./{{kernel_mod_path}}/", s) 72 return s 73 } 74 $2 == "{{kernel_mod_path}}" && $3 == "lib" && $4 == "modules" { link(mod_path($0)); next } 75 {% endblock genlinks_rules -%} 76 {% block genlinks_begin %} 77 kernel_name="{{ assertion(patch_version|default(tarball_version + ".0", True)) }}" 78 x["./{{kernel_image_path}}/vmlinuz"]=1 79 x["./{{kernel_image_path}}/System.map"]=1 80 x["./{{kernel_mod_path}}/lib/modules/" kernel_name "/modules.alias"]=1 81 x["./{{kernel_mod_path}}/lib/modules/" kernel_name "/modules.builtin"]=1 82 x["./{{kernel_mod_path}}/lib/modules/" kernel_name "/modules.dep"]=1 83 x["./{{kernel_mod_path}}/lib/modules/" kernel_name "/modules.order"]=1 84 x["./{{kernel_mod_path}}/lib/modules/" kernel_name "/modules.symbols"]=1 85 {% endblock genlinks_begin %}