You are not logged in.
Wouldn't it be easier to bootsrap from e.g. Debian? Build some initial packages, install them into a chroot etc..
Possibly, but the last time I tried the Debian Hurd install was a pain. And I should be able to cross-compile from any Unix like OS... it is the whole point of all the complexity in the toolchain and I want to do so!
Offline
Edit: I noticed a couple of errors in the script, but it is late and I need sleep. Expect a new version tomorrow.
http://allanmcrae.com/scripts/crosshurd.sh - Updated just to fix those minor bugs.
Working on updating gccand binutils to their latest versions today.
Offline
Oh, some 404:
--2010-01-09 03:16:01-- http://ftp.gnu.org/gnu/gcc/gcc-core-4.1.2.tar.bz2
Resolving ftp.gnu.org... 140.186.70.20
Connecting to ftp.gnu.org|140.186.70.20|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-01-09 03:16:01 ERROR 404: Not Found.
--2010-01-09 03:16:01-- http://ftp.gnu.org/gnu/gcc/gcc-g++-4.1.2.tar.bz2
Resolving ftp.gnu.org... 140.186.70.20
Connecting to ftp.gnu.org|140.186.70.20|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2010-01-09 03:16:02 ERROR 404: Not Found.
tar: gcc-core-4.1.2.tar.bz2: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
tar: gcc-g++-4.1.2.tar.bz2: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
(with your crosshurd script)
Offline
I was trying to be cleaver and prevent redownloading sources I already had so that was not so well tested...
Change lines 49 and 53 to:
wget http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VER/<...>
Not literally.... but you should get the idea.
Offline
I was trying to be cleaver and prevent redownloading sources I already had so that was not so well tested...
Change lines 49 and 53 to:
wget http://ftp.gnu.org/gnu/gcc/gcc-$GCC_VER/<...>
Not literally.... but you should get the idea.
Better Continuing
---
Hmm let's see...
-----
It doesn't support x86_64 ? Which CHOST target should I choose ?
TARGET=x86_64-pc-gnu ?
Last edited by flamelab (2010-01-09 01:39:47)
Offline
No idea if you can even get a 64-bit hurd. I have never seen one. Try and see but I am not hopeful... You can build for 32-bit hurd.
Offline
gcc-4.2/4.3 do not build for hurd:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28102
gcc-4.4 fails linking in stage2 (it can not find libc for some weird reason... it definitely is right there).
So updating gcc to a newer version is not so fun.
Edit: I can get glibc building against binutils-2.20 with a sed to the configure but then I end up with linking errors. I guess we would need a newer glibc/gcc version for the new binutils...
So, I am going to get this building for i686-pc-gnu and move on.
Offline
And that fails. Building for i686-pc-gnu results in this failure in glibc:
/home/allan/hurd/build/glibc/rt/librt_pic.a(clock_settime.os): In function `clock_settime':
clock_settime.c:(.text+0x3c): undefined reference to `CPUCLOCK_WHICH'
clock_settime.c:(.text+0x4c): undefined reference to `CPUCLOCK_WHICH'
collect2: ld returned 1 exit status
make[2]: *** [/home/allan/hurd/build/glibc/rt/librt.so] Error 1
I can not find a fix for that. So this cross-compile environment is about as good as it will get.
Offline
Made a couple of small updates to the script. I noticed some errors in how I handled downloading the sources only once.
Edit: looking at the next step, we can reuse the gnumach-headers, hurd-headers, libpthread and glibc if we install them in a different directory. CLFS uses "cross-tools" for native binaries and "tools" for cross binaries. We should try something like that too. The current script produces a cross compiler that is too naive to use for building a final system...
But after the packages already built, we only really need to build gnumach, hurd, coreutils and bash to boot our system Of course, we need a lot more for that system to be useful for packaging...
Offline
I give you… http://www.archhurd.org!
There's still quite a bit to do (for example; the placeholder logo looks rubbish), and the repositories are empty, but it's a start
Repositories: http://repo.archhurd.org/
Git: http://projects.archhurd.org
ML: http://lists.archhurd.org
Though unfortunately I won't have much time to do Arch Hurd stuff over the next few weeks due to exams
Last edited by Barrucadu (2010-01-09 18:49:09)
Offline
what are the advantages for end users? for kernel hackers i can understand interest in Hurd, but for others?
< Daenyth> and he works prolifically
4 8 15 16 23 42
Offline
what are the advantages for end users? for kernel hackers i can understand interest in Hurd, but for others?
An easy way to try Hurd out.
Offline
what are the advantages for end users? for kernel hackers i can understand interest in Hurd, but for others?
Something doesn't need to have advantages to be fun
Offline
I give you… http://www.archhurd.org!
There's still quite a bit to do (for example; the placeholder logo looks rubbish), and the repositories are empty, but it's a start
Repositories: http://repo.archhurd.org/
Git: http://projects.archhurd.org
ML: http://lists.archhurd.orgThough unfortunately I won't have much time to do Arch Hurd stuff over the next few weeks due to exams
Subscribed to the RSS feed. I think the logo looks a bit lame, but other than that: good job
EDIT: ...and there's no favicon yet.
EDIT2: Time for another logo contest, amirite?
Last edited by thoughtcrime (2010-01-10 10:12:25)
- blog (about arch and other stuff): http://thoughtyblog.wordpress.com/
- x86_64 user
Offline
Another day... more progress:
http://allanmcrae.com/scripts/crosshurd.tar.gz
Changes:
- directory layout
$ROOT/cross - cross compiler (host system) binaries
$ROOT/hurd - GNU system install
- scripts
separated into individual scripts to build individual parts
- started building more of the GNU system (gnumach kernel success, hurd fail...)
The hurd build fails due to needing a newer glibc. But given the patchset is only for glibc-2.7.... I could revert the relevant commit but I have sent a message to the hurd mailing list to find out if there is a better way.
Offline
BIG UPDATE!
Changes 20100111:
updates:
glibc 2.7 -> 2.10.1
gcc 4.1.2 -> 4.4.2
new cross compiles:
hurd (from git)
coreutils-8.3 added
bash-4.1 added
the last two before those packages make Arch! (I am waiting on coreutils-8.4...).
If people want to help, what they could do is:
- try update to binutils-2.20 (uncomment the sed in glibc-pass1) - I anticipate no issues.
- try rebuilding for i686-pc-gnu adding this patch in glibc-pass1: http://patch-tracker.debian.org/patch/s … ttime.diff
- create a script to cross compile grub (0.97? - may be easier to deal with initially trying to get a booting system).
- and if you are really, really, really brave... try glibc-2.11.1 (update patches, look to Debian Sid eglibc package for new ones)
If you are trying to update binutils or the target, it is easier to source the files in the script directory one at a time to catch errors rather that using the makeall script.
I will now put all tarballs in http://allanmcrae.com/hurd/ with a date so just download the latest.
Offline
Grub 0.97 build script:
#!/bin/bash
cd $SOURCE_DIR
if [ ! -f grub-$GRUB_VER.tar.gz ]; then
wget ftp://alpha.gnu.org/gnu/grub/grub-$GRUB_VER.tar.gz
fi
cd $BUILD_DIR
rm -rf grub-$GRUB_VER
tar -xf $SOURCE_DIR/grub-$GRUB_VER.tar.gz
rm -rf grub-build
mkdir -p grub-build
cd grub-build
../grub-$GRUB_VER/autogen.sh
../grub-$GRUB_VER/configure \
--host=$TARGET \
--prefix=/usr
make DESTDIR=$HURD_DIR install
cd $ROOT
Also, add a line to ./scripts/prepare:
GRUB_VER=0.97
edit: Works! Anybody feel like working on GRUB2?
Last edited by Barrucadu (2010-01-11 18:38:31)
Offline
Trying to update binutils (after uncommenting that sed line) results in this error in glibc pass 2:
/root/hurd/cross/lib/gcc/i586-pc-gnu/4.4.2/../../../../i586-pc-gnu/bin/ld: cannot find -lgcc
Offline
Allan, if you want git/ssh access to archhurd.org to store the build scripts, send me an email.
Subscribed to the RSS feed. I think the logo looks a bit lame, but other than that: good job
EDIT: ...and there's no favicon yet.
EDIT2: Time for another logo contest, amirite?
Ooh, didn't notice this post… I think I'll wait until we have something which can boot first
Last edited by Barrucadu (2010-01-11 21:25:18)
Offline
Trying to update binutils (after uncommenting that sed line) results in this error in glibc pass 2:
/root/hurd/cross/lib/gcc/i586-pc-gnu/4.4.2/../../../../i586-pc-gnu/bin/ld: cannot find -lgcc
That tells me the failure is really in gcc-pass2. Comment everything from the make statements down in the gcc-pass2 script and then run those commented commands manually to see the real breakage.
Offline
Grub 0.97 build script:
<snip>
Looks good. Removed the "autogen.sh" line because that script does not actually exist in the tarball...
Allan, if you want git/ssh access to archhurd.org to store the build scripts, send me an email.
Possibly... I am happy just pushing updates to that folder on my website as work gets done. I'm not so sure git needs used for this early stage.
Offline
Looks good. Removed the "autogen.sh" line because that script does not actually exist in the tarball...
Oops, a leftover from when I initially tried Grub 2.
Offline
If people want to help, what they could do is:
...
- try rebuilding for i686-pc-gnu adding this patch in glibc-pass1: http://patch-tracker.debian.org/patch/s … ttime.diff
That is not enough. I am emailing the hurd-bugs list to see what can be done to fix it (I have a major hack that "fixes" the issue).
Offline
Update: 20100112
Changes:
- Build for i686-pc-gnu. Thanks to Samuel Thibault on the bug-hurd mailing list for providing part of a patch to allow this.
- Added grub(-legacy).
I think we actually have enough packages for a bootable system now... but there are still a lot of config files missing (and maybe a text editor would be nice!). You can get some idea of what is needed from here (in French) . Also the Debian install page provides info on setting up the partition.
I do not have a spare partition at the moment so I will be using a qemu image. It seem it will be essentially make the image, make filesystem on image, mount image to $ROOT/hurd, build... The image has to be in .img format for the mounting but I think it can be converted to the smaller .qcow2 format after the install. I guess we can provide an image as our first step into a real Arch Hurd!
Offline
h, Allan, can you also ask him if there is a possibility for a x86_64 Hurd ... ?
Offline