> Subject: Re: [PATCH 06/10] Add libbaremetal > > On 07.08.20 05:06, peng....@nxp.com wrote: > > From: Peng Fan <peng....@nxp.com> > > > > Add libbaremetal for sharing code between inmates and jailhouse > > baremetal loader. > > > > The Makefile code is copied from inmates, currently only string.c is > > moved from inmates to libbaremetal. In future, we might need to share > > uart/mmu and etc. > > Might quickly become confusing to have two libs. What prevents renaming > inmates/lib completely into libbaremetal? Sure, there are some jailhouse > specifics in inmates/lib, but those could likely be put in some corner.
How about rename inmates to baremetal? And add bootloader stuff under baremetal? Thanks, Peng. > > Jan > > > > > Signed-off-by: Peng Fan <peng....@nxp.com> > > --- > > Kbuild | 4 +- > > inmates/Makefile | 4 ++ > > inmates/lib/arm-common/Makefile.lib | 2 +- > > inmates/lib/arm/Makefile.lib | 2 +- > > inmates/lib/arm64/Makefile.lib | 2 +- > > inmates/lib/x86/Makefile | 2 +- > > inmates/lib/x86/Makefile.lib | 3 +- > > libbaremetal/Makefile | 46 > +++++++++++++++++++++++ > > libbaremetal/arm-common/Makefile.lib | 41 ++++++++++++++++++++ > > libbaremetal/arm/Makefile | 44 > ++++++++++++++++++++++ > > libbaremetal/arm/Makefile.lib | 63 > +++++++++++++++++++++++++++++++ > > libbaremetal/arm64/Makefile | 44 > ++++++++++++++++++++++ > > libbaremetal/arm64/Makefile.lib | 63 > +++++++++++++++++++++++++++++++ > > {inmates/lib => libbaremetal}/string.c | 0 > > libbaremetal/x86/Makefile | 66 > ++++++++++++++++++++++++++++++++ > > libbaremetal/x86/Makefile.lib | 69 > ++++++++++++++++++++++++++++++++++ > > 16 files changed, 449 insertions(+), 6 deletions(-) create mode > > 100644 libbaremetal/Makefile create mode 100644 > > libbaremetal/arm-common/Makefile.lib > > create mode 100644 libbaremetal/arm/Makefile create mode 100644 > > libbaremetal/arm/Makefile.lib create mode 100644 > > libbaremetal/arm64/Makefile create mode 100644 > > libbaremetal/arm64/Makefile.lib rename {inmates/lib => > > libbaremetal}/string.c (100%) create mode 100644 > > libbaremetal/x86/Makefile create mode 100644 > > libbaremetal/x86/Makefile.lib > > > > diff --git a/Kbuild b/Kbuild > > index 0b25e26e..dc6423ad 100644 > > --- a/Kbuild > > +++ b/Kbuild > > @@ -51,7 +51,7 @@ GEN_PCI_DEFS_PY := $(obj)/pyjailhouse/pci_defs.py > > $(GEN_PCI_DEFS_PY): $(src)/scripts/gen_pci_defs.sh > > $(call if_changed,gen_pci_defs) > > > > -subdir-y := hypervisor configs inmates tools > > +subdir-y := hypervisor configs inmates tools libbaremetal > > > > subdir-ccflags-y := -Werror > > > > @@ -62,6 +62,8 @@ ifeq ($(filter %/Makefile.clean,$(MAKEFILE_LIST)),) > > > > $(obj)/driver $(addprefix $(obj)/,$(subdir-y)): $(GEN_CONFIG_MK) > > > > +$(addprefix $(obj)/,inmates): $(addprefix $(obj)/,libbaremetal) > > + > > $(obj)/driver $(obj)/hypervisor: $(GEN_VERSION_H) > > > > $(obj)/tools: $(GEN_PCI_DEFS_PY) > > diff --git a/inmates/Makefile b/inmates/Makefile index > > 095055c8..44354c87 100644 > > --- a/inmates/Makefile > > +++ b/inmates/Makefile > > @@ -15,7 +15,11 @@ > > INMATES_LIB = $(src)/lib/$(SRCARCH) > > export INMATES_LIB > > > > +BAREMETAL_LIB = $(src)/../libbaremetal/$(SRCARCH) export > > +BAREMETAL_LIB > > + > > INCLUDES := -I$(INMATES_LIB) \ > > + -I$(BAREMETAL_LIB)/include \ > > -I$(src)/../include/arch/$(SRCARCH) \ > > -I$(src)/lib/include \ > > -I$(src)/../include \ > > diff --git a/inmates/lib/arm-common/Makefile.lib > > b/inmates/lib/arm-common/Makefile.lib > > index 3d7b335d..d99102a9 100644 > > --- a/inmates/lib/arm-common/Makefile.lib > > +++ b/inmates/lib/arm-common/Makefile.lib > > @@ -36,7 +36,7 @@ > > # THE POSSIBILITY OF SUCH DAMAGE. > > # > > > > -objs-y := ../string.o ../cmdline.o ../setup.o ../alloc.o > > ../uart-8250.o > > +objs-y := ../cmdline.o ../setup.o ../alloc.o ../uart-8250.o > > objs-y += ../printk.o ../pci.o > > objs-y += printk.o gic.o mem.o pci.o timing.o setup.o uart.o objs-y > > += uart-xuartps.o uart-mvebu.o uart-hscif.o uart-scifa.o uart-imx.o > > diff --git a/inmates/lib/arm/Makefile.lib > > b/inmates/lib/arm/Makefile.lib index 0976f894..4b4165bb 100644 > > --- a/inmates/lib/arm/Makefile.lib > > +++ b/inmates/lib/arm/Makefile.lib > > @@ -56,7 +56,7 @@ endef > > > > .SECONDEXPANSION: > > $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix > $$(obj)/,$$($$*-y)) \ > > - $(INMATES_LIB)/lib.a > > + $(INMATES_LIB)/lib.a $(BAREMETAL_LIB)/lib.a > > $(call if_changed,ld) > > > > $(obj)/%.bin: $(obj)/%-linked.o > > diff --git a/inmates/lib/arm64/Makefile.lib > > b/inmates/lib/arm64/Makefile.lib index 0976f894..6d5df339 100644 > > --- a/inmates/lib/arm64/Makefile.lib > > +++ b/inmates/lib/arm64/Makefile.lib > > @@ -56,7 +56,7 @@ endef > > > > .SECONDEXPANSION: > > $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix > $$(obj)/,$$($$*-y)) \ > > - $(INMATES_LIB)/lib.a > > + $(INMATES_LIB)/lib.a $(BAREMETAL_LIB)/lib.a > > $(call if_changed,ld) > > > > $(obj)/%.bin: $(obj)/%-linked.o > > diff --git a/inmates/lib/x86/Makefile b/inmates/lib/x86/Makefile index > > 40d3eba2..74e38b5a 100644 > > --- a/inmates/lib/x86/Makefile > > +++ b/inmates/lib/x86/Makefile > > @@ -42,7 +42,7 @@ always := lib.a lib32.a > > > > TARGETS := cpu-features.o excp.o header-common.o irq.o ioapic.o > > printk.o TARGETS += setup.o uart.o -TARGETS += ../alloc.o ../pci.o > > ../string.o ../cmdline.o ../setup.o ../test.o > > +TARGETS += ../alloc.o ../pci.o ../cmdline.o ../setup.o ../test.o > > TARGETS += ../uart-8250.o ../printk.o TARGETS_32_ONLY := > header-32.o > > TARGETS_64_ONLY := mem.o pci.o smp.o timing.o header-64.o diff --git > > a/inmates/lib/x86/Makefile.lib b/inmates/lib/x86/Makefile.lib index > > 6190315b..754dc426 100644 > > --- a/inmates/lib/x86/Makefile.lib > > +++ b/inmates/lib/x86/Makefile.lib > > @@ -55,7 +55,8 @@ endef > > # obj/NAME-linked.o: ... obj/$(NAME-y) lib/lib[32].a > > .SECONDEXPANSION: > > $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix > $$(obj)/,$$($$*-y)) \ > > - $(INMATES_LIB)/$$(if $$($$*_32),lib32.a,lib.a) > > + $(INMATES_LIB)/$$(if $$($$*_32),lib32.a,lib.a) \ > > + $(BAREMETAL_LIB)/$$(if $$($$*_32),lib32.a,lib.a) > > $(call if_changed,ld) > > > > $(obj)/%.bin: $(obj)/%-linked.o > > diff --git a/libbaremetal/Makefile b/libbaremetal/Makefile new file > > mode 100644 index 00000000..f36a2d09 > > --- /dev/null > > +++ b/libbaremetal/Makefile > > @@ -0,0 +1,46 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +Siemens AG, 2013 # # Authors: > > +# Jan Kiszka <jan.kis...@siemens.com> # # This work is licensed > > +under the terms of the GNU GPL, version 2. See # the COPYING file in > > +the top-level directory. > > +# > > + > > +-include $(GEN_CONFIG_MK) > > + > > +BAREMETAL_LIB := $(src)/$(SRCARCH) > > +export BAREMETAL_LIB > > + > > +INCLUDES := -I$(BAREMETAL_LIB) \ > > + -I$(src)/../include/arch/$(SRCARCH) \ > > + -I$(src)/include \ > > + -I$(src)/../include > > + > > +ifeq ($(subst arm64,arm,$(SRCARCH)),arm) INCLUDES += > > +-I$(src)/../hypervisor/arch/arm-common/include > > +INCLUDES += -I$(src)/arm-common/include endif > > + > > +LINUXINCLUDE := $(INCLUDES) > > +KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE KBUILD_CFLAGS := -g -Os > > +-Wall -Wstrict-prototypes -Wtype-limits \ > > + -Wmissing-declarations -Wmissing-prototypes \ > > + -fno-strict-aliasing -fomit-frame-pointer -fno-pic \ > > + -fno-common -fno-stack-protector -ffreestanding \ > > + -ffunction-sections \ > > + -D__LINUX_COMPILER_TYPES_H > > +ifneq ($(wildcard $(INC_CONFIG_H)),) > > +KBUILD_CFLAGS += -include $(INC_CONFIG_H) endif > > + > > +OBJCOPYFLAGS := -O binary > > +# prior to 4.19 > > +LDFLAGS += --gc-sections -T > > +# since 4.19 > > +KBUILD_LDFLAGS += --gc-sections -T > > + > > +subdir-y := $(SRCARCH) > > diff --git a/libbaremetal/arm-common/Makefile.lib > > b/libbaremetal/arm-common/Makefile.lib > > new file mode 100644 > > index 00000000..7b650a44 > > --- /dev/null > > +++ b/libbaremetal/arm-common/Makefile.lib > > @@ -0,0 +1,41 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +OTH Regensburg, 2016 # # Authors: > > +# Ralf Ramsauer <ralf.ramsa...@oth-regensburg.de> # # This work is > > +licensed under the terms of the GNU GPL, version 2. See # the > > +COPYING file in the top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +objs-y := ../string.o > > + > > +common-objs-y = $(addprefix ../arm-common/,$(objs-y)) > > diff --git a/libbaremetal/arm/Makefile b/libbaremetal/arm/Makefile new > > file mode 100644 index 00000000..952b1475 > > --- /dev/null > > +++ b/libbaremetal/arm/Makefile > > @@ -0,0 +1,44 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +Siemens AG, 2015, 2016 # # Authors: > > +# Jan Kiszka <jan.kis...@siemens.com> # # This work is licensed > > +under the terms of the GNU GPL, version 2. See # the COPYING file in > > +the top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +include $(INMATES_LIB)/Makefile.lib > > +include $(INMATES_LIB)/../arm-common/Makefile.lib > > + > > +always := lib.a > > + > > +lib-y := $(common-objs-y) > > diff --git a/libbaremetal/arm/Makefile.lib > > b/libbaremetal/arm/Makefile.lib new file mode 100644 index > > 00000000..0976f894 > > --- /dev/null > > +++ b/libbaremetal/arm/Makefile.lib > > @@ -0,0 +1,63 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +ARM Limited, 2014 # Copyright (c) Siemens AG, 2014 # # Authors: > > +# Jean-Philippe Brucker <jean-philippe.bruc...@arm.com> # Jan > > +Kiszka <jan.kis...@siemens.com> # # This work is licensed under the > > +terms of the GNU GPL, version 2. See # the COPYING file in the > > +top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +-include $(GEN_CONFIG_MK) > > + > > +LINUXINCLUDE += -I$(INMATES_LIB)/include LINUXINCLUDE += > > +-I$(INMATES_LIB)/../arm-common/include > > + > > +define DECLARE_TARGETS = > > + _TARGETS = $(1) > > + always := $$(_TARGETS) > > + # $(NAME-y) NAME-linked.o NAME.bin > > + targets += $$(foreach t,$$(_TARGETS:.bin=-y),$$($$t)) \ > > + $$(_TARGETS:.bin=-linked.o) $$(_TARGETS) endef > > + > > +# prevent deleting intermediate files which would cause rebuilds > > +.SECONDARY: $(addprefix $(obj)/,$(targets)) > > + > > +.SECONDEXPANSION: > > +$(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix > $$(obj)/,$$($$*-y)) \ > > + $(INMATES_LIB)/lib.a > > + $(call if_changed,ld) > > + > > +$(obj)/%.bin: $(obj)/%-linked.o > > + $(call if_changed,objcopy) > > diff --git a/libbaremetal/arm64/Makefile b/libbaremetal/arm64/Makefile > > new file mode 100644 index 00000000..6d3cf399 > > --- /dev/null > > +++ b/libbaremetal/arm64/Makefile > > @@ -0,0 +1,44 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +Siemens AG, 2015 # # Authors: > > +# Jan Kiszka <jan.kis...@siemens.com> # # This work is licensed > > +under the terms of the GNU GPL, version 2. See # the COPYING file in > > +the top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +include $(BAREMETAL_LIB)/Makefile.lib include > > +$(BAREMETAL_LIB)/../arm-common/Makefile.lib > > + > > +always := lib.a > > + > > +lib-y := $(common-objs-y) > > diff --git a/libbaremetal/arm64/Makefile.lib > > b/libbaremetal/arm64/Makefile.lib new file mode 100644 index > > 00000000..c4560721 > > --- /dev/null > > +++ b/libbaremetal/arm64/Makefile.lib > > @@ -0,0 +1,63 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +ARM Limited, 2014 # Copyright (c) Siemens AG, 2014 # # Authors: > > +# Jean-Philippe Brucker <jean-philippe.bruc...@arm.com> # Jan > > +Kiszka <jan.kis...@siemens.com> # # This work is licensed under the > > +terms of the GNU GPL, version 2. See # the COPYING file in the > > +top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +-include $(GEN_CONFIG_MK) > > + > > +LINUXINCLUDE += -I$(INMATES_LIB)/include LINUXINCLUDE += > > +-I$(INMATES_LIB)/../arm-common/include > > + > > +define DECLARE_TARGETS = > > + _TARGETS = $(1) > > + always := $$(_TARGETS) > > + # $(NAME-y) NAME-linked.o NAME.bin > > + targets += $$(foreach t,$$(_TARGETS:.bin=-y),$$($$t)) \ > > + $$(_TARGETS:.bin=-linked.o) $$(_TARGETS) endef > > + > > +# prevent deleting intermediate files which would cause rebuilds > > +.SECONDARY: $(addprefix $(obj)/,$(targets)) > > + > > +.SECONDEXPANSION: > > +$(obj)/%-linked.o: $$(addprefix $$(obj)/,$$($$*-y)) \ > > + $(INMATES_LIB)/lib.a > > + $(call if_changed,ld) > > + > > +$(obj)/%.bin: $(obj)/%-linked.o > > + $(call if_changed,objcopy) > > diff --git a/inmates/lib/string.c b/libbaremetal/string.c similarity > > index 100% rename from inmates/lib/string.c rename to > > libbaremetal/string.c diff --git a/libbaremetal/x86/Makefile > > b/libbaremetal/x86/Makefile new file mode 100644 index > > 00000000..e4e72b5b > > --- /dev/null > > +++ b/libbaremetal/x86/Makefile > > @@ -0,0 +1,66 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +Siemens AG, 2015, 2016 # # Authors: > > +# Jan Kiszka <jan.kis...@siemens.com> # # This work is licensed > > +under the terms of the GNU GPL, version 2. See # the COPYING file in > > +the top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +include $(INMATES_LIB)/Makefile.lib > > + > > +always := lib.a lib32.a > > + > > +TARGETS := += ../string.o > > + > > +lib-y := $(TARGETS) $(TARGETS_64_ONLY) lib32-y := $(TARGETS:.o=-32.o) > > +$(TARGETS_32_ONLY) > > + > > +quiet_cmd_link_archive32 = AR $@ > > +cmd_link_archive32 = rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@ $^ > > + > > +$(obj)/lib32.a: $(addprefix $(obj)/,$(lib32-y)) > > + $(call if_changed,link_archive32) > > + > > +targets += $(lib32-y) > > + > > +# Code of this object is called before SSE/AVX extensions are > > +available. Ensure # that the compiler won't generate unsupported > instructions for this file. > > +CFLAGS_cpu-features.o += -mno-sse > > + > > +$(obj)/%-32.o: c_flags += -m32 > > +$(obj)/%-32.o: $(src)/%.c FORCE > > + $(call if_changed_rule,cc_o_c) > > + > > +$(obj)/%-32.o: a_flags += -m32 > > +$(obj)/%-32.o: $(src)/%.S FORCE > > + $(call if_changed_rule,as_o_S) > > diff --git a/libbaremetal/x86/Makefile.lib > > b/libbaremetal/x86/Makefile.lib new file mode 100644 index > > 00000000..6190315b > > --- /dev/null > > +++ b/libbaremetal/x86/Makefile.lib > > @@ -0,0 +1,69 @@ > > +# > > +# Jailhouse, a Linux-based partitioning hypervisor # # Copyright (c) > > +Siemens AG, 2013, 2014 # # Authors: > > +# Jan Kiszka <jan.kis...@siemens.com> # # This work is licensed > > +under the terms of the GNU GPL, version 2. See # the COPYING file in > > +the top-level directory. > > +# > > +# Alternatively, you can use or redistribute this file under the > > +following # BSD license: > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the > distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS "AS IS" > > +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED > > +TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR > A > > +PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT > > +HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, > > +INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES > > +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE > GOODS OR > > +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # > INTERRUPTION) > > +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # > CONTRACT, > > +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # > > +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED OF # THE POSSIBILITY OF SUCH DAMAGE. > > +# > > + > > +-include $(GEN_CONFIG_MK) > > + > > +KBUILD_CFLAGS += -m64 -mno-red-zone > > +LINUXINCLUDE += -I$(INMATES_LIB)/include > > + > > +define DECLARE_TARGETS = > > + _TARGETS = $(1) > > + always := $$(_TARGETS) > > + # $(NAME-y) NAME-linked.o NAME.bin > > + targets += $$(foreach t,$$(_TARGETS:.bin=-y),$$($$t)) \ > > + $$(_TARGETS:.bin=-linked.o) $$(_TARGETS) endef > > + > > +# prevent deleting intermediate files which would cause rebuilds > > +.SECONDARY: $(addprefix $(obj)/,$(targets)) > > + > > +# obj/NAME-linked.o: ... obj/$(NAME-y) lib/lib[32].a > > +.SECONDEXPANSION: > > +$(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix > $$(obj)/,$$($$*-y)) \ > > + $(INMATES_LIB)/$$(if $$($$*_32),lib32.a,lib.a) > > + $(call if_changed,ld) > > + > > +$(obj)/%.bin: $(obj)/%-linked.o > > + $(call if_changed,objcopy) > > + > > +# 32-bit (i386) support > > +define DECLARE_32_BIT = > > + CFLAGS_$(1).o := -m32 -msse > > + LDFLAGS_$(1)-linked.o := /dev/null -m elf_i386 -T > > + $(1)_32 := y > > +endef > > > > -- > Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate > Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to jailhouse-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/DB6PR0402MB2760040A34FE70576005395E88400%40DB6PR0402MB2760.eurprd04.prod.outlook.com.