Re: 2.3.26pre2 compile error

Alexander Viro (viro@math.psu.edu)
Sat, 6 Nov 1999 01:01:08 -0500 (EST)


On Fri, 5 Nov 1999, Peter Samuelson wrote:

> [Jes Sorensen <Jes.Sorensen@cern.ch>]
> > > > Then you extract that single function from libgcc and put it in the
> > > > kernel instead of linking in the entire libgcc.a
> [Horst von Brand <vonbrand@inf.utfsm.cl>]
> > > That is ld(1)'s job.
> [Jes Sorensen]
> > Rubbish, the kernel should never get even close to functions provided
> > from outside the kernel source tree.
>
> What is the difference? `gcc' implements standard C. For some of the
> standard C requirements it relies on libc, for some it has its own ways
> of providing them. One such way is to generate assembler code from its
> parse trees, another is through linking to libgcc.a. Thus libgcc.a is
> in one sense not really a library so much as just part of the compiler.
>
> Horst is right. `ld' is very good at extracting a single object file
> out of a library, and libgcc.a is (like any good library) compiled one
> function per object file. Why do this work by hand?

Because in 99% of cases you don't _want_ those operations. Part of
standard or not, gcc on x86 makes them _slow_.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/