[libc-commits] [PATCH] D75802: [libc] Add sigaction

Siva Chandra via Phabricator via libc-commits libc-commits at lists.llvm.org
Sat Mar 14 09:06:23 PDT 2020

sivachandra added a comment.

Sorry for the long delay here. I am feeling much better now and should be more responsive.

Comment at: libc/config/linux/signal.h.in:11
+#define sigaction __kernel_sigaction
 #include <linux/signal.h>
abrachet wrote:
> This is very not ideal, but the Linux headers expose a different `struct sigaction` than POSIX expects, it has no `sa_action` member.
What do you think of using the other way round scheme. As in, in our public signal.h header, we will define `sigaction` like this:

struct __sigaction {

typedef __sigaction sigaction;

This will allow us to include our public header in internal code as:

#include "include/signal.h"

Throughout the internal implementation code, we will use `struct __sigaction` instead of `struct sigaction`. This way, we don't have to mess with the kernel headers. Does this make sense?

Comment at: libc/src/signal/linux/CMakeLists.txt:15
+  COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CURRENT_SOURCE_DIR}/__restore.cpp -fomit-frame-pointer
I have a similar requirement for a change I have been working on. I will share more on this soon. I am OK with this setup as is, but I have a feeling we can make use of similar items elsewhere as well.



More information about the libc-commits mailing list