From 7c5a05f35236b006eb16f8171f4868046326f38d Mon Sep 17 00:00:00 2001 From: x_xiny <1301913191@qq.com> Date: Mon, 13 Jun 2022 21:29:13 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20C=E5=BA=93=E9=80=82=E9=85=8Diar=20re?= =?UTF-8?q?=20#I5BUG3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: x_xiny <1301913191@qq.com> Change-Id: I84591c7593622de22a33f411b7011d17034c6d55 --- BUILD.gn | 9 ++++----- kal/libc/BUILD.gn | 3 ++- kal/libc/Kconfig | 6 +++++- kal/libc/iccarm/BUILD.gn | 42 ++++++++++++++++++++++++++++++++++++++++ kal/libc/iccarm/Kconfig | 38 ++++++++++++++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 kal/libc/iccarm/BUILD.gn create mode 100644 kal/libc/iccarm/Kconfig diff --git a/BUILD.gn b/BUILD.gn index 4402935c..17ed227a 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1,5 +1,5 @@ # Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. -# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved. +# Copyright (c) 2020-2022 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: @@ -82,11 +82,10 @@ config("stdinc_config") { "-isystem", std_include, ] - cflags += [ "-nostdinc" ] - asmflags = cflags - if (defined(LOSCFG_LIBC_NEWLIB)) { - cflags -= [ "-nostdinc" ] + if (defined(LOSCFG_LIBC_MUSL)) { + cflags += [ "-nostdinc" ] } + asmflags = cflags } config("ssp_config") { diff --git a/kal/libc/BUILD.gn b/kal/libc/BUILD.gn index 6c5933d4..c5e1d6d0 100644 --- a/kal/libc/BUILD.gn +++ b/kal/libc/BUILD.gn @@ -1,5 +1,5 @@ # Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. -# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved. +# Copyright (c) 2020-2022 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: @@ -32,6 +32,7 @@ import("//kernel/liteos_m/liteos.gni") module_name = get_path_info(rebase_path("."), "name") module_group(module_name) { modules = [ + "iccarm", "musl", "newlib", ] diff --git a/kal/libc/Kconfig b/kal/libc/Kconfig index 8a77612e..2b171549 100644 --- a/kal/libc/Kconfig +++ b/kal/libc/Kconfig @@ -1,5 +1,5 @@ # Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. -# Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved. +# Copyright (c) 2020-2022 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: @@ -41,4 +41,8 @@ config LIBC_NEWLIB bool "newlibc" rsource "newlib/Kconfig" +config LIBC_ICCARM + bool "iar libc" +rsource "iccarm/Kconfig" + endchoice diff --git a/kal/libc/iccarm/BUILD.gn b/kal/libc/iccarm/BUILD.gn new file mode 100644 index 00000000..f20518d4 --- /dev/null +++ b/kal/libc/iccarm/BUILD.gn @@ -0,0 +1,42 @@ +# Copyright (c) 2022-2022 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. + +import("//kernel/liteos_m/liteos.gni") +import("//third_party/musl/porting/liteos_m_iccarm/kernel/iccarm.gni") + +module_switch = defined(LOSCFG_LIBC_ICCARM) +module_name = get_path_info(rebase_path("."), "name") +kernel_module(module_name) { + configs += [ "$LITEOSTOPDIR:warn_config" ] + + deps = [ "//third_party/musl/porting/liteos_m_iccarm/kernel" ] +} + +config("public") { + include_dirs = ICCARM_ADAPT_INCLUDE_DIRS +} diff --git a/kal/libc/iccarm/Kconfig b/kal/libc/iccarm/Kconfig new file mode 100644 index 00000000..196d88ac --- /dev/null +++ b/kal/libc/iccarm/Kconfig @@ -0,0 +1,38 @@ +# Copyright (c) 2022-2022 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. + +if LIBC_ICCARM + +config LIBC_ICCARM_FS + bool "Enable POSIX file system API support" + default y + depends on FS_VFS + help + This enables POSIX style file system related APIs. + +endif # LIBC_ICCARM