Compiling uClibc-ng requires Linux kernel header files. uClibc-ng will
be compiled to match the interfaces available in the provided
version of the Linux kernel headers. Any modern Linux kernel is
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.
INSTALLING Linux kernel headers:
Extract a Linux kernel source tree and create a populated headers
make INSTALL_HDR_PATH=/tmp/linux-headers headers_install
- Users must have a valid configuration file to compile uClibc-ng. Do not
skip this step. New configuration options are added in each
release, and odd configuration options are sometimes removed.
To configure uClibc-ng, you can run:
You need to point in "Target Architecture Features and Options"
the field "Linux kernel header location" to for example
/tmp/linux-headers/include if you installed the headers to
/tmp/linux-headers (Variable name KERNEL_HEADERS in .config).
If you have an existing .config file, you can update this file
command, which will only ask you about new configuration options.
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.
- uClibc-ng does not have proper dependancy checking so if you
change your uClibc-ng configuration, you must current rebuild the
entire library, by first running
- Once you have a valid configuration file, just run
to compile uClibc-ng. or if you are cross compiling, you would
instead run something like:
INSTALLING the uClibc-ng development environment:
- As root, if necessary, run something like:
make PREFIX=<some path> install
This will install the uClibc-ng runtime and development system (i.e.
all the header files, libraries, etc) into the directories defined
within your .config file.
- To compile programs with uClibc-ng you will need a complete toolchain
(i.e. binutils, gcc and uClibc-ng) that was built expressly for use
- You have following choices at the moment:
- Use OpenADK from https://openadk.org
- Use Buildroot from http://www.buildroot.org
- Use Crosstool-NG from http://crosstool-ng.org
- Use your own build scripts or environment