Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7440: boost::filesystem compile error on solaris 10
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-03-05 14:46:10
#7440: boost::filesystem compile error on solaris 10
------------------------------------------------+---------------------------
Reporter: aleksandar.vukajlovic@⦠| Owner: bemandawes
Type: Bugs | Status: new
Milestone: To Be Determined | Component: filesystem
Version: Boost 1.51.0 | Severity: Problem
Resolution: | Keywords:
------------------------------------------------+---------------------------
Comment (by Derek Beatty <dbeatty@â¦>):
No, and I don't have gcc 4.7.2 easily available. I built on Solaris 10
with Oracle Solaris Studio 12 update 3, which is Oracle's latest compiler
for Solaris. The compilation fails because in that case `__SUNPRO_CC` is
defined as `0x5200` but `fchmodat` is not available on Solaris 10.
However, `fchmodat` is available on Solaris 11. We can't tell for sure
what will be in future versions of Solaris, but my guess is that
`fchmodat` will stay, as I doubt Oracle would break the Solaris Binary
Guarantee.
So, how to fix this? I think Oracle's toolchain is probably what most
people prefer on Solaris but Boost needs to work regardless of choice of
compiler.
Also, it would be good to fix this correctly, or at least as correctly as
we can with the efffort we can spare. With gcc, there's no way to test
the version of Solaris, so only thing we can test easily, is whether
`__sun` is defined. (The harder way would be to delve into `configure`
magic and test there whether `fchmodat` is available, but I've never done
something like that myself.)
So, assuming we don't go the `configure` route, if `__SUNPRO_CC` is
defined, then if `__SunOS_5_10` is defined we're on Solaris 10 so we don't
have `fchmodat`, and otherwise we do have `fchmodat`. But if
`__SUNPRO_CC` is not defined, then if `__sun` is defined we're on Solaris,
of unknown version, so we have to assume we don't have `fchmodat`.
Does that make sense?
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/7440#comment:4> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:12 UTC