blob: 45ab0cfbcdfa2e465ae6713e039ec793f1686387 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001# SPDX-License-Identifier: GPL-2.0-only
2#
3# Copyright (C) 2006-2010 OpenWrt.org
4
5include $(TOPDIR)/rules.mk
6include $(INCLUDE_DIR)/image.mk
7
8define Image/Prepare
9 cp $(LINUX_DIR)/linux $(KDIR)/vmlinux.elf
10endef
11
12define Image/Build/squashfs
13 dd if=/dev/zero of=$(KDIR)/root.squashfs bs=1024k count=0 seek=$(CONFIG_TARGET_ROOTFS_PARTSIZE)
14endef
15
16define 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
20endef
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))