GithubHelp home page GithubHelp logo

danoli3 / ofxiosboost Goto Github PK

View Code? Open in Web Editor NEW
274.0 30.0 96.0 48.76 MB

iOS Boost Library 1.60.0 (arm64, armv7, i386, x86_64) Pre-compiled and Build Script (libc++ and libstdc++) - Boost iOS

License: Boost Software License 1.0

Makefile 0.01% C++ 99.77% Shell 0.04% Ruby 0.01% Objective-C++ 0.01% C 0.19%

ofxiosboost's Introduction

ofxiOSBoost for Boost 1.60.0 image


Boost C++ Libraries 1.60.0 Pre-compiled for iOS

image

  • Addon with Boost 1.60.0 for iOS / Xcode
  • Precompiled library and Command to build yourself
  • Master is currently a Fat Lib of All Standard Architectures
  • Check Branches for others or to be specific
  • Designed for use as an open frameworks addon, however should definitely work for other iOS projects
  • Built with clang++ and using libc++ and std=c++11
  • License: See Boost License LICENSE.MD

============

Where to checkout?

  • For openframeworks: Checkout in the addons folder like so: addons/ofxiOSBoost
  • For others: anywhere you please

============

How To Link to an Xcode Project?

In Xcode Build Settings for your project:

  • Add to Library Search Paths ( LIBRARY_SEARCH_PATHS ) $(SRCROOT)/../../../addons/ofxiOSBoost/libs/boost/lib/ios
  • Add to Header Search Paths ( HEADER_SEARCH_PATHS )
    $(SRCROOT)/../../../addons/ofxiOSBoost/libs/boost/include

In Xcode for a Build Target select the Target under Build Phases

  • Add to 'Link Binary With Libraries' the libboost.a found in the ofxiOSBoost/libs/boost/lib/ios directory.

If not openFrameworks just add the libs/boost/include to Header Search Paths and the libs/boost/ios to Library Search Paths

============

Architectures in Pre-Build Library (Fat Lib)

See the other branches on this repository (All libc++ std=c11)

  • arm64 : (iOS 7, 8, 9 64bit only) [iPhone 5S, iPhone 6/6S, iPhone 6/6S Plus, iPad Air /2, iPad Mini Retina 1/2/3/4, iPad Pro]
  • armv7 : (iOS 5, 6, 7, 8, 9) [All devices]
  • i386 : (iOS Simulator iPad 2, 3, 4, iPhone 4S, 5, 5C)
  • x86_64: (iOS Simulator iPad Air, iPhone 5S, iPhone 6/6S, iPhone 6/6S Plus)

Check Apple's Hardware sheet if you need to verify: Apple's Device compatibilty Matrix

** Armv7s has been removed due to Apple phasing our the requirement from the STANDARD_ARCHITECTURES.

============

For tvOS - Checkout the ofxtvOSBoost repo:

============

How to Build?

  1. You don't need to. This has the pre-compiled versions of BOOST for you to use
  2. If you would prefer to build it yourself checkout the script included in the scripts directory.

=============

