libssp-nonshared: Add recipe
PATCH v2 1/6 libssp-nonshared: Add recipe
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
---
Changes since v1:
- Package into staticdev package
meta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.c
meta/recipes-core/musl/libssp-nonshared.bb new file +39 -0
@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"
meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45 -0
45 lines not on this page · raw message
Signature · 1 line
2.17.0
PATCH v2 2/6 musl: Depend on libssp-nonshared
libssp-nonshared is required on musl since
it does not implement the gcc runtime piece of
libssp, which actually it a gcc optimization to
reach to __stack_chk_fail
---
Changes since v1:
- Depend on libssp-noshared-staticdev
meta/recipes-core/musl/musl_git.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
meta/recipes-core/musl/musl_git.bb +2 -1
@@ -22,6 +22,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \ libgcc-initial \ linux-libc-headers \ bsd-headers \ + libssp-nonshared \ " export CROSS_COMPILE="${TARGET_PREFIX}"
@@ -65,7 +66,7 @@ do_install() { done } -RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev" +RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev" RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev" RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
Signature · 1 line
2.17.0
PATCH v3 3/6 gcc-runtime: Disable gcc version of libssp
In reply to Khem Rajlibssp is implemented fully in glibc as well as in musl so we really do not need the gcc version of this library except may be for mingw, where we keep it enabled anyway gcc in OE is built with the knowledge that C library already provides libssp implementation, we should therefore not need the gcc implementation of same.
libssp_nonshared piece is a detail which is needed when gcc is the compiler, in glibc this is part of libc_nonshared.a already and libc_nonshared.a is linked always when linking with -lc becuase libc.so in glibc is actually a linker script
GROUP ( /usr/lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /usr/lib/ld-linux-x86-64.so.2 ) )
which automatically links in the needed runtime bits, this however is not the case for musl, where core SSP APIs are implemented in full but compiler specific runtime isn't, for this we add a new package called libssp_nonshared which generate the needed runtime stub and gcc is already carrying patch to link to libssp_nonshared.a on musl
This should fix a long standing problem where static PIE executable were not buildable with OE since it was conflicting SSP implementation one from C library and the other one from gcc and we end up with duplicate symbol errors during linking.
Backport a patch from trunk which enhances enable|disable-libssp to not only disable building libssp but also not emit the gcc specs to use it for subsequent linking when stack-protector options are used on compiler cmdline
---
Changes since v2:
- None
meta/recipes-devtools/gcc/gcc-7.3.inc | 7 +- ...cc-override-TARGET_LIBC_PROVIDES_SSP.patch | 204 ++++++++++++++++++ meta/recipes-devtools/gcc/gcc-runtime.inc | 4 +- 3 files changed, 212 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
meta/recipes-devtools/gcc/gcc-7.3.inc +5 -2
@@ -72,6 +72,7 @@ SRC_URI = "\ file://0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ file://0047-sync-gcc-stddef.h-with-musl.patch \ file://0048-gcc-Enable-static-PIE.patch \ + file://0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch \ file://fix-segmentation-fault-precompiled-hdr.patch \ file://no-sse-fix-test-case-failures.patch \ ${BACKPORTS} \
@@ -93,10 +94,12 @@ FORTRAN = "" JAVA = "" LTO = "--enable-lto" +SSP ?= "--disable-libssp" +SSP_mingw = "--enable-libssp" EXTRA_OECONF_BASE = "\ ${LTO} \ - --enable-libssp \ + ${SSP} \ --enable-libitm \ --disable-bootstrap \ --disable-libmudflap \
@@ -120,7 +123,7 @@ EXTRA_OECONF_INITIAL = "\ --disable-plugin \ --enable-decimal-float=no \ --without-isl \ - gcc_cv_libc_provides_ssp=yes \ + ${SSP} \ " EXTRA_OECONF_PATHS = "\
meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch new file +204 -0
204 lines not on this page · raw message
meta/recipes-devtools/gcc/gcc-runtime.inc +3 -1
@@ -24,8 +24,10 @@ RUNTIMELIBITM_nios2 = "" RUNTIMELIBITM_microblaze = "" RUNTIMELIBITM_riscv32 = "" RUNTIMELIBITM_riscv64 = "" +RUNTIMELIBSSP ?= "" +RUNTIMELIBSSP_mingw ?= "libssp" -RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \ +RUNTIMETARGET = "libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \ ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'libquadmath', '', d)} \ " RUNTIMETARGET_append_x86 = " libmpx"
Signature · 1 line
2.17.0
PATCH v2 4/6 libunwind: Drop adding libssp to linker flags
In reply to Khem RajThis is no longer needed as gcc provided libssp
is not built
---
Changes since v1:
- Rebased
meta/recipes-support/libunwind/libunwind.inc | 2 -- 1 file changed, 2 deletions(-)
meta/recipes-support/libunwind/libunwind.inc +0 -2
@@ -14,8 +14,6 @@ PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, lat EXTRA_OECONF_arm = "--enable-debug-frame" EXTRA_OECONF_aarch64 = "--enable-debug-frame" -SECURITY_LDFLAGS_append_libc-musl = " -lssp_nonshared -lssp" - do_install_append () { oe_multilib_header libunwind.h }
Signature · 1 line
2.17.0
PATCH v3 5/6 musl: Upgrade to latest
In reply to Khem RajChanges are here
---
Changes since v2:
- Rebased
meta/recipes-core/musl/musl_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/musl/musl_git.bb +1 -1
@@ -3,7 +3,7 @@ require musl.inc -SRCREV = "55df09bfccbfe21fc9dd7d8f94550c0ff25ace04" +SRCREV = "618b18c78e33acfe54a4434e91aa57b8e171df89" PV = "1.1.19+git${SRCPV}"
Signature · 1 line
2.17.0
PATCH 6/6 llvm: Fix [compile-host-path] QA issue
In reply to Khem RajIts trying to build NATIVE llvm-config which is
already built with llvm-native so we do not need
to rebuild it
Drop setting NINJA_STATUS explicitly, its no longer needed, on the contrary it hinders the task status update
---
Changes since v1:
- Rebased
...able-generating-a-native-llvm-config.patch | 41 +++++++++++++++++++ meta/recipes-devtools/llvm/llvm_git.bb | 7 ++-- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/llvm/llvm/0001-Disable-generating-a-native-llvm-config.patch
meta/recipes-devtools/llvm/llvm/0001-Disable-generating-a-native-llvm-config.patch new file +41 -0
@@ -0,0 +1,41 @@ +From 7f7743ce233fcd735ec580c75270413493658aa6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Thu, 19 Apr 2018 18:08:31 -0700 +Subject: [PATCH] Disable generating a native llvm-config + +OpenEmbedded already builds this as part of llvm-native + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Khem Raj <[email protected]> +--- + tools/llvm-config/CMakeLists.txt | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt +index 25f99cec978..c45e9b642a8 100644 +--- a/tools/llvm-config/CMakeLists.txt ++++ b/tools/llvm-config/CMakeLists.txt +@@ -63,19 +63,3 @@ endif() + + # Add the dependency on the generation step. + add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH}) +- +-if(CMAKE_CROSSCOMPILING) +- set(${project}_LLVM_CONFIG_EXE "${LLVM_NATIVE_BUILD}/bin/llvm-config") +- set(${project}_LLVM_CONFIG_EXE ${${project}_LLVM_CONFIG_EXE} PARENT_SCOPE) +- +- add_custom_command(OUTPUT "${${project}_LLVM_CONFIG_EXE}" +- COMMAND ${CMAKE_COMMAND} --build . --target llvm-config --config $<CONFIGURATION> +- DEPENDS ${LLVM_NATIVE_BUILD}/CMakeCache.txt +- WORKING_DIRECTORY ${LLVM_NATIVE_BUILD} +- COMMENT "Building native llvm-config..." +- USES_TERMINAL) +- add_custom_target(${project}NativeLLVMConfig DEPENDS ${${project}_LLVM_CONFIG_EXE}) +- add_dependencies(${project}NativeLLVMConfig CONFIGURE_LLVM_NATIVE) +- +- add_dependencies(llvm-config ${project}NativeLLVMConfig) +-endif(CMAKE_CROSSCOMPILING) +-- +2.17.0 +
meta/recipes-devtools/llvm/llvm_git.bb +4 -3
@@ -26,6 +26,7 @@ PATCH_VERSION = "0" SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};protocol=http \ file://0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \ file://0002-llvm-allow-env-override-of-exe-path.patch \ + file://0001-Disable-generating-a-native-llvm-config.patch \ " UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git"
@@ -85,15 +86,15 @@ do_configure_prepend() { } do_compile() { - NINJA_STATUS="[%p] " ninja -v ${PARALLEL_MAKE} + ninja -v ${PARALLEL_MAKE} } do_compile_class-native() { - NINJA_STATUS="[%p] " ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen + ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen } do_install() { - NINJA_STATUS="[%p] " DESTDIR=${LLVM_INSTALL_DIR} ninja -v install + DESTDIR=${LLVM_INSTALL_DIR} ninja -v install install -D -m 0755 ${B}/bin/llvm-config ${D}${libdir}/${LLVM_DIR}/llvm-config install -d ${D}${bindir}/${LLVM_DIR}
Signature · 1 line
2.17.0
build-appliance is failing at SDK creation time:
Problem: package packagegroup-self-hosted-1.0-r13.0.noarch requires
packagegroup-self-hosted-sdk, but none of the providers can be installed
- conflicting requests
- nothing provides libssp-dev needed by
packagegroup-self-hosted-sdk-1.0-r13.0.noarch
Ross
Quoted 118 lines · Khem Raj
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
Signed-off-by Khem Raj <[email protected]>---
Changes since v1:
- Package into staticdev packagemeta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.cmeta/recipes-core/musl/libssp-nonshared.bb new file +39
-0@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45
-1@@ -0,0 +1,45 @@ +/* Stack protector support. +Copyright (C) 2005-2018 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +extern void __stack_chk_fail (void ); + +/* Some targets can avoid loading a GP for calls to hidden functions. +Using this entry point may avoid the load of a GP entirely for the +function, making the overall code smaller. */ + +void +__attribute__((visibility ("hidden" ))) +__stack_chk_fail_local (void ) +{ +__stack_chk_fail (); +} --2.17.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 9 lines · Ross
build-appliance is failing at SDK creation time:
Problem: package packagegroup-self-hosted-1.0-r13.0.noarch requires
packagegroup-self-hosted-sdk, but none of the providers can be installed
- conflicting requests
- nothing provides libssp-dev needed by
packagegroup-self-hosted-sdk-1.0-r13.0.noarch
we do not need libssp there, I have sent a patch to remove it from packagegroup
http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/pu&id=03e113aedd069ea97f2f3ce96fc8337e3601732b
Quoted 121 lines
Ross
Quoted 118 lines · Khem Raj
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
Signed-off-by Khem Raj <[email protected]>---
Changes since v1:
- Package into staticdev packagemeta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.cmeta/recipes-core/musl/libssp-nonshared.bb new file +39
-0@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45
-1@@ -0,0 +1,45 @@ +/* Stack protector support. +Copyright (C) 2005-2018 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +extern void __stack_chk_fail (void ); + +/* Some targets can avoid loading a GP for calls to hidden functions. +Using this entry point may avoid the load of a GP entirely for the +function, making the overall code smaller. */ + +void +__attribute__((visibility ("hidden" ))) +__stack_chk_fail_local (void ) +{ +__stack_chk_fail (); +} --2.17.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Oh yes, sorry missed that when I was trying to pick up just the SSP changes.
Ross
Quoted 135 lines · Khem Raj
Quoted 9 lines · Ross
build-appliance is failing at SDK creation time:
Problem: package packagegroup-self-hosted-1.0-r13.0.noarch requires
packagegroup-self-hosted-sdk, but none of the providers can be installed
- conflicting requests
- nothing provides libssp-dev needed by
packagegroup-self-hosted-sdk-1.0-r13.0.noarchwe do not need libssp there, I have sent a patch to remove it from packagegroup
http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/pu&id=03e113aedd069ea97f2f3ce96fc8337e3601732bQuoted 121 lines
Ross
Quoted 118 lines · Khem Raj
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
Signed-off-by Khem Raj <[email protected]>---
Changes since v1:
- Package into staticdev packagemeta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.cmeta/recipes-core/musl/libssp-nonshared.bb new file +39
-0@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45
-1@@ -0,0 +1,45 @@ +/* Stack protector support. +Copyright (C) 2005-2018 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +extern void __stack_chk_fail (void ); + +/* Some targets can avoid loading a GP for calls to hidden functions. +Using this entry point may avoid the load of a GP entirely for the +function, making the overall code smaller. */ + +void +__attribute__((visibility ("hidden" ))) +__stack_chk_fail_local (void ) +{ +__stack_chk_fail (); +} --2.17.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Now I've actually read what you wrote, I see I didn't miss it ;)
Now it fails like this:
ERROR: Nothing RPROVIDES 'rpcsvc-proto' (but /home/pokybuild/yocto-autobuilder/yocto-worker/build-appliance/build/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb RDEPENDS on or otherwise requires it)
Also:
NOTE: Multiple providers are available for virtual/crypt (glibc, musl) Consider defining a PREFERRED_PROVIDER entry to match virtual/crypt
Ross
Quoted 140 lines · Ross
Oh yes, sorry missed that when I was trying to pick up just the SSP changes.
Ross
Quoted 135 lines · Khem Raj
Quoted 9 lines · Ross
build-appliance is failing at SDK creation time:
Problem: package packagegroup-self-hosted-1.0-r13.0.noarch requires
packagegroup-self-hosted-sdk, but none of the providers can be installed
- conflicting requests
- nothing provides libssp-dev needed by
packagegroup-self-hosted-sdk-1.0-r13.0.noarchwe do not need libssp there, I have sent a patch to remove it from packagegroup
http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/pu&id=03e113aedd069ea97f2f3ce96fc8337e3601732bQuoted 121 lines
Ross
Quoted 118 lines · Khem Raj
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
Signed-off-by Khem Raj <[email protected]>---
Changes since v1:
- Package into staticdev packagemeta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.cmeta/recipes-core/musl/libssp-nonshared.bb new file +39
-0@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45
-1@@ -0,0 +1,45 @@ +/* Stack protector support. +Copyright (C) 2005-2018 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +extern void __stack_chk_fail (void ); + +/* Some targets can avoid loading a GP for calls to hidden functions. +Using this entry point may avoid the load of a GP entirely for the +function, making the overall code smaller. */ + +void +__attribute__((visibility ("hidden" ))) +__stack_chk_fail_local (void ) +{ +__stack_chk_fail (); +} --2.17.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 8 lines · Ross
Now I've actually read what you wrote, I see I didn't miss it ;)
Now it fails like this:
ERROR: Nothing RPROVIDES 'rpcsvc-proto' (but
/home/pokybuild/yocto-autobuilder/yocto-worker/build-appliance/build/meta/recipes-core/packagegroups/packagegroup-self-hosted.bbRDEPENDS on or otherwise requires it)
yeah, please drop the prior patches from me and pick kraj/pu branch from oe-core contrib repo. That has all latest changes.
Quoted 148 lines
Also:
NOTE: Multiple providers are available for virtual/crypt (glibc, musl) Consider defining a
PREFERRED_PROVIDERentry to match virtual/cryptRoss
Quoted 140 lines · Ross
Oh yes, sorry missed that when I was trying to pick up just the SSP changes.
Ross
Quoted 135 lines · Khem Raj
Quoted 9 lines · Ross
build-appliance is failing at SDK creation time:
Problem: package packagegroup-self-hosted-1.0-r13.0.noarch requires
packagegroup-self-hosted-sdk, but none of the providers can be installed
- conflicting requests
- nothing provides libssp-dev needed by
packagegroup-self-hosted-sdk-1.0-r13.0.noarchwe do not need libssp there, I have sent a patch to remove it from packagegroup
http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/pu&id=03e113aedd069ea97f2f3ce96fc8337e3601732bQuoted 121 lines
Ross
Quoted 118 lines · Khem Raj
libssp-nonshared is a minimal gcc runtime piece which is needed on non-glibc systems which do implement libssp APIs in libc
Signed-off-by Khem Raj <[email protected]>---
Changes since v1:
- Package into staticdev packagemeta/recipes-core/musl/libssp-nonshared.bb | 39 ++++++++++++++++ .../musl/libssp-nonshared/ssp-local.c | 45 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-core/musl/libssp-nonshared.bb create mode 100644 meta/recipes-core/musl/libssp-nonshared/ssp-local.cmeta/recipes-core/musl/libssp-nonshared.bb new file +39
-0@@ -0,0 +1,39 @@ +# Copyright (C) 2018 Khem Raj <[email protected]> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Minimal libssp_nonshared.a must needed for ssp to work with gcc on musl" +LICENSE = "GPL-3.0-with-GCC-exception" +LIC_FILES_CHKSUM = "file://ssp-local.c;beginline=1;endline=32;md5=c06d391208c0cfcbc541a6728ed65cc4" +SECTION = "libs" + +SRC_URI = "file://ssp-local.c" + +PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" + +INHIBIT_DEFAULT_DEPS = "1" + +STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" +STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils \ + virtual/${TARGET_PREFIX}gcc-initial \ +" + +do_configure[noexec] = "1" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CPPFLAGS} ${CFLAGS} -c ssp-local.c -o ssp-local.o + ${AR} r libssp_nonshared.a ssp-local.o +} +do_install() { + install -Dm 0644 ${B}/libssp_nonshared.a ${D}${base_libdir}/libssp_nonshared.a +} +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" +RDEPENDS_${PN}-staticdev = "" +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-staticdev (= ${EXTENDPKGV})"meta/recipes-core/musl/libssp-nonshared/ssp-local.c new file +45
-1@@ -0,0 +1,45 @@ +/* Stack protector support. +Copyright (C) 2005-2018 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combine +executable.) + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +extern void __stack_chk_fail (void ); + +/* Some targets can avoid loading a GP for calls to hidden functions. +Using this entry point may avoid the load of a GP entirely for the +function, making the overall code smaller. */ + +void +__attribute__((visibility ("hidden" ))) +__stack_chk_fail_local (void ) +{ +__stack_chk_fail (); +} --2.17.0
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core