| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # Copyright (C) 2006-2010 OpenWrt.org |
| 4 | |
| 5 | include $(TOPDIR)/rules.mk |
| 6 | include $(INCLUDE_DIR)/image.mk |
| 7 | |
| 8 | define Image/Prepare |
| 9 | cp $(LINUX_DIR)/linux $(KDIR)/vmlinux.elf |
| 10 | endef |
| 11 | |
| 12 | define Image/Build/squashfs |
| 13 | dd if=/dev/zero of=$(KDIR)/root.squashfs bs=1024k count=0 seek=$(CONFIG_TARGET_ROOTFS_PARTSIZE) |
| 14 | endef |
| 15 | |
| 16 | define Image/Build |
| 17 | $(call Image/Build/$(1)) |
| 18 | cp $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).img |
| 19 | cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(IMG_PREFIX)-vmlinux |
| 20 | endef |
| 21 | |
| 22 | $(eval $(call BuildImage)) |
| 23 | |
| 24 | # UML requires linking against several glibc static libraries: libutil, librt |
| 25 | # and libpthread, check that here. We do not check against libpthread |
| 26 | # specifically because getting something to build that references a libpthread |
| 27 | # symbol is pretty involved and Linux distributions package these 3 libraries |
| 28 | # in the same package. |
| 29 | |
| 30 | $(eval $(call TestHostCommand,glibc-static, \ |
| 31 | Please install a static glibc package. (Missing libutil.a, librt.a or libpthread.a), \ |
| 32 | echo 'int main(int argc, char **argv) { login(0); timer_gettime(0, 0); return 0; }' | \ |
| 33 | gcc -include utmp.h -x c -o $(TMP_DIR)/a.out - -static -lutil -lrt)) |