|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 14/26] rumprun: ts-rumprun-build: Update for newer Xen
Newer Xen needs more work to make it cross compile for rump.
* Pass --host=TARGET to configure. This is needed so that configure
knows that we are deliberately cross compiling. (Otherwise it
tries to run target binaries on the host, and crashes when that fails.)
* Pass CROSS_COMPILE in the environment. This arranges for the Xen
Makefiles to run the right compiler, ie $(CROSS_COMPILE)-gcc.
* Put the rump compiler directory on PATH, so that the Xen Makefiles
can find it.
* Pass HOSTCC=gcc in the environment; otherwise it tries to use the
default CC (which is $(CROSS_COMPILE)gcc), when building
build-system-internal tools which are to be run on the host as part
of the build.
The need for this could be avoided by setting XEN_TARGET_ARCH to the
rump architecture, but then we would have to provide a Xen arch
config file for that architecture, which would be meaningless since
we are not actually building a hypervisor, and would have to contain
various dummy information.
NB in this commit message I use Xen terminology for cross arch names:
Xen GCC/GNU Meaning Example for
terminology terminology rump cross build
host build Native architecture of i586-linux-gnu
the environment in which
we are running the build.
target host Foreign architecture on i486-rumprun-netbsdelf
which the objects etc.
which we are now building
will eventually be run.
n/a target Used only when building a "Canadian"
cross compiler: the 2nd foreign
architecture for which the compiler which
we are now building (on the `build(gnu)'
arch) will, when we run it, produce
binaries (when it is run on the
`host(gnu)' arch).
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
ts-rumprun-build | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 7184f9d..98c8efc 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -55,10 +55,17 @@ END
sub recordtools() {
my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
chomp $gcc;
- die "$gcc ?" if $gcc =~ m/\S/;
- my $prefix = "CC=$gcc ";
+ die "$gcc ?" unless $gcc =~ m#^(\S+)/([^/ \t]+)-g?cc$#;
+ my $bindir = $1;
+ my $gnutriplet = $2;
+ my $prefix = "PATH=$bindir:\$PATH ";
+ $prefix .= "CROSS_COMPILE=$gnutriplet- HOSTCC=gcc ";
store_runvar('cmdprefix_configure', $prefix);
store_runvar('cmdprefix_make', $prefix);
+ store_runvar('cmdsuffix_configure', " --host=$gnutriplet");
+ # "host" is daft GCC/GNU terminology for the target architecture of
+ # a cross-compile, ie in our case the rump environemnt architecture
+ # for which the rump compilers are going to generate code.
}
sub install() {
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |