help-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to cross-compile the hurd


From: Peter Wainwright
Subject: Re: how to cross-compile the hurd
Date: 13 Sep 2003 20:56:54 +0100

Problem solved!

I'd better document my workaround here in case I or anyone
else needs it, and before I forget...

To summarise:
I wanted to install a binary distribution (Debian Gnu/Hurd J2);
however, the kernel from that CD did not boot on my machine.
I suspected shared interrupts in the device drivers, since
"eepro100.c" was the last thing I saw before the system
crashed, and I know this to be an ethernet driver.

So, I wanted to create a Gnu Mach kernel with fewer drivers
to avoid these conflicts; I have a Red Hat Linux partition
on the machine. So, I got gnumach-1.3, mig-1.3 and the latest
CVS hurd. I tried to follow the instructions in
http://hurd.gnufans.org/bin/view/Distrib/BuildingTheHurd
However, I ran into some apparent circular dependencies.

It appears that to compile a kernel you need first to compile
glibc. To compile glibc you need the hurd headers.
Before you can install the hurd headers you must configure
the hurd package.

However, this does not work since the AC_PROG_CC autoconf
test complains "... compiler cannot create executables".
Of course, this should not matter since you only want to
make install-headers. But it is fatal to the configuration.

I note that gnumach-1.3 has some custom autoconf tests which
avoid this problem when cross-compiling. But the latest hurd does
not.

I eventually kludged my way around the problem by adding
m4_define([_AC_COMPILER_EXEEXT],[EXEEXT=
])
before the AC_PROG_CC call and rerunning autoconf. This
skips the test for the file extension of executables
(which we know is supposed to be empty anyway). This trick
I learned from the AC_NO_EXECUTABLES autoconf macro. That
macro unfortunately does not work here because it does other
stuff that causes fatal errors in AC_CHECK_LIB.

Then I could install the hurd headers, compile glibc
and build a gnumach kernel with a minimal set of drivers,
which worked for me.

I know cross-compiling seems to be frowned on, but it was
really the only way I could get started...


-- 
Peter Wainwright <prw@ceiriog1.demon.co.uk>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]