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