psmisc-21.6 and shadow-4.0.9/7 with uClibc build

Wiliam Harrington wwh20610 at cmsu2.cmsu.edu
Sat Jun 25 21:37:17 PDT 2005


Howdy folks,

Was goofing around with an HLFS uClibc build, but not using ssp or any security options in uClibc or any of the hardened cflags.

For psmisc, there were a couple things. The configure script returned -lintl for linking to libintl.

	gcc -Wall -DLOCALEDIR=\"/usr/share/locale\" -O2 -march=pentium4m -mtune=pentium4m  -s -o fuser  fuser.o signals.o  
	fuser.o: In function `kill_item':
	then just a bunch of undefined references to libintl_gettext. I added -lintl to the build line myself.

	gcc -Wall -DLOCALEDIR=\"/usr/share/locale\" -O2 -march=pentium4m -mtune=pentium4m  -s -o killall  killall.o signals.o
	then just a bunch of undefined references to libintl_gettext. I added -lintl to the build line myself.

	gcc -Wall -DLOCALEDIR=\"/usr/share/locale\" -O2 -march=pentium4m -mtune=pentium4m  -s -o pstree  pstree.o -lncurse
	then just a bunch of undefined references to libintl_gettext. I added -lintl to the build line myself.


For shadow, some NIS problems. uClibc provides a stub libnsl, but has no actual support for Network Information Service (NIS).

shadow-4.0.9
	
	gcc -O2 -march=pentium4m -mtune=pentium4m -s -o .libs/login login.o login_nopam.o  ../libmisc/libmisc.a ../lib/.libs/	libshadow.so /usr/lib/libintl.so -lc -lcrypt
	login_nopam.o: In function `netgroup_match':
	login_nopam.c:(.text+0x35b): undefined reference to `innetgr'
	login_nopam.c:(.text+0x39a): undefined reference to `innetgr'

I edited login_nopam.c

	/* netgroup_match - match group against machine or user */

	static int
	netgroup_match (const char *group, const char *machine, const char *user)
	{
	+#ifdef NIS
	        static char *mydomain = 0;
	
	        if (mydomain == 0) {
	                static char domain[MAXHOSTNAMELEN + 1];
	
	                getdomainname (domain, MAXHOSTNAMELEN);
	                mydomain = domain;
	        }

        	return innetgr (group, machine, user, mydomain);
	+#else
	+	syslog(LOG_ERR, "NIS netgroup support not configured");
	+	return (NO);
	+#endif
	}

Alright, then I got the following:

	/bin/sh ../libtool --tag=CC --mode=link gcc  -O2 -march=pentium4m -mtune=pentium4m  -s -o gpasswd  gpasswd.o ../libmisc/libmisc.a ../lib/libshadow.la
	gcc -O2 -march=pentium4m -mtune=pentium4m -s -o .libs/gpasswd gpasswd.o  ../libmisc/libmisc.a ../lib/.libs/libshadow.so /usr/lib/libintl.so -lc -lcrypt
	../libmisc/libmisc.a(salt.o): In function `crypt_make_salt':
	salt.c:(.text+0x4e): undefined reference to `l64a'
	salt.c:(.text+0x78): undefined reference to `l64a'


	salt.o:
        	 U clock
	00000000 T crypt_make_salt
	         U getdef_bool
	         U getpid
	         U gettimeofday
	         U l64a
	00000000 b result.0
	         U strcat

I didn't come to a solution with 4.0.9 and l64a. The changelog shows what was done with the l64a prototype.

shadow-4.0.7

I edited login_access.c the same as login_nopam.c in 4.0.9.

Then I had no more issues with 4.0.7.

This is all I have so far.

William (Ratrophy)



More information about the hlfs-dev mailing list