Hi, any comments on this commit? Thanks On Mon, Nov 13, 2017 at 9:00 PM, Florin Sarbu wrote: > Link libssp_nonshared.a only for ppc/musl because glibc already > provides the content for libssp_nonshared in libc_nonshared.a and > therefore we dont need to make it universal. > > (From OE-Core rev: c08247e3c7c004a40281d4010186a9ace86e0e47) > > Signed-off-by: Florin Sarbu > --- > meta/recipes-devtools/gcc/gcc-6.3.inc | 2 +- > ...shared-to-link-commandline-for-musl-targe.patch | 87 > ++++++++++++++++++++++ > .../gcc/gcc-6.3/0041-ssp_nonshared.patch | 28 ------- > 3 files changed, 88 insertions(+), 29 deletions(-) > create mode 100644 meta/recipes-devtools/gcc/gcc- > 6.3/0041-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch > delete mode 100644 meta/recipes-devtools/gcc/gcc- > 6.3/0041-ssp_nonshared.patch > > diff --git a/meta/recipes-devtools/gcc/gcc-6.3.inc > b/meta/recipes-devtools/gcc/gcc-6.3.inc > index d74f12c466..5c81a33af0 100644 > --- a/meta/recipes-devtools/gcc/gcc-6.3.inc > +++ b/meta/recipes-devtools/gcc/gcc-6.3.inc > @@ -71,7 +71,7 @@ SRC_URI = "\ > file://0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch > \ > file://0039-Fix-various-_FOR_BUILD-and-related-variables.patch > \ > file://0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ > - file://0041-ssp_nonshared.patch \ > + file://0041-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch > \ > file://0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch > \ > file://0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch > \ > file://0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch > \ > diff --git a/meta/recipes-devtools/gcc/gcc-6.3/0041-Add-ssp_ > nonshared-to-link-commandline-for-musl-targe.patch > b/meta/recipes-devtools/gcc/gcc-6.3/0041-Add-ssp_ > nonshared-to-link-commandline-for-musl-targe.patch > new file mode 100644 > index 0000000000..29b7ce72d2 > --- /dev/null > +++ b/meta/recipes-devtools/gcc/gcc-6.3/0041-Add-ssp_ > nonshared-to-link-commandline-for-musl-targe.patch > @@ -0,0 +1,87 @@ > +From 210f6b3b82084cc756e02b8bc12f909a43b14ee8 Mon Sep 17 00:00:00 2001 > +From: Khem Raj > +Date: Tue, 27 Jun 2017 18:10:54 -0700 > +Subject: [PATCH 40/49] Add ssp_nonshared to link commandline for musl > targets > + > +when -fstack-protector options are enabled we need to > +link with ssp_shared on musl since it does not provide > +the __stack_chk_fail_local() so essentially it provides > +libssp but not libssp_nonshared something like > +TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED > + where-as for glibc the needed symbols > +are already present in libc_nonshared library therefore > +we do not need any library helper on glibc based systems > +but musl needs the libssp_noshared from gcc > + > +Upstream-Status: Pending > + > +Signed-off-by: Khem Raj > +--- > + gcc/config/linux.h | 7 +++++++ > + gcc/config/rs6000/linux.h | 10 ++++++++++ > + gcc/config/rs6000/linux64.h | 10 ++++++++++ > + 3 files changed, 27 insertions(+) > + > +diff --git a/gcc/config/linux.h b/gcc/config/linux.h > +index 2e683d0c430..1b4df798671 100644 > +--- a/gcc/config/linux.h > ++++ b/gcc/config/linux.h > +@@ -182,6 +182,13 @@ see the files COPYING3 and COPYING.RUNTIME > respectively. If not, see > + { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ > + { 0, 0, 0, 0, 0, 0 } \ > + } > ++#ifdef TARGET_LIBC_PROVIDES_SSP > ++#undef LINK_SSP_SPEC > ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > ++ "|fstack-protector-strong|fstack-protector-explicit" > \ > ++ ":-lssp_nonshared}" > ++#endif > ++ > + #endif > + > + #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ > +diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h > +index 684afd6c190..22cfa391b89 100644 > +--- a/gcc/config/rs6000/linux.h > ++++ b/gcc/config/rs6000/linux.h > +@@ -91,6 +91,16 @@ > + " -m elf32ppclinux") > + #endif > + > ++/* link libssp_nonshared.a with musl */ > ++#if DEFAULT_LIBC == LIBC_MUSL > ++#ifdef TARGET_LIBC_PROVIDES_SSP > ++#undef LINK_SSP_SPEC > ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > ++ "|fstack-protector-strong|fstack-protector-explicit" > \ > ++ ":-lssp_nonshared}" > ++#endif > ++#endif > ++ > + #undef LINK_OS_LINUX_SPEC > + #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ > + %{rdynamic:-export-dynamic} \ > +diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h > +index 3b00ec0fcf0..8371f8d7b6b 100644 > +--- a/gcc/config/rs6000/linux64.h > ++++ b/gcc/config/rs6000/linux64.h > +@@ -465,6 +465,16 @@ extern int dot_symbols; > + " -m elf64ppc") > + #endif > + > ++/* link libssp_nonshared.a with musl */ > ++#if DEFAULT_LIBC == LIBC_MUSL > ++#ifdef TARGET_LIBC_PROVIDES_SSP > ++#undef LINK_SSP_SPEC > ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > ++ "|fstack-protector-strong|fstack-protector-explicit" > \ > ++ ":-lssp_nonshared}" > ++#endif > ++#endif > ++ > + #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: > %{!static: \ > + %{rdynamic:-export-dynamic} \ > + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ > +-- > +2.13.2 > + > diff --git a/meta/recipes-devtools/gcc/gcc-6.3/0041-ssp_nonshared.patch > b/meta/recipes-devtools/gcc/gcc-6.3/0041-ssp_nonshared.patch > deleted file mode 100644 > index 0744529741..0000000000 > --- a/meta/recipes-devtools/gcc/gcc-6.3/0041-ssp_nonshared.patch > +++ /dev/null > @@ -1,28 +0,0 @@ > -From 551a5db7acb56e085a101f1c222d51b2c1b039a4 Mon Sep 17 00:00:00 2001 > -From: Szabolcs Nagy > -Date: Sat, 7 Nov 2015 14:58:40 +0000 > -Subject: [PATCH 41/46] ssp_nonshared > - > ---- > -Upstream-Status: Inappropriate [OE Configuration] > - > - gcc/gcc.c | 3 ++- > - 1 file changed, 2 insertions(+), 1 deletion(-) > - > -diff --git a/gcc/gcc.c b/gcc/gcc.c > -index 2812819..9de96ee 100644 > ---- a/gcc/gcc.c > -+++ b/gcc/gcc.c > -@@ -863,7 +863,8 @@ proper position among the other output files. */ > - #ifndef LINK_SSP_SPEC > - #ifdef TARGET_LIBC_PROVIDES_SSP > - #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > -- "|fstack-protector-strong| > fstack-protector-explicit:}" > -+ "|fstack-protector-strong|fstack-protector-explicit" > \ > -+ ":-lssp_nonshared}" > - #else > - #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ > - "|fstack-protector-strong|fstack-protector-explicit" > \ > --- > -2.8.2 > - > -- > 2.13.6 > >