在 2025-9-15 02:09, Kirill Makurin 写道:
This is the updated patch series.

When I was running `make check` with 32-bit msvcrt.dll I noticed one more test 
failure, which was a bug in sem_timedwait32. The first patch in this series 
adds a fix.

I pushed this patch series to by GitHub fork and noticed that all 
testcases-clang failed on aarch64[1]. The reason was pthread_misc/context1.c 
which was not prepared to handle arm platforms. I am not familiar with arm[64] 
and CONTEXT structure used in this test, so I simply added preprocessor 
conditions to skip this test for arm (patch 5).

I took a quick look at definition of CONTEXT structure and wonder if `Pc` 
member is the proper one for this test?

Yes it looks so.


I omitted cosmetic (whitespace) changes which were caused by my editor's 
settings; Instead, I wonder if we could add a .clang-format to mingw-w64 repo? 
While reformatting all files would be an overkill, I think it would be nice to 
have consistent code style for new files. What do you think?

Patch 12 adds GitHub CI integration. I added a new step "Build and test winpthreads" to 
testcases-{gcc,clang} jobs. I also marked "Build mingw-w64-crt and run testcases" step with 
"continue-on-error: true", I think it would nice to run winpthreads tests even if crt build/tests 
failed. Feel free to remove it if you don't like it.

Some of the new tests are failing on ARM64EC:

https://github.com/lhmouse/mingw-w64/actions/runs/18068952591/job/51416136679#step:6:1448



FAIL: pthread_barrier/barrier5
==============================

Assertion failed: (((barrier_t *)*barrier)->valid == LIFE_BARRIER) && (((barrier_t *)*barrier)->busy > 0), file ../src/barrier.c, line 47
FAIL pthread_barrier/barrier5.exe (exit status: 127)

FAIL: pthread_misc/stress1
==========================

Assertion failed: (((barrier_t *)*barrier)->valid == LIFE_BARRIER) && (((barrier_t *)*barrier)->busy > 0), file ../src/barrier.c, line 47
FAIL pthread_misc/stress1.exe (exit status: 127)

XFAIL: pthread_mutex/mutex4
===========================

*** 0==0

Assertion failed: (pthread_mutex_unlock(&mutex1) == EPERM), file 
../../tests/pthread_mutex/mutex4.c, line 79
XFAIL pthread_mutex/mutex4.exe (exit status: 1)

XFAIL: pthread_mutex/mutex6e
============================

Assertion failed: (pthread_mutex_unlock(&mutex) == EPERM), file 
../../tests/pthread_mutex/mutex6e.c, line 68
XFAIL pthread_mutex/mutex6e.exe (exit status: 1)

XFAIL: pthread_mutex/mutex6es
=============================

Assertion failed: (pthread_mutex_unlock(&mutex) == EPERM), file 
../../tests/pthread_mutex/mutex6es.c, line 67
XFAIL pthread_mutex/mutex6es.exe (exit status: 1)

XFAIL: pthread_mutex/mutex7
===========================

Assertion failed: (pthread_mutex_unlock(&mutex) == EPERM), file 
../../tests/pthread_mutex/mutex7.c, line 60
XFAIL pthread_mutex/mutex7.exe (exit status: 1)

XFAIL: pthread_mutex/mutex7e
============================

Assertion failed: (pthread_mutex_unlock(&mutex) == EPERM), file 
../../tests/pthread_mutex/mutex7e.c, line 68
XFAIL pthread_mutex/mutex7e.exe (exit status: 1)

XFAIL: pthread_mutex/mutex7n
============================

Assertion failed: (pthread_mutex_unlock(&mutex) == EPERM), file 
../../tests/pthread_mutex/mutex7n.c, line 64
XFAIL pthread_mutex/mutex7n.exe (exit status: 1)

FAIL: pthread_rwlock/rwlock7
============================

....Assertion failed: (((rwlock_t *)*rwl)->valid == LIFE_RWLOCK) && (((rwlock_t *)*rwl)->busy > 0), file ../src/rwlock.c, line 50
FAIL pthread_rwlock/rwlock7.exe (exit status: 127)

FAIL: pthread_rwlock/rwlock8
============================

.....Assertion failed: (((rwlock_t *)*rwl)->valid == LIFE_RWLOCK) && (((rwlock_t *)*rwl)->busy > 0), file ../src/rwlock.c, line 50
FAIL pthread_rwlock/rwlock8.exe (exit status: 127)

XFAIL: pthread_spinlock/spin1
=============================

Assertion failed: (pthread_spin_lock(&lock) == EINVAL), file 
../../tests/pthread_spinlock/spin1.c, line 56
XFAIL pthread_spinlock/spin1.exe (exit status: 1)

XFAIL: pthread_spinlock/spin3
=============================

Assertion failed: (pthread_spin_unlock(&spin) == (int) expectedResult), file ../../tests/pthread_spinlock/spin3.c, line 52
XFAIL pthread_spinlock/spin3.exe (exit status: 1)





--
Best regards,
LIU Hao

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to