File tree Expand file tree Collapse file tree 3 files changed +33
-5
lines changed
src/__support/threads/linux Expand file tree Collapse file tree 3 files changed +33
-5
lines changed Original file line number Diff line number Diff line change @@ -643,6 +643,12 @@ if(LLVM_LIBC_FULL_BUILD)
643
643
libc.src.pthread.pthread_mutexattr_setrobust
644
644
libc.src.pthread.pthread_mutexattr_settype
645
645
libc.src.pthread.pthread_once
646
+ libc.src.pthread.pthread_rwlockattr_destroy
647
+ libc.src.pthread.pthread_rwlockattr_getkind_np
648
+ libc.src.pthread.pthread_rwlockattr_getpshared
649
+ libc.src.pthread.pthread_rwlockattr_init
650
+ libc.src.pthread.pthread_rwlockattr_setkind_np
651
+ libc.src.pthread.pthread_rwlockattr_setpshared
646
652
libc.src.pthread.pthread_setspecific
647
653
648
654
# sched.h entrypoints
@@ -753,6 +759,7 @@ if(LLVM_LIBC_FULL_BUILD)
753
759
libc.src.unistd._exit
754
760
libc.src.unistd.environ
755
761
libc.src.unistd.execv
762
+ libc.src.unistd.fork
756
763
libc.src.unistd.getopt
757
764
libc.src.unistd.optarg
758
765
libc.src.unistd.optind
Original file line number Diff line number Diff line change @@ -22,11 +22,11 @@ add_header_library(
22
22
libc.src.__support.time.linux.abs_timeout
23
23
)
24
24
25
- set (raw_mutex_additional_flags )
25
+ set (monotonicity_flags )
26
26
if (LIBC_CONF_TIMEOUT_ENSURE_MONOTONICITY )
27
- set (raw_mutex_additional_flags -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY=1 )
27
+ set (monotonicity_flags -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY=1 )
28
28
else ()
29
- set (raw_mutex_additional_flags -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY=0 )
29
+ set (monotonicity_flags -DLIBC_COPT_TIMEOUT_ENSURE_MONOTONICITY=0 )
30
30
endif ()
31
31
32
32
add_header_library (
@@ -42,8 +42,22 @@ add_header_library(
42
42
libc.hdr.types.pid_t
43
43
COMPILE_OPTIONS
44
44
-DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=${LIBC_CONF_RAW_MUTEX_DEFAULT_SPIN_COUNT}
45
- ${raw_mutex_additional_flags}
46
-
45
+ ${monotonicity_flags}
46
+ )
47
+
48
+ add_header_library (
49
+ rwlock
50
+ HDRS
51
+ rwlock.h
52
+ DEPENDS
53
+ .futex_utils
54
+ .raw_mutex
55
+ libc.src.__support.common
56
+ libc.src.__support.OSUtil.osutil
57
+ libc.src.__support.CPP.limits
58
+ COMPILE_OPTIONS
59
+ -DLIBC_COPT_RWLOCK_DEFAULT_SPIN_COUNT=${LIBC_CONF_RWLOCK_DEFAULT_SPIN_COUNT}
60
+ ${monotonicity_flags}
47
61
)
48
62
49
63
add_header_library (
@@ -64,6 +78,7 @@ add_object_library(
64
78
.futex_utils
65
79
libc.config.linux.app_h
66
80
libc.include.sys_syscall
81
+ libc.include.fcntl
67
82
libc.src.errno.errno
68
83
libc.src.__support.CPP.atomic
69
84
libc.src.__support.CPP.stringstream
Original file line number Diff line number Diff line change @@ -79,4 +79,10 @@ void *realloc(void *ptr, size_t s) {
79
79
// Integration tests are linked with -nostdlib. BFD linker expects
80
80
// __dso_handle when -nostdlib is used.
81
81
void *__dso_handle = nullptr ;
82
+
83
+ // On some platform (aarch64 fedora tested) full build integration test
84
+ // objects need to link against libgcc, which may expect a __getauxval
85
+ // function. For now, it is fine to provide a weak definition that always
86
+ // returns false.
87
+ [[gnu::weak]] bool __getauxval (uint64_t , uint64_t *) { return false ; }
82
88
} // extern "C"
You can’t perform that action at this time.
0 commit comments