[MacPorts] #55857: boost @1.66.0_0 +universal has no i386 symbols

MacPorts noreply at macports.org
Mon Mar 12 04:26:07 UTC 2018


#55857: boost @1.66.0_0 +universal has no i386 symbols
-----------------------+---------------------------
  Reporter:  devernay  |      Owner:  ryandesign
      Type:  defect    |     Status:  closed
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:  fixed     |   Keywords:  i386 haspatch
      Port:  boost     |
-----------------------+---------------------------

Comment (by ccorn):

 Replying to [comment:21 ryandesign]:
 > ccorn, could you be more specific about what change you needed to make?
 Maybe attach a patch?

 I mean [https://github.com/ccorn/macports-
 ports/commit/f2867d6d55d057f4a36cfbedbc18d53a39f8682c this patch]. Since I
 have made other patches which are not in ideal shape for contribution, I
 am not exactly sure whether you actually need them.

 > boost built fine on Darwin 9 PowerPC on our build server (but we don't
 build universal).
 Interesting. Here is my explanation attempt:

 `Boost.Containers` uses allocation functions. Some of those, with
 functionality like `posix_memalign`, are not available in older OS such as
 Darwin 9, therefore `Boost.Containers` comes with a compatibility layer
 built from C sources, particularly `alloc_lib.c`. This is compiled using
 the configured C++ compiler with `-x c -fexceptions` and not the usual
 `<cxxflags>` as configured in `user-config.jam` but with `<cflags>`
 instead. So if you compile for a non-default architecture on Darwin 9 or
 earlier, such as PPC64, you should get architecture mismatches when
 linking. I got those until I patched the `user-config.jam` to include
 `<cflags>\"${configure.cflags} [get_canonical_archflags cc]\"`.

--
Ticket URL: <https://trac.macports.org/ticket/55857#comment:22>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list