diff options
| author | Siva Chandra <sivachandra@google.com> | 2019-10-04 17:30:54 +0000 |
|---|---|---|
| committer | Siva Chandra <sivachandra@google.com> | 2019-10-04 17:30:54 +0000 |
| commit | 4380647e79bd80af1ebf6191c2d6629855ccf556 (patch) | |
| tree | 35f6a4c1125c9f4b344b4f22081678ef63732c33 /libc/src/__support | |
| parent | 717e540f7ea13eb73707b76bf9062a1704fc68b9 (diff) | |
| download | bcm5719-llvm-4380647e79bd80af1ebf6191c2d6629855ccf556.tar.gz bcm5719-llvm-4380647e79bd80af1ebf6191c2d6629855ccf556.zip | |
Add few docs and implementation of strcpy and strcat.
Summary:
This patch illustrates some of the features like modularity we want
in the new libc. Few other ideas like different kinds of testing, redirectors
etc are not yet present.
Reviewers: dlj, hfinkel, theraven, jfb, alexshap, jdoerfert
Subscribers: mgorny, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67867
llvm-svn: 373764
Diffstat (limited to 'libc/src/__support')
| -rw-r--r-- | libc/src/__support/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | libc/src/__support/common.h.def | 18 | ||||
| -rw-r--r-- | libc/src/__support/linux/entrypoint_macro.h.inc | 13 |
3 files changed, 40 insertions, 0 deletions
diff --git a/libc/src/__support/CMakeLists.txt b/libc/src/__support/CMakeLists.txt new file mode 100644 index 00000000000..a536e9025d7 --- /dev/null +++ b/libc/src/__support/CMakeLists.txt @@ -0,0 +1,9 @@ +add_gen_header( + support_common_h + DEF_FILE common.h.def + PARAMS + entrypoint_macro=${LIBC_TARGET_OS}/entrypoint_macro.h.inc + GEN_HDR common.h + DATA_FILES + ${LIBC_TARGET_OS}/entrypoint_macro.h.inc +) diff --git a/libc/src/__support/common.h.def b/libc/src/__support/common.h.def new file mode 100644 index 00000000000..b2605a712d8 --- /dev/null +++ b/libc/src/__support/common.h.def @@ -0,0 +1,18 @@ +//===-------------------- Common internal contructs ---------------------*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SUPPORT_COMMON_H +#define LLVM_LIBC_SUPPORT_COMMON_H + +#define INLINE_ASM __asm__ __volatile__ + +<!> The entrypoint macro has a platform specific definition. So, we include the +<!> right definition at build time. +%%include_file(${entrypoint_macro}) + +#endif // LLVM_LIBC_SUPPORT_COMMON_H diff --git a/libc/src/__support/linux/entrypoint_macro.h.inc b/libc/src/__support/linux/entrypoint_macro.h.inc new file mode 100644 index 00000000000..8f873f90b48 --- /dev/null +++ b/libc/src/__support/linux/entrypoint_macro.h.inc @@ -0,0 +1,13 @@ +//===---- Definition of LLVM_LIBC_ENTRYPOINT macro for ELF paltforms ----*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +%%begin() + +#define ENTRYPOINT_SECTION_ATTRIBUTE(name) \ + __attribute__((section(".llvm.libc.entrypoint."#name))) +#define LLVM_LIBC_ENTRYPOINT(name) ENTRYPOINT_SECTION_ATTRIBUTE(name) name |

