Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
卖小麦←_←
rt-thread
提交
acc62c1e
R
rt-thread
项目概览
卖小麦←_←
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
acc62c1e
编写于
12月 09, 2021
作者:
G
guozhanxin
提交者:
Bernard Xiong
12月 22, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【修复】armclang cpp11 内存泄漏及编译警告问题
上级
67a39f62
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
391 addition
and
9 deletion
+391
-9
components/cplusplus/cpp11/armclang/thread.cpp
components/cplusplus/cpp11/armclang/thread.cpp
+8
-9
components/libc/compilers/common/nogcc/sys/errno.h
components/libc/compilers/common/nogcc/sys/errno.h
+383
-0
未找到文件。
components/cplusplus/cpp11/armclang/thread.cpp
浏览文件 @
acc62c1e
...
...
@@ -13,19 +13,18 @@
#include <cstdio>
#include <pthread.h>
#define CPP11_DEFAULT_ID_OFFSET 1
extern
"C"
int
__ARM_TPL_thread_create
(
__ARM_TPL_thread_t
*
__t
,
void
*
(
*
__func
)(
void
*
),
void
*
__arg
)
{
int
ret
=
0
;
/* TODO memory leek */
pthread_t
*
pid
=
(
pthread_t
*
)
rt_malloc
(
sizeof
(
pthread_t
));
if
(
pid
==
nullptr
)
return
-
1
;
ret
=
pthread_create
(
pid
,
RT_NULL
,
__func
,
__arg
);
pthread_t
pid
;
ret
=
pthread_create
(
&
pid
,
RT_NULL
,
__func
,
__arg
);
if
(
ret
==
0
)
{
__t
->
data
=
(
std
::
uintptr_t
)
pid
;
__t
->
data
=
(
std
::
uintptr_t
)
pid
+
CPP11_DEFAULT_ID_OFFSET
;
return
0
;
}
return
-
1
;
...
...
@@ -50,18 +49,18 @@ extern "C" __ARM_TPL_thread_id __ARM_TPL_thread_get_current_id()
extern
"C"
__ARM_TPL_thread_id
__ARM_TPL_thread_get_id
(
const
__ARM_TPL_thread_t
*
__t
)
{
return
(
__ARM_TPL_thread_id
)((
*
(
pthread_t
*
)
__t
->
data
));
return
(
__ARM_TPL_thread_id
)((
(
pthread_t
)
__t
->
data
-
CPP11_DEFAULT_ID_OFFSET
));
}
extern
"C"
int
__ARM_TPL_thread_join
(
__ARM_TPL_thread_t
*
__t
)
{
pthread_join
((
*
(
pthread_t
*
)
__t
->
data
),
RT_NULL
);
pthread_join
((
(
pthread_t
)
__t
->
data
-
CPP11_DEFAULT_ID_OFFSET
),
RT_NULL
);
return
0
;
}
extern
"C"
int
__ARM_TPL_thread_detach
(
__ARM_TPL_thread_t
*
__t
)
{
pthread_detach
((
*
(
pthread_t
*
)
__t
->
data
));
pthread_detach
((
(
pthread_t
)
__t
->
data
-
CPP11_DEFAULT_ID_OFFSET
));
return
0
;
}
...
...
components/libc/compilers/common/nogcc/sys/errno.h
浏览文件 @
acc62c1e
...
...
@@ -39,46 +39,134 @@ defined in armcc/errno.h
#if defined(__ARMCC_VERSION) || defined(__IAR_SYSTEMS_ICC__)
#include <errno.h>
#ifndef EPERM
#define EPERM (ERROR_BASE_NO + 1)
#endif
#ifndef ENOENT
#define ENOENT (ERROR_BASE_NO + 2)
#endif
#ifndef ESRCH
#define ESRCH (ERROR_BASE_NO + 3)
#endif
#ifndef EINTR
#define EINTR (ERROR_BASE_NO + 4)
#endif
#ifndef EIO
#define EIO (ERROR_BASE_NO + 5)
#endif
#ifndef ENXIO
#define ENXIO (ERROR_BASE_NO + 6)
#endif
#ifndef E2BIG
#define E2BIG (ERROR_BASE_NO + 7)
#endif
#ifndef ENOEXEC
#define ENOEXEC (ERROR_BASE_NO + 8)
#endif
#ifndef EBADF
#define EBADF (ERROR_BASE_NO + 9)
#endif
#ifndef ECHILD
#define ECHILD (ERROR_BASE_NO + 10)
#endif
#ifndef EAGAIN
#define EAGAIN (ERROR_BASE_NO + 11)
#endif
#ifndef ENOMEM
#define ENOMEM (ERROR_BASE_NO + 12)
#endif
#ifndef EACCES
#define EACCES (ERROR_BASE_NO + 13)
#endif
#ifndef EFAULT
#define EFAULT (ERROR_BASE_NO + 14)
#endif
#ifndef ENOTBLK
#define ENOTBLK (ERROR_BASE_NO + 15)
#endif
#ifndef EBUSY
#define EBUSY (ERROR_BASE_NO + 16)
#endif
#ifndef EEXIST
#define EEXIST (ERROR_BASE_NO + 17)
#endif
#ifndef EXDEV
#define EXDEV (ERROR_BASE_NO + 18)
#endif
#ifndef ENODEV
#define ENODEV (ERROR_BASE_NO + 19)
#endif
#ifndef ENOTDIR
#define ENOTDIR (ERROR_BASE_NO + 20)
#endif
#ifndef EISDIR
#define EISDIR (ERROR_BASE_NO + 21)
#endif
#ifndef EINVAL
#define EINVAL (ERROR_BASE_NO + 22)
#endif
#ifndef ENFILE
#define ENFILE (ERROR_BASE_NO + 23)
#endif
#ifndef EMFILE
#define EMFILE (ERROR_BASE_NO + 24)
#endif
#ifndef ENOTTY
#define ENOTTY (ERROR_BASE_NO + 25)
#endif
#ifndef ETXTBSY
#define ETXTBSY (ERROR_BASE_NO + 26)
#endif
#ifndef EFBIG
#define EFBIG (ERROR_BASE_NO + 27)
#endif
#ifndef ENOSPC
#define ENOSPC (ERROR_BASE_NO + 28)
#endif
#ifndef ESPIPE
#define ESPIPE (ERROR_BASE_NO + 29)
#endif
#ifndef EROFS
#define EROFS (ERROR_BASE_NO + 30)
#endif
#ifndef EMLINK
#define EMLINK (ERROR_BASE_NO + 31)
#endif
#ifndef EPIPE
#define EPIPE (ERROR_BASE_NO + 32)
#endif
#ifndef EDOM
#define EDOM (ERROR_BASE_NO + 33)
...
...
@@ -88,110 +176,405 @@ defined in armcc/errno.h
#define ERANGE (ERROR_BASE_NO + 34)
#endif
#ifndef EDEADLK
#define EDEADLK (ERROR_BASE_NO + 35)
#endif
#ifndef ENAMETOOLONG
#define ENAMETOOLONG (ERROR_BASE_NO + 36)
#endif
#ifndef ENOLCK
#define ENOLCK (ERROR_BASE_NO + 37)
#endif
#ifndef ENOSYS
#define ENOSYS (ERROR_BASE_NO + 38)
#endif
#ifndef ENOTEMPTY
#define ENOTEMPTY (ERROR_BASE_NO + 39)
#endif
#ifndef ELOOP
#define ELOOP (ERROR_BASE_NO + 40)
#endif
#ifndef EWOULDBLOCK
#define EWOULDBLOCK EAGAIN
#endif
#ifndef ENOMSG
#define ENOMSG (ERROR_BASE_NO + 42)
#endif
#ifndef EIDRM
#define EIDRM (ERROR_BASE_NO + 43)
#endif
#ifndef ECHRNG
#define ECHRNG (ERROR_BASE_NO + 44)
#endif
#ifndef EL2NSYNC
#define EL2NSYNC (ERROR_BASE_NO + 45)
#endif
#ifndef EL3HLT
#define EL3HLT (ERROR_BASE_NO + 46)
#endif
#ifndef EL3RST
#define EL3RST (ERROR_BASE_NO + 47)
#endif
#ifndef ELNRNG
#define ELNRNG (ERROR_BASE_NO + 48)
#endif
#ifndef EUNATCH
#define EUNATCH (ERROR_BASE_NO + 49)
#endif
#ifndef ENOCSI
#define ENOCSI (ERROR_BASE_NO + 50)
#endif
#ifndef EL2HLT
#define EL2HLT (ERROR_BASE_NO + 51)
#endif
#ifndef EBADE
#define EBADE (ERROR_BASE_NO + 52)
#endif
#ifndef EBADR
#define EBADR (ERROR_BASE_NO + 53)
#endif
#ifndef EXFULL
#define EXFULL (ERROR_BASE_NO + 54)
#endif
#ifndef ENOANO
#define ENOANO (ERROR_BASE_NO + 55)
#endif
#ifndef EBADRQC
#define EBADRQC (ERROR_BASE_NO + 56)
#endif
#ifndef EBADSLT
#define EBADSLT (ERROR_BASE_NO + 57)
#endif
#ifndef EDEADLOCK
#define EDEADLOCK EDEADLK
#endif
#ifndef EBFONT
#define EBFONT (ERROR_BASE_NO + 59)
#endif
#ifndef ENOSTR
#define ENOSTR (ERROR_BASE_NO + 60)
#endif
#ifndef ENODATA
#define ENODATA (ERROR_BASE_NO + 61)
#endif
#ifndef ETIME
#define ETIME (ERROR_BASE_NO + 62)
#endif
#ifndef ENOSR
#define ENOSR (ERROR_BASE_NO + 63)
#endif
#ifndef ENONET
#define ENONET (ERROR_BASE_NO + 64)
#endif
#ifndef ENOPKG
#define ENOPKG (ERROR_BASE_NO + 65)
#endif
#ifndef EREMOTE
#define EREMOTE (ERROR_BASE_NO + 66)
#endif
#ifndef ENOLINK
#define ENOLINK (ERROR_BASE_NO + 67)
#endif
#ifndef EADV
#define EADV (ERROR_BASE_NO + 68)
#endif
#ifndef ESRMNT
#define ESRMNT (ERROR_BASE_NO + 69)
#endif
#ifndef ECOMM
#define ECOMM (ERROR_BASE_NO + 70)
#endif
#ifndef EPROTO
#define EPROTO (ERROR_BASE_NO + 71)
#endif
#ifndef EMULTIHOP
#define EMULTIHOP (ERROR_BASE_NO + 72)
#endif
#ifndef EDOTDOT
#define EDOTDOT (ERROR_BASE_NO + 73)
#endif
#ifndef EBADMSG
#define EBADMSG (ERROR_BASE_NO + 74)
#endif
#ifndef EOVERFLOW
#define EOVERFLOW (ERROR_BASE_NO + 75)
#endif
#ifndef ENOTUNIQ
#define ENOTUNIQ (ERROR_BASE_NO + 76)
#endif
#ifndef EBADFD
#define EBADFD (ERROR_BASE_NO + 77)
#endif
#ifndef EREMCHG
#define EREMCHG (ERROR_BASE_NO + 78)
#endif
#ifndef ELIBACC
#define ELIBACC (ERROR_BASE_NO + 79)
#endif
#ifndef ELIBBAD
#define ELIBBAD (ERROR_BASE_NO + 80)
#endif
#ifndef ELIBSCN
#define ELIBSCN (ERROR_BASE_NO + 81)
#endif
#ifndef ELIBMAX
#define ELIBMAX (ERROR_BASE_NO + 82)
#endif
#ifndef ELIBEXEC
#define ELIBEXEC (ERROR_BASE_NO + 83)
#endif
#ifndef EILSEQ
#define EILSEQ (ERROR_BASE_NO + 84)
#endif
#ifndef ERESTART
#define ERESTART (ERROR_BASE_NO + 85)
#endif
#ifndef ESTRPIPE
#define ESTRPIPE (ERROR_BASE_NO + 86)
#endif
#ifndef EUSERS
#define EUSERS (ERROR_BASE_NO + 87)
#endif
#ifndef ENOTSOCK
#define ENOTSOCK (ERROR_BASE_NO + 88)
#endif
#ifndef EDESTADDRREQ
#define EDESTADDRREQ (ERROR_BASE_NO + 89)
#endif
#ifndef EMSGSIZE
#define EMSGSIZE (ERROR_BASE_NO + 90)
#endif
#ifndef EPROTOTYPE
#define EPROTOTYPE (ERROR_BASE_NO + 91)
#endif
#ifndef ENOPROTOOPT
#define ENOPROTOOPT (ERROR_BASE_NO + 92)
#endif
#ifndef EPROTONOSUPPORT
#define EPROTONOSUPPORT (ERROR_BASE_NO + 93)
#endif
#ifndef ESOCKTNOSUPPORT
#define ESOCKTNOSUPPORT (ERROR_BASE_NO + 94)
#endif
#ifndef EOPNOTSUPP
#define EOPNOTSUPP (ERROR_BASE_NO + 95)
#endif
#ifndef ENOTSUP
#define ENOTSUP EOPNOTSUPP
#endif
#ifndef EPFNOSUPPORT
#define EPFNOSUPPORT (ERROR_BASE_NO + 96)
#endif
#ifndef EAFNOSUPPORT
#define EAFNOSUPPORT (ERROR_BASE_NO + 97)
#endif
#ifndef EADDRINUSE
#define EADDRINUSE (ERROR_BASE_NO + 98)
#endif
#ifndef EADDRNOTAVAIL
#define EADDRNOTAVAIL (ERROR_BASE_NO + 99)
#endif
#ifndef ENETDOWN
#define ENETDOWN (ERROR_BASE_NO + 100)
#endif
#ifndef ENETUNREACH
#define ENETUNREACH (ERROR_BASE_NO + 101)
#endif
#ifndef ENETRESET
#define ENETRESET (ERROR_BASE_NO + 102)
#endif
#ifndef ECONNABORTED
#define ECONNABORTED (ERROR_BASE_NO + 103)
#endif
#ifndef ECONNRESET
#define ECONNRESET (ERROR_BASE_NO + 104)
#endif
#ifndef ENOBUFS
#define ENOBUFS (ERROR_BASE_NO + 105)
#endif
#ifndef EISCONN
#define EISCONN (ERROR_BASE_NO + 106)
#endif
#ifndef ENOTCONN
#define ENOTCONN (ERROR_BASE_NO + 107)
#endif
#ifndef ESHUTDOWN
#define ESHUTDOWN (ERROR_BASE_NO + 108)
#endif
#ifndef ETOOMANYREFS
#define ETOOMANYREFS (ERROR_BASE_NO + 109)
#endif
#ifndef ETIMEDOUT
#define ETIMEDOUT (ERROR_BASE_NO + 110)
#endif
#ifndef ECONNREFUSED
#define ECONNREFUSED (ERROR_BASE_NO + 111)
#endif
#ifndef EHOSTDOWN
#define EHOSTDOWN (ERROR_BASE_NO + 112)
#endif
#ifndef EHOSTUNREACH
#define EHOSTUNREACH (ERROR_BASE_NO + 113)
#endif
#ifndef EALREADY
#define EALREADY (ERROR_BASE_NO + 114)
#endif
#ifndef EINPROGRESS
#define EINPROGRESS (ERROR_BASE_NO + 115)
#endif
#ifndef ESTALE
#define ESTALE (ERROR_BASE_NO + 116)
#endif
#ifndef EUCLEAN
#define EUCLEAN (ERROR_BASE_NO + 117)
#endif
#ifndef ENOTNAM
#define ENOTNAM (ERROR_BASE_NO + 118)
#endif
#ifndef ENAVAIL
#define ENAVAIL (ERROR_BASE_NO + 119)
#endif
#ifndef EISNAM
#define EISNAM (ERROR_BASE_NO + 120)
#endif
#ifndef EREMOTEIO
#define EREMOTEIO (ERROR_BASE_NO + 121)
#endif
#ifndef EDQUOT
#define EDQUOT (ERROR_BASE_NO + 122)
#endif
#ifndef ENOMEDIUM
#define ENOMEDIUM (ERROR_BASE_NO + 123)
#endif
#ifndef EMEDIUMTYPE
#define EMEDIUMTYPE (ERROR_BASE_NO + 124)
#endif
#ifndef ECANCELED
#define ECANCELED (ERROR_BASE_NO + 125)
#endif
#ifndef ENOKEY
#define ENOKEY (ERROR_BASE_NO + 126)
#endif
#ifndef EKEYEXPIRED
#define EKEYEXPIRED (ERROR_BASE_NO + 127)
#endif
#ifndef EKEYREVOKED
#define EKEYREVOKED (ERROR_BASE_NO + 128)
#endif
#ifndef EKEYREJECTED
#define EKEYREJECTED (ERROR_BASE_NO + 129)
#endif
#ifndef EOWNERDEAD
#define EOWNERDEAD (ERROR_BASE_NO + 130)
#endif
#ifndef ENOTRECOVERABLE
#define ENOTRECOVERABLE (ERROR_BASE_NO + 131)
#endif
#ifndef ERFKILL
#define ERFKILL (ERROR_BASE_NO + 132)
#endif
#ifndef EHWPOISON
#define EHWPOISON (ERROR_BASE_NO + 133)
#endif
#endif
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录