Uh, indeed! Thanks for the fixes Best Regards, Luca
________________________________ Da: LIU Hao <[email protected]> Inviato: giovedì, dicembre 25, 2025 1:44:04 PM A: Luca Bacci <[email protected]>; [email protected] <[email protected]> Oggetto: Re: R: R: [Mingw-w64-public] Implement safe stdio flush on exit 在 2025-12-25 00:24, Luca Bacci 写道: > diff --git a/mingw-w64-crt/testcases/Makefile.am > b/mingw-w64-crt/testcases/Makefile.am > index 14c59abc..f0d51f3b 100644 > --- a/mingw-w64-crt/testcases/Makefile.am > +++ b/mingw-w64-crt/testcases/Makefile.am > @@ -84,6 +85,12 @@ EXTRA_DIST = \ > t_stprintf_tmpl.h \ > t_swprintf_tmpl.h > > +libprocdetach.dll: libprocdetach.o > + $(LINK) -shared libprocdetach.o -Wl,--out-implib,[email protected] > + > +EXTRA_t_safe_flush_DEPENDENCIES = libprocdetach.dll > +t_safe_flush_LDADD = -L. -lprocdetach.dll > + I think I saw somewhere that `-L.` belong in `_LDFLAGS`. But for this use you don't have to use `-L`; .a libraries can be passed to the linker directly: libprocdetach.dll.a: libprocdetach.o $(LINK) -shared libprocdetach.o -Wl,--out-implib,$@ -o libprocdetach.dll t_safe_flush_LDADD = libprocdetach.dll.a > diff --git a/mingw-w64-crt/testcases/t_safe_flush.c > b/mingw-w64-crt/testcases/t_safe_flush.c > new file mode 100644 > index 00000000..dae4c934 > --- /dev/null > +++ b/mingw-w64-crt/testcases/t_safe_flush.c > @@ -0,0 +1,146 @@ > +#include <stdio.h> > +#include <stdlib.h> > +#include <string.h> > +#include <assert.h> > +#include <process.h> > +#include <io.h> > +#include <fcntl.h> > +#include <windows.h> > +#include <versionhelpers.h> > + > +#define STRING "hello world!" > + > +/* child process */ > + > +CRITICAL_SECTION cs; > + > +static unsigned int thread_main(void *user_data) { This needs to be `__stdcall`, otherwise... > + assert(_beginthreadex(NULL, 0, thread_main, handle_event, 0, NULL) != 0); won't compile on x86-32. > + /* The C RunTime library flushes streams from its DllMain > + * handler on DLL_PROCESS_DETACH. However that DllMain > + * won't run becuase another DLL triggers instant termination. ^~~~~~~ because I'm now fixing these locally and passing it through the CI. -- Best regards, LIU Hao _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
