Changes between Initial Version and Version 1 of Ticket #55857, comment 22


Ignore:
Timestamp:
Mar 12, 2018, 4:32:15 AM (6 years ago)
Author:
ccorn
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #55857, comment 22

    initial v1  
    77Interesting. Here is my explanation attempt:
    88
    9 `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]\"`.
     9`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 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]\"`.