We've developed some code using KiokuDB, and I needed to get it running on windows this week. So I went out and grabbed Strawberry Perl, and started using CPAN to get all the modules I need up and running.
It all went well until satisfying the KiokuDB dependencies, at which point it choked on Data::Swap:
g++.exe -o blib\arch\auto\Data\Swap\Swap.xs.dll -Wl,--base-file -Wl,dl
+l.base -mdll -s -L"C:\perl\5.20.0\perl\lib\CORE" -L"C:\perl\5.20.0\c\
+lib" Swap.o c:\perl\5.20.0\perl\lib\CORE\libperl520.a -lmoldname -
+lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32
+ -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversio
+n -lodbc32 -lodbccp32 -lcomctl32 dll.exp
Swap.o:Swap.c:(.text+0xb8): undefined reference to `__imp_Perl_hv_back
Swap.o:Swap.c:(.text+0xd5): undefined reference to `__imp_Perl_hv_back
+86_64-w64-mingw32/bin/ld.exe: Swap.o: bad reloc address 0x0 in sectio
+86_64-w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
dmake: Error code 129, while making 'blib\arch\auto\Data\Swap\Swap.xs
I've found bug reports going back to 2009 on this, and I went back as far as perl 5.10, and it won't compile there either. I'm pretty bummed KiokuyDB has such an out-of-date core dependency, but besides that, i can't imagine the pain of redoing all the KiokuDB work manually myself. Any hints how I can get this compiled?