Hello Ian, First, a quick and dirty solution to what you want to achieve:
- go to http://www.landley.net/aboriginal/ and download a prebuilt binary toolchain from x86 to your appliance's architecture. - download busybox (http://busybox.net/), select the tcpsvd and httpd applets, fill in the "path to cross-compiler" field correctly with your binary toolchain prefix, make sure you link busybox statically to avoid relying on the appliance's libc. - you're done: you have a small web server to run on your appliance. Next, some comments and questions if you need to go further than that: > I have an embedded appliance running linux that I am trying to build a tool > chain for. The manufacturer supplies no tool chain, they don't even follow > the GPL. What does that mean ? If all they supply is binaries, they have to make sure that the source code is easily accessible. If all the software they use is free, and they document the versions they're using, then there is no violation, because the source of free software is public. They have to provide you with said source if you ask them, but they don't have to provide you with a toolchain. > I know that the appliance is based on the following software: > > linux-2.6.22.19 > gcc-3.4.2 > uClibc-0.9.27 What does that mean ? Is that software running on the platform ? Is that the software that has been used to build the binaries running on the platform ? Do you have a native gcc-3.4.2 running on your appliance, and a binary libc.so coming from uClibc-0.9.27 ? > I have a reasonable experience with linux and embedded systems, but I have > never built a cross compiler before. I understand the easiest option is to > use the buildroot system that will download the sources and compile a > toolchain. In my instance I don't think this is possible because I am tied > to using the specific versions above and they are not selectable options in > the current buildroot system. Why should you be tied to the specific versions above ? Maybe you cannot upgrade the kernel and you're stuck with linux-2.6.22.19, which should not be a problem for a huge majority of application. Maybe you have a shared libc.so coming from uClibc-0.9.27 and think you have to use it, which is not true unless it has been modified for your hardware (and in that case your manufacturer has to provide you with the source code for the changes). I do not understand what being tied to gcc-3.4.2 means since you're saying you don't even have a toolchain. XD Building a toolchain is a complex process. If you just want to build a working web server, just grab a prebuilt toolchain (so you reuse the work of other people who pout in the necessary effort) and build a small static executable that will be independent from everything else on your appliance (except the kernel but it should be ok). -- Laurent _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