How to use Build Script

  • Download files (suggested you download the files to addons/ofxiOSBoost for openFrameworks)
  • Double click and run scripts/build-libc++ (this will download the 1.60.0 version of boost and begin compiling the library).
  • Once completed in the terminal continue with the next steps.
  • Add the ofxiOSBoost to your project (src and libs for your chosen architecture)`

Build with Bitcode Embedded:

  • Build with embedded bitcode by running the scripts/build-libc++withBitcode

Alternative Build Script:

  • Build using libstdc++ by running the scripts/build-libstdc++

Clean script

  • Run the clean script from scripts/cleanAll to remove pre-compiled code and the final built library

============

Documentation on Boost 1.60.0

See: http://www.boost.org/users/history/version_1_60_0.html

Version 1.60.0 (Date): December 17th, 2015 15:52 GMT

============

Troubleshooting:

Undefined symbols link error (For libc++ release)

If you use libraries like serialization you might see link errors in Xcode 6 especially when the framework was built using --with-c++11 flag.

    Undefined symbols for architecture i386:
    "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:
    void std::__1::vector<boost::archive::detail::basic_iarchive_impl::cobject_id, std::__1::allocator<boost::archive::detail::basic_iarchive_impl::cobject_id> >::__push_back_slow_path<boost::archive::detail::basic_iarchive_impl::cobject_id>(boost::archive::detail::basic_iarchive_impl::cobject_id&&) in boost(libboost_serialization_basic_iarchive.o)

You have to change your project or target build settings.

Under Apple LLVM 6.0 - Language - C++ make the following changes

C++ Language Dialect to C++11 [-std=c++11] C++ Standard Library to libc++ (LLVM C++ standard library with C++11 support)

Parse errors when including boost/type_traits.hpp

If you happen to include <boost/type_traits.hpp> header file, you may see compile errors like this

Unexpected member name of ';' after declaration specifiers

To fix this problem, include the following line in your porject ***-Prefix.pch file.

#define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0

ofxiosboost's People

Contributors

bryant1410 avatar danoli3 avatar egv avatar hrubymar10 avatar kelvinhongkjy avatar kersson avatar knshiro avatar objsal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ofxiosboost's Issues

XCode project broken for XCode 10

The project appears to be completely broken

Showing Recent Messages
/Users/Caleb/Coding/GitHub/ofxiOSBoost/example-oF/Project.xcconfig:6: could not find included file '../../../libs/openFrameworksCompiled/project/ios/CoreOF.xcconfig' in search paths (in target 'emptyExample')

screen shot 2019-02-20 at 10 27 23 pm

Boost built and ready for iOS/macOS (repo)

Just to help and save other developers time

I've made a repository which contains Boost and OpenSSL built and ready for iOS and macOS architectures.

Includes thread-safe libraries aswell!

If possible, do not close this issue, just trying to help!

boost.a needs to be libboost.a for Cocoapods

Trying to use the Cocoapod for this project it almost works out of the box, except that the linker can't find boost. I found the fix to be renaming boost.a to libboost.a.

My fix for the moment is to add this to the projects Podfile:

post_install do |installer|
    # ofxiOSBoost has the boost library named 'boost.a', but it needs to be
    # called 'libboost.a' for the linker to find it, we will rename it here:
    boost_root_path = installer.sandbox.pod_dir('ofxiOSBoost')
    boost_lib_path = boost_root_path.join('libs/boost/ios/boost.a')
    boost_lib_path.rename(boost_lib_path.parent.join 'libboost.a') if boost_lib_path.exist?
end

But if some fix could be made upstream here that would be great.

error build with library boost::coroutine

"hi, dude, does boost 1.56.0 boost::context and boost::coroutine support iOS. I build this two libs and found some error.
With the origin script by you, boost::context build fails on
darwin.compile.c++ iphone-build/boost/bin.v2/libs/context/build/darwin-8.1iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o libs/context/src/unsupported.cpp:7:2: error: "platform not supported" #error "platform not supported" ^ 1 error generated. "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++" "-arch" "armv7" "-arch" "armv7s" "-arch" "arm64" "-fvisibility=hidden" "-fvisibility-inlines-hidden" "-DBOOST_AC_USE_PTHREADS" "-DBOOST_SP_USE_PTHREADS" "-std=c++11" "-stdlib=libc++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -pthread -arch arm -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -D_LITTLE_ENDIAN -I"." -c -o "iphone-build/boost/bin.v2/libs/context/build/darwin-8.1iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o" "libs/context/src/unsupported.cpp" ...failed darwin.compile.c++ iphone-build/boost/bin.v2/libs/context/build/darwin-8.1~iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o..

As http://www.boost.org/doc/libs/1_56_0/libs/context/doc/html/context/requirements.html says we should specify additional properties at bjam command line:target-os, abi, binary-format, architecture and address-model
I change boost.sh:268
./bjam -j16 --build-dir=iphone-build -sBOOST_BUILD_USER_CONFIG=$BOOST_SRC/tools/build/example/user-config.jam --stagedir=iphone-build/stage --prefix=$PREFIXDIR toolset=darwin architecture=arm target-os=iphone macosx-version=iphone-${IPHONE_SDKVERSION} define=_LITTLE_ENDIAN link=static stage > "${LOG}" 2>&1
to
./bjam -j16 --build-dir=iphone-build -sBOOST_BUILD_USER_CONFIG=$BOOST_SRC/tools/build/example/user-config.jam --stagedir=iphone-build/stage --prefix=$PREFIXDIR toolset=darwin abi=aapcs binary-format=mach-o address-model=32 architecture=arm target-os=iphone macosx-version=iphone-${IPHONE_SDKVERSION} define=_LITTLE_ENDIAN link=static stage > "${LOG}" 2>&1

this fails like"

Current Build Script's bjam command line argument fails on build library boost::coroutine

darwin.compile.c++ iphone-build/boost/bin.v2/libs/context/build/darwin-8.1~iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o libs/context/src/unsupported.cpp:7:2: error: "platform not supported" #error "platform not supported" ^ 1 error generated. "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++" "-arch" "armv7" "-arch" "armv7s" "-arch" "arm64" "-fvisibility=hidden" "-fvisibility-inlines-hidden" "-DBOOST_AC_USE_PTHREADS" "-DBOOST_SP_USE_PTHREADS" "-std=c++11" "-stdlib=libc++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -pthread -arch arm -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -D_LITTLE_ENDIAN -I"." -c -o "iphone-build/boost/bin.v2/libs/context/build/darwin-8.1~iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o" "libs/context/src/unsupported.cpp" ...failed darwin.compile.c++ iphone-build/boost/bin.v2/libs/context/build/darwin-8.1~iphone/release/architecture-arm/link-static/macosx-version-iphone-8.1/target-os-iphone/threading-multi/unsupported.o..

boost locale not included

I see that locale is not one of the included boost libs, but can it be? I tried adding it to the BOOST_LIBS variable, but then I get an error in the output.

Thoughts? All the output seems squashed, so I can see what the real issue is yet.

<boost/...> file not found error

i add the include file and static library to my project and it take error like 'boost/core/noncopyable.hpp' file no found
how can i deal with this problem

Linked failed

I added the library following your instructions, but when I try to build I get the following errors

ld: warning: directory not found for option '-L/Users/../ofxiOSBoost-master/libs/boost/lib/ios'
ld: library not found for -lboost
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Undefined symbols for architecture arm64

Hello,

I got a problem like this,

Undefined symbols for architecture arm64:

"typeinfo for boost::archive::detail::basic_pointer_oserializer", referenced from:

and I used serialization libraries with LLVM 8.0 - c++, any solutions for this?

Thank you.

duplicate symbol for architecture arm64, libboost.a, file was built for unsupported file format

ld: warning: ignoring file /Users/user/Documents/iOSProjects/MyApp/Pods/ofxiOSBoost_lfs/libs/boost/ios/libboost.a, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (arm64): /Users/user/Documents/iOSProjects/MyApp/Pods/ofxiOSBoost_lfs/libs/boost/ios/libboost.a
duplicate symbol _main in:
    /Users/user/Library/Developer/Xcode/DerivedData/MyApp-hkghxuzbgfjmgpgbuebcwuyymaku/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/arm64/main.o
    /Users/user/Library/Developer/Xcode/DerivedData/MyApp-hkghxuzbgfjmgpgbuebcwuyymaku/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/MyApp.build/Objects-normal/arm64/AppDelegate.o
ld: 1 duplicate symbol for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

pod file (Cocoapods):

platform :ios, '11.3'
use_frameworks!
target 'MyApp'
pod 'OpenCV'
pod 'ofxiOSBoost_lfs'
pod 'tinyxml'

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['ARCHS'] = 'arm64'
    end
  end
end

Visibility settings cause warnings when compiling for Release

When compiling our app for Release I get warnings like:

ld: warning: direct access in void boost::throw_exception<boost::gregorian::bad_month>
(boost::gregorian::bad_month const&) to global weak symbol typeinfo for 
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::
gregorian::bad_month> > means the weak symbol cannot be overridden at runtime. This was 
likely caused by different translation units being compiled with different visibility 
settings.

I can see this occurs because "Symbols Hidden by Default" is YES in a Release build. A bit of Googling suggests that boost should have been compiled with -fvisibility=hidden -fvisibility-inlines-hidden, which was the case until this commit.

Would the fix be as simple as reintroducing these compilation options, or do they cause other problems?

Cannot build libtorrent with your boost

im trying build libtorrent-rasterbar using
./configure --prefix=/Myfolder --with-openssl=/FolderOpensslBuilded --with-boost=/ofxiOSBoost-1.58.0-libc- --with-boost-libdir=/ofxiOSBoost-1.58.0-libc-/lib

and i have a problem
Checking for boost libraries:
checking for boostlib >= 1.36... yes
checking whether the Boost::System library is available... yes
configure: error: Boost.System library not found. Try using --with-boost-system=lib

seem to be missing lboost_system, how can i fix this problem

linker errors when building for simulator in Xcode 7

I just updated to Xcode 7, and when I build for any simulator, I'm gettings this error message:

ld: in ....../libtracker.a(c_regex_traits.o), building for iOS simulator, but linking in object file built for OSX, for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any idea what could be causing this?

EXC BAD ACCESS Error on startup on device but not on simulator

I include ofxiOSBoost in my Xcode project. I also include QuantLib 1.6 from http://iphonesdkdev.blogspot.nl/2015/06/quantlib-16-framework-for-ios-and-mac.html. The project uses c++11 with libc++.

On the simulator the app runs without problems. On a real device it crashes with a EXC_BAD_ACCESS on startup. The stack trace is

#0  0x00000001000f7d88 in long double boost::math::detail::erf_imp<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> >(long double, bool, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&, mpl_::int_<53> const&) at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:221
#1  0x00000001000f7b50 in boost::math::tools::promote_args<long double, float, float, float, float, float>::type boost::math::erf<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> >(long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&) at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:1081
#2  0x00000001000f7ac0 in boost::math::detail::erf_initializer<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy>, mpl_::int_<53> >::init::do_init(mpl_::int_<53> const&) at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:1000
#3  0x00000001000f7a78 in boost::math::detail::erf_initializer<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy>, mpl_::int_<53> >::init::init() at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:994
#4  0x00000001000cd4e8 in boost::math::detail::erf_initializer<long double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy>, mpl_::int_<53> >::init::init() at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:993
#5  0x00000001000cba6c in __cxx_global_var_init.77 at /Users/.../Frameworks/boost.framework/Headers/math/special_functions/erf.hpp:1038
#6  0x00000001200508d8 in ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) ()
#7  0x0000000120050a78 in ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) ()
#8  0x000000012004c0dc in ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) ()
#9  0x000000012004b280 in ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) ()
#10 0x000000012004b334 in ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) ()
#11 0x000000012003e088 in dyld::initializeMainExecutable() ()
#12 0x0000000120042130 in dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) ()
#13 0x000000012003d044 in _dyld_start ()

It fails when initializing the static vars in the erf.hpp file.

Has anybody any idea how to solve this?

boost iostreams support with zlib

Thanks for the work you've gone on this! I was attempting to add the boost iostreams library support by adding iostreams to the end of the BOOST_LIBS line in the sh scripts files. Everything seems to compile fine and if I dump the library with "nm -g boost.a" the iostreams exports are listed in the library contents. The problem is that the boost::iostreams::zlib functionality is missing which results in linker errors when attempting to link to the boost.a library from an app build. This is more of a suggestion for ofxiOSBoost than an issue, but if iostreams with zlib support was built into the library then it might fix the issue if anyone else was having it as well. Thanks!

CocoaPods Podspec

Have received a few e-mails asking to get the releases onto CocoaPods.

I'll work this one out soon.

Dropping armv7s for Boost 1.57.0

Following Apple's guide on this as STANDARD_ARCHITECTURES no longer includes armv7s.

I've commented the armv7s parts out for the 1.57.0 script for now. Will be removing them for 1.58.0 completely.

Since all iOS Devices that run armv7s, work with armv7 you can see why Apple is doing this, especially after forcing arm64 from February 2015.

Update and New Boost Releases

**Update for all recent versions of Boost and make releases: **

  • 1.61.0
  • 1.62.0
  • 1.63.0
  • 1.64.0
  • 1.65.0
  • 1.66.0
  • 1.67.0
  • 1.68.0
  • 1.69.0

Open to Module additions for each version here. I'm going to have a look at what is added in each release and add the best new components for iOS by default.
If anyone has ideas please comment here.

Planned for this week to do this

Also will be adding BITCODE by default for all releases added from 1.61.0

Repository Changes

  • Branches are now for master and buildscripts
  • Removing the current old revisions of boost branches.
  • Old versions are still kept in TAGS under releases.

Boost 1.60.0

Will be upgrading tomorrow.


Updated Libraries
Atomic:
Enforced proper alignment of atomic<> storage. This should fix possible issues on platforms that support atomic operations on data units larger than the native word size. This may also change binary layout of user's data structures that have atomic<> members.
Fixed compilation for PowerPC with IBM XL C++ compiler. Corrected memory barriers in PowerPC assembler.
Fixed compilation with MSVC-8 for ARM.
Fixed compilation with gcc 4.4 for x86-64, when 128-bit atomic operations were used. (#10994)
Optimized some gcc assembler blocks for x86/x86-64 to reduce the number of used registers. This may require binutils 2.10 or later.
Chrono - 2.0.5:
Fixes:
#10778 VC14 CTP4 Atomic don't compile with boost::chrono durations which are not TriviallyCopyable
#10840 Missing std:: qualifier for puts call in test_7868.cpp
#10851 Missing std:: qualifier for puts call in time_point_output.cpp
#10893 Minor doc typo in Boost.Chrono
#10992 Chrono IO state savers inconsistent with Boost.IO state savers
#10995 duration_put::put_value truncates fractional part
#11006 Impossible to instantiate time_fmt_io_saver due to several errors.
#11012 chrono_io v2 fail to compile with boost::chrono::duration< boost::rational >

Container:
Implemented Polymorphic Memory Resources.
Add more BOOST_ASSERT checks to test preconditions in some operations (like pop_back, pop_front, back, front, etc.)
Added C++11 back/front operations to basic_string.
Fixed bugs:
Trac #11627: "small_vector<T,n>::swap() appears to be broken".
Trac #11628: "small_vector<int,n> iterates over elements in destructor".
Trac #11697: "Wrong initialization order in tuple copy-constructor".
Trac #11698: "Missing return statement in static_storage_allocator".
GitHub #29: Doc fixes for flap_map complexity requirements.
GitHub #31: DL_SIZE_IMPL also dereference addr.
Context:
#11603 typo in PPC32/MACH-O asm

support for CYGWIN
Core:
In symbol demangling tools, added support for gabi++ ABI implementation used in Android NDK.
Added a new enable_if_has_type tool for performing SFINAE checks for presence of a nested type.
Filesystem:
New Features:
Added functions lexically_normal, lexically_relative, relative, and weakly_canonical. Many thanks to Jamie Allsop for his help and perseverance. Resolves tickets #1976, #5897, #6249.
Class path added types reverse_iterator and const_reverse_iterator, and added functions rbegin(), and rend().
C++11 noexcept supplied as specified in the Filesystem TS if supported by the compiler.
C++11 move constructors and move assignments supplied as specified in the Filesystem TS if supported by the compiler. Resolves #10291.
Existing functions whose names changed in the Filesystem TS are now supported under both the old and new names.
Added size() function to class path. Resolves #6874, Path should have a size() member function.
Tickets:
Fix #11733, Missing unistd.h include in boost/libs/filesystem/src/unique_path.cpp, by apply a patch from Idar Tollefsen.
Fix #5706, unique_path Fails on Windows for Temporary User Profiles, by applying pull request #15 from Sebastian Redl to fix a race condition in unique_path.
Fix #10591, boost::filesystem does not build on iOS 8, by applying a patch submitted by Daniel Seither.
Fix #9454, Boost Filesystem [library build] not compiling when BOOST_FILESYSTEM_NO_DEPRECATED is defined, by applying a patch submitted by Makesim.
Fix #11447, OpenBSD macro name misspelled, by applying a patch submitted by Jasper Lievisse Adriaanse.
Fix #11288, A patch to avoid redundant string allocations, by applying a patch submitted by Yevhen Ivannikov.
Resolve #11175, out-of-date documentation causing users to incorrectly expect that the library could be used with exceptions disabled.
Resolve #11166, by mitigating (i.e. reducing the likelihood of) a possible external file system race in remove().
Fix #7258, create_directories returns false if the path ends with a slash. Also fix related issues if path contains dot or dot-dot elements, and added test cases to the test suite.
Resolve #10766, parent_path() with redundant separator returns wrong value, by adding examples and notes to the reference documentation to show why the returned value is in fact correct, and to provide rationale for that behavior. See path.itr, and path.decompose parent_path() and filename() sections of the reference docs.
Close #7607, path should not infer an invisible "." at the end of a path that ends with a slash, as resolved by #7258 and #10766.
Close #11061, #11062, Impossible to traverse the path of the reverse iterator, as effectively resolved by the addition of the class path reverse iteration feature. The reference documentation has also been updated with a note warning about the limitations of class path iterators.
Other fixes:
Clear several spurious GCC warnings.
Fix bug in file_status and recursive_directory_iterator: C++ turns an explicit constructor with all arguments except first defaulted into non-explicit single argument constructor.
Apply Reference docs editorial cleanups: Use same style sheet as the rest of the documentation. Tweak tab font size. Fix excessively long lines in tables, synopsis.
Minor fixes, including pull requests from Jonathan Wakely and Marcel Raad.
Flyweight:
Maintenance fixes.
Fusion:
All of fusion containers and generators now support C++11 variadic templates. (pull-request 89, pull-request 97, pull-request 100)
Special notice for fusion::vector
Due to implementation limitation, numbered form (i.e. fusion::vectorN) is provided via C++11 aliasing templates and deprecated in C++11 or later. In this case, you should check BOOST_FUSION_HAS_VARIADIC_VECTOR macro and switch usage because some partial specialization would become compile error (e.g. pull-request for Spirit).
fusion::nview now support C++11 variadic templates. (pull-request 90)
fusion::fold is now SFINAE-friendly. (pull-request 102)
Bug fixes:
The generic fusion sequence convert to a deque fails with a compiler error. (#11572)
(doc) Return type of functions incorrect. (#3358)
Interprocess:
Improved offset_ptr performance and removed any undefined behaviour. No special cases needed for different compilers.
Fixed bugs:
Trac #11699 ("Forward declarations of std templates causes stack corruption under Visual Studio 2015").
Intrusive:
Advanced lookup and insertions in ordered associative containers now support comparison functions that are not required to offer the same strict weak ordering as key_compare, the container must be partitioned in regards to the passed comparison object.
Fixed bugs:
Boost Trac #11701: Regression in boost::intrusive::set::equal_range
Boost Trac #11765: sgtree.hpp:830: bad if test ?
Lexical Cast:
Fixed usage of lexical_cast with move only types #11570
Fixed crash when BOOST_LCAST_NO_COMPILE_TIME_PRECISION is defined #11669
Suppress some of the warning reported in #11570 and #4946
Locale:
Implemented generic codecvt facet and add general purpose utf8_codecvt facet
Added posix locale support for FreeBSD 10.0 and above
Fixed issues #10017 (sun redefinition on SunOS), #11163 (set_default_messages_domain incorrect behavior), #11673 build issues
Some warning cleanup
Fixed tests for latest ICU versions
Added workaround for libc++ issues
Added new defines BOOST_LOCALE_ENABLE_CHAR16_T and BOOST_LOCALE_ENABLE_CHAR32_T to enable C++11 char16_t and char32_t instead of deprecated ones
Log:
General changes:
On Windows, the configuration macro BOOST_LOG_USE_WINNT6_API is no longer used by the library. The target Windows version should be configured by defining macro BOOST_USE_WINAPI_VERSION.
Bug fixes:
Fixed compilation for Android using Google NDK. (#11559)
Fixed compilation of some logging statements, where the first object to be put into stream is not directly supported by formatting_ostream. (#11549)
Added a workaround for Solaris Studio 12.4, which should fix the compilation of formatting_ostream. (#11545)
Fixed compilation when native wchar_t type is disabled. (#11541)
Fixed exporting symbols from the boost_log_setup library on POSIX-like systems.
Fixed compilation of character decorators.
Added a workaround for incorrect file name generation in text file sink backend, when the file name contains date/time placeholders. (#11691)
See changelog for more details.
Move:
Fixed bug Trac #11615: "Boost.Move should use the qualified name for std::size_t in type_traits.hpp",
Multi-index Containers:
Fixed an interoperability problem with Qt due to the optional definition of a macro with name foreach in this framework.
Maintenance fixes.
odeint:
New features:
Added functionality to throw an exception if too many ODE steps are performed.
Added possibility to limit maximal step size in adaptive methods.
several Bug fixes, see https://github.com/headmyshoulder/odeint-v2/issues
Optional:
Changed the implementation of boost::none again. Now it is a const object with internal linkage (as any other tag). This fixes #11203.
Predef:
Add detection of SIMD hardware.
See history for more details.
Test:
Boost.test v3.1 see the 'Change log' section for details.
New features
Improved Command Line Interface
Improved dataset API
Bug fixes
#3384, #3897, #6032, #6859, #7257
#9228, #10317, #11279, #11478
#11571, #11623, #11624, #11625

Thread - 4.6.0:
New Experimental Features:
#11231 Allow to set continuation future's destructor behavior to non-blocking
#11424 Provide shared_timed_mutex as an alternative name for shared_mutex and deprecate the use of shared_mutex as a timed mutex
#11734 future::then(Cont) should be able to execute the contination on undetermined thread
#11736 Allow to use launch::executor on future::then(launch::executor, cont)
#11737 Add a launch::inherit policy that can be used on ::then() to use the policy of the parent future Fixed Bugs:
#3926 thread_specific_ptr + dlopen library causes a SIGSEGV.
#6377 Condition variable blocks when changing time
#6787 boost::thread::sleep() hangs if system time is rolled back
#7665 this_thread::sleep_for no longer uses steady_clock in thread
#7720 exception lock_error while intensive locking/unlocking of mutex
#9309 test_latch fails often on clang-darwin-tot11
#10788 GetLogicalProcessor isn't available for Windows platform less or equals to 0x0502
#11090 ex_future_unwrap- ThreadSanitizer: lock-order-inversion (potential deadlock)
#11158 Pthread thread deadlock when faketime used
#11174 boost::condition_variable::timed_wait with predicate unexpectedly wakes up while should wait infinite
#11185 Incorrect URL redirection
#11192 boost::future<>::then() with an executor doesn't compile when the callback returns a future
#11250 future made from make_exceptional fails on assertion in destructor
#11256 future<>::is_ready() == false in continuation function
#11261 bad use of scoped threads in basic_thread_pool
#11262 bad use of direct pointer in shared_state_nullary_task
#11263 lock already locked lock
#11266 boost::packaged_task has invalid variadic signature
#11302 boost thread doesn't build with BOOST_THREAD_PATCH.
#11322 sleep_for() nanoseconds overload will always return too early on windows
#11329 using declarative for GetProcessHeap, .... fails
#11368 boost thread's usage of CreateWaitableTimer wakes PC from sleep (doh)
#11377 Boost condition variable always waits for system clock deadline
#11435 gcc compiler warning in future.hpp
#11555 devector.hpp assumes allocator_traits_type is always present
#11562 Timer (using steady_clock) expires after computer time is set forward on Ubuntu 64-bit
#11672 Thread: Should use unique_ptr, not auto_ptr
#11688 thread::try_join_until: Avoid busy wait if system clock changes
#11716 ::then(f) should inherit the parent Executor

UUID:
Added a workaround for MSVC codegen bug that could cause crashes when comparing UUIDs.
Added detection of AVX being enabled with MSVC compiler switches.

Xcode 7

I find some error issues when running my project on xcode 7 iOS simulator. Error tip is "building for iOS simulator, but linking in object file built for OSX, for architecture x86_64"

Add support for compiling boost.context in iphone

Hello @danoli3,

Thanks for this great script. It has been helping me a lot so far. However, figuring out how to compile boost.context is being a bit of a hell.

I think it would be a good idea to add support for it directly in the script. There is a stackoverflow question here that gives advice on how it can be achieved:

http://stackoverflow.com/questions/26668858/how-to-build-boost-1-56-0-boostcontext-for-iphone-arm

Thanks for your time and this script. Wihtout it I would not have been able even to use boost in iphone at all probably.

Nuke old binaries... transition to release type. (exception master)

Going to be Big repo cleaning the repo

  • Commit hashes will be updated
  • Forks will require pull from upstream to keep up to date.
  • Forks history will not be changed if you don't want to update
  • Binaries from all previous commits will be removed to lessen repo checkout size
  • Older Releases now have the binaries as apart of the release upload (tags associated with source only and have the download to the "binary" release on the github page).
  • Master will retain the "current" latest binaries for libc++. Those are the only binaries that will be kept in this repo / git history.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.