Am 13.12.2012 16:53, schrieb Scott Wood:
On 12/13/2012 12:31:14 AM, Stefan Weil wrote:
Am 13.12.2012 01:48, schrieb Scott Wood:
It doesn't seem to like my --cross-prefix being a full path rather
than being a recognized target pattern:
checking host system type... Invalid configuration
`/home/scott/fsl/tc/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu':
machine
`/home/scott/fsl/tc/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc'
not recognized
configure: error: /bin/bash
/home/scott/fsl/git/qemu/pixman/config.sub
/home/scott/fsl/tc/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu
failed
make: *** [pixman/Makefile] Error 1
When I forced --host=powerpc-linux into the pixman configure command
in QEMU's generated Makefile, it got past that, but it built
everything with the native compiler:
checking build system type... x86_64-unknown-linux-gnu
checking host system type... powerpc-unknown-linux-gnu
checking for powerpc-linux-gcc... no
checking for gcc... gcc
Looking a bit more closely, it seems that it's the QEMU rather than
pixman's autoconf that is making the bad assumption about the format
of --cross-prefix (I really wasn't up for wading in autoconf).
Running basename on cross-prefix and explicitly supplying CC and
such to pixman would help, though there still should be a way to
pass in an explicit host tuple if you have an unusually-named
toolchain.
-Scott
Indeed, --cross-prefixdoes not support absolute path names.
I assume that the executables in
/home/scott/fsl/tc/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/binare
without prefix
(gcc, ld, ...).
No, they are with prefix, just not in $PATH. I have more than one
"powerpc-linux-gnu" toolchain and I don't want to mess with my $PATH
constantly to choose between them.
Then there must also be the same executables with prefix
(powerpc-linux-gnu-gcc, powerpc-linux-gnu-ld, ...). These must be
somewhere in PATH.
No. This was never a requirement before -- why now?
Use --cross-prefix=powerpc-linux-gnu-(note the "-" at the end).
Then pixman would be configured with --host=powerpc-linux-gnu and
should find
the compiler. It won't find the compiler powerpc-linux-gcc when its
real name is
powerpc-linux-gnu-gcc.
No, it's real name is
/home/scott/fsl/tc/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu-gcc
-Scott
That are a lot of "no"s. So let me try to be a bit clearer.
You said that you forced --host=powerpc-linux into the pixman configure
command.
That cannot work, because your host prefix is powerpc-linux-gnu, not
powerpc-linux.
No wonder that pixman used the native compiler.
A cross prefix which starts with an absolute path (like in your
scenario) justs
requires adding `dirname "${cross_prefix}"` to PATH and passing
`basename "${cross_prefix%-}" to the pixman configure.
These modifications could be added to QEMU's configure and Makefile
if we really want that. Installing pixman once manually also works
and saves compilation time for repeated builds. That's why I no longer
use internal pixman for any of my cross compilations.
-Stefan