diff options
author | Sverker Eriksson <[email protected]> | 2016-11-11 16:23:42 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-11-11 16:23:42 +0100 |
commit | b4c76edc46f82a4d09d9f569e1d4e6013b265389 (patch) | |
tree | 0c6291f63db3532f872f6f1d96efb9881f7815ad /erts | |
parent | 867f7d604dff7d9ab34ca349e0ca3f29eba5c424 (diff) | |
parent | edfa3b87542687baa2530a41241eb83d9afda1fb (diff) | |
download | otp-b4c76edc46f82a4d09d9f569e1d4e6013b265389.tar.gz otp-b4c76edc46f82a4d09d9f569e1d4e6013b265389.tar.bz2 otp-b4c76edc46f82a4d09d9f569e1d4e6013b265389.zip |
Merge branch 'sverker/hipe-no-pie-amd64/ERL-294/PR-1239/OTP-14031' into maint
* sverker/hipe-no-pie-amd64:
erts: Disable -fPIE for HiPE on x86_64
erts: Fix correct link flags for hipe_mkliterals
Diffstat (limited to 'erts')
-rw-r--r-- | erts/configure.in | 17 | ||||
-rw-r--r-- | erts/emulator/Makefile.in | 7 |
2 files changed, 22 insertions, 2 deletions
diff --git a/erts/configure.in b/erts/configure.in index 4799178583..ad9a66126f 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -2794,6 +2794,23 @@ if test "$cross_compiling" != "yes" && test X${enable_hipe} != Xno; then fi fi +dnl Check to disable -fPIE and friends for HiPE on amd64 +if test X${enable_hipe} = Xyes && test X$ARCH = Xamd64; then + AC_TRY_COMPILE(, [#if defined(__pie__) || defined(__PIE__) + #error -fPIE is enabled by default + #endif], + [AC_MSG_NOTICE([No -fPIE enabled by default])], + [AC_MSG_WARN([Security feature -fPIE will be disabled for HiPE]) + STATIC_CFLAGS="-fno-PIE $STATIC_CFLAGS" + saved_LDFLAGS=$LDFLAGS + LDFLAGS="-no-pie $LDFLAGS" + AC_TRY_LINK(,, [], + [AC_MSG_WARN([Linked does not accept option -no-pie]) + LDFLAGS=$saved_LDFLAGS])]) + +fi + + if test X${enable_fp_exceptions} = Xauto ; then case $host_os in *linux*) diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in index e0260205e3..8772befe27 100644 --- a/erts/emulator/Makefile.in +++ b/erts/emulator/Makefile.in @@ -49,6 +49,7 @@ CREATE_DIRS= LDFLAGS=@LDFLAGS@ ARFLAGS=rc OMIT_OMIT_FP=no +TYPE_LIBS= DIRTY_SCHEDULER_SUPPORT=@DIRTY_SCHEDULER_SUPPORT@ NEW_PURGE_STRATEGY=@NEW_PURGE_STRATEGY@ @@ -90,7 +91,7 @@ PURIFY = TYPEMARKER = .gcov TYPE_FLAGS = $(DEBUG_CFLAGS) -DERTS_GCOV -DNO_JUMP_TABLE -fprofile-arcs -ftest-coverage -O0 -DERTS_CAN_INLINE=0 -DERTS_INLINE= ifneq ($(findstring solaris,$(TARGET)),solaris) -LIBS += -lgcov +TYPE_LIBS = -lgcov endif ENABLE_ALLOC_TYPE_VARS += debug else @@ -146,6 +147,8 @@ endif endif endif +LIBS += $(TYPE_LIBS) + comma:=, space:= space+= @@ -931,7 +934,7 @@ $(OBJDIR)/%.o: hipe/%.c $(V_CC) $(subst O2,O3, $(CFLAGS)) $(INCLUDES) -c $< -o $@ $(BINDIR)/hipe_mkliterals$(TF_MARKER): $(OBJDIR)/hipe_mkliterals.o - $(ld_verbose)$(CC) $(CFLAGS) $(INCLUDES) -o $@ $< + $(ld_verbose)$(CC) $(LDFLAGS) -o $@ $< $(TYPE_LIBS) $(OBJDIR)/hipe_mkliterals.o: $(HIPE_ASM) $(TTF_DIR)/erl_alloc_types.h $(DTRACE_HEADERS) \ $(TTF_DIR)/OPCODES-GENERATED $(TARGET)/TABLES-GENERATED |