Mercurial > hg > release > icedtea7-forest-2.6 > jdk
changeset 9927:a421cf366d06
8233410: Better Build Scripting
Summary: Also includes a more complete backport of JDK-8199552 (relro)
Reviewed-by: mbalao
author | andrew |
---|---|
date | Sun, 12 Apr 2020 04:40:12 +0100 |
parents | 2c1da2208c2b |
children | ce46c9dcfd63 |
files | make/com/sun/java/pack/Makefile make/common/Defs-linux.gmk make/common/Defs-solaris.gmk make/common/Program.gmk make/java/jexec/Makefile |
diffstat | 5 files changed, 36 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/make/com/sun/java/pack/Makefile Wed Apr 08 01:25:28 2020 +0100 +++ b/make/com/sun/java/pack/Makefile Sun Apr 12 04:40:12 2020 +0100 @@ -79,6 +79,12 @@ LDDFLAGS += $(ZLIB_LIBS) OTHER_CXXFLAGS += $(ZLIB_CFLAGS) -DSYSTEM_ZLIB endif +# Add -fPIE in place of -fPIC for building executables + ifeq ($(CC_VERSION), gcc) + LDDFLAGS += -pie + CFLAGS := $(subst -fPIC,-fPIE,$(CFLAGS)) + CXXFLAGS := $(subst -fPIC,-fPIE,$(CXXFLAGS)) + endif # CC_VERSION gcc else OTHER_CXXFLAGS += -DNO_ZLIB -DUNPACK_JNI OTHER_LDLIBS += $(JVMLIB)
--- a/make/common/Defs-linux.gmk Wed Apr 08 01:25:28 2020 +0100 +++ b/make/common/Defs-linux.gmk Sun Apr 12 04:40:12 2020 +0100 @@ -260,6 +260,12 @@ CFLAGS_COMMON += -pipe endif +# Add buffer overflow protection, if available +_HAS_STACK_PROTECTOR:=$(shell $(CC) -dumpspecs | $(GREP) -- 'fstack-protector') +ifneq ($(_HAS_STACK_PROTECTOR),) + CFLAGS_COMMON += -fstack-protector +endif + # Linux 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1 DEBUG_FLAG = -g ifeq ($(FASTDEBUG), true) @@ -357,6 +363,9 @@ LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) +LDFLAGS_RELRO_OPTION = -Xlinker -z -Xlinker relro +LDFLAGS_COMMON += $(LDFLAGS_RELRO_OPTION) + # # -L paths for finding and -ljava #
--- a/make/common/Defs-solaris.gmk Wed Apr 08 01:25:28 2020 +0100 +++ b/make/common/Defs-solaris.gmk Sun Apr 12 04:40:12 2020 +0100 @@ -442,6 +442,8 @@ # ifeq ($(CC_VERSION),gcc) LD_MAPFILE_FLAG = -Xlinker -M -Xlinker +LDFLAGS_RELRO_OPTION = -Xlinker -z -Xlinker relro +LDFLAGS_COMMON += $(LDFLAGS_RELRO_OPTION) else LD_MAPFILE_FLAG = -M endif @@ -531,6 +533,11 @@ # (See Rules.gmk) May need to wait for gcc 5? AUTOMATIC_PCH_OPTION = + # Add buffer overflow protection, if available + _HAS_STACK_PROTECTOR:=$(shell $(CC) -dumpspecs | $(GREP) -- 'fstack-protector') + ifneq ($(_HAS_STACK_PROTECTOR),) + CFLAGS_COMMON += -fstack-protector + endif else # Highest could be -xO5, but indications are that -xO5 should be reserved
--- a/make/common/Program.gmk Wed Apr 08 01:25:28 2020 +0100 +++ b/make/common/Program.gmk Sun Apr 12 04:40:12 2020 +0100 @@ -131,6 +131,13 @@ OTHER_LDLIBS += jli.lib endif # PLATFORM +# Add -fPIE in place of -fPIC for building executables +ifeq ($(CC_VERSION), gcc) + LDFLAGS += -pie + CFLAGS := $(subst -fPIC,-fPIE,$(CFLAGS)) + CXXFLAGS := $(subst -fPIC,-fPIE,$(CXXFLAGS)) +endif # CC_VERSION gcc + # # Launcher specific files. #
--- a/make/java/jexec/Makefile Wed Apr 08 01:25:28 2020 +0100 +++ b/make/java/jexec/Makefile Sun Apr 12 04:40:12 2020 +0100 @@ -61,6 +61,13 @@ OTHER_INCLUDES += -I$(SHARE_SRC)/bin endif # PLATFORM +# Add -fPIE in place of -fPIC for building executables +ifeq ($(CC_VERSION), gcc) + LDFLAGS += -pie + CFLAGS := $(subst -fPIC,-fPIE,$(CFLAGS)) + CXXFLAGS := $(subst -fPIC,-fPIE,$(CXXFLAGS)) +endif # CC_VERSION gcc + build: $(LIB_LOCATION)/$(PROGRAM) $(LIB_LOCATION)/$(PROGRAM):: $(FILES_o)