Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Aug 1998 11:52:25 -0700
From:      John Polstra <jdp@polstra.com>
To:        ccsanady@friley-185-114.res.iastate.edu
Cc:        current@FreeBSD.ORG
Subject:   Re: elf and kerberos..
Message-ID:  <199808311852.LAA05761@austin.polstra.com>
In-Reply-To: <199808311713.MAA21937@friley-185-114.res.iastate.edu>
References:  <199808311713.MAA21937@friley-185-114.res.iastate.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <199808311713.MAA21937@friley-185-114.res.iastate.edu>,
Chris Csanady  <ccsanady@friley-185-114.res.iastate.edu> wrote:
> 
> The kerberos world seems to be unhappy at present..
> 
> cc -O -pipe -I/usr/src/gnu/usr.bin/cvs/cvs -I/usr/src/gnu/usr.bin/cvs/cvs/../li
> b -I/usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src 
> -I/usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/lib -DHAVE_CONFIG_H 
> -DHAVE_KERBEROS -DHAVE_KRB_GET_ERR_TEXT -DENCRYPTION   
> -I/usr/obj/elf/usr/src/tmp/usr/include  -o cvs add.o admin.o buffer.o 
> checkin.o checkout.o classify.o client.o commit.o create_adm.o cvsrc.o diff.o 
> edit.o entries.o error.o expand_path.o fileattr.o filesubr.o find_names.o 
> hardlink.o hash.o history.o ignore.o import.o lock.o log.o login.o logmsg.o 
> main.o mkmodules.o modules.o myndbm.o no_diff.o parseinfo.o patch.o rcs.o 
> rcscmds.o recurse.o release.o remove.o repos.o root.o rtag.o run.o scramble.o 
> server.o status.o subr.o tag.o update.o vers_ts.o version.o watch.o wrapper.o 
> zlib.o  /usr/obj/elf/usr/src/gnu/usr.bin/cvs/cvs/../lib/libcvs.a 
> /usr/obj/elf/usr/src/gnu/usr.bin/cvs/cvs/../libdiff/libdiff.a -lgnuregex -lmd 
> -lcrypt -lz -lkrb -ldes
> /usr/obj/elf/usr/src/tmp/usr/lib/libkrb.so: undefined reference to `__et_list'
> *** Error code 1

It's caused by this assembly code in src/crypto/kerberosIV/lib/krb/et_list.c:

    #ifdef __FreeBSD__
    asm(".globl __et_list");        /* FreeBSD bug workaround */
    #endif

A quick fix would be:

    #ifdef __FreeBSD__
    #ifdef __ELF__
    asm(".globl _et_list");         /* FreeBSD bug workaround */
    #else
    asm(".globl __et_list");        /* FreeBSD bug workaround */
    #endif
    #endif

There's a cleaner way to do it, but I don't have time to test it
just now.  It involves including <machine/asmacros.h> and using the
CNAME macro.

John
--
   John Polstra                                       jdp@polstra.com
   John D. Polstra & Co., Inc.                Seattle, Washington USA
   "Self-knowledge is always bad news."                 -- John Barth

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199808311852.LAA05761>