Am I crazy? Does newlib build nothing?

Bryan Ischo bryan@ischo.com
Thu Aug 4 22:07:00 GMT 2011


On 08/04/11 14:15, Jeff Johnston wrote:
>
> By default, newlib isn't configured to be built natively.  That is 
> glibc's domain.
>
> That said, you can build newlib on a 32-bit x86 Linux system if you 
> specify --with-newlib on the configuration with
> --target=i686-pc-linux-gnu
>
> x86_64 linux won't work at this time.  I think it might work if the 
> code were set up to allow the configuration and then force newlib to 
> use the x86 machine sub-directories (there are no x86_64 machine 
> subdirectories in newlib/libc/sys/linux).
>
> -- Jeff J.
>

Thank you, that is good to know.

Can you explain more about the --with-newlib configuration?  I have seen 
it mentioned many times but I don't really understand it.  For example, 
I have seen many examples of building gcc as a minimal first compiler 
(whose job is only to build newlib) that give the --with-newlib argument 
when building this gcc, but I don't understand because these examples 
haven't even downloaded, unpacked, or compiled newlib yet, so I don't 
understand what --with-newlib accomplishes there.  Even after newlib is 
built, I don't understand what it accomplishes as an argument to the gcc 
configure script.

Also I don' t understand why you have referenced a --with-newlib option 
when talking about building newlib.  Is --with-newlib really a useful 
argument to pass to the newlib configure script itself?  If so, what 
does it do?

Anyway, taking your advice as I understand it, I have tried adding a 
"--target=i686-pc-linux-gnu" option when I run newlib configure on my 
x86_64 host, but the result is the same: the Makefile produces nothing 
except a little bit of makeinfo stuff.

Finally, I have run into another problem now that I have my minimal gcc 
build and am trying to use it to compile newlib:

newlib configuration gets an error in trying to determine the extension 
for executables, but I don't know why the newlib configure script would 
care about the extension of executables (because it never needs to build 
executables, or at least shouldn't, in my understanding).  It seems that 
these checks should simply not be done.  I have dug into the 
newlib/newlib/configuration script and see that it has different logic, 
that specifically doesn't run this test; but the toplevel newlib 
configuration does run this test.

Am I not supposed to be doing a top-level newlib configure?  Should I be 
doing a configure specifically in newlib/libgloss and newlib/newlib 
separately?  I'll give that a go and see what happens ...

Thanks,
Bryan



More information about the Newlib mailing list