Hi,
I was having difficulty building threaded 32-bit perl using gcc-13.0.1.
No problem building threaded 64-bit perl with gcc-13.0.1.
Also no problem building threaded perls (both 32-bit and 64-bit) with
gcc-12.2.0 or earlier.

I tried fixing the issue by making a few modifications to dist/threads.xs
in the perl source, but to no avail.

In desperation, I reverted dist/threads.xs back to its original state and
simply replaced the 32-bit gcc-13.0.1 version of setjmp.h with the 32-bit
gcc-12.2.0 version of setjmp.h.
I was then able to build the 32-bit threaded perl using the gcc-13.0.1
compiler without issue.

My question therefore is:
If the 32-bit 12.2.0 version of setjmp.h works fine with 32-bit gcc-13.0.1,
then why was it altered ?

Maybe that's a dumb question - hopefully not sufficiently dumb as to cause
offence.

As regards the building of 32-bit threaded perl, the main stumbling block
seemed to be that setjmp.h in gcc-13.0.1 no longer checks to see
if USE_NO_MINGW_SETJMP_TWO_ARGS is not defined.

AIUI, the omission of that check for the 64-bit version of setjmp.h is
quite ok - as USE_NO_MINGW_SETJMP_TWO_ARGS is only ever defined for 32-bit
builds.
Hence, it comes as no surprise that it's only the 32-bit builds of perl
that are being broken by the omission of the check.

If reverting to the older form of 32-bit setjmp.h is really NOT the correct
solution here, then I guess we have to modify the perl source - for which
I'll seek the assistance of the perl developers.

Thoughts and advice are, as always, most welcome.

Cheers,
Rob

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

Reply via email to