chkpkg and soname-unused
slowfranklin
slowfranklin at opencsw.org
Mon Nov 4 18:12:01 CET 2013
Am 04.11.2013 um 18:03 schrieb Rafael Ostertag <raos at opencsw.org>:
> Hi Dago
>
> On Mon, Nov 04, 2013 at 05:44:09PM +0100, Dagobert Michelsen wrote:
>> Hi Rafi,
>>
>>> Could it be related to the buildfarm update?
>>
>>
>> Probably, the T5220 is now running 105400-04 whereas unstable10x is still running 147441-19.
>> Should I update the x86 machines also? My impression is to patch as less as possible to
>> not introduce new linker symbol anomalies. The patch on the farm was needed to fix an ugly
>> bug in zfs which prevented us from doing backups, so no option of not installing ;-)
>
> If it is related to Solaris patches, patching x86 would mean that `-z ignore'
> might not work on x86 anymore, as well. So, wouldn't it be smarter, to figure
> out why it stopped working on sparc?
It is sill working. Here’s an example where I’m linking a program with a library that is linked with another libary but doesn’t use any of it’s functions.
slowfranklin at unstable10s [unstable10s]:~ > for file in Makefile main.c lib.c anotherlib.c ; do echo $file\: ; cat $file; done
Makefile:
ALIB_LDFLAGS=
LIB_LDFLAGS=-z ignore -B direct
LDFLAGS=-z ignore -B direct
all: main
libanotherlib.so: anotherlib.c
LD_OPTIONS="$(ALIB_LDFLAGS)" gcc -shared -o libanotherlib.so -fPIC anotherlib.c
libmylib.so: lib.c libanotherlib.so
LD_OPTIONS="$(LIB_LDFLAGS)" gcc -shared -o libmylib.so -fPIC lib.c -L. -R. -lanotherlib
main: main.c libmylib.so
LD_OPTIONS="$(LDFLAGS)" gcc -o main main.c -L. -R. -lmylib
clean:
rm main libmylib.so libanotherlib.so
main.c:
int main(int argc, char **argv)
{
func("test");
}
lib.c:
#include <stdio.h>
void func(const char *msg)
{
printf("%s\n", msg);
}
anotherlib.c:
#include <stdio.h>
void anotherfunc(const char *msg)
{
printf("%s\n", msg);
}
slowfranklin at unstable10s [unstable10s]:~ > make clean
rm main libmylib.so libanotherlib.so
slowfranklin at unstable10s [unstable10s]:~ > make
LD_OPTIONS="" gcc -shared -o libanotherlib.so -fPIC anotherlib.c
LD_OPTIONS="-z ignore -B direct" gcc -shared -o libmylib.so -fPIC lib.c -L. -R. -lanotherlib
LD_OPTIONS="-z ignore -B direct" gcc -o main main.c -L. -R. -lmylib
slowfranklin at unstable10s [unstable10s]:~ > elfdump -d main | grep NEED
[1] NEEDED 0x11b libmylib.so
[2] NEEDED 0x105 libc.so.1
[13] VERNEED 0x106d8
[14] VERNEEDNUM 0x1
slowfranklin at unstable10s [unstable10s]:~ >
More information about the maintainers
mailing list