diff options
-rw-r--r-- | INSTALL | 79 | ||||
-rw-r--r-- | README | 6 |
2 files changed, 58 insertions, 27 deletions
@@ -1,48 +1,79 @@ +SOFTWARE REQUIREMENTS -* Configuration: + Compiling and running uClibc requires Linux kernel header files. + uClibc will be compiled to match the interfaces available in the + provided version of the Linux kernel headers. Linux kernel version + 2.0, version 2.2, and version 2.4 are known to work. Other kernel + versions may work but havn't been tested. Its also helpful to have + a working version of GNU binutils, and GNU gcc -- using excessively + old versions of these packages can cause very strange errors that + are difficult to find and fix. - ln -s ./extra/Configs/Config.<arch> ./Config -Then edit ./Config for your setup. In particular, modify CROSS and -KERNEL_SOURCE as necessary. You may also want to modify -SHARED_LIB_LOADER_PATH, DEVEL_PREFIX, and SYSTEM_DEVEL_PREFIX depending -on where you want to install the development environment. By default, -the development environment is installed into /usr/<arch>-linux-uclibc/. +CONFIGURING uClibc: + - Check the Rules.mak file and adjust CROSS to specify your cross- + compiler if you are cross compiling. -* Building: + - Use must have a valid configuration file to compile uClibc. Do not + skip this step. New configuration options are added in each + release, and odd problems will turn up if your configuration file + is not set up as expected. If you want to carry your existing + configuration to a new version with minimal work, use "make + oldconfig", which will only ask you for the answers to new + questions. - make + - Available configuration commands are: + "make menuconfig" Text based color menus, radiolists & dialogs. + "make oldconfig" Default all questions based on the contents of + your existing ./.config file. + "make defconfig" Use defaults for all options. + "make randconfig" Use random values for all options. + "make allyesconfig" Set all values to "yes" for all options. + "make allnoconfig" Set all values to "yes" for all options. + - uClibc does not have proper dependancy checking (yet) so if you + change your uClibc configuration, you must current rebuild the + entire library, by first running 'make clean'. -* Installing the development environment: -(As root, if necessary,) - make install +COMPILING uClibc: -This will install the header files, libraries, and the gcc -wrapper into the directories defined in Config. + - Once you have a valid configuration file, just run 'make' to compile + uClibc. -* Installing the target runtime environment: -(As root, if necessary,) +INSTALLING the uClibc development environment: - make PREFIX=<temporary path> install_target + - As root, if necessary, run: -This installs only the files that are necessary to run binaries -compiled against uClibc. Hint: You probably do not want to install -the target runtime environment on your host machine. + make install + This will install the header files, libraries, and the gcc wrapper + into the directories defined in Config. -* Using uClibc: -To compile programs with uClibc, +INSTALLING the uClibc target runtime environment: + + - As root, if necessary, run: - export PATH={uClibc DEVEL_PREFIX}/bin:$PATH + make PREFIX=<temporary path> install_target -and then just ./configure and make as usual. + This will install only the files that are necessary to run + binaries compiled against uClibc. Hint: You probably do not want + to install the target runtime environment into /lib on your host + machine. + + +USING uClibc: + + - To compile programs with uClibc, + + export PATH={uClibc DEVEL_PREFIX}/bin:$PATH + + and then just run './configure' and 'make' as usual. Note: @@ -32,7 +32,7 @@ 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 +documentation written for functions in 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. @@ -55,6 +55,6 @@ Please Note: 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 - behavior disabled by adding CFLAGS+=-D__FORCE_NOGLIBC + binutils) are especially chummy with glibc, and may need + this behavior disabled by adding CFLAGS+=-D__FORCE_NOGLIBC |