In common/libelf/Makefile, when SECTIONS gets defined
SPECIAL_DATA_SECTIONS doesn't exist, so only "text data" sections are
been renamed. This was different before
48115d14743e ("Move more
kernel decompression bits to .init.* sections"). By introducing the
same renaming mechanism the to libfdt (
9ba1f198f61e ["xen/libfdt: Put
all libfdt in init"]), the issue was extended to there as well.
Move SPECIAL_DATA_SECTIONS in Rules.mk before including "Makefile" to
fix this.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
LDFLAGS += $(LDFLAGS-y)
+SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
+ $(foreach w,1 2 4, \
+ rodata.str$(w).$(a)) \
+ rodata.cst$(a)) \
+ $(foreach r,rel rel.ro,data.$(r).local)
+
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
DEPS = .*.d
%.o: %.S Makefile
$(CC) $(AFLAGS) -c $< -o $@
-SPECIAL_DATA_SECTIONS := rodata $(foreach a,1 2 4 8 16, \
- $(foreach w,1 2 4, \
- rodata.str$(w).$(a)) \
- rodata.cst$(a)) \
- $(foreach r,rel rel.ro,data.$(r).local)
-
$(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): %.init.o: %.o Makefile
$(OBJDUMP) -h $< | sed -n '/[0-9]/{s,00*,0,g;p;}' | while read idx name sz rest; do \
case "$$name" in \