// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

[[uclibc-custom]]
Customizing the uClibc configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Just like xref:busybox-custom[BusyBox], http://www.uclibc.org/[uClibc]
offers a lot of configuration options. They allow you to select
various functionalities depending on your needs and limitations.

The easiest way to modify the configuration of uClibc is to
follow these steps:

* Do an initial compilation of Buildroot without trying to customize
  uClibc.

* Invoke +make uclibc-menuconfig+. The nice configuration assistant,
  similar to the one used in the Linux kernel or Buildroot,
  appears. Make your configuration changes as appropriate.

* Copy the +$(O)/toolchain/uClibc-VERSION/.config+ file to a different
  place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
  the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
  configuration instead of the default one.

* Run the compilation of Buildroot again.

Otherwise, you can simply change +toolchain/uClibc/uClibc-VERSION.config+,
without running the configuration assistant.

If you want to use an existing config file for uClibc, then see
xref:env-vars[].

