Boost C++ Libraries: Ticket #1720: Need for 32- and 64-bit libraries on Windows with suitable naming convention. https://svn.boost.org/trac10/ticket/1720 <p> From: Beman Dawes &lt;bdawes &lt;at&gt; acm.org&gt; Subject: Re: [1.35.0] Release Candidate 2 available Newsgroups: gmane.comp.lib.boost.devel Date: 2008-03-26 20:58:52 GMT (25 minutes ago) </p> <p> Stephen Nuchia wrote: </p> <blockquote class="citation"> <p> I am using boost in the build of a commercial software package using Microsoft Visual Studio 2008 as the primary build engine. We are building for both 32- and 64-bit targets. There is no mention in the "getting started" documents of how to build the libraries for different bitnesses. </p> <p> In the VS2008 world the build control files are parameterized with macros, the relevant one of which is $(<a class="missing wiki">PlatformName</a>) which has the value "Win32" in 32-bit builds and "x64" in 64-bit builds. To permit maximally "clean" configuration control in the client code tree, the boost libs should live in directories with names based on this convention. </p> <p> I have manually created lib-Win32 and lib-x64 under the prior release and am in the process of doing the same under RC2. The purpose of this note is to suggest that there is probably a large audience of similarly situated folks who could use at least a breadcrumb in the documentation and, perhaps, some automation. The "installer" for windows should, in my opinion, use the ROOT_DIR/lib-$(<a class="missing wiki">PlatformName</a>) convention as well. </p> </blockquote> <p> Stephen, </p> <p> This sounds like an important issue, but not one we can address in the 1.35.0 time frame. </p> <p> Could you please open a trac ticket for it so it isn't lost? </p> <p> See <a class="ext-link" href="http://svn.boost.org/trac/boost/newticket"><span class="icon">​</span>http://svn.boost.org/trac/boost/newticket</a> </p> <p> Thanks, </p> <p> --Beman </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1720 Trac 1.4.3 anonymous Wed, 26 Mar 2008 21:28:48 GMT <link>https://svn.boost.org/trac10/ticket/1720#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:1</guid> <description> <p> This was my first ticket in this system and I missed the "type" field; it should probably be a feature request rather than a bug. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Marshall Clow</dc:creator> <pubDate>Wed, 26 Mar 2008 21:32:14 GMT</pubDate> <title>type changed https://svn.boost.org/trac10/ticket/1720#comment:2 https://svn.boost.org/trac10/ticket/1720#comment:2 <ul> <li><strong>type</strong> <span class="trac-field-old">Bugs</span> → <span class="trac-field-new">Feature Requests</span> </li> </ul> Ticket Vladimir Prus Thu, 27 Mar 2008 06:44:29 GMT <link>https://svn.boost.org/trac10/ticket/1720#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:3</guid> <description> <p> The building of 32/64 bit libraries is documented in Boost.Build documentation. Can you please list exact changes that this ticket calls for, as I cannot really make that out? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Steve Nuchia</dc:creator> <pubDate>Thu, 27 Mar 2008 14:27:19 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1720#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:4</guid> <description> <p> Starting from the index.html in the 1.35.0 RC2 snapshot contained in boost-windows-2008-03-24.zip, I can't find the documentation you're referring to. Following the instructions in more\getting_started\windows.html I find no mention of cross-compilation considerations in general nor this very common special case. </p> <p> So, it seems to me that there should be a more visible / discoverable link to the documentation that does exist; I still don't know where it is. The "Boost.Build" documentation I've been able to discover is generic and gives no direct help with building boost itself. If you would give me a more specific pointer I will draft some new language for the Windows getting started guide. </p> <p> The suggested change, beyond documentation, is to provide both sets of compiled libraries, in the build automation and in the pre-compiled installers for Windows, in separate folders named in such a way that they can be selected by the Visual Studio defalt platform selection macro: e.g. lib-Win32 and lib-x64. </p> <p> It doesn't help that the instructions given don't actually work; when I run bjam (from boost-jam-3.1.16-1-ntx86.zip) from the root of the boost tree I get the error cascade shown below. There has been some traffic on the list about bjam compatibility issues and I hope that's all this is. The RC2 build-from-source automation is, as it stands and as it is documented in the getting started guide, badly broken on Windows. I need some help getting past this before I can make good changes to the guide. </p> <p> C:\code\Version9\boost&gt; C:\code\Version9\boost&gt;bjam --toolset=msvc stage notice: could not find main target stage notice: assuming it's a name of file to create. C:/code/Version9/boost/tools/build/v2/build\project.jam:699: in attribute warning: rulename $($(project).attributes).get expands to empty string C:/code/Version9/boost/tools/build/v2/build\project.jam:710: in project.target C:/code/Version9/boost/tools/build/v2\build-system.jam:641: in load C:\code\Version9\boost\tools\build\v2/kernel\modules.jam:267: in import C:\code\Version9\boost\tools\build\v2/kernel/bootstrap.jam:132: in boost-build C:\code\Version9\boost\boost-build.jam:11: in module scope C:/code/Version9/boost/tools/build/v2/build\project.jam:699: in project.attribut e warning: rulename $($(project).attributes).get expands to empty string C:/code/Version9/boost/tools/build/v2/build\targets.jam:202: in object(project-t arget)@36.<span class="underline">init</span> C:/code/Version9/boost/tools/build/v2/kernel\class.jam:93: in new C:/code/Version9/boost/tools/build/v2/build\project.jam:710: in project.target C:/code/Version9/boost/tools/build/v2\build-system.jam:641: in load C:\code\Version9\boost\tools\build\v2/kernel\modules.jam:267: in import C:\code\Version9\boost\tools\build\v2/kernel/bootstrap.jam:132: in boost-build C:\code\Version9\boost\boost-build.jam:11: in module scope C:/code/Version9/boost/tools/build/v2/build\project.jam:699: in project.attribut e warning: rulename $($(project).attributes).get expands to empty string C:/code/Version9/boost/tools/build/v2/build\targets.jam:221: in get C:/code/Version9/boost/tools/build/v2/build\targets.jam:283: in targets-to-build </p> <p> C:/code/Version9/boost/tools/build/v2/build\targets.jam:252: in object(project-t arget)@36.generate C:/code/Version9/boost/tools/build/v2\build-system.jam:658: in load C:\code\Version9\boost\tools\build\v2/kernel\modules.jam:267: in import C:\code\Version9\boost\tools\build\v2/kernel/bootstrap.jam:132: in boost-build C:\code\Version9\boost\boost-build.jam:11: in module scope C:/code/Version9/boost/tools/build/v2/build\project.jam:699: in project.attribut e warning: rulename $($(project).attributes).get expands to empty string C:/code/Version9/boost/tools/build/v2/build\targets.jam:221: in get C:/code/Version9/boost/tools/build/v2/build\targets.jam:284: in targets-to-build </p> <p> C:/code/Version9/boost/tools/build/v2/build\targets.jam:252: in object(project-t arget)@36.generate C:/code/Version9/boost/tools/build/v2\build-system.jam:658: in load C:\code\Version9\boost\tools\build\v2/kernel\modules.jam:267: in import C:\code\Version9\boost\tools\build\v2/kernel/bootstrap.jam:132: in boost-build C:\code\Version9\boost\boost-build.jam:11: in module scope don't know how to make &lt;e&gt;stage ...found 1 target... ...can't find 1 target... </p> <p> C:\code\Version9\boost&gt; </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Thu, 27 Mar 2008 14:44:43 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1720#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:5</guid> <description> <p> <a class="ext-link" href="http://boost.org/boost-build2/doc/html/ix01.html"><span class="icon">​</span>http://boost.org/boost-build2/doc/html/ix01.html</a> has links to 64-bit building instructions for msvc. </p> <p> Your other point is about building both sets of compiled libraries. As far as pre-compiled installer goes, I think this is outside the scope of this issue. Those installers are provided by <a class="missing wiki">BoostConsulting</a>, so you can report the problem directly to them. As for building both sets of libraries, I'm not sure either. I believe 1.35.* will build a single variant by default. You can request extra variants on the command line. </p> <p> So, that leaves one issue, is that you suggest that 32-bit and 64-bit binaries be placed to different 'stage' directories. Is that right? </p> <p> As for your last issue -- do you have file C:\code\Version9\boost\Jamroot? It seems like something is seriously wrong with your source tree. </p> </description> <category>Ticket</category> </item> <item> <author>snuchia@…</author> <pubDate>Thu, 27 Mar 2008 22:15:13 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1720#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:6</guid> <description> <p> the three files with extension-free names in the root directory are missing from the .zip snapshots at <a class="ext-link" href="http://boost.cowic.de/rc/"><span class="icon">​</span>http://boost.cowic.de/rc/</a> ; this would seem to be a flaw in the snapshot packaging process. Perhaps a *.* effect? </p> <p> With Jamroot in place I'm having much better luck. </p> <p> The documentation suggested is tantalizing but hardly a step-by-step instruction. It gives some syntax but no clue where I'd put it. It does not look anything like the command line syntax for bjam. </p> <p> I've been working with open-source software for over twenty years and I've seen some pretty mystifing install instructions. Boost isn't actually bad by the standards of, say, TeX in the late 80's, but the ramp could be smoother. In the previous release I used the makefiles and VS solution files to build Regex and Test manually; we didn't need anything else. Today was my first time to run bjam successfully. </p> <p> Anyway, thanks for the help. I'll work out in detail what (if anything) I think should be changed and add another note when I'm done. </p> </description> <category>Ticket</category> </item> <item> <author>snuchia@…</author> <pubDate>Fri, 28 Mar 2008 15:22:44 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1720#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1720#comment:7</guid> <description> <p> The built-in Zip handler in Windows Server 2003, x64 edition fails to extract files with no dots in their names. There is no problem with the archives; the documentation recommends against using Microsoft's zip handler on performance grounds anyway but I have been trying to minimize the number of non-standard programs on this machine so I was trying to use it. </p> <p> More to come. -steve </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Sun, 31 May 2009 19:08:52 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/1720#comment:8 https://svn.boost.org/trac10/ticket/1720#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> <p> I have checked in a change to make the 'Invocation' section of Boost.Build explicitly list the address-model feature. Now that getting started guide directly links to the invocation section, I think the discovery process is sufficiently streamlined. </p> <p> As for building both 32-bit and 64-bit libraries by default, this does not seem to be a good idea to me -- we're trying to move away from 'build 8 variants and eat 4GB of disk space' approach take earlier. Therefore, I am not planning to do this. If you disagree, it would be best to discuss this on the mailing list, where real Windows experts and users may be able to comments on approaches. </p> Ticket