X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=README;h=f8467fb715f59dd0784004eda2246d7dbc387211;hb=161d78ab0eae69078f6c6bebd159c56be72e02c6;hp=4e3ff9aec2943c4b9ac1e544bc6e1aa853b71e5d;hpb=68822fc77d6304f559f06acbd0d471716a43c383;p=uclinux-h8%2FuClibc.git diff --git a/README b/README index 4e3ff9aec..f8467fb71 100644 --- a/README +++ b/README @@ -1,20 +1,73 @@ -To build and install the uClibc development environment, -1) cp ./extra/Configs/Config. ./Config -2) Edit ./Config for your setup. -3) make -4) make install_dev (as root if necessary, depending on your Config) + uClibc - a Small C Library for Linux + Erik Andersen +uClibc (aka µClibc/pronounced yew-see-lib-see) is a C library for +developing embedded Linux systems. It is much smaller than the +GNU C Library, but nearly all applications supported by glibc +also work perfectly with uClibc. Porting applications from glibc +to uClibc typically involves just recompiling the source code. +uClibc even supports shared libraries and threading. It currently +runs on standard Linux and MMU-less (also known as µClinux) +systems with support for alpha, ARM, cris, e1, h8300, i386, i960, +m68k, microblaze, mips/mipsel, PowerPC, SH, SPARC, and v850 +processors. -To install the runtime environment, - make install_target (again, as root if necessary) +If you are building an embedded Linux system and you find that +glibc is eating up too much space, you should consider using +uClibc. If you are building a huge fileserver with 12 Terabytes +of storage, then using glibc may make more sense. Unless, for +example, that 12 Terabytes will be Network Attached Storage and +you plan to burn Linux into the system's firmware... -To compile programs with uClibc, +uClibc is maintained by Erik Andersen and is licensed under the +GNU LESSER GENERAL PUBLIC LICENSE. This license allows you to +make closed source commercial applications using an unmodified +version of uClibc (Please consider sharing some of the money you +make ;-). You do not need to give away all your source code just +because you use uClibc and/or run on Linux. You should, however, +carefuly review the license and make certain you understand and +abide by it strictly. - export PATH={uClibc DEVEL_PREFIX/ROOT_DIR}/bin:$PATH -and then just ./configure and make as usual. +For installation instructions, see the file INSTALL. -Note: You may also want to look at extra/gcc-uclibc/gcc-uclibc.c for - additional information concerning what options and environment - variables the gcc wrapper handles. +uClibc strives to be standards compliant, which means that most +documentation written for SuSv3, or for glibc also applies to +uClibc functions. However, many GNU extensions are not supported +because they have not been ported, or more importantly, would +increase the size of uClibc disproportional to the added +functionality. There is some discussion of these differences +in the "docs" directory. + +Additional information (recent releases, FAQ, mailing list, bugs, +etc.) can be found at http://www.uclibc.org/. + +uClibc may be freely modified and distributed under the terms of +the GNU Lesser General Public License, which can be found in the +file COPYING.LIB. + +Please Note: + + There is an unwholesomely huge amount of code out there + that depends on the presence of GNU libc header files. + We have GNU libc compatible header files. So we have + committed a horrible sin in uClibc. We _lie_ and claim + to be GNU libc in order to force these applications to + work as their developers intended. This is IMHO, + pardonable, since these defines are not really intended + to check for the presence of a particular library, but + rather are used to define an _interface_. Some programs + are especially chummy with glibc, and may need this + behavior disabled by adding CFLAGS+=-D__FORCE_NOGLIBC + + If you want to make special exceptions in your code which are + specifically for uClibc, you can make certain to include features.h, + and then have your code check for uClibc as follows: + + #ifdef __UCLIBC__ + do_something_special(); + #endif + +And most of all, be sure to have some fun! :-) + -Erik