Hi Herman,
As just tested, your recent patch fixes the __Thread_local issue we have otherwise with <ctype.h>
I think, the two following patches proposed by David are also needed, wdyt?
diff --git a/include/tccdefs.h b/include/tccdefs.h
index 2d42bea..1bef382 100644
--- a/include/tccdefs.h
+++ b/include/tccdefs.h
@@ -91,6 +91,11 @@
# if __SIZEOF_POINTER__ == 8
/* FIXME, __int128_t is used by setjump */
#define __int128_t struct { unsigned char _dummy[16] __attribute((aligned(16))); }
+ #define __SIZEOF_SIZE_T__ 8
+ #define __SIZEOF_PTRDIFF_T__ 8
+#else
+ #define __SIZEOF_SIZE_T__ 4
+ #define __SIZEOF_PTRDIFF_T__ 4
# endif
#elif defined __FreeBSD_kernel__
diff --git a/lib/bcheck.c b/lib/bcheck.c
index 0379b6e..3f66b1c 100644
--- a/lib/bcheck.c
+++ b/lib/bcheck.c
@@ -226,10 +226,13 @@ typedef struct alloca_list_struct {
#elif defined(__OpenBSD__)
#define BOUND_TID_TYPE pid_t
#define BOUND_GET_TID syscall (SYS_getthrid)
-#elif defined(__FreeBSD__) || defined(__NetBSD__)
+#elif defined(__FreeBSD__)
#define BOUND_TID_TYPE pid_t
-#define BOUND_GET_TID 0
-#elif defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv)
+#define BOUND_GET_TID syscall (SYS_thr_self)
+#elif defined(__NetBSD__)
+#define BOUND_TID_TYPE pid_t
+#define BOUND_GET_TID syscall (SYS_lwp_self)
+#elif defined(__linux__)
#define BOUND_TID_TYPE pid_t
#define BOUND_GET_TID syscall (SYS_gettid)
#else
There is a typo in the netbsd part. See attached corrected patch.
The other parts are ok.
Herman
David CARLIER wrote:
Hi if nobody objects, I may apply the last aforementioned patch
sometime next week.
Since you asked:
--- a/tests/tests2/46_grep.c
+++ b/tests/tests2/46_grep.c
@@ -14,6 +14,9 @@
* included and reference made to the fact that reproduction
* privileges were granted by DECUS.
*/
+#if defined(__FreeBSD__)
+#include <sys/cdefs.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h> // tolower()
- what is this (nobody will know without a comment)
- sys/cdefs.h is not that a user file should include
- 46_grep.c looks really "innocent" enough that it should compile
OOTB on any C and platform
- in general, when tests fail, we want the problem be fixed, not the test
Maybe you can find a better solution, or maybe someone else can...
-- gr