[odb-users] ODB installed from .rpm on Fedora 16 does not function correctly under some circumstances

Jeff Waller truthset at gmail.com
Thu Jul 11 09:42:12 EDT 2013


On Jul 11, 2013, at 7:13 AM, Boris Kolpackov wrote:

> Hi Jeff,
> 
> Jeff Waller <truthset at gmail.com> writes:
> 
>> The problem, i suspect, is that the odb that comes packaged in the rpm 
>> is built using gcc 4.7.  There is a well known problem with gcc 4.7 and
>> versions of boost prior to version 1.48 (Fedora 16 has version 1.47).
>> This causes the build to incorrectly detect that boost pthread support
>> is not present. This is not a problem normally on Fedora 16 because it
>> uses only gcc version 4.6.
> 
> ODB binary packages come with their own private copy of GCC (currently
> 4.7.2). This GCC is used internally by ODB and you can continue using
> your system GCC to build your application.

If that's the case then it's the thing I suspected for sure.

>From the discussion of the bug, there's a define that gcc 4.6 and earlier
provides that boost versions prior to 1.48 depended on.  That define disappeared
in version 4.7 and so boost config include determined there is no pthread support.

> 
> In this setup, the only way I can see how the above issue can arise is
> if the headers that you compile with ODB include some Boost threading
> classes.

Not directly; includes a header for a 3rd party library that includes a header that
includes a header that includes boost thread.


> If that's the case, I am not sure what we can do about it. Downgrading
> to 4.6 is not an option since people keep asking for better C++11 support.
> In fact, we will probably be upgrading to GCC 4.8 some time soon.
> 
> Other options would be to upgrade Boost or, as you said, build ODB from
> source to use your system GCC (always a good idea).

Well Fedora 16 is pretty old, so don't expect the packages available for it
now to be upgraded.  It is consistent however, and is not so old that it 
doesn't appear as the platform for some VPS out there. 

The compile-odb-from-source approach did indeed work, but as a strategy will
that always work?  Will odb at some point not work with gcc 4.6 even
if the target source does not use C++11 constructs?

I think you should at minimum consider this problem and provide some
documentation and link to it on the download page.  Some users might
become frustrated at weird errors.

I see that Dave Johansen is going to be in charge of keeping all these 
things together.  That's good!  I'm sure he will figure it out.

BTW is there someone, also, that is in charge for ubuntu?  Because, hehe,
I found that the provided .deb file did not work either (older ubuntu), though
the compile strategy sure did.

-Jeff



More information about the odb-users mailing list