build: Newer toolchains need a few tweaks to linker options.

Pull those fixes in now

Change-Id: I71c373ecc9d062ca997eb940c7d84a94e2d678aa
This commit is contained in:
Solomon Peachy 2025-09-07 15:40:44 -04:00
parent e9b8413f49
commit eb03c7b4d0
4 changed files with 10 additions and 6 deletions

View file

@ -26,13 +26,13 @@ IMGDECFLAGS = $(PLUGINFLAGS) -DIMGDEC
IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS) IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS)
$(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make)) $(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make))
IMGDECLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap IMGDECLDFLAGS = $(GLOBAL_LDOPTS) -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap
ifndef APP_TYPE ifndef APP_TYPE
IMGDEC_OUTLDS = $(IMGVBUILDDIR)/%.link IMGDEC_OUTLDS = $(IMGVBUILDDIR)/%.link
IMGDEC_OVLFLAGS = -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map IMGDEC_OVLFLAGS = $(GLOBAL_LDOPTS) -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map
else else
IMGDEC_OVLFLAGS = $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map IMGDEC_OVLFLAGS = $(GLOBAL_LDOPTS) $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map
endif endif
$(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS) $(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS)
@ -52,4 +52,3 @@ $(IMGVBUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(IMGVSRCDIR)/imageviewer.h $(PLUG
$(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap $(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap
$(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \ $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \
$(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap)) $(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap))

View file

@ -149,7 +149,7 @@ ifdef APP_TYPE
PLUGINFLAGS += $(SHARED_CFLAGS) # <-- from Makefile PLUGINFLAGS += $(SHARED_CFLAGS) # <-- from Makefile
else else
PLUGINLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$*.map PLUGINLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$*.map
OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap $(GLOBAL_LDOPTS)
endif endif
PLUGINLDFLAGS += $(GLOBAL_LDOPTS) PLUGINLDFLAGS += $(GLOBAL_LDOPTS)

View file

@ -49,7 +49,7 @@ ifndef APP_TYPE
WOLF3D_OUTLDS = $(SDL_OBJDIR)/wolf3d.link WOLF3D_OUTLDS = $(SDL_OBJDIR)/wolf3d.link
QUAKE_OUTLDS = $(SDL_OBJDIR)/quake.link QUAKE_OUTLDS = $(SDL_OBJDIR)/quake.link
SDL_OVLFLAGS = -Wl,--gc-sections -Wl,-Map,$(basename $@).map SDL_OVLFLAGS = -Wl,--gc-sections -Wl,-Map,$(basename $@).map $(GLOBAL_LDOPTS)
else else
### simulator ### simulator
ROCKS += $(SDL_OBJDIR)/duke3d.rock ROCKS += $(SDL_OBJDIR)/duke3d.rock

5
tools/configure vendored
View file

@ -776,6 +776,7 @@ arm1176jzlinuxcc () {
GCCOPTIMIZE='' GCCOPTIMIZE=''
LDOPTS="-lasound -lpthread -lm -ldl -lrt $LDOPTS" LDOPTS="-lasound -lpthread -lm -ldl -lrt $LDOPTS"
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs" # warn about undefined symbols in shared libraries GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs" # warn about undefined symbols in shared libraries
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs -Wl,-z,noexecstack" # Stack is not executable
SHARED_LDFLAGS="-shared" SHARED_LDFLAGS="-shared"
SHARED_CFLAGS='' SHARED_CFLAGS=''
endian="little" endian="little"
@ -4696,6 +4697,10 @@ else
ldnum=`$LD --version | sed -n '1p' | sed -e 's/.* \([0-9]*\)\.\([0-9]*\).*/\1\2/'` ldnum=`$LD --version | sed -n '1p' | sed -e 's/.* \([0-9]*\)\.\([0-9]*\).*/\1\2/'`
fi fi
if test "$ldnum" -ge "239"; then
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,--no-warn-rwx-segments"
fi
if test "$ldnum" -ge "227"; then if test "$ldnum" -ge "227"; then
have_nocrossrefs_to="#define HAVE_NOCROSSREFS_TO" have_nocrossrefs_to="#define HAVE_NOCROSSREFS_TO"
else else