X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=README;h=f8467fb715f59dd0784004eda2246d7dbc387211;hb=c09e41ef92e48356e62c795384864ee792ac7fe6;hp=bf5216fac621e7bdf0b0f2adeb0b6ff0fce77a25;hpb=2100f836ad162d78d2e2c6afb83970a88a9ef4c6;p=uclinux-h8%2FuClibc.git diff --git a/README b/README index bf5216fac..f8467fb71 100644 --- a/README +++ b/README @@ -3,58 +3,71 @@ 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 +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 +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 +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, i386, i960, h8300, m68k, -mips/mipsel, PowerPC, SH, SPARC, and v850 processors. +systems with support for alpha, ARM, cris, e1, h8300, i386, i960, +m68k, microblaze, mips/mipsel, PowerPC, SH, SPARC, and v850 +processors. 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 be a better choice... +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... uClibc is maintained by Erik Andersen and is licensed under the -GNU LIBRARY GENERAL PUBLIC LICENSE . This license allows you to -make closed source commercial applications using 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. +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. For installation instructions, see the file INSTALL. -This distribution contains a wrapper for gcc and ld that allows you -to use existing toolchains that were targetted for glibc. See -extra/gcc-uClibc/ for information. - uClibc strives to be standards compliant, which means that most -documentation written for functions in glibc also apply 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. +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 distributed under the terms of the -GNU Library General Public License, which can be found in the +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 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 (such as GNU - binutils) are especially chummy with glibc, and need this + 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