b9aca834e8
The current image build code has a number of race conditions and interface
contract violations in the custom image build steps:
- Build/install-zImage, solely used by at91, relies on $(PROFILE_SANITIZED)
which is not available when building with CONFIG_TARGET_MULTI_PROFILE
- Build/at91-sdcard, which may run concurrently, creates scratch files at
fixed locations and manipulates target files directly which can lead
to file corruption and other unexpected failures
Rename the install-zImage macro to at91-install-zImage and move it to the
at91 image Makefile since this target is the sole user. Also utilize "$@"
as output file name and switch the usage of $(PROFILE_SANITIZED) to
$(DEVICE_NAME) in order to fix naming under multi profile builds.
Fix the at91-sdcard macro to construct scratch file paths relative to "$@",
which is guaranteed to be unique and store the final artifact output in "$@"
as well, instead of inside $(BIN_DIR). The generic image build code takes
care of moving a build steps "$@" output to the final destination in a
concurrency-safe manner.
Finally remove the broken install-zImage from the generic image-commands
Makefile.
Fixes:
|
||
---|---|---|
.. | ||
site | ||
autotools.mk | ||
cmake.mk | ||
debug.mk | ||
depends.mk | ||
device_table.txt | ||
download.mk | ||
feeds.mk | ||
hardened-ld-pie.specs | ||
hardening.mk | ||
host-build.mk | ||
image-commands.mk | ||
image-legacy.mk | ||
image.mk | ||
kernel-build.mk | ||
kernel-defaults.mk | ||
kernel-version.mk | ||
kernel.mk | ||
netfilter.mk | ||
nls.mk | ||
package-bin.mk | ||
package-defaults.mk | ||
package-dumpinfo.mk | ||
package-ipkg.mk | ||
package-seccomp.mk | ||
package.mk | ||
prereq-build.mk | ||
prereq.mk | ||
quilt.mk | ||
rootfs.mk | ||
scan.awk | ||
scan.mk | ||
scons.mk | ||
shell.sh | ||
subdir.mk | ||
target.mk | ||
toolchain-build.mk | ||
toplevel.mk | ||
u-boot.mk | ||
uclibc++.mk | ||
unpack.mk | ||
verbose.mk | ||
version.mk |