mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
lomount is a tool which reads and parses a partition table in a disk image block device and then uses mount -o ...offset=... to mount it. This is not an ideal approach. For example, if the intended filesystem has corrupted metadata the kernel's filesystem driver may start to write outside of the intended region. This might even be exploitable in some perverse circumstances. Nowadays people wanting to do this should use kpartx, which uses devmapper to create appropriate range mappings. So lomount should be disabled. miniterm may well be useful but it is a clone-and-hack of an upstream project and is currently built but not installed by default, partly because it doesn't make sense to install on the dom0 which it might be trying to debug. It is probably useful to retain these two programs in the source tree but IMO they should no longer be built by default. The attached patch does these things: * CONFIG_LOMOUNT and CONFIG_MINITERM in Config.mk can enable and disable these programs * They are disabled by default * If CONFIG_MINITERM=y it is still built but not installed. make -C tools/misc/miniterm install will install it. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
95 lines
2.8 KiB
Makefile
95 lines
2.8 KiB
Makefile
# -*- mode: Makefile; -*-
|
|
|
|
# A debug build of Xen and tools?
|
|
debug ?= n
|
|
|
|
XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \
|
|
-e s/ppc/powerpc/ -e s/i86pc/x86_32/ \
|
|
-e s/amd64/x86_64/)
|
|
XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
|
|
XEN_OS ?= $(shell uname -s)
|
|
|
|
ifeq ($(XEN_TARGET_ARCH),x86_32)
|
|
XEN_TARGET_X86_PAE ?= y
|
|
endif
|
|
|
|
CONFIG_$(XEN_OS) := y
|
|
|
|
SHELL ?= /bin/sh
|
|
|
|
# Tools to run on system hosting the build
|
|
HOSTCC = gcc
|
|
HOSTCFLAGS = -Wall -Werror -Wstrict-prototypes -O2 -fomit-frame-pointer
|
|
HOSTCFLAGS += -fno-strict-aliasing
|
|
HOSTCFLAGS_x86_32 = -m32
|
|
HOSTCFLAGS_x86_64 = -m64
|
|
HOSTCFLAGS += $(HOSTCFLAGS_$(XEN_COMPILE_ARCH))
|
|
|
|
DISTDIR ?= $(XEN_ROOT)/dist
|
|
DESTDIR ?= /
|
|
|
|
include $(XEN_ROOT)/config/$(XEN_OS).mk
|
|
include $(XEN_ROOT)/config/$(XEN_TARGET_ARCH).mk
|
|
|
|
ifneq ($(EXTRA_PREFIX),)
|
|
EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
|
|
EXTRA_LIB += $(EXTRA_PREFIX)/$(LIBDIR)
|
|
endif
|
|
|
|
# cc-option: Check if compiler supports first option, else fall back to second.
|
|
# Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586)
|
|
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \
|
|
/dev/null 2>&1`"; then echo "$(2)"; else echo "$(3)"; fi ;)
|
|
|
|
# cc-ver: Check compiler is at least specified version. Return boolean 'y'/'n'.
|
|
# Usage: ifeq ($(call cc-ver,$(CC),0x030400),y)
|
|
cc-ver = $(shell if [ $$((`$(1) -dumpversion | awk -F. \
|
|
'{ printf "0x%02x%02x%02x", $$1, $$2, $$3}'`)) -ge $$(($(2))) ]; \
|
|
then echo y; else echo n; fi ;)
|
|
|
|
# cc-ver-check: Check compiler is at least specified version, else fail.
|
|
# Usage: $(call cc-ver-check,CC,0x030400,"Require at least gcc-3.4")
|
|
cc-ver-check = $(eval $(call cc-ver-check-closure,$(1),$(2),$(3)))
|
|
define cc-ver-check-closure
|
|
ifeq ($$(call cc-ver,$$($(1)),$(2)),n)
|
|
override $(1) = echo "*** FATAL BUILD ERROR: "$(3) >&2; exit 1;
|
|
cc-option := n
|
|
endif
|
|
endef
|
|
|
|
ifeq ($(debug),y)
|
|
CFLAGS += -g
|
|
endif
|
|
|
|
CFLAGS += -fno-strict-aliasing
|
|
|
|
CFLAGS += -std=gnu99
|
|
|
|
CFLAGS += -Wall -Wstrict-prototypes
|
|
|
|
# -Wunused-value makes GCC 4.x too aggressive for my taste: ignoring the
|
|
# result of any casted expression causes a warning.
|
|
CFLAGS += -Wno-unused-value
|
|
|
|
HOSTCFLAGS += $(call cc-option,$(HOSTCC),-Wdeclaration-after-statement,)
|
|
CFLAGS += $(call cc-option,$(CC),-Wdeclaration-after-statement,)
|
|
|
|
LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
|
|
CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
|
|
|
|
# Enable XSM security module. Enabling XSM requires selection of an
|
|
# XSM security module (FLASK_ENABLE or ACM_SECURITY).
|
|
XSM_ENABLE ?= n
|
|
FLASK_ENABLE ?= n
|
|
ACM_SECURITY ?= n
|
|
|
|
# Optional components
|
|
XENSTAT_XENTOP ?= y
|
|
VTPM_TOOLS ?= n
|
|
LIBXENAPI_BINDINGS ?= n
|
|
PYTHON_TOOLS ?= y
|
|
CONFIG_MINITERM ?= n
|
|
CONFIG_LOMOUNT ?= n
|
|
|
|
-include $(XEN_ROOT)/.config
|