xref: /OK3568_Linux_fs/buildroot/package/libopenh264/0001-Add-USE_STACK_PROTECTOR-option.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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