diff --git a/apps/plugins/imageviewer/imageviewer.make b/apps/plugins/imageviewer/imageviewer.make index 3179685089..23f9813357 100644 --- a/apps/plugins/imageviewer/imageviewer.make +++ b/apps/plugins/imageviewer/imageviewer.make @@ -26,13 +26,13 @@ IMGDECFLAGS = $(PLUGINFLAGS) -DIMGDEC IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS) $(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 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 - IMGDEC_OVLFLAGS = $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map + IMGDEC_OVLFLAGS = $(GLOBAL_LDOPTS) $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map endif $(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS) @@ -52,4 +52,3 @@ $(IMGVBUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(IMGVSRCDIR)/imageviewer.h $(PLUG $(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \ $(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap)) - diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make index 74d6fb7db7..88e2165c9a 100644 --- a/apps/plugins/plugins.make +++ b/apps/plugins/plugins.make @@ -149,7 +149,7 @@ ifdef APP_TYPE PLUGINFLAGS += $(SHARED_CFLAGS) # <-- from Makefile else 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 PLUGINLDFLAGS += $(GLOBAL_LDOPTS) diff --git a/apps/plugins/sdl/sdl.make b/apps/plugins/sdl/sdl.make index 194d609fb8..3b3bf819cf 100644 --- a/apps/plugins/sdl/sdl.make +++ b/apps/plugins/sdl/sdl.make @@ -49,7 +49,7 @@ ifndef APP_TYPE WOLF3D_OUTLDS = $(SDL_OBJDIR)/wolf3d.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 ### simulator ROCKS += $(SDL_OBJDIR)/duke3d.rock diff --git a/tools/configure b/tools/configure index 21e6bcc838..8de248b86b 100755 --- a/tools/configure +++ b/tools/configure @@ -776,6 +776,7 @@ arm1176jzlinuxcc () { GCCOPTIMIZE='' 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 -Wl,-z,noexecstack" # Stack is not executable SHARED_LDFLAGS="-shared" SHARED_CFLAGS='' endian="little" @@ -4696,6 +4697,10 @@ else ldnum=`$LD --version | sed -n '1p' | sed -e 's/.* \([0-9]*\)\.\([0-9]*\).*/\1\2/'` fi +if test "$ldnum" -ge "239"; then + GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,--no-warn-rwx-segments" +fi + if test "$ldnum" -ge "227"; then have_nocrossrefs_to="#define HAVE_NOCROSSREFS_TO" else