lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | SOFTWARE REQUIREMENTS |
| 2 | |
| 3 | Compiling uClibc requires Linux kernel header files. uClibc will |
| 4 | be compiled to match the interfaces available in the provided |
| 5 | version of the Linux kernel headers. Linux kernel version 2.0, |
| 6 | version 2.2, version 2.4 and version 2.6 are known to work. Other |
| 7 | kernel versions may work but haven't been tested. Its also helpful |
| 8 | to have a working version of GNU binutils, and GNU gcc -- using |
| 9 | excessively old versions of these packages can cause very strange |
| 10 | errors that are difficult to find and fix. |
| 11 | |
| 12 | |
| 13 | CONFIGURING uClibc: |
| 14 | |
| 15 | - Users must have a valid configuration file to compile uClibc. Do not |
| 16 | skip this step. New configuration options are added in each |
| 17 | release, and odd configuration options are sometimes removed. |
| 18 | To configure uClibc, you can run: |
| 19 | |
| 20 | make menuconfig |
| 21 | or |
| 22 | make config |
| 23 | |
| 24 | If you have an existing .config file, you can update this file |
| 25 | using the |
| 26 | |
| 27 | make oldconfig |
| 28 | |
| 29 | command, which will only ask you about new configuration options. |
| 30 | |
| 31 | Available configuration commands are: |
| 32 | "make config" Text based configuration, no menus or colors. |
| 33 | "make menuconfig" Text based color menus, radiolists & dialogs. |
| 34 | "make oldconfig" Default all questions based on the contents of |
| 35 | your existing ./.config file. |
| 36 | "make defconfig" Use defaults for all options. |
| 37 | "make randconfig" Use random values for all options. |
| 38 | "make allyesconfig" Set all values to "yes" for all options. |
| 39 | "make allnoconfig" Set all values to "no" for all options. |
| 40 | |
| 41 | |
| 42 | COMPILING uClibc: |
| 43 | |
| 44 | - uClibc does not have proper dependancy checking (yet) so if you |
| 45 | change your uClibc configuration, you must current rebuild the |
| 46 | entire library, by first running |
| 47 | |
| 48 | make clean |
| 49 | |
| 50 | - Once you have a valid configuration file, just run |
| 51 | |
| 52 | make |
| 53 | |
| 54 | to compile uClibc. or if you are cross compiling, you would |
| 55 | instead run something like: |
| 56 | |
| 57 | make CROSS_COMPILE=arm-linux- |
| 58 | |
| 59 | |
| 60 | INSTALLING the uClibc development environment: |
| 61 | |
| 62 | - As root, if necessary, run something like: |
| 63 | |
| 64 | make PREFIX=<some path> install |
| 65 | |
| 66 | This will install the uClibc runtime and development system (i.e. |
| 67 | all the header files, libraries, etc) into the directories defined |
| 68 | within your .config file. |
| 69 | |
| 70 | |
| 71 | USING uClibc: |
| 72 | |
| 73 | - To compile programs with uClibc you will need a complete toolchain |
| 74 | (i.e. binutils, gcc, and uClibc) that was built expressly for use |
| 75 | with uClibc. |
| 76 | |
| 77 | - Native and cross compiling toolchains, as well as makefiles for creating |
| 78 | uClibc toolchains, are available from the uClibc website. You may want |
| 79 | to check out "buildroot", which is available from the uClibc download area, |
| 80 | which provides examples of how to build your own uClibc based system. |