I recently switched from Debian to Fedora on my development machine, and I'm hitting a bunch of errors building the Perl module. I suspect that it's a Perl version difference. Fedora 33 has Perl 5.32.1.
For now, I'll build without Perl. Here are the error messages: In file included from /usr/lib64/perl5/CORE/perl.h:5606, from PSPP.xs:28: PSPP.xs: In function ‘value_to_scalar’: PSPP.xs:160:27: error: pointer targets in passing argument 2 of ‘Perl_newSVpvn’ di ffer in signedness [-Werror=pointer-sign] 160 | return newSVpvn (val->s, width); | ~~~^~~ | | | uint8_t * const {aka unsigned char * const} /usr/lib64/perl5/CORE/embed.h:383:44: note: in definition of macro ‘newSVpvn’ 383 | #define newSVpvn(a,b) Perl_newSVpvn(aTHX_ a,b) | ^ In file included from /usr/lib64/perl5/CORE/perl.h:5567, from PSPP.xs:28: /usr/lib64/perl5/CORE/proto.h:2433:57: note: expected ‘const char * const’ but arg ument is of type ‘uint8_t * const’ {aka ‘unsigned char * const’} 2433 | PERL_CALLCONV SV* Perl_newSVpvn(pTHX_ const char *const buffer, const STRL EN len) | ~~~~~~~~~~~~~~~~~~^~~~~~ PSPP.c: In function ‘XS_PSPP_onBoot’: PSPP.c:357:15: error: unused variable ‘ver’ [-Werror=unused-variable] 357 | const char * ver = (const char *)SvPV_nolen(ST(0)) | ^~~ In file included from PSPP.xs:29: PSPP.c: In function ‘XS_PSPP__Var_set_missing_values’: /usr/lib64/perl5/CORE/XSUB.h:177:28: error: unused variable ‘targ’ [-Werror=unused -variable] 177 | #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTAR G) \ | ^~~~ /usr/lib64/perl5/CORE/XSUB.h:177:28: note: in definition of macro ‘dXSTARG’ 177 | #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTAR G) \ | ^~~~ PSPP.c:868:6: error: unused variable ‘RETVAL’ [-Werror=unused-variable] 868 | int RETVAL; | ^~~~~~ PSPP.c:866:7: error: unused variable ‘v1’ [-Werror=unused-variable] 866 | SV * v1 = ST(1) | ^~ In file included from /usr/lib64/perl5/CORE/perl.h:3912, from PSPP.xs:28: PSPP.xs: In function ‘XS_PSPP__Var_add_value_label’: /usr/lib64/perl5/CORE/sv.h:1762:18: error: pointer targets in passing argument 3 o f ‘value_copy_str_rpad’ differ in signedness [-Werror=pointer-sign] 1761 | (SvPOK_nog(sv) \ | ~~~~~~~~~~~~~~~~ 1762 | ? SvPVX(sv) : sv_2pv_flags(sv, 0, SV_GMAGIC)) | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | char * PSPP.xs:519:43: note: in expansion of macro ‘SvPV_nolen’ 519 | value_copy_str_rpad (&the_value, width, SvPV_nolen(key), ' '); | ^~~~~~~~~~ In file included from /home/blp/pspp/master/src/data/caseproto.h:25, from /home/blp/pspp/master/src/data/case.h:26, from /home/blp/pspp/master/src/data/dictionary.h:22, from PSPP.xs:40: /home/blp/pspp/master/src/data/value.h:46:57: note: expected ‘const uint8_t *’ {ak a ‘const unsigned char *’} but argument is of type ‘char *’ 46 | void value_copy_str_rpad (union value *, int dst_width, const uint8_t *, | ^~~~~~~~~~~~~~~ In file included from PSPP.xs:29: /usr/lib64/perl5/CORE/XSUB.h:177:28: error: unused variable ‘targ’ [-Werror=unused -variable] 177 | #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTAR G) \ | ^~~~ /usr/lib64/perl5/CORE/XSUB.h:177:28: note: in definition of macro ‘dXSTARG’ 177 | #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTAR G) \ | ^~~~ PSPP.c:1181:6: error: unused variable ‘RETVAL’ [-Werror=unused-variable] 1181 | int RETVAL; | ^~~~~~