This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: use shared lib of libbackend.so


2011/4/3 Ian Lance Taylor <iant@google.com>:
> parttor@gmail.com writes:
>
>> ? ? As cc1plus cc1 lto1 using the same big static lib libbackend.a, so
>> I patched it to use a shared lib in order to save space.
>> I pached by the attachment and set ?CFLAGS="${CFLAGS} -fPIC"
>> CXXFLAGS="${CXXFLAGS} -fPIC" ?before configure.
>> It works well after patched and size reduced. But it works much slower
>> than using libbackend.a , spend two times time.
>> Can I keep speed while using shared lib?
>
> I'm kind of surprised that it is twice as slow. ?But it is true that on
> an ELF system shared libraries are always slower than static libraries,
> though the slowdown is normally more on the order of 5%.
>
> Disk prices have fallen so far that very few people are short on space
> these days. ?At least, they aren't short on space for the compiler which
> normally lives on a regular computer rather than, say, a phone. ?Does
> this really matter for you?

I'm trying to make a linux disco, a living version(livecd liveusb) and
a vmware version ready.
http://smartutils.sf.net/livecd.html

I want to reduce it's size by removing "duplicate data", such as
moving static lib to shared lib.


> It's a characteristic of ELF. ?In a shared library, all calls to
> globally visible functions have to go through the PLT. ?All references
> to global variables have to go through the GOT. ?Some slowdown is
> inevitable. ?You can adjust somewhat by using symbol visibility, but
> that would be somewhat painful in the gcc source code base, and the gain
> would be minimal.

Maybe I have to give up the "moving to shared lib work" on gcc.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]