Page MenuHomeFreeBSD

D40709.id.diff
No OneTemporary

D40709.id.diff

diff --git a/lib/libthr/arch/aarch64/include/pthread_md.h b/lib/libthr/arch/aarch64/include/pthread_md.h
--- a/lib/libthr/arch/aarch64/include/pthread_md.h
+++ b/lib/libthr/arch/aarch64/include/pthread_md.h
@@ -51,4 +51,6 @@
return (_tcb_get()->tcb_thread);
}
+#define _cfi_undefine_ra() __asm __volatile(".cfi_undefined x30")
+
#endif /* _PTHREAD_MD_H_ */
diff --git a/lib/libthr/arch/amd64/include/pthread_md.h b/lib/libthr/arch/amd64/include/pthread_md.h
--- a/lib/libthr/arch/amd64/include/pthread_md.h
+++ b/lib/libthr/arch/amd64/include/pthread_md.h
@@ -56,4 +56,6 @@
#define HAS__UMTX_OP_ERR 1
+#define _cfi_undefine_ra() __asm __volatile(".cfi_undefined %rip")
+
#endif
diff --git a/lib/libthr/arch/arm/include/pthread_md.h b/lib/libthr/arch/arm/include/pthread_md.h
--- a/lib/libthr/arch/arm/include/pthread_md.h
+++ b/lib/libthr/arch/arm/include/pthread_md.h
@@ -50,4 +50,6 @@
return (NULL);
}
+#define _cfi_undefine_ra()
+
#endif /* _PTHREAD_MD_H_ */
diff --git a/lib/libthr/arch/i386/include/pthread_md.h b/lib/libthr/arch/i386/include/pthread_md.h
--- a/lib/libthr/arch/i386/include/pthread_md.h
+++ b/lib/libthr/arch/i386/include/pthread_md.h
@@ -56,4 +56,6 @@
#define HAS__UMTX_OP_ERR 1
+#define _cfi_undefine_ra() __asm __volatile(".cfi_undefined %eip")
+
#endif
diff --git a/lib/libthr/arch/powerpc/include/pthread_md.h b/lib/libthr/arch/powerpc/include/pthread_md.h
--- a/lib/libthr/arch/powerpc/include/pthread_md.h
+++ b/lib/libthr/arch/powerpc/include/pthread_md.h
@@ -53,4 +53,6 @@
#define HAS__UMTX_OP_ERR 1
+#define _cfi_undefine_ra()
+
#endif /* _PTHREAD_MD_H_ */
diff --git a/lib/libthr/arch/riscv/include/pthread_md.h b/lib/libthr/arch/riscv/include/pthread_md.h
--- a/lib/libthr/arch/riscv/include/pthread_md.h
+++ b/lib/libthr/arch/riscv/include/pthread_md.h
@@ -58,4 +58,6 @@
return (NULL);
}
+#define _cfi_undefine_ra() __asm __volatile(".cfi_undefined ra")
+
#endif /* _PTHREAD_MD_H_ */
diff --git a/lib/libthr/thread/thr_create.c b/lib/libthr/thread/thr_create.c
--- a/lib/libthr/thread/thr_create.c
+++ b/lib/libthr/thread/thr_create.c
@@ -255,6 +255,8 @@
{
sigset_t set;
+ _cfi_undefine_ra();
+
if (curthread->attr.suspend == THR_CREATE_SUSPENDED)
set = curthread->sigmask;
_thr_signal_block_setup(curthread);

File Metadata

Mime Type
text/plain
Expires
Thu, Oct 23, 1:33 PM (6 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24075914
Default Alt Text
D40709.id.diff (2 KB)

Event Timeline