diff --git a/recipes-core/musl/files/openharmony-linux-user-capability_h.patch b/recipes-core/musl/files/openharmony-linux-user-capability_h.patch new file mode 100644 index 0000000000000000000000000000000000000000..b9ecddecf305aecc9c6f84f4da84e4b3eaa65282 --- /dev/null +++ b/recipes-core/musl/files/openharmony-linux-user-capability_h.patch @@ -0,0 +1,71 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +Patch generated from OpenHarmony-v3.0-LTS version, with the following commands: + + cp -r porting/linux/user/* . + git add -A --staged + git diff > openharmony-linux-user.patch + +This file contains only the hunk for sys/capabilty.h so that it can be +excluded for configurations with components that need libcap (which +already provide this header). + +Upstream-status: Pending +Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> + +diff --git a/include/sys/capability.h b/include/sys/capability.h +new file mode 100644 +index 000000000000..ed2ff97783b1 +--- /dev/null ++++ b/include/sys/capability.h +@@ -0,0 +1,48 @@ ++/* ++ * Copyright (c) 2013-2019, Huawei Technologies Co., Ltd. All rights reserved. ++ * Copyright (c) 2020, Huawei Device Co., Ltd. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without modification, ++ * are permitted provided that the following conditions are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright notice, this list of ++ * conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright notice, this list ++ * of conditions and the following disclaimer in the documentation and/or other materials ++ * provided with the distribution. ++ * ++ * 3. Neither the name of the copyright holder nor the names of its contributors may be used ++ * to endorse or promote products derived from this software without specific prior written ++ * permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifndef _SYS_CAPABILITY_H ++#define _SYS_CAPABILITY_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include <linux/capability.h> ++ ++int capget(cap_user_header_t hdr_ptr, cap_user_data_t data_ptr); ++int capset(cap_user_header_t hdr_ptr, const cap_user_data_t data_ptr); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _SYS_CAPABILITY_H */ diff --git a/recipes-core/musl/files/openharmony-linux-user.patch b/recipes-core/musl/files/openharmony-linux-user.patch index 9e7019628ec96fa5f6f40a9fc709c83816ae21d9..fa9ec7fa89d44bfdc35677bc1eec902a01b1f7d6 100644 --- a/recipes-core/musl/files/openharmony-linux-user.patch +++ b/recipes-core/musl/files/openharmony-linux-user.patch @@ -11,6 +11,11 @@ Patch generated from OpenHarmony-v3.0-LTS version, with the following commands: The hunks from 0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch in Yocto was removed manually afterwards. +The hunk for the file sys/capabilty.h has been moved to a seperate patch +file so it can be ignored for some configurations that include components +with a dependency on the libcap package, as this pakage already provide +this header. + Upstream-status: Pending Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com> @@ -101,60 +106,6 @@ index 984db6806418..73793e47ef53 100644 #define __NEED_time_t #define __NEED_clockid_t #define __NEED_struct_timespec -diff --git a/include/sys/capability.h b/include/sys/capability.h -new file mode 100644 -index 000000000000..ed2ff97783b1 ---- /dev/null -+++ b/include/sys/capability.h -@@ -0,0 +1,48 @@ -+/* -+ * Copyright (c) 2013-2019, Huawei Technologies Co., Ltd. All rights reserved. -+ * Copyright (c) 2020, Huawei Device Co., Ltd. All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without modification, -+ * are permitted provided that the following conditions are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright notice, this list of -+ * conditions and the following disclaimer. -+ * -+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list -+ * of conditions and the following disclaimer in the documentation and/or other materials -+ * provided with the distribution. -+ * -+ * 3. Neither the name of the copyright holder nor the names of its contributors may be used -+ * to endorse or promote products derived from this software without specific prior written -+ * permission. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#ifndef _SYS_CAPABILITY_H -+#define _SYS_CAPABILITY_H -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#include <linux/capability.h> -+ -+int capget(cap_user_header_t hdr_ptr, cap_user_data_t data_ptr); -+int capset(cap_user_header_t hdr_ptr, const cap_user_data_t data_ptr); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* _SYS_CAPABILITY_H */ diff --git a/include/sys/sysinfo.h b/include/sys/sysinfo.h index 6a3931e52010..9b095ffb500b 100644 --- a/include/sys/sysinfo.h diff --git a/recipes-core/musl/musl_%.bbappend b/recipes-core/musl/musl_%.bbappend index c1de2d7a028c2ed636a6eb4245768684d4d4dccf..3fac6222eaeec72328f9bf73d1b66c5c09935b74 100644 --- a/recipes-core/musl/musl_%.bbappend +++ b/recipes-core/musl/musl_%.bbappend @@ -8,6 +8,8 @@ LIC_FILES_CHKSUM:oniro-openharmony-linux = "file://COPYRIGHT;md5=f95ee848a08ad25 FILESEXTRAPATHS:prepend:oniro-openharmony-linux := "${THISDIR}/files:" SRC_URI:append:oniro-openharmony-linux = " file://openharmony-common.patch" SRC_URI:append:oniro-openharmony-linux = " file://openharmony-linux-user.patch" +# This conflicts with libcap, so we have to go with libcap instead +#SRC_URI:append:oniro-openharmony-linux = " file://openharmony-linux-user-capability_h.patch" # As musl links with -nostdlib, we need to add linking with # libclang_rt.builtins.a manually as needed