Build failed in Jenkins: cyrus-imapd-master #689

Bron Gondwana brong at fastmail.fm
Wed Jul 11 18:05:04 EDT 2012


On Thu, Jul 5, 2012, at 10:03 AM, Greg Banks wrote:
> 
> 
> On Wed, Jul 4, 2012, at 05:03 PM, Jenkins wrote:
> > See <http://ci.cyrusimap.org/job/cyrus-imapd-master/689/changes>
> > 
> > Changes:
> > 
> > [git-dpa] update .gitignore to include config.(sub,guess) and install-sh
> > 
> > [git-dpa] update .gitignore
> > 
> > [git-dpa] config.h: add #define EXPORTED and HIDDEN
> > 
> > [git-dpa] libcyrus_sieve: hide all internal symbols
> > 
> > [git-dpa] imap/libcyrus_imap: hide symbol search_prefilter_messages()
> > 
> > [git-dpa] fixup: libcyrus_sieve: hide all internal symbols
> > 
> > [git-dpa] mark local variable as static
> > 
> > [git-dpa] imap/libcyrus_imap: mark some internal variables as static
> > 
> > [git-dpa] lib/libcyrus_min: hide function beautify_code
> > 
> > [git-dpa] imap/libcyrus_imap: make even more variables static and hidden
> > 
> > [...]
> > cunit/sieve.o: In function `test_comparator':
> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:85:
> > undefined reference to `lookup_comp'
> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:86:
> > undefined reference to `lookup_comp'
> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:87:
> > undefined reference to `lookup_comp'
> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:88:
> > undefined reference to `lookup_comp'
> > <http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:89:
> > undefined reference to `lookup_comp'
> > cunit/sieve.o:<http://ci.cyrusimap.org/job/cyrus-imapd-master/ws/imapd/./cunit/sieve.testc>:91:
> > more undefined references to `lookup_comp' follow
> > collect2: ld returned 1 exit status
> 
> This broke because Dilyan's linkage changes hid one too many symbols in
> libsieve.  He's fixed it in commit
> 
> http://git.cyrusimap.org/cyrus-imapd/commit/?id=7a94a84ff546ebb8d2ed4ef4255e32396b0c5afb
> 
> It's great to see people actually responding to Jenkins build failures
> :)
> 
> -- 
> Greg.


I'm not sure what I'm doing wrong, because it's not fixed for me:

make[2]: *** [imap/cyr_expire] Error 1
/usr/bin/ld: imap/cyr_synclog.o: undefined reference to symbol 'become_cyrus'
/usr/bin/ld: note: 'become_cyrus' is defined in DSO /usr/cyrus/lib/libcyrus_min.so.0 so try adding it to the linker command line
/usr/cyrus/lib/libcyrus_min.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [imap/cyr_synclog] Error 1
/usr/bin/ld: imap/cyr_userseen.o: undefined reference to symbol 'become_cyrus'
/usr/bin/ld: note: 'become_cyrus' is defined in DSO /usr/cyrus/lib/libcyrus_min.so.0 so try adding it to the linker command line
/usr/cyrus/lib/libcyrus_min.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [imap/cyr_userseen] Error 1
make[2]: Leaving directory `/home/brong/src/cyrus-imapd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/brong/src/cyrus-imapd'
make: *** [all] Error 2
brong at prin ~/src/cyrus-imapd $ git bisect bad
440b17b73285a1c5641e4f751f6da2fbce9f1bbb is the first bad commit
commit 440b17b73285a1c5641e4f751f6da2fbce9f1bbb
Author: Дилян Палаузов <git-dpa at aegee.org>
Date:   Thu Jul 5 17:45:58 2012 +0000

    Makefile.am: don't link explicitly with libcyrus(_min)
    
    ... when linking with imap/libcyrus_imap.la . libcyrus_imap links already
    implicitly with lib/libcyrus_min.la and lib/libcyrus.la, so that it is not
    necessary to link explicitly with lib/libcyrus(_min).la .

:100644 100644 bded93262bd40ef540d0968b61b8f24cdb37ec2a e7a468242cbcae88932c8399e18af5f17f714085 M	Makefile.am

---------------------

I get the same linking errors building current cmu/master.

This is the alias I use for local builds:

alias cb='cd /home/brong/src/cyrus-imapd; make clean; git clean -f -x -d; autoreconf -v -i; CFLAGS="-g -fPIC -W -Wall -Wextra" ./configure --prefix=/usr/cyrus --with-cyrus-prefix=/usr/cyrus --enable-unit-tests --enable-replication --enable-nntp --enable-murder --enable-idled && make -j16 && make -j16 check && sudo make install && sudo cp tools/mkimap /usr/cyrus/bin/mkimap'

If I'm doing something wrong there, please add the correct build process to README.git.

Thanks,

Bron.
-- 
  Bron Gondwana
  brong at fastmail.fm



More information about the Cyrus-devel mailing list