<commit_before><!--#include file="header.html" -->


<h3>Frequently Asked Questions</h3>

This is a collection of some of the most frequently asked questions
about uClibc.  Some of the questions even have answers. If you
have additions to this FAQ document, we would love to add them,

<ol>
<li><a href="#naming">Why is it called uClibc?</a>
<li><a href="#platforms">What platforms does uClibc run on?</a>
<li><a href="#why">Why are you doing this?  What's wrong with glibc?</a>
<li><a href="#doesnt_suck">So uClibc is smaller then glibc?  Doesn't that mean it
	completely sucks?  How could it be smaller and not suck?</a>
<li><a href="#why_should_i">Why should I use uClibc?</a>
<li><a href="#licensing">If I use uClibc, do I have to release all my source code to the world for
	free?  I want to create a closed source commercial application and I want
	to protect my intellectual property.</a>
<li><a href="#development">Can I use it on my x86 development system?</a>
<li><a href="#shared"> Does uClibc support shared libraries?</a>
<li><a href="#compiling">How do I compile programs with uClibc?</a>
<li><a href="#toolchain">Do I really need to build a uClibc toolchain?</a>
<li><a href="#wrapper">What happened to the old toolchain wrapper?</a>
<li><a href="#dev_systems">Is a pre-compiled uClibc development system available?</a>
<li><a href="#bugs">I think I found a bug in uClibc!  What should I do?!</a>
<li><a href="#miscompile">My package builds fine but link fails with errors like "undefined reference 
	to __fputc_unlocked", who do I blame?!</a>
<li><a href="#gnu_malloc">My package builds fine but link fails with errors like "undefined reference
	to rpl_realloc / rpl_malloc", who do I blame?!</a>
<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control
	turned off" errors?  Why doesn't Control-C work within my shell?</a>
<li><a href="#autoconf">How do I make autoconf and automake behave?</a>
<li><a href="#ldd">When I run 'ldd' to get a list of the library dependencies
	for a uClibc binary, ldd segfaults!  What should I do?</a>
<li><a href="#timezones">Why does localtime() return times in UTC even when I have my timezone set?</a>
<li><a href="#history">What is the history of uClibc?  Where did it come from?</a>
<li><a href="#demanding">I demand that you to add &lt;favorite feature&gt; right now!   How come
	you don't answer all my questions on the mailing list instantly?  I demand
	that you help me with all of my problems <em>Right Now</em>!</a>
<li><a href="#helpme">I need help with uClibc!  What should I do?</a>
<li><a href="#contracts">I need you to add &lt;favorite feature&gt;!  Are the uClibc developers willing to
	be paid in order to fix bugs or add in &lt;favorite feature&gt;?  Are you willing to provide
	support contracts?</a>
<li><a href="#support">I think you guys are great and I want to help support your work!</a>


</ol>


<hr />
<p>
<h2><a name="naming">Why is it called uClibc?</a></h2>
<p>

    The letter 'u' is short for &#181; (the greek letter "mu").  &#181; is commonly used
    as the abbreviation for the word "micro".  The capital "C" is short for
    "controller".  So the name uClibc is sortof an abbreviation for "the
    microcontroller C library".  For simplicity, uClibc is pronounced
    "yew-see-lib-see".
    <p>
    The name is partly historical, since uClibc was originally
    created to support <a href="http://www.uclinux.org">Clinux</a>, a port of
    Linux for MMU-less microcontrollers such as the Dragonball, Coldfire, and
    ARM7TDMI.  These days, uClibc also works just fine on normal Linux systems
    (such as i386, ARM, and PowerPC), but we couldn't think of a better name.

<hr />
<p>
<h2><a name="platforms">What platforms does uClibc run on?</a></h2>
<p>


    Currently uClibc runs on alpha, ARM, cris, i386, i960, h8300,
    m68k, mips/mipsel, PowerPC, SH, SPARC, and v850 processors.


<hr />
<p>
<h2><a name="why">Why are you doing this?  What's wrong with glibc?</a></h2>
<p>

    Initially, the project began since the GNU C library lacked support for
    MMU-less systems, and because glibc is very large.  The GNU C library is
    designed with a very different set of goals then uClibc.  The GNU C library
    is a great piece of software, make no mistake.  It is compliant with just<commit_msg>fix one more to use html entities rather than the ISO 8859 version<commit_after><!--#include file="header.html" -->


<h3>Frequently Asked Questions</h3>

This is a collection of some of the most frequently asked questions
about uClibc.  Some of the questions even have answers. If you
have additions to this FAQ document, we would love to add them,

