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)
-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to