gcc question : pic or non-pic objects stored inside a static archive (not a spam)
plumber Idraulico
plumber@gnu-darwin.org
Wed Nov 30 18:44:00 GMT 2005
hi , there ,
i 've asked some questions on darwin list but i haven't a good and
real answer about it ( forward: bottom of this email )
it's a general question about or pic or non pic objects stored inside
a static archive
1 - is there an importance that stored objects have been built with
the pic or non-pic option ?
see - 1-
2 - is it normal that the lib archive has a bigger size than the
shared archive ( +15% ) ?
see - 2-
3 - is there an importance that stored objects have been built with
the pic option in a library archive ?
see -3-
4 - if question 3 why the default format is not pic.o ( in shared
and static lib ? libtool compatibility with gcc < 4 ) ?
ar rc libMy.a *.pic.o
it will be cool :) if someone could answer
Best Regards, {Plum}
> i have an another question about pic or non pic objects stored
> inside a library archive
>
> if i do something like this :
>
> gcc \
> -dynamiclib \
> -undefined suppress \
> -flat_namespace \
> -single_module \
> -all_load ./libMy.a \
> -install_name /usr/local/lib/libMy.1.dylib \
> -compatibility_version 1
> -current_version 1.3
> -o libMy.1.0.dylib \
> -lz
>
> 1 - is there an importance that stored objects have been built with
> the pic or non-pic option ?
>
> because the "normal" way is
>
> gcc -dynamiclib *.pic.o \
> -install_name /usr/local/lib/libMy.1.dylib \
> -compatibility_version 1
> -current_version 1.3
> -o libMy.1.0.dylib \
> -lz
>
> and
>
> ar rc libMy.a *.non-pic.o
>
> 2 - is it normal that the lib archive has a bigger size than the
> shared archive ( +15% ) ?
>
>> GCC 2.95.2
>>
>> When building a shared library, gcc will compile additional code
>> to be included in the library.
>> That additional code must also be compiled with the proper PIC
>> option.
>>
>> gcc -c -fPIC myfile.c
>> gcc -shared -o libmyfile.so -fPIC myfile.o
>>
>> http://developer.apple.com/releasenotes/DeveloperTools/GCC4.html
>>
> gcc3 gcc2 gcc4 ? and -fPIC
>
> this has an importance under Linux
> but for a mach-o archive ?
> this case can be found ?
>
> prelink: /usr/bin/mybin: Cannot prelink against non-PIC shared library
> /usr/lib/libMy.dylib
>
> 3 - is there an importance that stored objects have been built
> with the pic option in a library archive ?
>
> gcc -dynamiclib *.pic.o \
> -install_name /usr/local/lib/ libMyOther.1.dylib \
> -compatibility_version 1
> -current_version 1.3
> -o libMyOther.1.0.dylib \
> -lz ./libMy.a
>
> Best Regards, {Plum}
More information about the Gcc-help
mailing list