[OE-core] [PATCH V2 1/6] libssp-nonshared: Add recipe

Burton, Ross ross.burton at intel.com
Mon Apr 30 13:08:54 UTC 2018


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

On 20 April 2018 at 17:33, Khem Raj <raj.khem at gmail.com> wrote:
> 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 <raj.khem at gmail.com>
> ---
> 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
>
> diff --git a/meta/recipes-core/musl/libssp-nonshared.bb b/meta/recipes-core/musl/libssp-nonshared.bb
> new file mode 100644
> index 0000000000..00a0a3d411
> --- /dev/null
> +++ b/meta/recipes-core/musl/libssp-nonshared.bb
> @@ -0,0 +1,39 @@
> +# Copyright (C) 2018 Khem Raj <raj.khem at gmail.com>
> +# 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})"
> diff --git a/meta/recipes-core/musl/libssp-nonshared/ssp-local.c b/meta/recipes-core/musl/libssp-nonshared/ssp-local.c
> new file mode 100644
> index 0000000000..8f51afa2c1
> --- /dev/null
> +++ b/meta/recipes-core/musl/libssp-nonshared/ssp-local.c
> @@ -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
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list