I have a 64-bit CentOS 6 system running a custom-built version of Perl 5.12.5, that is build for 32-bits. (Alas, this is because we are using the same RPMs for 32-bit and 64-bit systems.)
When I build XS modules (e.g. JSON::XS) on the server, it fails because it's building 64-bit libraries. I get an error like
Can't load '.cpanm/work/1370279501.28897/JSON-XS-2.33/blib/arch
/auto/JSON/XS/XS.so' for module JSON::XS: .cpanm/work/137027950
1.28897/JSON-XS-2.33/blib/arch/auto/JSON/XS/XS.so: wrong ELF class: ELFCLASS64
at /opt/perl/lib/5.12.5/i686-linux/DynaLoader.pm line 200.
I've tried setting the CFLAGS variable to "-m32-bit" but it does not work.
What do I need to do to compile XS modules properly? Ideally, I'd like something that works with cpanminus but can use cpan or cpanplus if need be.
perl
doesn't currently have a cross-compiler. – Nystatin