Subject: | Doesn't seem to work in Strawberry Perl 5.12 April 2010 release |
So I just upgraded my Strawberry Perl not only to the new April 2010
release, but also to 5.12.0. Something seems to have changed in the gcc
toolchain, as Coro will no longer compile with the <w>indows option, nor
the <a>sm option (I also tried all other for some reason and none worked).
1) For the <w>indows option (which is the default), here is what I get:
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
-mms-bitfields -DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"5.22\"
-DXS_VERSION=\"5.22\" "-IC:\strawberry\perl\lib\CORE" -DCORO_LOSER
-DCORO_STACKSIZE=16384 -DCORO_STACKGUARD=4
State.c
State.xs: In function 'free_coro_mortal':
State.xs:1149: warning: initialization discards qualifiers from pointer
target type
State.xs: In function 'transfer':
State.xs:1603: error: too few arguments to function '_setjmp'
dmake: Error code 129, while making 'State.o'
dmake: Error code 255, while making 'subdirs'
2) For the <a>sm option, here is what I get:
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp
-typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap
State.xs > State.xsc && C:\strawberry\perl\bin\perl.exe
-MExtUtils::Command -e "mv" -- State.xsc State.c
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
-mms-bitfields -DPERL_MSVCRT_READFIX -s -O2 -DVERSION=\"5.22\"
-DXS_VERSION=\"5.22\" "-IC:\strawberry\perl\lib\CORE" -DCORO_ASM
-DCORO_STACKSIZE=16384 -DCORO_STACKGUARD=4 State.c
State.xs: In function 'free_coro_mortal':
State.xs:1149: warning: initialization discards qualifiers from pointer
target type
C:\Users\Douglas\AppData\Local\Temp\cc21RloD.s: Assembler messages:
C:\Users\Douglas\AppData\Local\Temp\cc21RloD.s:5: Warning: .type
pseudo-op used outside of .def/.endef ignored.
C:\Users\Douglas\AppData\Local\Temp\cc21RloD.s:5: Error: junk at end of
line, first unrecognized character is `c'
dmake: Error code 129, while making 'State.o'
dmake: Error code 255, while making 'subdirs'
Now, the deep magic in the setjmp issue I can't figure out, but I did
get the <a>sm option to work by modifying the top of the assemble code
in coro.c:
.globl coro_transfer
.type coro_transfer, @function
coro_transfer:
to
.globl _coro_transfer
.def _coro_transfer; .scl 2; .type 32; .endef
_coro_transfer:
which seems to be the syntax for my platform. Not sure what you want to
do here, but I wanted to inform you. I love your module!