[CRIU] [PATCH 07/11] criu: pie -- Switch to use compel shipped packing script
Cyrill Gorcunov
gorcunov at openvz.org
Fri Nov 11 10:52:04 PST 2016
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
criu/pie/Makefile | 54 +++++++++------------------------------------
criu/pie/pie-reloc.lds.S.in | 35 -----------------------------
criu/pie/pie.lds.S.in | 31 --------------------------
3 files changed, 11 insertions(+), 109 deletions(-)
delete mode 100644 criu/pie/pie-reloc.lds.S.in
delete mode 100644 criu/pie/pie.lds.S.in
diff --git a/criu/pie/Makefile b/criu/pie/Makefile
index d2a86b800f0f..da90c6774155 100644
--- a/criu/pie/Makefile
+++ b/criu/pie/Makefile
@@ -6,6 +6,9 @@ ifeq ($(CONFIG_COMPAT),y)
parasite_target += compat
endif
+compel_pack_lds-native := $(SRC_DIR)/compel/arch/$(ARCH)/scripts/compel-pack.lds.S
+compel_pack_lds-compat := $(SRC_DIR)/compel/arch/$(ARCH)/scripts/compel-pack-compat.lds.S
+
native-obj-y += parasite.o
native-obj-y += infect.o
compat-obj-y += compat/parasite-compat.o
@@ -95,46 +98,12 @@ GEN-OFFSETS := $(obj)/../../scripts/gen-offsets.sh
BLOBS += $(obj)/restorer-blob.h
define gen-pields-blobs-var
-PIELDS += $(obj)/pie.lds-$(1).S
BLOBS += $(obj)/parasite-$(1)-blob.h
endef
$(eval $(call map,gen-pields-blobs-var,$(parasite_target)))
.SECONDARY:
-ifeq ($(piegen-y),y)
-PIELDS_INCLUDE := $(obj)/pie-reloc.lds.S.in
-else
-PIELDS_INCLUDE := $(obj)/pie.lds.S.in
-endif
-
-ifeq ($(ARCH),x86)
-$(obj)/pie.lds-native.S: $(PIELDS_INCLUDE)
- $(call msg-gen, $@)
- $(Q) echo "OUTPUT_ARCH(i386:x86-64)" > $@
- $(Q) echo "TARGET(elf64-x86-64)" >> $@
- $(Q) cat $< >> $@
-
-$(obj)/pie.lds-compat.S: $(PIELDS_INCLUDE)
- $(call msg-gen, $@)
- $(Q) echo "OUTPUT_ARCH(i386)" > $@
- $(Q) echo "TARGET(elf32-i386)" >> $@
- $(Q) cat $< >> $@
-else # !x86
-ifeq ($(filter-out i386 ia32,$(ARCH)),)
-$(PIELDS): $(PIELDS_INCLUDE)
- $(call msg-gen, $@)
- $(Q) echo "OUTPUT_ARCH(i386)" > $@
- $(Q) echo "TARGET(elf32-i386)" >> $@
- $(Q) cat $< >> $@
-else # arm, aarch64, ppc64
-$(PIELDS): $(PIELDS_INCLUDE)
- $(call msg-gen, $@)
- $(Q) echo "OUTPUT_ARCH($(LDARCH))" > $@
- $(Q) cat $< >> $@
-endif # non i386
-endif # non x86 ARCH
-
# for C files, we need "parasite-native" to be "parasite_native"
target-name = $(patsubst criu/pie/%_blob.h,%,$(subst -,_,$(1)))
@@ -144,16 +113,16 @@ ifeq ($(strip $(V)),)
endif
$(obj)/restorer.built-in.bin.o: $(obj)/restorer.built-in.o \
- $(obj)/native.lib.a $(obj)/pie.lds-native.S
+ $(obj)/native.lib.a $(compel_pack_lds-native)
$(call msg-gen, $@)
- $(Q) $(LD) -r -T $(obj)/pie.lds-native.S -o $@ $< $(obj)/native.lib.a
+ $(Q) $(LD) -r -T $(compel_pack_lds-native) -o $@ $< $(obj)/native.lib.a
# $1 - binary mode: native/compat
define gen-rule-built-in.bin.o
$(obj)/parasite-$(1).built-in.bin.o: $(obj)/$(1).built-in.o \
- $(obj)/$(1).lib.a $(obj)/pie.lds-$(1).S
+ $(obj)/$(1).lib.a $(compel_pack_lds-$(1))
$$(call msg-gen, $$@)
- $(Q) $(LD) -r -T $(obj)/pie.lds-$(1).S -o $$@ $$< $(obj)/$(1).lib.a
+ $(Q) $(LD) -r -T $(compel_pack_lds-$(1)) -o $$@ $$< $(obj)/$(1).lib.a
endef
$(eval $(call map,gen-rule-built-in.bin.o,$(parasite_target)))
@@ -177,17 +146,17 @@ endif
define gen-rule-built-in.bin.o
$(obj)/parasite-$(1).built-in.bin.o: $(obj)/$(1).built-in.o \
- $(obj)/pie.lds-$(1).S $(obj)/native.lib.a
+ $(compel_pack_lds-$(1)) $(obj)/native.lib.a
$$(call msg-gen, $$@)
- $(Q) $(LD) $(LD_R) -T $(obj)/pie.lds-$(1).S -o $$@ $$< $(obj)/native.lib.a
+ $(Q) $(LD) $(LD_R) -T $(compel_pack_lds-$(1)) -o $$@ $$< $(obj)/native.lib.a
endef
$(eval $(call map,gen-rule-built-in.bin.o,$(parasite_target)))
$(obj)/restorer.built-in.bin.o: $(obj)/restorer.built-in.o \
- $(obj)/pie.lds-native.S $(obj)/native.lib.a
+ $(compel_pack_lds-native) $(obj)/native.lib.a
$(call msg-gen, $@)
- $(Q) $(LD) $(LD_R) -T $(obj)/pie.lds-native.S -o $@ $< $(obj)/native.lib.a
+ $(Q) $(LD) $(LD_R) -T $(compel_pack_lds-native) -o $@ $< $(obj)/native.lib.a
$(obj)/%.built-in.bin: $(obj)/%.built-in.bin.o
$(call msg-gen, $@)
@@ -204,7 +173,6 @@ all-y += $(BLOBS)
# blobs and pields are in cleanup, rather than in mrproper because
# we want them to be re-generated after `make clean && make`
cleanup-y += $(BLOBS)
-cleanup-y += $(PIELDS)
cleanup-y += $(obj)/*.bin
cleanup-y += $(obj)/*.built-in.bin.o
cleanup-y += $(obj)/*.built-in.bin
diff --git a/criu/pie/pie-reloc.lds.S.in b/criu/pie/pie-reloc.lds.S.in
deleted file mode 100644
index 2d0730cbd58d..000000000000
--- a/criu/pie/pie-reloc.lds.S.in
+++ /dev/null
@@ -1,35 +0,0 @@
-SECTIONS
-{
- .text : {
- *(.head.text)
- *(.text*)
- *(.compel.init)
- *(.compel.exit)
- }
-
- .data : {
- *(.data*)
- *(.bss*)
- }
-
- .rodata : {
- *(.rodata*)
- *(.got*)
- }
-
- .toc : ALIGN(8) {
- *(.toc*)
- }
-
- /DISCARD/ : {
- *(.debug*)
- *(.comment*)
- *(.note*)
- *(.group*)
- *(.eh_frame*)
- }
-
-/* Parasite args should have 4 bytes align, as we have futex inside. */
-. = ALIGN(4);
-__export_parasite_args = .;
-}
diff --git a/criu/pie/pie.lds.S.in b/criu/pie/pie.lds.S.in
deleted file mode 100644
index f745d355ef3d..000000000000
--- a/criu/pie/pie.lds.S.in
+++ /dev/null
@@ -1,31 +0,0 @@
-SECTIONS
-{
- .crblob 0x0 : {
- *(.head.text)
- *(.text*)
- . = ALIGN(32);
- *(.data*)
- . = ALIGN(32);
- *(.rodata*)
- . = ALIGN(32);
- *(.bss*)
- . = ALIGN(32);
- *(.got*)
- . = ALIGN(32);
- *(.toc*)
- . = ALIGN(32);
- } =0x00000000,
-
- /DISCARD/ : {
- *(.debug*)
- *(.comment*)
- *(.note*)
- *(.group*)
- *(.eh_frame*)
- *(*)
- }
-
-/* Parasite args should have 4 bytes align, as we have futex inside. */
-. = ALIGN(4);
-__export_parasite_args = .;
-}
--
2.7.4
More information about the CRIU
mailing list