make-config.sh guesses ppc64 on ppc
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Opinion
|
Undecided
|
Unassigned |
Bug Description
On my Debian big-endian ppc64 system, make.sh produces the following
error by default:
$ sh make.sh
[...]
cc -m32 -I../src/runtime where-is-mcontext.c -ldl -Wl,-no-as-needed -o where-is-mcontext
In file included from where-is-
/usr/include/
27 | #include <bits/libc-
| ^~~~~~~
compilation terminated.
make: *** [<builtin>: where-is-mcontext] Error 1
[...]
$
My system does not have 32-bit PowerPC development packages installed,
so -m32 is not supported.
"sh make.sh --arch=ppc64" works, but I think it probably makes sense
to have make-config.sh guess "ppc64" instead of "ppc" in this case.
The fact that it guesses "ppc" seems to be historical, considering the
commit was from 2006. Are there systems where a "ppc64" guess would
do the wrong thing?
I don't think we've blessed the ppc64 into official existence yet. The downloadable binaries don't have it, and the status page says that it's in progress.
We need to establish a matrix of known good configurations: what combinations of endian-ness, word size, and ABI versions are expected to work.
As far as I know, more tests pass for ppc32 big-endian than pass for ppc64 big-endian, so that situation would need to be corrected. (Lacking any historical data as to what passed on ppc 32-bit, I don't even know whether that's getting better or worse, but I have a feeling it's doing a little of both, as is ppc64)
I have heard anecdotal evidence that the ppc64 has some suboptimal compilation that may be considered a regression relative to ppc32; so if somebody does have 32-bit libraries installed, they may well prefer to build the 32-bit code.
That said, if the build machine fits into one of the known good configs for 64-bit, and can be auto-detected as such, and does NOT have 32-bit (like little-endian which never had a 32-bit ABI, or 64-bit which installed as yours lacks the requisite headers and libraries) then I'd say sure, switch it. But as of now, I think 32-bit is generally more stable.