diff --git a/pmb/build/_package.py b/pmb/build/_package.py index 707600e35ea18d00e642f00dfadf7b16eab83f5b..c8ea02054b1516ba22df92a254158d0e1dfd9f19 100644 --- a/pmb/build/_package.py +++ b/pmb/build/_package.py @@ -579,6 +579,7 @@ def packages( ) cross = None + prev_cross = None total_pkgs = len(build_queue) count = 0 @@ -606,11 +607,11 @@ def packages( if src: pkg_depends.append("rsync") - # We only need to init cross compiler stuff once - if not cross: - cross = pmb.build.autodetect.crosscompile(pkg["apkbuild"], pkg_arch) - if cross: - pmb.build.init_compiler(context, pkg_depends, cross, pkg_arch) + # (re)-initialize the cross compiler stuff when cross method changes + prev_cross = cross + cross = pmb.build.autodetect.crosscompile(pkg["apkbuild"], pkg_arch) + if cross != prev_cross: + pmb.build.init_compiler(context, pkg_depends, cross, pkg_arch) if cross == "crossdirect": pmb.chroot.mount_native_into_foreign(chroot)