diff mbox series

[V2,1/6] libssp-nonshared: Add recipe

Message ID 20180420163354.12065-1-raj.khem@gmail.com
State Superseded
Headers show
Series [V2,1/6] libssp-nonshared: Add recipe | expand

Commit Message

Khem Raj April 20, 2018, 4:33 p.m. UTC
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@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

-- 
2.17.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Ross Burton April 30, 2018, 1:08 p.m. UTC | #1
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@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@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@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@lists.openembedded.org

> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj April 30, 2018, 2:17 p.m. UTC | #2
On Mon, Apr 30, 2018 at 6:08 AM, Burton, Ross <ross.burton@intel.com> wrote:
> 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

> Ross

>

> On 20 April 2018 at 17:33, Khem Raj <raj.khem@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@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@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@lists.openembedded.org

>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Ross Burton April 30, 2018, 3:05 p.m. UTC | #3
Oh yes, sorry missed that when I was trying to pick up just the SSP changes.

Ross

On 30 April 2018 at 15:17, Khem Raj <raj.khem@gmail.com> wrote:
> On Mon, Apr 30, 2018 at 6:08 AM, Burton, Ross <ross.burton@intel.com> wrote:

>> 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

>

>> Ross

>>

>> On 20 April 2018 at 17:33, Khem Raj <raj.khem@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@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@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@lists.openembedded.org

>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Ross Burton April 30, 2018, 3:21 p.m. UTC | #4
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

On 30 April 2018 at 16:05, Burton, Ross <ross.burton@intel.com> wrote:
> Oh yes, sorry missed that when I was trying to pick up just the SSP changes.

>

> Ross

>

> On 30 April 2018 at 15:17, Khem Raj <raj.khem@gmail.com> wrote:

>> On Mon, Apr 30, 2018 at 6:08 AM, Burton, Ross <ross.burton@intel.com> wrote:

>>> 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

>>

>>> Ross

>>>

>>> On 20 April 2018 at 17:33, Khem Raj <raj.khem@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@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@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@lists.openembedded.org

>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj April 30, 2018, 3:25 p.m. UTC | #5
On Mon, Apr 30, 2018 at 8:21 AM, Burton, Ross <ross.burton@intel.com> wrote:
> 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)

>


yeah, please drop the prior patches from me and pick kraj/pu branch
from oe-core contrib repo. That has all latest changes.

> Also:

>

> NOTE: Multiple providers are available for virtual/crypt (glibc, musl)

> Consider defining a PREFERRED_PROVIDER entry to match virtual/crypt

>

> Ross

>

> On 30 April 2018 at 16:05, Burton, Ross <ross.burton@intel.com> wrote:

>> Oh yes, sorry missed that when I was trying to pick up just the SSP changes.

>>

>> Ross

>>

>> On 30 April 2018 at 15:17, Khem Raj <raj.khem@gmail.com> wrote:

>>> On Mon, Apr 30, 2018 at 6:08 AM, Burton, Ross <ross.burton@intel.com> wrote:

>>>> 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

>>>

>>>> Ross

>>>>

>>>> On 20 April 2018 at 17:33, Khem Raj <raj.khem@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@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@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@lists.openembedded.org

>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff mbox series

Patch

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@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 ();
+}