Boost C++ Libraries: Ticket #8266: context library don't compile for Mac OSX universal binary https://svn.boost.org/trac10/ticket/8266 <p> Message: </p> <pre class="wiki">:info:build :info:build darwin.compile.c++ bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-x86/pch-off/threading-multi/unsupported.o :info:build :info:build "/usr/bin/clang++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -dynamic -gdwarf-2 -fexceptions -fPIC -arch i386 -arch x86_64 -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_DYN_LINK=1 -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-x86/pch-off/threading-multi/unsupported.o" "libs/context/src/unsupported.cpp" :info:build :info:build libs/context/src/unsupported.cpp:7:2: error: "platform not supported" :info:build #error "platform not supported" :info:build ^ :info:build 1 error generated. </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8266 Trac 1.4.3 Serguei E. Leontiev <leo@…> Fri, 08 Mar 2013 10:53:25 GMT attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">patch-libs-context-130308-0.diff</span> </li> </ul> <p> workaround for build universal binary context library </p> Ticket Serguei E. Leontiev <leo@…> Fri, 08 Mar 2013 10:55:56 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:1</guid> <description> <p> Reference to this bug on <a class="missing wiki">MacPorts</a> sites: <a class="ext-link" href="https://trac.macports.org/ticket/38298"><span class="icon">​</span>https://trac.macports.org/ticket/38298</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Fri, 08 Mar 2013 11:38:24 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:2</guid> <description> <p> please post the <strong>complete</strong> output of command in libs/context/example (for instance): </p> <p> b2 toolset= ... --debug-building </p> <p> <strong>I highly recommend to provide regression tests for 32bit Mac OS X on boost-trunk! </strong> </p> </description> <category>Ticket</category> </item> <item> <author>Ryan Schmidt <boost@…></author> <pubDate>Sat, 09 Mar 2013 00:44:27 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:3</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/8266#comment:2" title="Comment 2">olli</a>: </p> <blockquote class="citation"> <p> please post the <strong>complete</strong> output of command in libs/context/example (for instance): </p> <p> b2 toolset= ... --debug-building </p> </blockquote> <p> You can find the <a class="ext-link" href="https://trac.macports.org/attachment/ticket/38298/boost_1.53_upgrade_main.log"><span class="icon">​</span>full build log</a> in the <a class="ext-link" href="https://trac.macports.org/ticket/38298"><span class="icon">​</span>MacPorts ticket</a>. If additional information is needed please let us know the exact commands you need us to run. </p> </description> <category>Ticket</category> </item> <item> <author>Andrew Fernandes <andrew@…></author> <pubDate>Sat, 09 Mar 2013 00:50:02 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:4</guid> <description> <p> Hey, Olli - the problem is not the code, precisely, it is in the jamfile. The current 1.53.0 release does not handle OS X universal building when for <code>&lt;address-model&gt;32_64</code>. Thus <code>bjam</code> quits with an "unsupported.c" error. </p> <p> The attached patch merely creates a pseudo-target for the universal address model as a stub, and includes the correct asm file for the given target during a universal build. It has been tested (on the <a class="missing wiki">MacPorts</a> tracker) and shown to include the correct code. </p> <p> The more important regression test actually needs to be done in boost-build, where universal architecture builds are tested, but that really needs to part of the core boost build, I think. </p> </description> <category>Ticket</category> </item> <item> <author>Serguei E. Leontiev <leo@…></author> <pubDate>Sat, 09 Mar 2013 13:55:06 GMT</pubDate> <title>cc set https://svn.boost.org/trac10/ticket/8266#comment:5 https://svn.boost.org/trac10/ticket/8266#comment:5 <ul> <li><strong>cc</strong> <span class="trac-author">leo@…</span> added </li> </ul> Ticket Serguei E. Leontiev <leo@…> Sun, 10 Mar 2013 00:46:36 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:6</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/8266#comment:2" title="Comment 2">olli</a>: </p> <blockquote class="citation"> <p> please post the <strong>complete</strong> output of command in libs/context/example (for instance): b2 toolset= ... --debug-building <strong>I highly recommend to provide regression tests for 32bit Mac OS X on boost-trunk! </strong> </p> </blockquote> <p> I don't have 32bit Mac OS X. I add line "using darwin : : c++ -arch ... : : ;" to file "tools/build/v2/user-config.jam" before each build. See attachment "b2-trunk-x86-32_64-example.log" (25 Kbyte). </p> <p> Before patch:<br /> ./bootstrap.sh --with-libraries=context --with-libraries=chrono<br /> </p> <p> For both, modern Xcode 4.6, and old Xcode 3.6.2 </p> <p> user-config.jam: -arch i386<br /> ./b2 architecture=x86 address-model=32<br /> OK </p> <p> user-config.jam: -arch x86_64<br /> ./b2 architecture=x86 address-model=64<br /> OK </p> <p> user-config.jam: -arch i386 -arch x86_64<br /> ./b2 architecture=x86 address-model=32_64<br /> Fail: #error "platform not supported" </p> <p> user-config.jam: -arch ppc<br /> ./b2 architecture=power address-model=32<br /> Fail: #error "platform not supported" </p> <p> For old Xcode 3.2.6 only (Mac OS X 10.6.8 with Rosetta) </p> <p> user-config.jam: -arch i386 -arch ppc<br /> ./b2 architecture=combined address-model=32<br /> Fail: #error "platform not supported" </p> <p> user-config.jam: -arch i386 -arch x86_64 -arch ppc<br /> ./b2 architecture=combined address-model=32<br /> Fail: #error "platform not supported" </p> <p> IMHO support universal binary has 2 level: </p> <ol><li>Mandatory level, only support Intel code for Xcode 4.x for development new 64-bit applications and support 32-bit x86 application 38298; </li><li>Impossible level, support both PowerPC and Intel code for Xcode 3.6 38339. </li></ol><p> "patch-libs-context-130308-0.diff" addressed only for Intel code for Xcode 4.x. After patch: </p> <p> user-config.jam: -arch i386 -arch x86_64<br /> ./b2 architecture=x86 address-model=32_64<br /> OK </p> <p> Examples seems working for both i386 and x86_64 architecture: </p> <pre class="wiki">leom-3:example leo$ arch -x86_64 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/exit size: 0x58 main: call start_fcontext( &amp; fcm, fc1, 0) f1: entered f1: call jump_fcontext( fc1, fc2, 0) f2: entered f2: call jump_fcontext( fc2, fc1, 0) f1: return leom-3:example leo$ arch -i386 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/exit size: 0x28 main: call start_fcontext( &amp; fcm, fc1, 0) f1: entered f1: call jump_fcontext( fc1, fc2, 0) f2: entered f2: call jump_fcontext( fc2, fc1, 0) f1: return leom-3:example leo$ arch -x86_64 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/jump main: call start_fcontext( &amp; fcm, fc1, 0) f1: entered f1: call jump_fcontext( fc1, fc2, 0) f2: entered f2: call jump_fcontext( fc2, fc1, 0) f1: return main: done leom-3:example leo$ arch -i386 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/jump main: call start_fcontext( &amp; fcm, fc1, 0) f1: entered f1: call jump_fcontext( fc1, fc2, 0) f2: entered f2: call jump_fcontext( fc2, fc1, 0) f1: return main: done leom-3:example leo$ arch -x86_64 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/transfer 2 + 7 == 9 5 + 6 == 11 main: done leom-3:example leo$ arch -i386 ../../../bin.v2/libs/context/example/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/transfer 2 + 7 == 9 5 + 6 == 11 main: done </pre><p> Regression test also not detect errors: </p> <pre class="wiki">leom-3:test leo$ arch -i386 ../../../bin.v2/libs/context/test/test_context.test/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/test_context Running 8 test cases... *** No errors detected leom-3:test leo$ arch -x86_64 ../../../bin.v2/libs/context/test/test_context.test/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/test_context Running 8 test cases... *** No errors detected </pre><p> For support PowerPC and universal binary with PowerPC also needed: </p> <ol><li>Convert "{jump,make}_ppc{32,64}_sysv_elf_gas.S" to "{jump,make}_ppc{32,64}_sysv_macho_gas.S", i.e. convert syntax of comments, external symbol name decoration, syntax of register name and assembler expression; </li><li>Compare Apple Mac OSX and IBM AIX documents about calling conventions, FPU and <a class="missing wiki">AltiVec</a> usage; </li></ol><p> But <a class="missing wiki">MacPorts</a> users, may be, voted just disable "context" library for PPC. </p> <p> Sorry for my best English </p> </description> <category>Ticket</category> </item> <item> <author>Serguei E. Leontiev <leo@…></author> <pubDate>Sun, 10 Mar 2013 00:48:53 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">b2-trunk-x86-32_64-example.log</span> </li> </ul> Ticket Serguei E. Leontiev <leo@…> Sun, 10 Mar 2013 00:56:48 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:7</guid> <description> <p> P.S. <a class="missing wiki">MacPorts</a> ticket about disabling PPC "context" library &lt;<a class="ext-link" href="https://trac.macports.org/ticket/38339"><span class="icon">​</span>https://trac.macports.org/ticket/38339</a>&gt; </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 08 Dec 2013 08:45:29 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/8266#comment:8 https://svn.boost.org/trac10/ticket/8266#comment:8 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> Ticket Ryan Schmidt <boost@…> Sun, 08 Dec 2013 09:01:50 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:9</guid> <description> <p> Thanks. What revision in your Subversion repository fixed this, please? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 08 Dec 2013 10:28:29 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:10 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:10</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/8266#comment:9" title="Comment 9">Ryan Schmidt &lt;boost@…&gt;</a>: </p> <blockquote class="citation"> <p> Thanks. What revision in your Subversion repository fixed this, please? </p> </blockquote> <p> <a class="ext-link" href="https://github.com/boostorg/context"><span class="icon">​</span>https://github.com/boostorg/context</a> -&gt; branch develop </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 15:07:10 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:11</guid> <description> <p> Build the static binary i've got an issue. Object file is created for a single architecture, then in the .a archive you<em>ll find only one architecture (in my case x86_64). </em></p> <p> darwin.compile.asm is insensible to user directives so i've no way to add my "-arch i386 -arch x86_64" directives </p> <p> So I've to patch my 1.54 release adding the options (cflags) to the darwin build. I Don't know if is the right way to do it, but i'm sure you could be something better. </p> <h3 class="section" id="modifiedfiletoolsbuildv2toolsgcc.jam">modified file 'tools/build/v2/tools/gcc.jam'</h3> <p> --- tools/build/v2/tools/gcc.jam 2013-12-29 13:13:00 +0000 +++ tools/build/v2/tools/gcc.jam 2013-12-29 14:36:31 +0000 @@ -635,7 +635,7 @@ </p> <blockquote> <p> actions compile.asm { </p> </blockquote> <ul><li> "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(&lt;)" "$(&gt;)" </li></ul><p> + "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) -D$(DEFINES) $(USER_OPTIONS) -I"$(INCLUDES)" -c -o "$(&lt;)" "$(&gt;)" </p> <blockquote> <p> } </p> </blockquote> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 15:12:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:12 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:12</guid> <description> <p> You could do something better :) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 29 Dec 2013 16:58:18 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:13</guid> <description> <p> You try to build for universal lib? Could you use the code from git master (contains code for MacOS X universal build -&gt; untested) and build it with adress-model=32_64 and report the result, please?! </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 17:47:26 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:14</guid> <description> <p> git clone <a class="ext-link" href="https://github.com/mirror/boost.git"><span class="icon">​</span>https://github.com/mirror/boost.git</a> boost </p> <p> macbook:boost marco$ ./b2 variant=release toolset=darwin threading=multi address-model=32_64 link=static context Performing configuration checks </p> <ul><li>arm : no (cached) </li><li>mips1 : no (cached) </li><li>power : no (cached) </li><li>sparc : no (cached) </li><li>x86 : yes (cached) </li></ul><p> ...found 14 targets... ...updating 3 targets... darwin.compile.c++ bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/unsupported.o libs/context/src/unsupported.cpp:7:2: error: "platform not supported" #error "platform not supported" </p> <blockquote> <p> <sup> </sup></p> </blockquote> <p> 1 error generated. </p> <blockquote> <p> "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/unsupported.o" "libs/context/src/unsupported.cpp" </p> </blockquote> <p> ...failed darwin.compile.c++ bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/unsupported.o... ...skipped &lt;pbin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi&gt;libboost_context.a(clean) for lack of &lt;pbin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi&gt;unsupported.o... ...skipped &lt;pbin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi&gt;libboost_context.a for lack of &lt;pbin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi&gt;unsupported.o... ...failed updating 1 target... ...skipped 2 targets... </p> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Sun, 29 Dec 2013 18:34:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:15 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:15</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/8266#comment:14" title="Comment 14">marco.serantoni@…</a>: </p> <blockquote class="citation"> <p> git clone <a class="ext-link" href="https://github.com/mirror/boost.git"><span class="icon">​</span>https://github.com/mirror/boost.git</a> boost </p> </blockquote> <p> could you use <a class="ext-link" href="https://github.com/boostorg"><span class="icon">​</span>https://github.com/boostorg</a> instead, please </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 19:02:59 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:16 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:16</guid> <description> <p> git clone <a class="ext-link" href="https://github.com/boostorg/boost.git"><span class="icon">​</span>https://github.com/boostorg/boost.git</a> boost_master git clone <a class="ext-link" href="https://github.com/boostorg/build.git"><span class="icon">​</span>https://github.com/boostorg/build.git</a> git clone <a class="ext-link" href="https://github.com/boostorg/context.git"><span class="icon">​</span>https://github.com/boostorg/context.git</a> git clone <a class="ext-link" href="https://github.com/boostorg/inspect.git"><span class="icon">​</span>https://github.com/boostorg/inspect.git</a> </p> <p> As said the .o files are made only for x86_64 and not for i386 -- </p> <p> macbook:boost_master marco$ ./b2 variant=release toolset=darwin threading=multi address-model=32_64 link=static context -d+2 Performing configuration checks </p> <ul><li>symlinks supported : yes (cached) </li><li>hardlinks supported : yes (cached) </li><li>arm : no (cached) </li><li>mips1 : no (cached) </li><li>power : no (cached) </li><li>sparc : no (cached) </li><li>x86 : yes (cached) </li></ul><p> darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o </p> <blockquote> <p> "g++" -x assembler-with-cpp -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/make_i386_x86_64_sysv_macho_gas.S" </p> </blockquote> <p> darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o </p> <blockquote> <p> "g++" -x assembler-with-cpp -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/jump_i386_x86_64_sysv_macho_gas.S" </p> </blockquote> <p> <a class="missing wiki">RmTemps</a> bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a(clean) </p> <blockquote> <p> rm -f "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a" </p> </blockquote> <p> darwin.archive bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a </p> <blockquote> <p> "/usr/bin/libtool" -static -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a" "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o" "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o" </p> </blockquote> <p> macbook:boost_master marco$ file ./bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o ./bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o: Mach-O 64-bit object x86_64 </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 19:11:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:17 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:17</guid> <description> <p> Same thing with develop branch. </p> <p> git clone --branch develop <a class="ext-link" href="https://github.com/boostorg/boost.git"><span class="icon">​</span>https://github.com/boostorg/boost.git</a> boost git clone --branch develop <a class="ext-link" href="https://github.com/boostorg/build.git"><span class="icon">​</span>https://github.com/boostorg/build.git</a> git clone --branch develop <a class="ext-link" href="https://github.com/boostorg/inspect.git"><span class="icon">​</span>https://github.com/boostorg/inspect.git</a> git clone --branch develop <a class="ext-link" href="https://github.com/boostorg/context.git"><span class="icon">​</span>https://github.com/boostorg/context.git</a> </p> <p> macbook:boost marco$ ./b2 variant=release toolset=darwin threading=multi address-model=32_64 link=static context -d+2 Performing configuration checks </p> <ul><li>symlinks supported : yes (cached) </li><li>hardlinks supported : yes (cached) </li><li>arm : no (cached) </li><li>mips1 : no (cached) </li><li>power : no (cached) </li><li>sparc : no (cached) </li><li>x86 : yes (cached) </li></ul><p> darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o </p> <blockquote> <p> "g++" -x assembler-with-cpp -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/make_i386_x86_64_sysv_macho_gas.S" </p> </blockquote> <p> darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o </p> <blockquote> <p> "g++" -x assembler-with-cpp -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DNDEBUG -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/jump_i386_x86_64_sysv_macho_gas.S" </p> </blockquote> <p> <a class="missing wiki">RmTemps</a> bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a(clean) </p> <blockquote> <p> rm -f "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a" </p> </blockquote> <p> darwin.archive bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a </p> <blockquote> <p> "/usr/bin/libtool" -static -o "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a" "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o" "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o" </p> </blockquote> <p> macbook:boost marco$ file bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/libboost_context.a: current ar archive random library macbook:boost marco$ file bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/jump_i386_x86_64_sysv_macho_gas.o: Mach-O 64-bit object x86_64 macbook:boost marco$ file bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/link-static/threading-multi/asm/make_i386_x86_64_sysv_macho_gas.o: Mach-O 64-bit object x86_64 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Sun, 29 Dec 2013 20:44:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:18 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:18</guid> <description> <p> hmm - I don't use Mac OS X (no access to it) and I'm not familiar how universal libs work internally. adding '-arch i386 -arch x86_64' fixes your problem? if yes then it should be added for the other boost libs too. if this is true I believe this is an issue of the boost.build system. </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 29 Dec 2013 20:52:49 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:19 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:19</guid> <description> <p> In OSX you can compile for multiple platforms and the result is collapsed in a single object file/binary. To instruct the compiler to threat the file for multiple architectures you have to give -arch argument(s). I've solved propagating the user environment to the assembler that already contains the -arch that i need. </p> <p> So the compiler elaborate the assembly and insert it in the two -arch sections. </p> <p> Yes, this solves the issue. </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Fri, 03 Jan 2014 18:31:18 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">patch_macosx_context_ppc.patch</span> </li> </ul> <p> Adding PPC32 and PPC64 for universal binary </p> Ticket marco.serantoni@… Fri, 03 Jan 2014 18:33:28 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:20 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:20</guid> <description> <p> Sorry if i continue in this ticket. </p> <p> I've ported the ppc_elf to ppc_match-o. I've tested the ppc32 but i'm unable to test the ppc64 side. </p> <p> This patch was done on 1.54.0, but should be not problematic adding it to developer tree. </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Fri, 03 Jan 2014 18:37:16 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">patch_macosx_context_ppc_v2.patch</span> </li> </ul> <p> i missed jump_combined_sysv_macho_gas.S , sorry </p> Ticket marco.serantoni@… Fri, 03 Jan 2014 18:37:35 GMT attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">patch_macosx_context_ppc_v2.2.patch</span> </li> </ul> <p> i missed jump_combined_sysv_macho_gas.S , sorry </p> Ticket marco.serantoni@… Sun, 05 Jan 2014 20:09:49 GMT attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_context_combined.patch</span> </li> </ul> <p> Patch for developer tree for combined option </p> Ticket marco.serantoni@… Sun, 05 Jan 2014 20:19:35 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:21 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:21</guid> <description> <p> I've added the patch for the development tree does all correct on platforms that handles PPC/PPC64 (boost_context_combined.patch) </p> <p> I've also added the arm platform that is available on the last releases of OSX. </p> <p> All works correctly. To further test i've manually generated (on two different systems) those files, covering all the spectrum (i386, x86_64, PPC32, PPC64, arm) </p> <p> 10.9.1 </p> <pre class="wiki">macbook:boost_develop marco$ file "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/make_combined_sysv_macho_gas.o" bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/make_combined_sysv_macho_gas.o: Mach-O universal binary with 3 architectures bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/make_combined_sysv_macho_gas.o (for architecture i386)Mach-O object i386 bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/make_combined_sysv_macho_gas.o (for architecture x86_64): Mach-O 64-bit object x86_64 bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/make_combined_sysv_macho_gas.o (for architecture armv4t): Mach-O object arm </pre><p> 10.6.8 </p> <pre class="wiki">mini:boost_develop marco$ file "bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o" bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o: Mach-O universal binary with 4 architectures bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o (for architecture i386)Mach-O object i386 bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o (for architecture ppc):Mach-O object ppc bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o (for architecture x86_64): Mach-O 64-bit object x86_64 bin.v2/libs/context/build/darwin-4.2.1/release/address-model-32_64/architecture-combined/link-static/threading-multi/asm/jump_combined_sysv_macho_gas.o (for architecture ppc64): Mach-O 64-bit object ppc64 </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>olli</dc:creator> <pubDate>Wed, 08 Jan 2014 21:12:39 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:22 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:22</guid> <description> <p> I've modified the patch - universal libraries are build with property address-model=32_64 (architecture x86 or power). Could you test the code in branch develop please? </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Wed, 08 Jan 2014 21:28:26 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:23 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:23</guid> <description> <p> Olli, The issue there is that you have splitted x86/ppc, universal binaries are BOTH at least. </p> <p> As you can see in the documentation: <a href="http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/reference.html">http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/reference.html</a> </p> <p> "The darwin toolset can generate so called "fat" binaries—binaries that can run support more than one architecture, or address mode. To build a binary that can run both on Intel and PowerPC processors, specify architecture=combined. To build a binary that can run both in 32-bit and 64-bit modes, specify address-model=32_64. If you specify both of those properties, a "4-way" fat binary will be generate." </p> <p> The combined architecture exists and is to be implemented (PPC/x86). </p> <p> In some cases, for example iPhone development, you could need to compile together x86 and ARM because the iPhone Emulator runs x86 binaries, the real iphone has an ARM processor. There is not an "architecture" already set, but the intention was have a pre-cooked meal :) </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Thu, 09 Jan 2014 00:13:56 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:24 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:24</guid> <description> <p> Not Working for x86 </p> <pre class="wiki">macbook:boost_develop marco$ ./b2 architecture=x86 address-model=32_64 context -d+2 Performing configuration checks - symlinks supported : yes (cached) - hardlinks supported : yes (cached) Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/make_i386_x86_64_sysv_macho_gas.S" Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/jump_i386_x86_64_sysv_macho_gas.S" darwin.link.dll bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/libboost_context.dylib "g++" -dynamiclib -Wl,-single_module -install_name "libboost_context.dylib" -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/libboost_context.dylib" "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o" "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o" -headerpad_max_install_names -g -arch i386 -arch x86_64 ld: warning: ld: warning: ignoring file bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o, file was built for unsupported file format ( 0xCF 0xFA 0xED 0xFE 0x07 0x00 0x00 0x01 0x03 0x00 0x00 0x00 0x01 0x00 0x00 0x00 ) which is not the architecture being linked (i386): bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.oignoring file bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o, file was built for unsupported file format ( 0xCF 0xFA 0xED 0xFE 0x07 0x00 0x00 0x01 0x03 0x00 0x00 0x00 0x01 0x00 0x00 0x00 ) which is not the architecture being linked (i386): bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o macbook:boost_develop marco$ file bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o: Mach-O 64-bit object x86_64 </pre> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Thu, 09 Jan 2014 00:17:34 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:25 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:25</guid> <description> <p> I was able to fix, passing thru the compiler with this changes: </p> <p> macbook:context marco$ git diff </p> <pre class="wiki">diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 1e5b096..dee50db 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -513,8 +513,8 @@ alias asm_context_sources #X86 universal alias asm_context_sources - : [ make asm/make_i386_x86_64_sysv_macho_gas.o : asm/make_i386_x86_64_sysv_macho_gas.S : @gas ] - [ make asm/jump_i386_x86_64_sysv_macho_gas.o : asm/jump_i386_x86_64_sysv_macho_gas.S : @gas ] + : asm/make_i386_x86_64_sysv_macho_gas.S + asm/jump_i386_x86_64_sysv_macho_gas.S : &lt;address-model&gt;32_64 &lt;architecture&gt;x86 &lt;binary-format&gt;mach-o </pre><p> RESULT </p> <pre class="wiki">macbook:boost_develop marco$ ./b2 architecture=x86 address-model=32_64 context -d+2 Performing configuration checks - symlinks supported : yes (cached) - hardlinks supported : yes (cached) darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o "g++" -x assembler-with-cpp -O0 -fno-inline -Wall -g -dynamic -gdwarf-2 -fexceptions -fPIC -arch i386 -arch x86_64 -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/make_i386_x86_64_sysv_macho_gas.S" darwin.compile.asm bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o "g++" -x assembler-with-cpp -O0 -fno-inline -Wall -g -dynamic -gdwarf-2 -fexceptions -fPIC -arch i386 -arch x86_64 -DBOOST_ALL_NO_LIB=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -I"." -c -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o" "libs/context/src/asm/jump_i386_x86_64_sysv_macho_gas.S" darwin.link.dll bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/libboost_context.dylib "g++" -dynamiclib -Wl,-single_module -install_name "libboost_context.dylib" -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/libboost_context.dylib" "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/make_i386_x86_64_sysv_macho_gas.o" "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/asm/jump_i386_x86_64_sysv_macho_gas.o" -headerpad_max_install_names -g -arch i386 -arch x86_64 </pre><pre class="wiki">macbook:boost_develop marco$ file bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/asm/make_i386_x86_64_sysv_macho_gas.o bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/asm/make_i386_x86_64_sysv_macho_gas.o: Mach-O universal binary with 2 architectures bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/asm/make_i386_x86_64_sysv_macho_gas.o (for architecture i386): Mach-O object i386 bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32_64/architecture-x86/link-static/asm/make_i386_x86_64_sysv_macho_gas.o (for architecture x86_64): Mach-O 64-bit object x86_64 </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 09 Jan 2014 16:45:41 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:26 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:26</guid> <description> <p> OK - I ddn't know that MacOS X can put code for 4 architectures in one library - thx to you to fix it.<br /> I've change the code in branch develop - I tried to reduce the selections in build/Jamfile.<br /> I'm a little bit astonished that </p> <pre class="wiki">[ make asm/make_i386_x86_64_sysv_macho_gas.o : asm/make_i386_x86_64_sysv_macho_gas.S : @gas ] </pre><p> does not work.<br /> Could you check that the library compiles for following configurations on MacOS X, please? </p> <pre class="wiki">architecture=x86 address-model=32 architecture=x86 address-model=64 architecture=x86 address-model=32_64 architecture=power address-model=32 architecture=power address-model=64 architecture=power address-model=32_64 architecture=combined address-model=32 architecture=combined address-model=64 architecture=combined address-model=32_64 </pre> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Thu, 09 Jan 2014 18:37:31 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:27 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:27</guid> <description> <p> It is a great idea the FAT binaries, it is not limited to 4, could have also more than 4 at time. Theorically could support x86/MIPS/MC98k/ARM/SPARC/POWERPC all together at expenses of size, i miss this features with /lib /lib64, one file N architectures ;) This is done from the compiler usually, that spawns N compiler one for each "-arch" and assemble all in a single .o or binary. </p> <pre class="wiki">KO - x86/32 KO - x86/64 OK - x86/32_64 KO - power/32 KO - power/64 (indicated as x86 in build file) OK - power/32_64 OK - combined/32 OK - combined/64 OK - combined/32_64 </pre><p> I've elaborated another patch to fix, you should avoid to use the [make ] and use the compiler to do the work. The issue with the x86/32 is referred to the label (probably 'as' doesn't like a label at the beginning of the row) Works if passing thru the compiler. </p> <pre class="wiki">diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 6c2a662..d7b5bde 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -143,8 +143,8 @@ alias asm_context_sources ; alias asm_context_sources - : [ make asm/make_ppc32_sysv_macho_gas.o : asm/make_ppc32_sysv_macho_gas.S : @gas ] - [ make asm/jump_ppc32_sysv_macho_gas.o : asm/jump_ppc32_sysv_macho_gas.S : @gas ] + : asm/make_ppc32_sysv_macho_gas.S + asm/jump_ppc32_sysv_macho_gas.S : &lt;address-model&gt;32 &lt;architecture&gt;power &lt;binary-format&gt;mach-o @@ -169,10 +169,10 @@ alias asm_context_sources ; alias asm_context_sources - : [ make asm/make_ppc64_sysv_macho_gas.o : asm/make_ppc64_sysv_macho_gas.S : @gas ] - [ make asm/jump_ppc64_sysv_macho_gas.o : asm/jump_ppc64_sysv_macho_gas.S : @gas ] + : asm/make_ppc64_sysv_macho_gas.S + asm/jump_ppc64_sysv_macho_gas.S : &lt;address-model&gt;64 - &lt;architecture&gt;x86 + &lt;architecture&gt;power &lt;binary-format&gt;mach-o &lt;target-os&gt;darwin ; @@ -224,8 +224,8 @@ alias asm_context_sources ; alias asm_context_sources - : [ make asm/make_i386_sysv_macho_gas.o : asm/make_i386_sysv_macho_gas.S : @gas ] - [ make asm/jump_i386_sysv_macho_gas.o : asm/jump_i386_sysv_macho_gas.S : @gas ] + : asm/make_i386_sysv_macho_gas.S + asm/jump_i386_sysv_macho_gas.S : &lt;address-model&gt;32 &lt;architecture&gt;x86 &lt;binary-format&gt;mach-o @@ -261,8 +261,8 @@ alias asm_context_sources ; alias asm_context_sources - : [ make asm/make_x86_64_sysv_macho_gas.o : asm/make_x86_64_sysv_macho_gas.S : @gas ] - [ make asm/jump_x86_64_sysv_macho_gas.o : asm/jump_x86_64_sysv_macho_gas.S : @gas ] + : asm/make_x86_64_sysv_macho_gas.S + asm/jump_x86_64_sysv_macho_gas.S : &lt;address-model&gt;64 &lt;architecture&gt;x86 &lt;binary-format&gt;mach-o </pre><p> Example of error (x86/32) </p> <pre class="wiki">mini:boost_develop marco$ ./b2 link=static architecture=x86 address-model=32 context Performing configuration checks - symlinks supported : yes (cached) - hardlinks supported : yes (cached) ...found 17 targets... ...updating 4 targets... Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o libs/context/src/asm/make_i386_sysv_macho_gas.S:59:suffix or operands invalid for `pop' as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o" "libs/context/src/asm/make_i386_sysv_macho_gas.S" ...failed Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o... Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o libs/context/src/asm/jump_i386_sysv_macho_gas.S:70:suffix or operands invalid for `jmp' as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o" "libs/context/src/asm/jump_i386_sysv_macho_gas.S" ...failed Jamfile&lt;/Users/marco/Development/boost_develop/libs/context/build&gt;.gas bin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o... ...skipped &lt;pbin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static&gt;libboost_context.a(clean) for lack of &lt;pbin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static&gt;asm/make_i386_sysv_macho_gas.o... ...skipped &lt;pbin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static&gt;libboost_context.a for lack of &lt;pbin.v2/libs/context/build/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static&gt;asm/make_i386_sysv_macho_gas.o... ...failed updating 2 targets... ...skipped 2 targets... </pre> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Thu, 09 Jan 2014 18:39:15 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/8266 https://svn.boost.org/trac10/ticket/8266 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">bind_processor_darwin.cpp</span> </li> </ul> <p> (for performance) </p> Ticket marco.serantoni@… Thu, 09 Jan 2014 18:45:06 GMT <link>https://svn.boost.org/trac10/ticket/8266#comment:28 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:28</guid> <description> <p> I've able compile also the context/performance with the bind_processor_darwin.cpp and this </p> <p> <strong>i had to remove the RT library that is not present/needed in OSX </strong> I don't know an elegant way to make it optional ONLY for darwin. </p> <pre class="wiki">diff --git a/performance/Jamfile.v2 b/performance/Jamfile.v2 index 108c0e1..718435c 100644 --- a/performance/Jamfile.v2 +++ b/performance/Jamfile.v2 @@ -17,7 +17,7 @@ project boost/context/performance : requirements &lt;library&gt;/boost/context//boost_context &lt;link&gt;static - &lt;linkflags&gt;"-lrt" + &lt;linkflags&gt;"" &lt;threading&gt;single ; @@ -57,6 +57,12 @@ alias sources : &lt;target-os&gt;windows ; +alias sources + : performance.cpp + bind_processor_darwin.cpp + : &lt;target-os&gt;darwin + ; + explicit sources ; exe performance </pre> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 12 Jan 2014 13:06:19 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:29 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:29</guid> <description> <p> Your last commit </p> <pre class="wiki">OK - x86/32 OK - x86/64 OK - x86/32_64 OK - power/32 OK - power/64 (indicated as x86 in build file) OK - power/32_64 OK - combined/32 OK - combined/64 OK - combined/32_64 </pre><p> Could you add bind_processor_darwin.cpp in boost/performance ? Doesn't is perfect, but is the best thing that is possible to do on Darwin platform :) </p> </description> <category>Ticket</category> </item> <item> <author>marco.serantoni@…</author> <pubDate>Sun, 12 Jan 2014 13:08:49 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8266#comment:30 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8266#comment:30</guid> <description> <p> Is all ok, was as x86 indicated i mean ;) </p> </description> <category>Ticket</category> </item> </channel> </rss>