staticke linkovani s glibc 2.1 ?

Vaclav Ovsik Vaclav.Ovsik na i.cz
Úterý Leden 25 12:01:59 CET 2000


On Tue, 25 Jan 2000, Michal Krause wrote:

> On 25/01/2000, Vaclav Ovsik wrote:
...
> > Umite nekdo zalinkovat do programu ty moduly tak, aby to pri spusteni
> > uz nic nechtelo ? Respektive lze to vubec ? Nasel jsem /usr/lib/libnsl.a,
> > ktera asi implementuje NSS, ale jak to slinkovat bez zasahu
> > do stavajiciho programu.
> 
> Pridat pri linkovani prametr -lnsl?

Takhle jednoduse to nepujde, ty veci jsou unresolved v glibc ne v tom mem prog.

> Ja tedy nevim, prave jsem to testnul a bez nejmensich problemu jsem
> vyrobil docista statickou binarku:
> 
> gcc -static -Wall -O2 -g -o xpath_test xpath_test.c -lxml -lz
> ldd xpath_test
>     not a dynamic executable
> chroot $PWD ./xpath_test

Tak si zkuste treba:

	#include <stdio.h>
	#include <pwd.h>
	#include <sys/types.h>

	void main()
	{
	    struct passwd *x_p;

	    x_p = getpwnam("root");
	    if ( ! x_p )
	    {
		fprintf(stderr, "x_p is null pointer\n");
		return;
	    }
	    printf("pw_name=%s\npw_passwd=%s\npw_uid=%d\n",
            x_p->pw_name, x_p->pw_passwd, x_p->pw_uid);

	}

Pochopitelne u programu, ktere nechteji nic z NSS (nebo neco jineho
specialniho) je to v pohode.

> Ja myslim, ze dynloader je urcen kompilerem, ne?

Hmm, mate pravdu nasel jsem option u ld, asi to tak bude.
Mel jsem davat pozor, kdyz se mluvilo o executable formatech :-)

--
	Vaclav Ovsik		email: Vaclav.Ovsik na i.cz
	ICZ a.s.		phone: +420 19 7165659
				fax:   +420 19 7165651




Další informace o konferenci Linux