+SOFTWARE REQUIREMENTS
-* Configuration:
+ Compiling 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, version 2.4 and version 2.6 are known to work. Other
+ kernel versions may work but haven'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:
+ - Users must have a valid configuration file to compile uClibc. Do not
+ skip this step. New configuration options are added in each
+ release, and odd configuration options are sometimes removed.
+ To configure uClibc, you can run:
-* Building:
+ make menuconfig
+ or
+ make config
- make
+ If you have an existing .config file, you can update this file
+ using the
+ make oldconfig
-* Installing the development environment:
+ command, which will only ask you about new configuration options.
-(As root, if necessary,)
+ Available configuration commands are:
+ "make config" Text based configuration, no menus or colors.
+ "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 "no" for all options.
- make install
-This will install the header files, libraries, and the gcc
-wrapper into the directories defined in Config.
+COMPILING uClibc:
+ - 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
-* Installing the target runtime environment:
+ make clean
-(As root, if necessary,)
+ - Once you have a valid configuration file, just run
- make PREFIX=<temporary path> install_target
+ make
-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.
+ to compile uClibc. or if you are cross compiling, you would
+ instead run something like:
+ make CROSS=arm-linux-
-* Using uClibc:
-To compile programs with uClibc,
+INSTALLING the uClibc development environment:
- export PATH={uClibc DEVEL_PREFIX}/bin:$PATH
+ - As root, if necessary, run something like:
-and then just ./configure and make as usual.
+ make PREFIX=<some path> install
-Note:
+ This will install the uClibc runtime and development system (i.e.
+ all the header files, libraries, etc) into the directories defined
+ within your .config file.
- 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.
+USING uClibc:
+
+ - To compile programs with uClibc you will need a complete toolchain
+ (i.e. binutils, gcc, and uClibc) that was built expressly for use
+ with uClibc.
+
+ - Native and cross compiling toolchains, as well as makefiles for creating
+ uClibc toolchains, are available from the uClibc website. You may want
+ to check out "buildroot", which is available from the uClibc download area,
+ which provides examples of how to build your own uClibc based system.