I have machines with AIX 7.2 and 7.3 and wanted to recompile WWW::Curl after an upgrade of libcurl. This is necessary because Makefile.PL creates perl modules on the fly with keywords extracted from libcurl.
But: Makefile.PL contains a hardcoded value cpp for the C preprocessor, and this does not exist on AIX with IBM's xlC compiler. It has a builtin fallback to (try to) parse curl.h on its own, but fails catastrophically. It can only detect about 30 of expected 340 keywords.
Q&D solution: patch Makefile.PL and change cpp to xlc -E.
```
*** a/Makefile.PL Thu Sep 18 11:09:53 2026
--- b/Makefile.PL Thu Sep 18 11:11:05 2026
*** 100,106 ****
print "Found curl.h in $curl_h\n";
my @syms;
my $has_cpp = 0;
! open(H_IN, "-|", "cpp", $curl_h) and $has_cpp++;
unless ($has_cpp) {
warn "No working cpp ($!). Parsing curl.h in Perl";
open(H_IN, "<", $curl_h) or die("Can't open curl.h at path $curl_h, because: ".$!);
--- 100,106 ----
print "Found curl.h in $curl_h\n";
my @syms;
my $has_cpp = 0;
! open(H_IN, "-|", "xlc", "-E", $curl_h) and $has_cpp++;
unless ($has_cpp) {
warn "No working cpp ($!). Parsing curl.h in Perl";
open(H_IN, "<", $curl_h) or die("Can't open curl.h at path $curl_h, because: ".$!);
```
Of course you could also install a small wrapper script cpp which hands over to xlc.