Follow-up Comment #35, bug #64806 (group make):

Hi, is it possible that the sync mutex output issue happens in _w32os.c_ in
method _osync_get_mutex_, when you do:


sprintf (mutex, "0x%Ix", (unsigned long long)(DWORD_PTR)osync_handle);


Because: "%I" is Microsoft specific. See
https://learn.microsoft.com/en-us/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-170
There they say:
> Microsoft-specific: The I (uppercase i), I32, I64, and w argument size
> modifier prefixes are Microsoft extensions and are not ISO C-compatible. 

So the issue could be that in none-MSVC-compiler settings (looking at mingw),
the %I is interpreted as something else and thus results in a string that is
simply wrong - like the garbage string shown below.

I come to that conclusion, because I am running on mingw (via MSYS) and I get
a similar issue.
And when I run with _--debug=v_, I get


Reading makefile 'Makefile'...
Using jobserver controller gmake_semaphore_34160
Using output-sync mutex
Updating makefiles....


So in the place where it should print the mutex hex number I get nothing. Not
the same as the "�*V8�" below, but close enough.

Related: my bug report at msys2/MINGW-packages:
https://github.com/msys2/MINGW-packages/issues/29218



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64806>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to