File 0020-Link-all-binaries-as-Position-Independent-Executable.patch of Package syslinux
From e3731182bee21727a63d4605e19afb6a9e74e1a0 Mon Sep 17 00:00:00 2001
From: Wolfgang Frisch <wolfgang.frisch@suse.com>
Date: Wed, 9 Jun 2021 10:45:24 +0000
Subject: [PATCH 20/22] Link all binaries as Position Independent Executables
(bsc#1184124)
---
extlinux/Makefile | 4 ++--
linux/Makefile | 3 ++-
mk/build-host.mk | 4 ++--
mk/elf.mk | 2 +-
mtools/Makefile | 4 ++--
utils/Makefile | 4 ++--
6 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/extlinux/Makefile b/extlinux/Makefile
index 1721ee54..623fb899 100644
--- a/extlinux/Makefile
+++ b/extlinux/Makefile
@@ -19,8 +19,8 @@ include $(MAKEDIR)/syslinux.mk
OPTFLAGS = -g -Os
INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller
CFLAGS = $(GCCWARN) -Wno-sign-compare -D_FILE_OFFSET_BITS=64 \
- $(OPTFLAGS) $(INCLUDES)
-LDFLAGS =
+ -fPIC $(OPTFLAGS) $(INCLUDES)
+LDFLAGS = -pie
SRCS = main.c \
mountinfo.c \
diff --git a/linux/Makefile b/linux/Makefile
index 5a49d813..571b014a 100644
--- a/linux/Makefile
+++ b/linux/Makefile
@@ -19,7 +19,8 @@ include $(MAKEDIR)/syslinux.mk
OPTFLAGS = -g -Os
INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libinstaller
CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
-LDFLAGS =
+CFLAGS += -fPIC
+LDFLAGS = -pie
SRCS = syslinux.c \
../libinstaller/syslxopt.c \
diff --git a/mk/build-host.mk b/mk/build-host.mk
index dab5de60..e88b8337 100644
--- a/mk/build-host.mk
+++ b/mk/build-host.mk
@@ -21,8 +21,8 @@ CC_FOR_BUILD ?= $(CC)
OPTFLAGS = -g -Os
INCLUDES =
CFLAGS = $(WARNFLAGS) -D_FILE_OFFSET_BITS=64 \
- $(OPTFLAGS) $(INCLUDES)
-LDFLAGS =
+ -fPIC $(OPTFLAGS) $(INCLUDES)
+LDFLAGS = -pie
LIBS =
.SUFFIXES: .c .o .S .s .i .elf .com .bin .asm .lst .c32 .lss
diff --git a/mk/elf.mk b/mk/elf.mk
index a3037fb6..f5bfb7e9 100644
--- a/mk/elf.mk
+++ b/mk/elf.mk
@@ -73,7 +73,7 @@ LIBGCC := $(shell $(CC) $(GCCOPT) --print-libgcc)
CC_FOR_BUILD ?= $(CC)
-LNXCFLAGS = -I$(com32)/libutil/include -W -Wall -O -g -D_GNU_SOURCE
+LNXCFLAGS = -I$(com32)/libutil/include -W -Wall -fPIC -O -g -D_GNU_SOURCE
LNXSFLAGS = -g
LNXLDFLAGS = -g
diff --git a/mtools/Makefile b/mtools/Makefile
index ef1702b1..08d9b10a 100755
--- a/mtools/Makefile
+++ b/mtools/Makefile
@@ -3,8 +3,8 @@ include $(MAKEDIR)/build-host.mk
OPTFLAGS = -g -Os
INCLUDES = -I$(SRC) -I$(objdir) -I$(SRC)/../libfat -I$(SRC)/../libinstaller
-CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES)
-LDFLAGS =
+CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 -fPIC $(OPTFLAGS) $(INCLUDES)
+LDFLAGS = -pie
SRCS = syslinux.c \
../libinstaller/fs.c \
diff --git a/utils/Makefile b/utils/Makefile
index c57e67de..91298302 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -19,8 +19,8 @@ include $(MAKEDIR)/syslinux.mk
CC_FOR_BUILD ?= $(CC)
-CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -I$(SRC)
-LDFLAGS = $(LDFLAGS_FOR_BUILD) -O2 -g
+CFLAGS = $(CFLAGS_FOR_BUILD) $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -fPIC -I$(SRC)
+LDFLAGS = $(LDFLAGS_FOR_BUILD) -O2 -g -pie
C_TARGETS = isohybrid gethostip memdiskfind
SCRIPT_TARGETS = mkdiskimage
--
2.42.0