et_list & com-err vs imapd v2.2.12 on OSX 10.4.1

OpenMacNews OpenMacNews at speakeasy.net
Mon May 23 14:18:05 EDT 2005


derrick,

fwiw, i'm seeing et_list-related errors as well, but on OSX 10.4.1

>> `initialize_imap_error_table_r':
>> /usr/local/warez/cyrus-imapd-2.2.10/imap/imap_err.c:68: undefined reference
>> to `initialize_error_table_r'
>> libimap.a(imap_err.o)(.text+0x14):/usr/local/warez/cyrus-imapd-2.2.10/imap/i
>> map_err.c:68: undefined reference to `initialize_error_table_r'
>
> Wild guess, the compile_et and libcom_err are not from the same source.

for a cyrus-imapd-2.2.12 config as:

% unsetenv CFLAGS CPPFLAGS CXX CXXFLAGS LDFLAGS LDDLFLAGS LD_PREBIND LC_ALL 
LANG LINGUAS
% setenv LDFLAGS "-bind_at_load -ldl -L/usr/local/berkeley-db/lib -ldb 
-F/Library/Frameworks -framework SASL2"
% setenv CPPFLAGS "-I/usr/local/berkeley-db/include 
-I/Library/Frameworks/SASL2.framework/Headers"

    % ./configure \
      --with-cyrus-user=cyradm \
      --with-cyrus-group=cyradm \
      --with-cyrus-prefix=/usr/local/cyrus-imap/bin \
      --with-service-path=/usr/local/cyrus-imap/libexec \
      --with-sasl=/usr/local/cyrus-sasl \
      --with-bdb \
      --with-bdb-libdir=/usr/local/berkeley-db/lib \
      --with-bdb-incdir=/usr/local/berkeley-db/include \
    --with-openssl=/usr/local/ssl \
    --with-perl=/usr/bin/perl \
    --with-libwrap \
    --with-auth=unix \
    --disable-gssapi --without-gss_impl \
    --without-krb --without-krbimpl --without-krbdes \
    --enable-listext \
    --enable-server \
    --enable-cyradm \
    --with-syslogfacility=LOCAL6 \
    --without-snmp \
    --enable-sieve \
    --with-com_err=/usr

% make depend

is OK, but a subsequent 'make all' fails @:

    ...
    ranlib libsieve.a
    gcc -c -I.. -I./../lib -I/usr/include
    -I/usr/local/DarkMatter/berkeley-db/include
    -I/usr/local/DarkMatter/berkeley-db/include
    -I/Library/Frameworks/SASL2.framework/Headers -I/usr/local/ssl/include
    -I/usr/local/DarkMatter/cyrus-sasl/include -DHAVE_CONFIG_H -g -O2  \
    sievec.c
    gcc -L/usr/local/ssl/lib -L/usr/local/DarkMatter/berkeley-db/lib
    -bind_at_load -ldl -L/usr/local/DarkMatter/berkeley-db/lib -ldb
    -F/Library/Frameworks -framework SASL2 -o sievec sievec.o libsieve.a
    ../lib/libcyrus.a ../lib/libcyrus_min.a  libsieve.a
    -L/usr/local/DarkMatter/cyrus-sasl/lib  -lsasl2  -lfl
    -L/usr/local/DarkMatter/berkeley-db/lib  -ldb-4.3 -lssl -lcrypto
    /usr/lib/libcom_err.a
    powerpc-apple-darwin8-gcc-4.0.0: /usr/lib/libcom_err.a: No such file or
    directory
    make[1]: *** [sievec] Error 1
    make: *** [all] Error 1

note the problem here is that, as reported, there is NO /usr/lib/libcom_err.a 
on OSX, rather it's /usr/lib/libcom_err.dylib

simply removing the:

    --with-com_err=/usr

from the configure, 'make all' fails, not surprisingly, @:

    ranlib libsieve.a
    gcc -c -I.. -I./../lib  -I/usr/local/DarkMatter/berkeley-db/include
    -I/usr/local/DarkMatter/berkeley-db/include
    -I/Library/Frameworks/SASL2.framework/Headers -I/usr/local/ssl/include
    -I/usr/local/DarkMatter/cyrus-sasl/include -DHAVE_CONFIG_H -g -O2  \
    sievec.c
    gcc -L/usr/local/ssl/lib -L/usr/local/DarkMatter/berkeley-db/lib
    -bind_at_load -ldl -L/usr/local/DarkMatter/berkeley-db/lib -ldb
    -F/Library/Frameworks -framework SASL2 -o sievec sievec.o libsieve.a
    ../lib/libcyrus.a ../lib/libcyrus_min.a  libsieve.a
    -L/usr/local/DarkMatter/cyrus-sasl/lib  -lsasl2  -lfl
    -L/usr/local/DarkMatter/berkeley-db/lib  -ldb-4.3 -lssl -lcrypto  -lcom_err
    /usr/bin/ld: Undefined symbols:
    __et_list
    collect2: ld returned 1 exit status
    make[1]: *** [sievec] Error 1
    make: *** [all] Error 1

finally, fyi:

    % which compile_et
        /usr/bin/compile_et

    % ls -al /usr/bin/compile_et
        -rwxr-xr-x  1 root wheel 9174 Mar 23 14:00 /usr/bin/compile_et

    % ls -al /usr/include/com_err.h
        -rw-r--r--  1 root wheel 3494 Mar 23 14:06 /usr/include/com_err.h

    % ls -al /usr/lib/libcom_err.dylib
        lrwxr-xr-x  1 root wheel 54 May 10 09:40 /usr/lib/libcom_err.dylib ->
        /System/Library/Frameworks/Kerberos.framework/Kerberos

    % ls -al /System/Library/Frameworks/Kerberos.framework/Kerberos
        lrwxr-xr-x  1 root wheel 25 May 10 09:41
        /System/Library/Frameworks/Kerberos.framework/Kerberos ->
        Versions/Current/Kerberos

    % ls -al
    /System/Library/Frameworks/Kerberos.framework/Versions/Current/Kerberos
        -rwxr-xr-x  1 root wheel 1759868 May 17 15:14
        /System/Library/Frameworks/Kerberos.framework/Versions/Current/Kerberos


although i'm not certain, i think the problem may stem from the fact that 
et_list is not defined in libcom_err/com_err.h, i.e.:

    % nm /usr/lib/libcom_err.dylib | grep et_list
    % (<-- empty)

    % grep et_list /usr/include/com_err.h
    % (<-- empty)

and/or the .a vs .dylib issue, as above ...

any ideas?  i'm happy to provide what detail is needed/helpful ...

cheers,

richard

---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list