| From 16f293d67eace501c98494976030f4319778ebf5 Mon Sep 17 00:00:00 2001 |
| From: Merlin Mathesius <mmathesi@redhat.com> |
| Date: Wed, 13 May 2020 08:02:27 -0500 |
| Subject: [PATCH] Workaround multiple definition of symbol errors |
| |
| [From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0005-Workaround-multiple-definition-of-symbol-errors.patch |
| plus adding '-z muldefs' for gpxe] |
| Signed-off-by: Peter Seiderer <ps.report@gmx.net> |
| --- |
| com32/cmenu/Makefile | 2 +- |
| com32/elflink/ldlinux/Makefile | 2 +- |
| com32/gpllib/Makefile | 2 +- |
| com32/hdt/Makefile | 2 +- |
| core/Makefile | 2 +- |
| dos/Makefile | 2 +- |
| efi/Makefile | 2 +- |
| gpxe/src/arch/i386/Makefile | 2 +- |
| 8 files changed, 8 insertions(+), 8 deletions(-) |
| |
| diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile |
| index 6bb52316..66cdd649 100644 |
| --- a/com32/cmenu/Makefile |
| +++ b/com32/cmenu/Makefile |
| @@ -49,7 +49,7 @@ makeoutputdirs: |
| @mkdir -p $(OBJ)/libmenu |
| |
| libmenu/libmenu.elf: $(LIBMENU) |
| - $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \ |
| + $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \ |
| -o $@ $^ |
| |
| tidy dist: |
| diff --git a/com32/elflink/ldlinux/Makefile b/com32/elflink/ldlinux/Makefile |
| index d948da43..67434a1f 100644 |
| --- a/com32/elflink/ldlinux/Makefile |
| +++ b/com32/elflink/ldlinux/Makefile |
| @@ -33,7 +33,7 @@ endif |
| all: $(BTARGET) ldlinux_lnx.a |
| |
| ldlinux.elf : $(OBJS) |
| - $(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS) |
| + $(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS) |
| |
| LNXCFLAGS += -D__export='__attribute__((visibility("default")))' |
| LNXLIBOBJS = get_key.lo |
| diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile |
| index e3e30d76..17520a1e 100644 |
| --- a/com32/gpllib/Makefile |
| +++ b/com32/gpllib/Makefile |
| @@ -24,7 +24,7 @@ makeoutputdirs: |
| $(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b)) |
| |
| libgpl.elf : $(LIBOBJS) |
| - $(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ |
| + $(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^ |
| |
| tidy dist clean: |
| find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \ |
| diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile |
| index 80f2d0a0..8509cd96 100644 |
| --- a/com32/hdt/Makefile |
| +++ b/com32/hdt/Makefile |
| @@ -52,7 +52,7 @@ QEMU ?= qemu-kvm |
| all: $(MODULES) $(TESTFILES) |
| |
| hdt.elf : $(OBJS) $(LIBS) $(C_LIBS) |
| - $(LD) $(LDFLAGS) -o $@ $^ |
| + $(LD) $(LDFLAGS) -z muldefs -o $@ $^ |
| |
| memtest: |
| -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST) |
| diff --git a/core/Makefile b/core/Makefile |
| index ad0acb5a..3bee4dc9 100644 |
| --- a/core/Makefile |
| +++ b/core/Makefile |
| @@ -164,7 +164,7 @@ AUXLIBS = libisolinux.a libisolinux-debug.a libldlinux.a \ |
| LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld |
| |
| %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS) |
| - $(LD) $(LDFLAGS) -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ |
| + $(LD) $(LDFLAGS) -z muldefs -Bsymbolic $(LD_PIE) -E --hash-style=gnu -T $(LDSCRIPT) -M -o $@ $< \ |
| --start-group $(LIBS) $(subst $(*F).elf,lib$(*F).a,$@) --end-group \ |
| > $(@:.elf=.map) |
| $(OBJDUMP) -h $@ > $(@:.elf=.sec) |
| diff --git a/dos/Makefile b/dos/Makefile |
| index b9c337d5..2af87346 100644 |
| --- a/dos/Makefile |
| +++ b/dos/Makefile |
| @@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk |
| CFLAGS += -D__MSDOS__ -mregparm=3 -DREGPARM=3 |
| # CFLAGS += -DDEBUG |
| |
| -LDFLAGS = -T $(SRC)/dosexe.ld |
| +LDFLAGS = -T $(SRC)/dosexe.ld -z muldefs |
| OPTFLAGS = -g |
| INCLUDES = -include code16.h -nostdinc -iwithprefix include \ |
| -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \ |
| diff --git a/efi/Makefile b/efi/Makefile |
| index d24d16db..7c714ebf 100644 |
| --- a/efi/Makefile |
| +++ b/efi/Makefile |
| @@ -70,7 +70,7 @@ $(OBJS): subdirs |
| BTARGET = syslinux.efi |
| |
| syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS) |
| - $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi |
| + $(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi |
| |
| # We need to rename the .hash section because the EFI firmware |
| # linker really doesn't like it. |
| diff --git a/gpxe/src/arch/i386/Makefile b/gpxe/src/arch/i386/Makefile |
| index dd8da802..be1d00ff 100644 |
| --- a/gpxe/src/arch/i386/Makefile |
| +++ b/gpxe/src/arch/i386/Makefile |
| @@ -55,7 +55,7 @@ ASFLAGS += --32 |
| ifeq ($(HOST_OS),FreeBSD) |
| LDFLAGS += -m elf_i386_fbsd |
| else |
| -LDFLAGS += -m elf_i386 |
| +LDFLAGS += -z muldefs -m elf_i386 |
| endif |
| |
| # EFI requires -fshort-wchar, and nothing else currently uses wchar_t |
| -- |
| 2.30.1 |
| |