[libc] Add compile options to pthread_create target.
authorSiva Chandra Reddy <sivachandra@google.com>
Thu, 9 Jun 2022 06:40:55 +0000 (06:40 +0000)
committerSiva Chandra Reddy <sivachandra@google.com>
Thu, 9 Jun 2022 17:26:19 +0000 (17:26 +0000)
The compile options now match that of thrd_create. Two compile options
are of importance:
1. -O3 - This is required so that stack is not used between the clone
   syscall and the start function in the child thread.
2. -fno-omit-frame-pointer - This is required so that we can sniff out
   the thread start args from the child thread's stack memory.

Without these two options, pthread_create will exhibit flaky behavior.

Reviewed By: lntue, michaelrj

Differential Revision: https://reviews.llvm.org/D127381

libc/src/pthread/CMakeLists.txt

index 828fee2..d44eef0 100644 (file)
@@ -253,6 +253,9 @@ add_entrypoint_object(
     libc.include.errno
     libc.include.pthread
     libc.src.__support.threads.thread
+  COMPILE_OPTIONS
+    -O3
+    -fno-omit-frame-pointer
 )
 
 add_entrypoint_object(