Bug Tracker item #2811139, was opened at 2009-06-23 22:34
Message generated for change (Comment added) made by 
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126467&aid=2811139&group_id=250683

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Closed
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Tom Hendrikx (whyscream)
Assigned to: Stevan Bajic (sbajic)
Summary: Build failures with -j2 or higher

Initial Comment:
With current git sources I had some problems building the sqlite driver. 
Compilation sometimes aborted, but always at the same location. After some 
searching I found out that this happened because of a race condition that 
happens when building with -j2 or higher, -j1 does seem to work consistently. 
In the output of make, the race condition is clearly visible.

When looking at Makefile.am, it seems that the problem should also exist for 
the other driver components,which I have not tested. I tried some fiddling with 
Makefile.am myself, but could get it fixed.

Output of make -j3:

/bin/sh ../libtool --tag=CC   --mode=link i686-pc-linux-gnu-gcc  -O2 
-march=i686 -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -rdynamic 
-rpath '/usr/lib/dspam' -version-info 7:0:0 -rdynamic -o libsqlite3_drv.la 
-rpath /usr/lib/dspam libsqlite3_drv_la-sqlite3_drv.lo -lsqlite3  -lm  -ldl  
./libdspam.la -lm  -ldl 
i686-pc-linux-gnu-gcc -shared  .libs/libdspam.o .libs/heap.o .libs/diction.o 
.libs/base64.o .libs/buffer.o .libs/util.o .libs/nodetree.o .libs/error.o 
.libs/decode.o .libs/pref.o .libs/read_config.o .libs/config_shared.o 
.libs/bnr.o .libs/hash.o .libs/list.o .libs/external_lookup.o .libs/tokenizer.o 
.libs/storage_driver.o  -lm -ldl  -march=i686 -Wl,-soname -Wl,libdspam.so.7 -o 
.libs/libdspam.so.7.0.0
libtool: link: cannot find the library `./libdspam.la' or unhandled argument 
`./libdspam.la'
make[3]: *** [libsqlite3_drv.la] Error 1
make[3]: *** Waiting for unfinished jobs....
(cd .libs && rm -f libdspam.so.7 && ln -s libdspam.so.7.0.0 libdspam.so.7)
(cd .libs && rm -f libdspam.so && ln -s libdspam.so.7.0.0 libdspam.so)
i686-pc-linux-gnu-ar cru .libs/libdspam.a  libdspam.o heap.o diction.o base64.o 
buffer.o util.o nodetree.o error.o decode.o pref.o read_config.o 
config_shared.o bnr.o hash.o list.o external_lookup.o tokenizer.o 
storage_driver.o
i686-pc-linux-gnu-ranlib .libs/libdspam.a
creating libdspam.la
(cd .libs && rm -f libdspam.la && ln -s ../libdspam.la libdspam.la)
make[3]: Leaving directory 
`/var/tmp/portage/mail-filter/dspam-9999/work/dspam-9999/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory 
`/var/tmp/portage/mail-filter/dspam-9999/work/dspam-9999/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory 
`/var/tmp/portage/mail-filter/dspam-9999/work/dspam-9999/src'
make: *** [all-recursive] Error 1

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

Comment By: https://www.google.com/accounts ()
Date: 2010-06-25 13:28

Message:
I use

        ebegin "Patching file src/Makefile.in for concurrent Make jobs"
        sed -i -e 's/libhash_drv.la: $(libhash_drv_la_OBJECTS)/libhash_drv.la:
libdspam.la $(libhash_drv_la_OBJECTS)/' \
            -i -e 's/libmysql_drv.la: 
$(libmysql_drv_la_OBJECTS)/libmysql_drv.la:
libdspam.la $(libmysql_drv_la_OBJECTS)/' \
            -i -e 's/libpgsql_drv.la: 
$(libpgsql_drv_la_OBJECTS)/libpgsql_drv.la:
libdspam.la $(libpgsql_drv_la_OBJECTS)/' \
            -i -e 's/libsqlite3_drv.la:
$(libsqlite3_drv_la_OBJECTS)/libsqlite3_drv.la: libdspam.la
$(libsqlite3_drv_la_OBJECTS)/' \
            -i -e 's/libsqlite_drv.la:
$(libsqlite_drv_la_OBJECTS)/libsqlite_drv.la: libdspam.la
$(libsqlite_drv_la_OBJECTS)/' \
            src/Makefile.in
        eend $?

as a temporary fix for my 3.9.0 ebuild :)

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

Comment By: Stevan Bajic (sbajic)
Date: 2009-08-02 15:52

Message:
Hallo Tom

Fixed in GIT commit b48389233e3299d16035325a75acd92cf83a00b4


Kind Regards from Switzerland

Stevan Bajic

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

Comment By: Tom Hendrikx (whyscream)
Date: 2009-06-28 10:22

Message:
I tested this with configure line: ./configure '--prefix=/usr'
'--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu'
'--mandir=/usr/share/man' '--infodir=/usr/share/info'
'--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib'
'--with-storage-driver=hash_drv,sqlite3_drv'
'--with-dspam-home=/var/spool/dspam' '--sysconfdir=/etc/mail/dspam'
'--disable-daemon' '--disable-external-lookup' '--disable-clamav'
'--disable-large-scale' '--enable-domain-scale' '--enable-syslog'
'--disable-debug' '--disable-bnr-debug' '--disable-verbose-debug'
'--enable-long-usernames' '--with-dspam-group=dspam'
'--with-dspam-home-group=dspam' '--with-dspam-mode=2511'
'--with-logdir=/var/log/dspam' '--disable-virtual-users'
'--disable-preferences-extension' '--disable-homedir'
--enable-dependency-tracking

dspam: git commit dee1f011634c3851db246b19bbbea238fc3bbaf9
autoconf: 2.63
os: Gentoo Linux

Still fails with same error.

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

Comment By: Andreas (gladiac)
Date: 2009-06-28 09:52

Message:
Sorry, it should be '--enable-dependency-tracking'

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

Comment By: Andreas (gladiac)
Date: 2009-06-28 08:56

Message:
Try './confgiure --enable-automatic-dependencies' with one of the latest
autoconf packages.

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

Comment By: Tom Hendrikx (whyscream)
Date: 2009-06-25 19:24

Message:
That works indeed, as I mentioned already. The real problem is probably
some bug the Makefile, that I failed to track down myself.

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

Comment By: Stevan Bajic (sbajic)
Date: 2009-06-24 14:27

Message:
Hallo Tom

Can you please add the following to your ebuild:
src_compile() {
        emake -j1 CC="$(tc-getCC)" || die "emake failed"
}

That should fix the issue (for now).


Kind Regards

Stevan Bajic

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126467&aid=2811139&group_id=250683

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Dspam-devel mailing list
Dspam-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-devel

Reply via email to