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
