[MacPorts] #40893: encfs 1.7.4 build fails including sys/endian.h on Mavericks

MacPorts noreply at macports.org
Wed Jan 22 01:46:49 PST 2014


#40893: encfs 1.7.4 build fails including sys/endian.h on Mavericks
---------------------------------+-------------------------------
  Reporter:  andrew.t.baldwin@…  |      Owner:  Markus.Ueberall@…
      Type:  defect              |     Status:  closed
  Priority:  Normal              |  Milestone:
 Component:  ports               |    Version:  2.2.0
Resolution:  fixed               |   Keywords:  mavericks
      Port:  encfs               |
---------------------------------+-------------------------------
Changes (by cal@…):

 * status:  new => closed
 * resolution:   => fixed


Comment:

 The problem here seems to always have been a C++ standard library issue.
 In Mavericks clang's default C++ runtime library switched from libstdc++
 to libc++. These two libraries are incompatible, however. Mixing them in
 the same binary causes the crashes you have seen. This incompatibility
 might also have caused the build error against boost reported above.

 It seems encfs did not build against libc++ because of the sys/endian.h
 issue. Some people in this thread suggested using libstdc++ instead (e.g.
 by passing -mmacosx-version-min=10.7, which effectively disables the new
 default and re-instantiates the old one), which allowed encfs to build,
 but caused the crashes.
 http://code.google.com/p/encfs/issues/detail?id=182#c5 goes even further,
 suggesting to rebuild the rlog port with GCC, which will, in turn, cause
 the rlog port to use libstdc++, too. While this fixes the immediate
 crashes you have seen, it still is not a correct solution, because
 MacPorts boost is built against libc++ and encfs links against both rlog
 and boost, causing two different C++ runtimes to be present in the encfs
 binary – the people who did this were just lucky it didn't crash.

 I've commited the patch in r116237 with the following changes:
  - whitespace adjusted to conform to the modeline
  - use of `use_autoreconf yes` and `autoreconf.args -fvi` instead of
 changing `configure.cmd`, because `use_autoreconf` automatically adds the
 necessary dependencies `autoconf`, `automake` and `libtool`.

 I would like to ask everybody who rebuilt rlog with GCC to undo this
 change, as it will very likely break this fixed version of encfs.

-- 
Ticket URL: <https://trac.macports.org/ticket/40893#comment:43>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list