Andreas Jaeger writes: > The following adds an entry to the FAQ to mention why optimization is > needed for compiling glibc. Ok to commit? Is it ok to commit this one? Andreas > Andreas > > 2007-10-27 Andreas Jaeger , > Carlos O'Donell > > [BZ #5012] > * FAQ.in: Describe why glibc needs to be compiled with > optimization. > > ============================================================ > Index: FAQ.in > --- FAQ.in 8 Apr 2005 20:59:50 -0000 1.137 > +++ FAQ.in 27 Oct 2007 15:14:50 -0000 > @@ -387,6 +387,32 @@ yourself. Please remember that for each > patches required to get glibc HEAD into a runnable state. The best course > of action is to determine if you have all the required patches. > > +?? Why do I get: > + `#error "glibc cannot be compiled without optimization"', > + when trying to compile GNU libc with GNU CC? > + > +{AJ,CO} There are a couple of reasons why the GNU C library will not work > +correctly if it is not complied with optimzation. > + > +In the early startup of the dynamic loader (_dl_start), before > +relocation of the PLT, you cannot make function calls. You must inline > +the functions you will use during early startup, or call compiler > +builtins (__builtin_*). > + > +Without optimizations enabled GNU CC will not inline functions. The > +early startup of the dynamic loader will make function calls via an > +unrelocated PLT and crash. > + > +Without auditing the dynamic linker code it would be difficult to remove > +this requirement. > + > +Another reason is that nested functions must be inlined in many cases to > +avoid executable stacks. > + > +In practice there is no reason to compile without optimizations, therefore > +we require that GNU libc be compiled with optimizations enabled. > + > + > ? Installation and configuration issues > > ?? Can I replace the libc on my Linux system with GNU libc? > @@ -1685,6 +1711,7 @@ Answers were given by: > {AO} Alexandre Oliva, > {BH} Bruno Haible, > {SM} Steven Munroe, > +{CO} Carlos O'Donell, > > Local Variables: > mode:outline Andreas -- Andreas Jaeger, Director Platform/openSUSE, aj@suse.de SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126