# HG changeset patch # User andrew # Date 1586662744 -3600 # Node ID 493615a206a94e11c9ff09d58d1733758556ac95 # Parent 0a35083e9c766d71e9812e44cba6dcb1f2cdf47b 8233410: Better Build Scripting Summary: Also includes more complete backport of JDK-8199552 (relro) Reviewed-by: mbalao diff -r 0a35083e9c76 -r 493615a206a9 make/bsd/makefiles/gcc.make --- a/make/bsd/makefiles/gcc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/bsd/makefiles/gcc.make Sun Apr 12 04:39:04 2020 +0100 @@ -264,6 +264,9 @@ # Enable linker optimization LFLAGS += -Xlinker -O1 + # Create a RELRO section for memory segments that should be read-only after relocation + LFLAGS += -Xlinker -z -Xlinker relro + # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj SONAMEFLAG = -Xlinker -soname=SONAME diff -r 0a35083e9c76 -r 493615a206a9 make/bsd/makefiles/jsig.make --- a/make/bsd/makefiles/jsig.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/bsd/makefiles/jsig.make Sun Apr 12 04:39:04 2020 +0100 @@ -49,6 +49,11 @@ LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) +ifneq ($(OS_VENDOR), Darwin) +# Create a RELRO section for memory segments that should be read-only after relocation +LFLAGS_JSIG += -Xlinker -z -Xlinker relro +endif + # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) JSIG_DEBUG_CFLAGS = -g diff -r 0a35083e9c76 -r 493615a206a9 make/bsd/makefiles/saproc.make --- a/make/bsd/makefiles/saproc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/bsd/makefiles/saproc.make Sun Apr 12 04:39:04 2020 +0100 @@ -85,6 +85,8 @@ ifneq ($(OS_VENDOR), Darwin) SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) +# Create a RELRO section for memory segments that should be read-only after relocation +SA_LFLAGS += -Xlinker -z -Xlinker relro endif SA_LFLAGS += $(LDFLAGS_HASH_STYLE) diff -r 0a35083e9c76 -r 493615a206a9 make/linux/makefiles/gcc.make --- a/make/linux/makefiles/gcc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/linux/makefiles/gcc.make Sun Apr 12 04:39:04 2020 +0100 @@ -210,6 +210,9 @@ endif LFLAGS += $(LDFLAGS_HASH_STYLE) +# Create a RELRO section for memory segments that should be read-only after relocation +LFLAGS += -Xlinker -z -Xlinker relro + # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. MAPFLAG = -Xlinker --version-script=FILENAME diff -r 0a35083e9c76 -r 493615a206a9 make/linux/makefiles/jsig.make --- a/make/linux/makefiles/jsig.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/linux/makefiles/jsig.make Sun Apr 12 04:39:04 2020 +0100 @@ -51,6 +51,9 @@ LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) +# Create a RELRO section for memory segments that should be read-only after relocation +LFLAGS_JSIG += -Xlinker -z -Xlinker relro + # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) JSIG_DEBUG_CFLAGS = -g diff -r 0a35083e9c76 -r 493615a206a9 make/linux/makefiles/saproc.make --- a/make/linux/makefiles/saproc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/linux/makefiles/saproc.make Sun Apr 12 04:39:04 2020 +0100 @@ -79,6 +79,9 @@ endif SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) +# Create a RELRO section for memory segments that should be read-only after relocation +SA_LFLAGS += -Xlinker -z -Xlinker relro + $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE) $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \ echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \ diff -r 0a35083e9c76 -r 493615a206a9 make/solaris/makefiles/gcc.make --- a/make/solaris/makefiles/gcc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/solaris/makefiles/gcc.make Sun Apr 12 04:39:04 2020 +0100 @@ -171,6 +171,9 @@ # Enable linker optimization LFLAGS += -Xlinker -O1 +# Create a RELRO section for memory segments that should be read-only after relocation +LFLAGS += -Xlinker -z -Xlinker relro + # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. MAPFLAG = -Xlinker --version-script=FILENAME else diff -r 0a35083e9c76 -r 493615a206a9 make/solaris/makefiles/jsig.make --- a/make/solaris/makefiles/jsig.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/solaris/makefiles/jsig.make Sun Apr 12 04:39:04 2020 +0100 @@ -52,6 +52,11 @@ LFLAGS_JSIG += -mt -xnolib endif +ifdef USE_GNULD +# Create a RELRO section for memory segments that should be read-only after relocation +LFLAGS_JSIG += -Xlinker -z -Xlinker relro +endif + $(LIBJSIG): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE) @echo Making signal interposition lib... $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ diff -r 0a35083e9c76 -r 493615a206a9 make/solaris/makefiles/saproc.make --- a/make/solaris/makefiles/saproc.make Tue Apr 07 18:30:22 2020 +0100 +++ b/make/solaris/makefiles/saproc.make Sun Apr 12 04:39:04 2020 +0100 @@ -63,6 +63,11 @@ SA_LFLAGS += -mt -xnolib -norunpath endif +ifdef USE_GNULD +# Create a RELRO section for memory segments that should be read-only after relocation +SA_LFLAGS += -Xlinker -z -Xlinker relro +endif + # The libproc Pstack_iter() interface changed in Nevada-B159. # Use 'uname -r -v' to determine the Solaris version as per # Solaris Nevada team request. This logic needs to match: