Compile Error

Darren Hennessey <[email protected]> Thu, 05 Jul 2007 11:18:24 -0700
Newsgroups gmane.comp.djb.checkpassword
Organization ParetoPlatform
Message-ID <[email protected]>
Hi all;

I'm trying to install checkpassword on a Fedora 7 machine and get the
following output:

[root@localhost checkpassword-0.90]# make
( cat warn-auto.sh; \
        echo 'main=3D"$1"; shift'; \
        echo exec "`head -1 conf-ld`" \
        '-o "$main" "$main".o ${1+"$@"}' \
        ) > load
chmod 755 load
sh find-systype.sh > systype
sh print-cc.sh > compile
chmod 755 compile
( ( ./compile tryspnam.c && ./load tryspnam ) >/dev/null \
        2>&1 \
        && echo \#define HASGETSPNAM 1 || exit 0 ) > hasspnam.h
rm -f tryspnam.o tryspnam
( ( ./compile tryslib.c && \
        ./load tryslib -ls ) >/dev/null 2>&1 \
        && echo -ls || exit 0 ) > s.lib
rm -f tryslib.o tryslib
( ( ./compile tryuserpw.c \
          && ./load tryuserpw `cat s.lib` ) >/dev/null 2>&1 \
        && echo \#define HASGETUSERPW 1 || exit 0 ) > hasuserpw.h
rm -f tryuserpw.o tryuserpw
./compile checkpassword.c
checkpassword.c: In function =E2=80=98main=E2=80=99:
checkpassword.c:33: warning: incompatible implicit declaration of
built-in function =E2=80=98_exit=E2=80=99
cat warn-auto.sh choose.sh \
        | sed s}HOME}"`head -1 conf-home`"}g \
        > choose
chmod 755 choose
./compile chkshsgr.c
./load chkshsgr=20
./chkshsgr || ( cat warn-shsgr; exit 1 )
./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
./compile prot.c
( cat warn-auto.sh; \
        echo 'main=3D"$1"; shift'; \
        echo 'rm -f "$main"'; \
        echo 'ar cr "$main" ${1+"$@"}'; \
        case "`cat systype`" in \
        sunos-5.*) ;; \
        unix_sv*) ;; \
        irix64-*) ;; \
        irix-*) ;; \
        dgux-*) ;; \
        hp-ux-*) ;; \
        sco*) ;; \
        *) echo 'ranlib "$main"' ;; \
        esac \
        ) > makelib
chmod 755 makelib
./compile alloc.c
alloc.c:3: warning: conflicting types for built-in function =E2=80=98malloc=
=E2=80=99
./compile alloc_re.c
./compile buffer.c
./compile buffer_2.c
./compile buffer_copy.c
./compile buffer_get.c
./compile buffer_put.c
./compile env.c
./compile error.c
./compile error_str.c
./compile open_read.c
./compile open_trunc.c
./compile pathexec_env.c
./compile pathexec_run.c
./compile stralloc_cat.c
./compile stralloc_catb.c
./compile stralloc_cats.c
./compile stralloc_eady.c
./compile stralloc_opyb.c
./compile stralloc_opys.c
./compile stralloc_pend.c
./compile strerr_die.c
./compile strerr_sys.c
./makelib unix.a alloc.o alloc_re.o buffer.o buffer_2.o \
        buffer_copy.o buffer_get.o buffer_put.o env.o error.o \
        error_str.o open_read.o open_trunc.o pathexec_env.o \
        pathexec_run.o prot.o stralloc_cat.o stralloc_catb.o \
        stralloc_cats.o stralloc_eady.o stralloc_opyb.o \
        stralloc_opys.o stralloc_pend.o strerr_die.o strerr_sys.o
./compile byte_copy.c
./compile byte_cr.c
./compile byte_diff.c
./compile str_chr.c
./compile str_len.c
./compile str_start.c
./makelib byte.a byte_copy.o byte_cr.o byte_diff.o \
        str_chr.o str_len.o str_start.o
( ( ./compile tryshadow.c && \
        ./load tryshadow -lshadow ) >/dev/null 2>&1 \
        && echo -lshadow || exit 0 ) > shadow.lib
rm -f tryshadow.o tryshadow
( ( ./compile trycrypt.c && \
        ./load trycrypt -lcrypt ) >/dev/null 2>&1 \
        && echo -lcrypt || exit 0 ) > crypt.lib
rm -f trycrypt.o trycrypt
./load checkpassword prot.o unix.a byte.a  `cat \
        shadow.lib` `cat crypt.lib` `cat s.lib`
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss
mismatches non-TLS reference in checkpassword.o
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [checkpassword] Error 1


This was after the first "make" command and before the "make setup
check" command.

Thanks in advance,

Darren Hennessey