[Top][All Lists]
[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.