浏览代码

Merge pull request #3276 from BernardXiong/fix_signal_minilibc

[Kernel] Fix the signal compiling issue when using minilibc
Bernard Xiong 5 年之前
父节点
当前提交
c05d9dfee6
共有 2 个文件被更改,包括 25 次插入10 次删除
  1. 20 0
      components/libc/compilers/minilibc/signal.h
  2. 5 10
      include/libc/libc_signal.h

+ 20 - 0
components/libc/compilers/minilibc/signal.h

@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2017-09-12     Bernard      The first version
+ */
+
+#ifndef SIGNAL_H__
+#define SIGNAL_H__
+
+#include <libc/libc_signal.h>
+
+#define SIG_DFL ((_sig_func_ptr)0)  /* Default action */
+#define SIG_IGN ((_sig_func_ptr)1)  /* Ignore action */
+#define SIG_ERR ((_sig_func_ptr)-1) /* Error return */
+
+#endif

+ 5 - 10
include/libc/libc_signal.h

@@ -63,13 +63,14 @@ typedef struct siginfo siginfo_t;
 #define SI_MESGQ    0x05    /* Signal generated by arrival of a 
                                message on an empty message queue. */
 
-#ifdef RT_USING_NEWLIB
-#include <sys/signal.h>
+#if !defined(RT_USING_NEWLIB)
+typedef void (*_sig_func_ptr)(int);
+typedef unsigned long sigset_t;
 #endif
 
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
 #include <signal.h>
-typedef unsigned long sigset_t;
+
+#if defined(__CC_ARM) || defined(__CLANG_ARM)
 
 #define SIGHUP       1
 /* #define SIGINT       2 */
@@ -105,8 +106,6 @@ typedef unsigned long sigset_t;
 #define SIG_BLOCK   1   /* set of signals to block */
 #define SIG_UNBLOCK 2   /* set of signals to, well, unblock */
 
-typedef void (*_sig_func_ptr)(int);
-
 struct sigaction
 {
     _sig_func_ptr sa_handler;
@@ -124,8 +123,6 @@ int sigprocmask (int how, const sigset_t *set, sigset_t *oset);
 int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
 
 #elif defined(__IAR_SYSTEMS_ICC__)
-#include <signal.h>
-typedef unsigned long sigset_t;
 
 #define SIGHUP       1
 #define SIGINT       2
@@ -161,8 +158,6 @@ typedef unsigned long sigset_t;
 #define SIG_BLOCK   1   /* set of signals to block */
 #define SIG_UNBLOCK 2   /* set of signals to, well, unblock */
 
-typedef void (*_sig_func_ptr)(int);
-
 struct sigaction
 {
     _sig_func_ptr sa_handler;