monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] Packages for Debian testing


From: Zack Weinberg
Subject: Re: [Monotone-devel] Packages for Debian testing
Date: Thu, 5 Jul 2007 17:19:39 -0700

On 7/5/07, Richard Levitte <address@hidden> wrote:
I'm wondering about that one.  I've noticed that the Debian release (I
download the source for 0.31-8 just to see what was changed) removes
that macro.

What's going on there is kind of complicated.  Level one of the
problem is that -DBOOST_SP_DISABLE_THREADS disables thread support in
shared_ptr.  However, we are linking against external Boost libraries
that were compiled *without* -DBOOST_SP_DISABLE_THREADS, and some of
them use shared_ptr themselves.  This causes ODR violations.  On x86
those appear to be harmless, but on some of Debian's architectures
they break the mtn binary.  [I thought there was a Debian bug about
this but I can't find it.]  The simplest workaround is to remove the
-DBOOST_SP_DISABLE_THREADS.

Now, level two of the problem is that we *could* link against the -st-
versions of the external Boost libraries, which are built with thread
support off (and in particular with -DBOOST_SP_DISABLE_THREADS) but
that might not cure the problem altogether, because even the -st-
version of libboost_regex.so drags in libpthread.so.  [It doesn't do
this itself; however, it links against libicu.so, and libicu.so is
unconditionally linked with libpthread.  There is no good reason for
that, but the libicu developers are convinced that it is necessary; I
tried and failed to change their minds.]  Enough stuff changes its
behavior when libpthread is present that I am not confident the -st-
version of libboost_regex actually works.

This is a major reason why I am trying to get rid of our dependency on
the external Boost libraries.  Once that is done, we should be able to
reactivate -DBOOST_SP_DISABLE_THREADS in the official Debian packages.

zackw> Is there a branch corresponding to your snapshots?

There is such a branch, it's called richard.levitte.org:compilations.monotone
and is only found (as far as I know) on guardian.lp.se (a.k.a.
monotone.ca, among others).

Hmm.  Longer term, I'm thinking it makes sense to maintain the
official Debian packages out of our repository - so we would have a
small branch off each release tag that contains the contents of the
Debian diff (which hopefully would be minimal).  Clearly that's not
the same as your snapshot branch.

   net.venge.monotone.levitte.select-heads-off
                                      - additional H: selector

-- Any reason not to merge this to mainline?

zw




reply via email to

[Prev in Thread] Current Thread [Next in Thread]