[libc] Add dlfcn.h headers (#97772)

This commit is contained in:
Izaak Schroeder
2024-07-05 22:02:04 -07:00
committed by GitHub
parent a348824798
commit ccf357ff64
6 changed files with 57 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
set(TARGET_PUBLIC_HEADERS
libc.include.assert
libc.include.ctype
libc.include.dlfcn
libc.include.errno
libc.include.features
libc.include.fenv

View File

@@ -2,6 +2,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.assert
libc.include.ctype
libc.include.dirent
libc.include.dlfcn
libc.include.errno
libc.include.fcntl
libc.include.features

View File

@@ -51,6 +51,15 @@ add_gen_header(
.llvm_libc_common_h
)
add_gen_header(
dlfcn
DEF_FILE dlfcn.h.def
GEN_HDR dlfcn.h
DEPENDS
.llvm-libc-macros.dlfcn_macros
.llvm_libc_common_h
)
add_gen_header(
features
DEF_FILE features.h.def

17
libc/include/dlfcn.h.def Normal file
View File

@@ -0,0 +1,17 @@
//===-- C standard library header dlfcn.h ---------------------------------===//
//
// 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_DLFCN_H
#define LLVM_LIBC_DLFCN_H
#include "__llvm-libc-common.h"
#include "llvm-libc-macros/dlfcn-macros.h"
%%public_api()
#endif // LLVM_LIBC_DLFCN_H

View File

@@ -277,3 +277,9 @@ add_macro_header(
HDR
stdckdint-macros.h
)
add_macro_header(
dlfcn_macros
HDR
dlfcn-macros.h
)

View File

@@ -0,0 +1,23 @@
//===-- Definition of macros from dlfcn.h ---------------------------------===//
//
// 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_MACROS_DLFCN_MACROS_H
#define LLVM_LIBC_MACROS_DLFCN_MACROS_H
#define RTLD_LAZY 0x00001
#define RTLD_NOW 0x00002
#define RTLD_GLOBAL 0x00100
#define RTLD_LOCAL 0
// Non-standard stuff here
#define RTLD_BINDING_MASK 0x3
#define RTLD_NOLOAD 0x00004
#define RTLD_DEEPBIND 0x00008
#define RTLD_NODELETE 0x01000
#endif // LLVM_LIBC_MACROS_DLFCN_MACROS_H