# New Ticket Created by "Adam Thomason" # Please include the string: [perl #24240] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=24240 >
I've convinced parrot to build and pass all tests on HP-UX/PA-RISC with the native cc in 32-bit mode. Problems follow. Errors: 1) dlopen()-style dynloads are only supported in 64-bit mode; the HP-UX-specific shl_load is the only option in 32-bit mode. platform.c assumes that if dlfcn.h is available that dlopen will work, but that's not quite the case. Manually undef'ing PARROT_HAS_HEADER_DLFCN after running Configure.pl clears that up, though it obviously breaks dynamic loading (but I doubt there's currently anybody needing support for shl_load). The only perl5 I have access to on this arch is 32-bit, so the libs that Config suggests are all 32-bit, which won't link against 64-bit libs. So unless somebody really wants it, I'm not going to bother building a 64-bit parrot here. 2) -lpthread is required. 3) Nicholas Clark already mentioned this w.r.t. FreeBSD, but using the 3-arg form of open() in config/gen/makesfiles/root.in confuses perl 5.005. His patch apparently wasn't entirely applied, however; I include it again in mine. Warnings: 4) 'cc: "io.ops", line 466: warning 950: Shift amount should be in the range of zero through 31 bits' It's moaning about 32-bit shifts in the 64-bit tell op in io.ops. I don't know what the desired failure behavior is for that op in a 32 bit environment, but I'm happy ignoring it for now. 5) 'cc: "languages/imcc/cfg.c", line 320: warning 562: Redeclaration of "bb_add_edge" with a different storage class specifier: "bb_add_edge" will have internal linkage.' ... etc. bb_add_edge, analyse_life_block, and make_basic_block are declared static but not defined that way. Cleaning up the warning is just a matter of adding back the static tags. A patch curing 2, 3 and 5 is attached; it's non-destructive to my AIX, Gentoo, and OpenBSD builds. -- Adam Thomason [EMAIL PROTECTED] -- attachment 1 ------------------------------------------------------ url: http://rt.perl.org/rt2/attach/66167/49441/efcf08/hpux.patch
hpux.patch
Description: hpux.patch