config/doc/config.guess.1
Andreas F. Borchert 9e4c79f5fc config.guess: x86_64-pc-solaris2.11 is not properly recognized
config.guess guesses Solaris 11 to run on a 32-bit platform
despite Solaris 11 no longer supporting any 32-bit platform.

See the following code at lines 434 to 445:

| SUN_ARCH=i386
| # If there is a compiler, see if it is configured for 64-bit objects.
| # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
| # This test works for both compilers.
| if test "$CC_FOR_BUILD" != no_compiler_found; then
|     if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|         (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|         grep IS_64BIT_ARCH >/dev/null
|     then
|         SUN_ARCH=x86_64
|     fi
| fi

If "cc" is installed, i.e. the Oracle Studio compiler, this one is
chosen for $CC_FOR_BUILD.  This compiler, the gcc provided by Oracle
and also gcc bootstrapped from sources on that platform with a default
configuration will by default generate 32-bit binaries -- even on
a 64-bit platform.  And __amd64 will not be defined for compilations
targeting a 32-bit platform.  This is different from the corresponding
behaviour on GNU/Linux systems where the local platform is targeted by
default.

Thus, as long as you do not add "-m64" or if you have a custom-built
gcc which defaults to 64 bit, you will get 32-bit binaries on Solaris
despite living on a 64-bit platform.

* config.guess (i86pc:SunOS:5.*:* || i86xen:SunOS:5.*:*): Adapt the
test by adding the "-m64" flag.  This will work properly for Solaris
10 as well (the last Solaris release that supported x86 32-bit
platforms).
* doc/config.guess.1: Regenerate.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
2021-11-30 20:18:10 +00:00

49 lines
1.7 KiB
Groff

.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
.TH CONFIG.GUESS "1" "November 2021" "GNU config.guess (2021-11-30)" "User Commands"
.SH NAME
config.guess \- guess the build system triplet
.SH SYNOPSIS
.B config.guess
[\fI\,OPTION\/\fR]
.SH DESCRIPTION
The GNU build system distinguishes three types of machines, the
`build' machine on which the compilers are run, the `host' machine
on which the package being built will run, and, exclusively when you
build a compiler, assembler etc., the `target' machine, for which the
compiler being built will produce code.
This script will guess the type of the `build' machine.
.PP
Output the configuration name of the system `config.guess' is run on.
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
print this help, then exit
.TP
\fB\-t\fR, \fB\-\-time\-stamp\fR
print date of last modification, then exit
.TP
\fB\-v\fR, \fB\-\-version\fR
print version number, then exit
.SH "ENVIRONMENT VARIABLES"
config.guess might need to compile and run C code, hence it needs a
compiler for the `build' machine: use the environment variable
`CC_FOR_BUILD' to specify the compiler for the build machine. If
`CC_FOR_BUILD' is not specified, `CC' will be used. Be sure to
specify `CC_FOR_BUILD' if `CC' is a cross-compiler to the `host'
machine.
CC_FOR_BUILD a native C compiler, defaults to `cc'
CC a native C compiler, CC_FOR_BUILD is preferred
.SH "REPORTING BUGS"
Report bugs and patches to <config\-patches@gnu.org>.
.PP
.br
Originally written by Per Bothner.
.br
Copyright 1992\-2021 Free Software Foundation, Inc.
.PP
.br
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.