$host_cpu -> $target_cpu in configure?

Started by Tom Laneover 6 years ago3 messages
#1Tom Lane
tgl@sss.pgh.pa.us

There are a few places in configure and the makefiles that are looking
at $host_cpu to decide what to do. As far as I can tell, almost all of
them are wrong and should be looking at $target_cpu instead. (The
lack of complaints indicates that nobody is trying very hard to test
cross-compilation.)

I'm not too sure about this case in makefiles/Makefile.hpux:

ifeq ($(host_cpu), ia64)
DLSUFFIX = .so
else
DLSUFFIX = .sl
endif

Does HPUX even support cross-compiling, and if so what shlib extension
do you get in that case?

The other references seem definitely wrong ...

regards, tom lane

#2Noah Misch
noah@leadboat.com
In reply to: Tom Lane (#1)
Re: $host_cpu -> $target_cpu in configure?

On Sun, Jun 16, 2019 at 12:56:52PM -0400, Tom Lane wrote:

There are a few places in configure and the makefiles that are looking
at $host_cpu to decide what to do. As far as I can tell, almost all of
them are wrong and should be looking at $target_cpu instead. (The
lack of complaints indicates that nobody is trying very hard to test
cross-compilation.)

https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html
describes the intended usage. When cross-compiling, $host_cpu is the machine
able to run the resulting PostgreSQL installation, and $build_cpu is the
machine creating that installation. PostgreSQL does not contain a compiler
that emits code as output to the user, so $target_cpu is meaningless. Every
use of $host_cpu looks correct.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#2)
Re: $host_cpu -> $target_cpu in configure?

Noah Misch <noah@leadboat.com> writes:

https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html
describes the intended usage. When cross-compiling, $host_cpu is the machine
able to run the resulting PostgreSQL installation, and $build_cpu is the
machine creating that installation. PostgreSQL does not contain a compiler
that emits code as output to the user, so $target_cpu is meaningless. Every
use of $host_cpu looks correct.

Hmph ... okay, but that's sure a confusing usage of "host".

regards, tom lane