<ol>
<li><a href="#naming">Why is it called uClibc?</a>
<li><a href="#platforms">What platforms does uClibc run on?</a>
<li><a href="#why">Why are you doing this?  What's wrong with glibc?</a>
<li><a href="#doesnt_suck">So uClibc is smaller then glibc?  Doesn't that mean it
	completely sucks?  How could it be smaller and not suck?</a>
<li><a href="#why_should_i">Why should I use uClibc?</a>
<li><a href="#licensing">If I use uClibc, do I have to release all my source code to the world for
	free?  I want to create a closed source commercial application and I want
	to protect my intellectual property.</a>
<li><a href="#development">Can I use it on my x86 development system?</a>
<li><a href="#shared"> Does uClibc support shared libraries?</a>
<li><a href="#compiling">How do I compile programs with uClibc?</a>
<li><a href="#toolchain">Do I really need to build a uClibc toolchain?</a>
<li><a href="#wrapper">What happened to the old toolchain wrapper?</a>
<li><a href="#dev_systems">Is a pre-compiled uClibc development system available?</a>
<li><a href="#bugs">I think I found a bug in uClibc!  What should I do?!</a>
<li><a href="#miscompile">My package builds fine but link fails with errors like "undefined reference 
	to __fputc_unlocked", who do I blame?!</a>
<li><a href="#gnu_malloc">My package builds fine but link fails with errors like "undefined reference
	to rpl_realloc / rpl_malloc", who do I blame?!</a>
<li><a href="#job_control">Why do I keep getting "sh: can't access tty; job control
	turned off" errors?  Why doesn't Control-C work within my shell?</a>
<li><a href="#autoconf">How do I make autoconf and automake behave?</a>
<li><a href="#ldd">When I run 'ldd' to get a list of the library dependencies
	for a uClibc binary, ldd segfaults!  What should I do?</a>
<li><a href="#timezones">Why does localtime() return times in UTC even when I have my timezone set?</a>
<li><a href="#history">What is the history of uClibc?  Where did it come from?</a>
<li><a href="#demanding">I demand that you to add &lt;favorite feature&gt; right now!   How come
	you don't answer all my questions on the mailing list instantly?  I demand
	that you help me with all of my problems <em>Right Now</em>!</a>
<li><a href="#helpme">I need help with uClibc!  What should I do?</a>
<li><a href="#contracts">I need you to add &lt;favorite feature&gt;!  Are the uClibc developers willing to
	be paid in order to fix bugs or add in &lt;favorite feature&gt;?  Are you willing to provide
	support contracts?</a>
<li><a href="#support">I think you guys are great and I want to help support your work!</a>


</ol>


<hr />
<p>
<h2><a name="naming">Why is it called uClibc?</a></h2>
<p>

    The letter 'u' is short for &#181; (the greek letter "mu").  &#181; is commonly used
    as the abbreviation for the word "micro".  The capital "C" is short for
    "controller".  So the name uClibc is sortof an abbreviation for "the
    microcontroller C library".  For simplicity, uClibc is pronounced
    "yew-see-lib-see".
    <p>
    The name is partly historical, since uClibc was originally
    created to support <a href="http://www.uclinux.org">&#181;Clinux</a>, a port of
    Linux for MMU-less microcontrollers such as the Dragonball, Coldfire, and
    ARM7TDMI.  These days, uClibc also works just fine on normal Linux systems
    (such as i386, ARM, and PowerPC), but we couldn't think of a better name.

<hr />
<p>
<h2><a name="platforms">What platforms does uClibc run on?</a></h2>
<p>


    Currently uClibc runs on alpha, ARM, cris, i386, i960, h8300,
    m68k, mips/mipsel, PowerPC, SH, SPARC, and v850 processors.


<hr />
<p>
<h2><a name="why">Why are you doing this?  What's wrong with glibc?</a></h2>
<p>

    Initially, the project began since the GNU C library lacked support for
    MMU-less systems, and because glibc is very large.  The GNU C library is
    designed with a very different set of goals then uClibc.  The GNU C library
    is a great piece of software, make no mistake.  It is compliant with just
{'fraction_non_alphanumeric': 0.11969644705070714, 'fraction_numerical': 0.008853627687708405, 'mean_word_length': 4.365823565700185, 'pattern_counts': {'":': 0, '<': 209, '<?xml version=': 0, '>': 209, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2452917', 'n_tokens_mistral': 2956, 'n_tokens_neox': 2830, 'n_words': 1235}