File s390-tools-sles15sp5-14-genprotimg-boot-stage3b_reloc.bin-add-linker-script.patch of Package s390-tools

---
 genprotimg/boot/Makefile            |   14 ++++----------
 genprotimg/boot/stage3b_reloc.S     |    4 ++--
 genprotimg/boot/stage3b_reloc.lds.S |   19 +++++++++++++++++++
 3 files changed, 25 insertions(+), 12 deletions(-)

--- a/genprotimg/boot/Makefile
+++ b/genprotimg/boot/Makefile
@@ -69,17 +69,11 @@ endif
 
 stage3b_reloc.o: stage3b.bin
 
-stage3a.elf: head.o stage3a_init.o stage3a.o stage3a.lds $(ZIPL_OBJS)
-stage3b.elf: head.o stage3b.o stage3b.lds $(ZIPL_OBJS)
-stage3b_reloc.elf:
+stage3a.elf: head.o stage3a_init.o $(ZIPL_OBJS)
+stage3b.elf: head.o $(ZIPL_OBJS)
 
-%.elf:	%.o
-	case $* in \
-		stage3a) SFLAGS="-Wl,-T,stage3a.lds";; \
-		stage3b) SFLAGS="-Wl,-T,stage3b.lds";; \
-		stage3b_reloc) SFLAGS="-Wl,-estage3b_reloc_start,-Ttext,0";; \
-	esac; \
-	$(LINK) $$SFLAGS $(NO_PIE_LDFLAGS) $(NO_WARN_RWX_SEGMENTS_LDFLAGS) -Wl,--build-id=none -m64 -static -nostdlib $(filter %.o, $^) -o $@
+%.elf: %.lds %.o
+	$(LINK) $(NO_PIE_LDFLAGS) $(NO_WARN_RWX_SEGMENTS_LDFLAGS) -Wl,-T,$< -Wl,--build-id=none -m64 -static -nostdlib $(filter %.o, $^) -o $@
 	@chmod a-x $@
 
 %.bin: %.elf
--- a/genprotimg/boot/stage3b_reloc.S
+++ b/genprotimg/boot/stage3b_reloc.S
@@ -22,8 +22,8 @@
 
 .org 0x0
 .section .text.start
-.globl stage3b_reloc_start
-stage3b_reloc_start:
+.globl _start
+_start:
 	/* Might be called after a diag308 so better set
 	 * architecture and addressing mode
 	 */
--- /dev/null
+++ b/genprotimg/boot/stage3b_reloc.lds.S
@@ -0,0 +1,19 @@
+OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
+OUTPUT_ARCH(s390:64-bit)
+
+ENTRY(_start)
+
+SECTIONS
+{
+	.text : {
+		*(.text.start)
+		*(.text .text.*)
+	}
+
+	/* Sections to be discarded */
+	/DISCARD/ : {
+		*(.eh_frame)
+		*(.interp)
+		*(.note.GNU-stack)
+	}
+}
openSUSE Build Service is sponsored by