1*4882a593SmuzhiyunFrom 1e7435751c055723b7103dd1d5bb68530e1a2678 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com> 3*4882a593SmuzhiyunDate: Tue, 8 Oct 2019 20:18:18 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Add USE_STACK_PROTECTOR option 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun-fstack-protector-all is not supported on all linux toolchains so add an 7*4882a593Smuzhiyunoption to disable it (and enable it by default to keep current behavior) 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunFixes: 10*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/377818cf8c1f2632cabdccb32bf4e7f06c0fdbbd 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 13*4882a593Smuzhiyun[Upstream status: https://github.com/cisco/openh264/pull/3175] 14*4882a593Smuzhiyun--- 15*4882a593Smuzhiyun Makefile | 1 + 16*4882a593Smuzhiyun build/platform-android.mk | 5 ++++- 17*4882a593Smuzhiyun build/platform-bsd.mk | 5 ++++- 18*4882a593Smuzhiyun build/platform-darwin.mk | 5 ++++- 19*4882a593Smuzhiyun build/platform-linux.mk | 5 ++++- 20*4882a593Smuzhiyun 5 files changed, 17 insertions(+), 4 deletions(-) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyundiff --git a/Makefile b/Makefile 23*4882a593Smuzhiyunindex 74ff029d..c2061f6a 100644 24*4882a593Smuzhiyun--- a/Makefile 25*4882a593Smuzhiyun+++ b/Makefile 26*4882a593Smuzhiyun@@ -34,6 +34,7 @@ GTEST_VER=release-1.8.1 27*4882a593Smuzhiyun CCASFLAGS=$(CFLAGS) 28*4882a593Smuzhiyun STATIC_LDFLAGS=-lstdc++ 29*4882a593Smuzhiyun STRIP ?= strip 30*4882a593Smuzhiyun+USE_STACK_PROTECTOR = Yes 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun SHAREDLIB_MAJORVERSION=5 33*4882a593Smuzhiyun FULL_VERSION := 2.0.0 34*4882a593Smuzhiyundiff --git a/build/platform-android.mk b/build/platform-android.mk 35*4882a593Smuzhiyunindex 6f6ce347..06534301 100644 36*4882a593Smuzhiyun--- a/build/platform-android.mk 37*4882a593Smuzhiyun+++ b/build/platform-android.mk 38*4882a593Smuzhiyun@@ -44,7 +44,10 @@ SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH) 39*4882a593Smuzhiyun CXX = $(TOOLCHAINPREFIX)g++ 40*4882a593Smuzhiyun CC = $(TOOLCHAINPREFIX)gcc 41*4882a593Smuzhiyun AR = $(TOOLCHAINPREFIX)ar 42*4882a593Smuzhiyun-CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP -fstack-protector-all 43*4882a593Smuzhiyun+CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP 44*4882a593Smuzhiyun+ifeq ($(USE_STACK_PROTECTOR), Yes) 45*4882a593Smuzhiyun+CFLAGS +=-fstack-protector-all 46*4882a593Smuzhiyun+endif 47*4882a593Smuzhiyun CFLAGS += -isystem $(NDKROOT)/sysroot/usr/include -isystem $(NDKROOT)/sysroot/usr/include/$(TOOLCHAIN_NAME) -D__ANDROID_API__=$(NDKLEVEL) 48*4882a593Smuzhiyun CXXFLAGS += -fno-rtti -fno-exceptions 49*4882a593Smuzhiyun LDFLAGS += --sysroot=$(SYSROOT) 50*4882a593Smuzhiyundiff --git a/build/platform-bsd.mk b/build/platform-bsd.mk 51*4882a593Smuzhiyunindex e60d2cc0..2e0bf2cc 100644 52*4882a593Smuzhiyun--- a/build/platform-bsd.mk 53*4882a593Smuzhiyun+++ b/build/platform-bsd.mk 54*4882a593Smuzhiyun@@ -3,7 +3,10 @@ SHAREDLIBSUFFIX = so 55*4882a593Smuzhiyun SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX).$(FULL_VERSION) 56*4882a593Smuzhiyun SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX).$(SHAREDLIB_MAJORVERSION) 57*4882a593Smuzhiyun SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) 58*4882a593Smuzhiyun-CFLAGS += -fPIC -fstack-protector-all 59*4882a593Smuzhiyun+CFLAGS += -fPIC 60*4882a593Smuzhiyun+ifeq ($(USE_STACK_PROTECTOR), Yes) 61*4882a593Smuzhiyun+CFLAGS += -fstack-protector-all 62*4882a593Smuzhiyun+endif 63*4882a593Smuzhiyun LDFLAGS += -lpthread 64*4882a593Smuzhiyun STATIC_LDFLAGS += -lpthread -lm 65*4882a593Smuzhiyun ifeq ($(ASM_ARCH), x86) 66*4882a593Smuzhiyundiff --git a/build/platform-darwin.mk b/build/platform-darwin.mk 67*4882a593Smuzhiyunindex 6c7b2443..718c8e2f 100644 68*4882a593Smuzhiyun--- a/build/platform-darwin.mk 69*4882a593Smuzhiyun+++ b/build/platform-darwin.mk 70*4882a593Smuzhiyun@@ -10,7 +10,10 @@ SHLDFLAGS = -dynamiclib -twolevel_namespace -undefined dynamic_lookup \ 71*4882a593Smuzhiyun $(SHAREDLIB_DIR)/$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) 72*4882a593Smuzhiyun SHARED = -dynamiclib 73*4882a593Smuzhiyun SHARED += -current_version $(CURRENT_VERSION) -compatibility_version $(COMPATIBILITY_VERSION) 74*4882a593Smuzhiyun-CFLAGS += -Wall -fPIC -MMD -MP -fstack-protector-all 75*4882a593Smuzhiyun+CFLAGS += -Wall -fPIC -MMD -MP 76*4882a593Smuzhiyun+ifeq ($(USE_STACK_PROTECTOR), Yes) 77*4882a593Smuzhiyun+CFLAGS += -fstack-protector-all 78*4882a593Smuzhiyun+endif 79*4882a593Smuzhiyun ifeq ($(ASM_ARCH), x86) 80*4882a593Smuzhiyun ASMFLAGS += -DPREFIX 81*4882a593Smuzhiyun ifeq ($(ARCH), x86_64) 82*4882a593Smuzhiyundiff --git a/build/platform-linux.mk b/build/platform-linux.mk 83*4882a593Smuzhiyunindex 44fe2424..b5c006b2 100644 84*4882a593Smuzhiyun--- a/build/platform-linux.mk 85*4882a593Smuzhiyun+++ b/build/platform-linux.mk 86*4882a593Smuzhiyun@@ -3,7 +3,10 @@ SHAREDLIBSUFFIX = so 87*4882a593Smuzhiyun SHAREDLIBSUFFIXFULLVER=$(SHAREDLIBSUFFIX).$(FULL_VERSION) 88*4882a593Smuzhiyun SHAREDLIBSUFFIXMAJORVER=$(SHAREDLIBSUFFIX).$(SHAREDLIB_MAJORVERSION) 89*4882a593Smuzhiyun SHLDFLAGS = -Wl,-soname,$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) 90*4882a593Smuzhiyun-CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP -fstack-protector-all 91*4882a593Smuzhiyun+CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP 92*4882a593Smuzhiyun+ifeq ($(USE_STACK_PROTECTOR), Yes) 93*4882a593Smuzhiyun+CFLAGS += -fstack-protector-all 94*4882a593Smuzhiyun+endif 95*4882a593Smuzhiyun LDFLAGS += -lpthread 96*4882a593Smuzhiyun STATIC_LDFLAGS += -lpthread -lm 97*4882a593Smuzhiyun AR_OPTS = crD $@ 98*4882a593Smuzhiyun-- 99*4882a593Smuzhiyun2.23.0 100*4882a593Smuzhiyun 101