tinycc-devel
[Top][All Lists]
Advanced

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

Re: [Tinycc-devel] Linux support


From: Rob Landley
Subject: Re: [Tinycc-devel] Linux support
Date: Thu, 31 Aug 2006 16:52:55 -0400
User-agent: KMail/1.9.1

On Thursday 31 August 2006 11:18 am, Nigel Horne wrote:
> How is Linux (FC5) support going? This has been broken for sometime
> and still doesn't work.
> 
> address@hidden tmp]$ cat f.c
> main()
> {
>          puts("hello world");
> }
> address@hidden tmp]$ tcc f.c
> tcc: file 'AS_NEEDED' not found
> /usr/lib/libc.so:3: filename expected
> /usr/lib/libc.so:3: unrecognized file type

Actually, I'm wondering about the general state of the project.  It seems 
pretty badly stalled not that Fabrice has his hands full with QEMU.  The last 
release was over a year ago, and when I tried it months ago I ran into a 
similar problem that prevented the release version from building "hello 
world" on my Ubuntu system, due to libc.so being a linker script:

># cat /usr/lib/libc.so
>/* GNU ld script
>   Use the shared library, but some functions are only in
>   the static library, so try that secondarily.  */
>OUTPUT_FORMAT(elf32-i386)
>GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

What made me think the project was stalled isn't that the above problem broke 
it, but that so many months went by with no new release to fix it.  Is anyone 
still working on this?

I've been loosely tracking tcc because I'm wondering what would be involved in 
building a complete self-bootstrapping system with tcc.  My Firmware Linux 
project aims to create a self-hosting system based on BusyBox and uClibc, and 
in order for the system to rebuild itself under itself I've currently got it 
down to the following packages:

busybox
uClibc
linux-kernel-headers
linux
gcc
binutils
make
bash

The need for a separate linux-kernel-headers package is going away soon due to 
David Woodhouse's new "make headers-install" target (which has already been 
merged and should ship in 2.6.18).

The need for "bash" is just a stopgap while I fix up the busybox shell 
situation.  (I used to need coreutils and such until I fixed up BusyBox's sed 
and sort commands.)  I'm trying to get that in BusyBox 1.3.0 in December.

That means a system that can rebuild itself from source code under itself 
would then consist of busybox, uClibc, linux, gcc, binutils, and make.  I'm 
willing to write a minimal "make" and add it to busybox if I can get gcc and 
binutils to go away, but when I looked at tcc for this I couldn't get it to 
build "hello world"...

It would be really nice if I could get a system with just four packages 
(busybox, uClibc, linux, tcc) to rebuild itself under itself from source.  
But last I checked, tcc still can't build an unmodified kernel...

Unfortunately, in the course of working on Firmware Linux I did so much work 
on BusyBox I accidentally wound up being maintainer.  (The unfortunate part 
is that I now have very little time to work on other projects, like TCC.)  In 
what little time I have I've poked at it a bit, but a month can easily go by 
between debugging sessions...

Rob
-- 
Never bet against the cheap plastic solution.




reply via email to

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