Boost C++ Libraries: Ticket #1744: Change in default build variants broke "Getting Started" https://svn.boost.org/trac10/ticket/1744 <p> Boost.Build no longer builds the same library variants that it used to, which caused the instructions in the Getting Started guide to be wrong. </p> <p> Original description: </p> <h1 class="section" id="gettingstartedNoinformationonbuildingstaticlibrarieswithbjamunderWindows">[getting started] No information on building static libraries with bjam under Windows</h1> <p> Problem relates to the boost 1.35 with VC++ 8.0. </p> <p> When using bjam to build the Boost libraries from source there is no information provided in an easily accessible manner describing how to build static versions of those libraries for which such a thing is appropriate - threads, regex etc. As a number of libraries attempt to link statically by default this is quite a pain. </p> <p> The getting started guide for Windows found at 'more/getting_started/windows.html#or-build-binaries-from-source' provides no information on the bjam setting 'link=static'. In order to come across this information currently one needs to follow the link 'Boost.Build reference manual' close to the very bottom of the 'Getting Started' page, then take the 'Documentation' link and finally 'Static and shared libraries'. </p> <p> If additional information could be put in the bjam section of the getting started guide then this will 1) ensure less people wonder why the static libraries were not built in the first place 2) ensure less people have to hunt through the necessary links to find information on building static libraries. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1744 Trac 1.4.3 Marshall Clow Tue, 22 Apr 2008 15:29:15 GMT component changed; owner set https://svn.boost.org/trac10/ticket/1744#comment:1 https://svn.boost.org/trac10/ticket/1744#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">Matias Capeletto</span> </li> <li><strong>component</strong> <span class="trac-field-old">Building Boost</span> → <span class="trac-field-new">Documentation</span> </li> </ul> Ticket Daniel James Sat, 03 May 2008 10:52:04 GMT owner, summary changed https://svn.boost.org/trac10/ticket/1744#comment:2 https://svn.boost.org/trac10/ticket/1744#comment:2 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Matias Capeletto</span> to <span class="trac-author">Dave Abrahams</span> </li> <li><strong>summary</strong> <span class="trac-field-old">No information on building static libraries with bjam under Windows</span> → <span class="trac-field-new">[getting started] No information on building static libraries with bjam under Windows</span> </li> </ul> Ticket Dave Abrahams Sat, 03 May 2008 13:47:56 GMT status changed https://svn.boost.org/trac10/ticket/1744#comment:3 https://svn.boost.org/trac10/ticket/1744#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> <p> the default build process used to create both static and shared binaries. Has that changed? if you can suggest specific changes I can make to the text, that would save me some time. Thanks </p> Ticket olenz@… Thu, 12 Jun 2008 15:05:30 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:4</guid> <description> <p> I'm using a standard Linux distribution (kubuntu 8.04), and boost 1.35, and I do have the same problem, i.e. it is not Windows-specific. The static libraries are not built when using the instructions given in the "Getting started" documentation: </p> <p> <a href="http://www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html">http://www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html</a> </p> <p> Effectively, this means also, that the example from "Build a Simple Program Using Boost" does not work, as the static libraries do not exist. </p> </description> <category>Ticket</category> </item> <item> <author>olenz@…</author> <pubDate>Thu, 12 Jun 2008 15:24:22 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:5</guid> <description> <p> An additional comment: after some research, I found out that the way to build static libraries (on Unix, if you do not have bjam installed) is </p> <p> make BJAM_CONFIG='link=static' install </p> <p> which should probably go into the "Getting started" documentation, if you do not want to include an extensive paragraph about dynamic libraries and LD_LIBRARY_PATH... </p> </description> <category>Ticket</category> </item> <item> <author>olenz@…</author> <pubDate>Thu, 12 Jun 2008 15:38:29 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:6</guid> <description> <p> And one more... </p> <p> Finally, I also had to include "-lpthread" into the compilation command line to be able to successfully link the example program (oh, btw, I was always talking about the example in "How to Use a Boost Library Binary", not the "Header-only" one). This is by far not obvious for inexperienced users. </p> <p> I would guess that this is because I'm using a dual core machine, but as these are standard nowadays... </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Wed, 18 Jun 2008 20:14:10 GMT</pubDate> <title>owner, status changed; cc set https://svn.boost.org/trac10/ticket/1744#comment:7 https://svn.boost.org/trac10/ticket/1744#comment:7 <ul> <li><strong>cc</strong> <span class="trac-author">Vladimir Prus</span> added </li> <li><strong>owner</strong> changed from <span class="trac-author">Dave Abrahams</span> to <span class="trac-author">René Rivera</span> </li> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">new</span> </li> </ul> <p> I'm really not sure what to do about this one because it seems to me that someone must've changed a Boost.Build behavior to cause the Getting Started Guide to be broken. I certainly didn't make significant changes to the guide. So I'm reassigning this one to Rene and Cc'ing Volodya, without being sure that they're the right parties, to stimulate a discussion. Guys, if this has nothing whatever to do with you, please assign it back to me, but try to help me understand what happened first! </p> <p> Thanks </p> Ticket René Rivera Tue, 24 Jun 2008 16:17:29 GMT cc changed https://svn.boost.org/trac10/ticket/1744#comment:8 https://svn.boost.org/trac10/ticket/1744#comment:8 <ul> <li><strong>cc</strong> <span class="trac-author">John Maddock</span> added </li> </ul> <p> What happened is that as agreed, once upon a time, we changed to only build a single variant for the install. It happened that this single variant, the link=shared/runtime-link=shared/threading=multi/release combination, is neither what the getting started refers to nor what the autolink defaults to. There are two options for "fixing" this problem: </p> <ul><li>Change the docs to refer to the current single variant and change autolink to default to the current single variant. </li><li>Build two variants by default, the above, and link=static/runtime-link=shared/threading=multi/release. </li></ul><p> I don't know how complicated changing the autolink code would be, nor the repercussions to users. I should say that most users are happy that the default build is down to one variant. It's only been inexperienced first-time users that have had problem because of the doc &amp; autolink discrepancy. </p> Ticket Dave Abrahams Wed, 25 Jun 2008 01:27:28 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:9</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:8" title="Comment 8">grafik</a>: </p> <blockquote class="citation"> <p> What happened is that as agreed, once upon a time, we changed to only build a single variant for the install. It happened that this single variant, the link=shared/runtime-link=shared/threading=multi/release combination, is neither what the getting started refers to nor what the autolink defaults to. </p> </blockquote> <p> Well, that's an embarrassment! </p> <blockquote class="citation"> <p> There are two options for "fixing" this problem: </p> <ul><li>Change the docs to refer to the current single variant and change autolink to default to the current single variant. </li><li>Build two variants by default, the above, and link=static/runtime-link=shared/threading=multi/release. </li></ul></blockquote> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul><p> ? </p> <blockquote class="citation"> <p> I don't know how complicated changing the autolink code would be, nor the repercussions to users. I should say that most users are happy that the default build is down to one variant. It's only been inexperienced first-time users that have had problem because of the doc &amp; autolink discrepancy. </p> </blockquote> <p> I guess it goes without saying that inexperienced first-time users need the most help. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>mklein1</dc:creator> <pubDate>Thu, 26 Jun 2008 22:37:10 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:10 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:10</guid> <description> <p> I've run into a similar issue in that when building for multiple variants, the static libraries <em>do</em> get built, they just don't get installed. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Thu, 26 Jun 2008 22:51:14 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:11</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:10" title="Comment 10">mklein1</a>: </p> <blockquote class="citation"> <p> I've run into a similar issue in that when building for multiple variants, the static libraries <em>do</em> get built, they just don't get installed. </p> </blockquote> <p> Goot to know. Since this ticket is filed against the Getting Started Guide, would you please report that as a bug against Boost.Build or "Building Boost" or another appropriate component? </p> <p> Thanks </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Thu, 26 Jun 2008 23:29:18 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:12 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:12</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:9" title="Comment 9">dave</a>: </p> <blockquote class="citation"> <p> Well, that's an embarrassment! </p> </blockquote> <p> To say the least :-( </p> <blockquote class="citation"> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul><p> ? </p> </blockquote> <p> Because the <code>link=static</code> variant is not the most widely used one, AFAIK. Note, I have no real personal opinion as to which one to default to other than trying to satisfy the majority ;-) </p> <blockquote class="citation"> <blockquote class="citation"> <p> I don't know how complicated changing the autolink code would be, nor the repercussions to users. I should say that most users are happy that the default build is down to one variant. It's only been inexperienced first-time users that have had problem because of the doc &amp; autolink discrepancy. </p> </blockquote> <p> I guess it goes without saying that inexperienced first-time users need the most help. </p> </blockquote> <p> Very true. And this is why we decided the single default to be link=shared, because the variant that seemed to be used by most third party applications and libraries that use Boost. Which, from the experience answering how to build, is what I got asked about most often. I.e. the most common question I get is "I'm trying to build X which wants Boost library Y.dll/so. How do I build that?". And this is from sitting on IRC for two years now. Which is where many such new users end up asking. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Thu, 26 Jun 2008 23:41:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:13</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:12" title="Comment 12">grafik</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:9" title="Comment 9">dave</a>: </p> <blockquote class="citation"> <p> Well, that's an embarrassment! </p> </blockquote> <p> To say the least :-( </p> <blockquote class="citation"> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul><p> ? </p> </blockquote> <p> Because the <code>link=static</code> variant is not the most widely used one, AFAIK. Note, I have no real personal opinion as to which one to default to other than trying to satisfy the majority ;-) </p> </blockquote> <p> Well, me neither. And since you happen to have some sense of what the majority needs, I'd be happy to go with whichever your gut says is the better bet... or even whichever one you think causes the least risk. However, please consider that if we decide to change the docs, it would be very desirable to avoid adding complexity (if possible). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Thu, 26 Jun 2008 23:44:05 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:14</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:12" title="Comment 12">grafik</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:9" title="Comment 9">dave</a>: </p> <blockquote class="citation"> <p> Well, that's an embarrassment! </p> </blockquote> <p> To say the least :-( </p> <blockquote class="citation"> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul></blockquote> <p> Because the <code>link=static</code> variant is not the most widely used one, AFAIK. </p> </blockquote> <p> Wait a sec; that reasoning doesn't address the 2nd bullet in my list of two, does it? I presume that autolink doesn't specify static libs by default? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Fri, 27 Jun 2008 00:18:54 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:15 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:15</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:14" title="Comment 14">dave</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:12" title="Comment 12">grafik</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:9" title="Comment 9">dave</a>: </p> <blockquote class="citation"> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul></blockquote> <p> Because the <code>link=static</code> variant is not the most widely used one, AFAIK. </p> </blockquote> <p> Wait a sec; that reasoning doesn't address the 2nd bullet in my list of two, does it? I presume that autolink doesn't specify static libs by default? </p> </blockquote> <p> You presume incorrectly ;-) Currently autolink defaults to link=static. And hence matches the docs. Or rather the docs match autolink. Which is why I asked about the risk of changing the autolink code at this point. I think it's a high risk to do so now. And it's why I'm suggesting building both link=static and link=shared as the "quick fix". </p> <p> Hm, I should check precisely what is the default for autolink. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Fri, 27 Jun 2008 00:21:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:16 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:16</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:15" title="Comment 15">grafik</a>: </p> <blockquote class="citation"> <p> Currently autolink defaults to link=static. And hence matches the docs. Or rather the docs match autolink. Which is why I asked about the risk of changing the autolink code at this point. I think it's a high risk to do so now. And it's why I'm suggesting building both link=static and link=shared as the "quick fix". </p> </blockquote> <p> Sounds reasonable. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Tue, 01 Jul 2008 16:20:08 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/1744#comment:17 https://svn.boost.org/trac10/ticket/1744#comment:17 <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> OK, default minimal build changed to also build link=static. See changesets <a class="changeset" href="https://svn.boost.org/trac10/changeset/46953" title="Add building of link=static libs to default minimal build to ...">[46953]</a> and <a class="changeset" href="https://svn.boost.org/trac10/changeset/46957" title="Add building of link=static libs to default minimal build to ...">[46957]</a>. Some tasks for changing this behavior in the next release to come. </p> Ticket Vladimir Prus Tue, 01 Jul 2008 16:32:22 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:18 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:18</guid> <description> <p> This bug report talks about Windows. Why exactly do we need to build static libraries on Linux? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Tue, 01 Jul 2008 16:42:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:19 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:19</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:18" title="Comment 18">vladimir_prus</a>: </p> <blockquote class="citation"> <p> This bug report talks about Windows. Why exactly do we need to build static libraries on Linux? </p> </blockquote> <p> Because there's no way to limit the default build variants based on target-os. Or is there? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Tue, 01 Jul 2008 17:13:15 GMT</pubDate> <title>status changed; resolution deleted https://svn.boost.org/trac10/ticket/1744#comment:20 https://svn.boost.org/trac10/ticket/1744#comment:20 <ul> <li><strong>status</strong> <span class="trac-field-old">closed</span> → <span class="trac-field-new">reopened</span> </li> <li><strong>resolution</strong> <span class="trac-field-deleted">fixed</span> </li> </ul> <p> Sorry to come late to the party, but can I just point out that the "fix" does not actually fix anything for Windows users: </p> <ul><li>For VC++ there are either 4 or 6 possible runtime library variants (depending which version you have), as well as a further 2 dymanic vs static variants, and unless you build all of those variants, then the user absolutely will experience linker errors from the auto-link code at some point. </li></ul><ul><li>In particular, as things now stand, the user may well have static variants of the libraries, but they are *release* variants which won't be binary compatible with the default IDE *debug* build, so IMO they're actually of no use whatsoever to a first time user. </li></ul><p> Frankly anything other than --build-type complete is utter useless for VC++ users, sorry to be so blunt, but as you know I was against the change to build only a single variant and still am: I've already lost count of the number of times I've had to explain this, which is rather annoying as the auto-link header was introduced to avoid having to explain the whole build variant thing! </p> <p> Regards, John. </p> Ticket René Rivera Tue, 01 Jul 2008 17:51:55 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:21 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:21</guid> <description> <p> I would love making it such that build-type=complete is the default on MSVC (or other Windows autolink toolsets). But BBv2 doesn't have that level of control, AFAIK. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Tue, 01 Jul 2008 18:21:30 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:22 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:22</guid> <description> <p> If not, a sensible policy would be that users of Cygwin (and any other toolsets that don't auto-link on windows -- Mingw?) get a complete build unless they explicitly request otherwise. MSVC and its brethren make up an overwhelming majority of the windows compiler market. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Wed, 09 Jul 2008 00:04:01 GMT</pubDate> <title>summary, component, description, severity changed https://svn.boost.org/trac10/ticket/1744#comment:23 https://svn.boost.org/trac10/ticket/1744#comment:23 <ul> <li><strong>summary</strong> <span class="trac-field-old">[getting started] No information on building static libraries with bjam under Windows</span> → <span class="trac-field-new">Change in default build variants broke "Getting Started"</span> </li> <li><strong>component</strong> <span class="trac-field-old">Documentation</span> → <span class="trac-field-new">build</span> </li> <li><strong>description</strong> modified (<a href="/trac10/ticket/1744?action=diff&amp;version=23">diff</a>) </li> <li><strong>severity</strong> <span class="trac-field-old">Problem</span> → <span class="trac-field-new">Regression</span> </li> </ul> Ticket Vladimir Prus Wed, 09 Jul 2008 07:11:17 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:24 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:24</guid> <description> <p> Dave, I'm confused about your last change of this issue -- what build changes are called for? Is the conclusion to implement complete build by default on MSVC? Was the Linux version of getting started adjusted to document (the desired and agreed-on) change in the set of built variants? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Wed, 09 Jul 2008 08:43:09 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:25 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:25</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:24" title="Comment 24">vladimir_prus</a>: </p> <blockquote class="citation"> <p> Dave, I'm confused about your last change of this issue -- what build changes are called for? Is the conclusion to implement complete build by default on MSVC? </p> </blockquote> <p> Is everyone somehow waiting for me to decide? As far as I can tell, the workable solution above seems to be that BB creates all variants by default when target-os=windows, but frankly once it was understood that changes by others to BB broke the "getting started" guide I stopped trying to figure out exactly what the best solution to the problem was. </p> <blockquote class="citation"> <p> Was the Linux version of getting started adjusted to document (the desired and agreed-on) change in the set of built variants? </p> </blockquote> <p> No, but I'm not yet sure what change is needed. s/libboost_regex-gcc34-mt-d-1_35.a/libboost_regex-gcc34-mt-d-1_35.so/ ? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Wed, 09 Jul 2008 09:00:03 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:26 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:26</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:12" title="Comment 12">grafik</a>: </p> <blockquote class="citation"> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:9" title="Comment 9">dave</a>: </p> <blockquote class="citation"> <p> Well, that's an embarrassment! </p> </blockquote> <p> To say the least :-( </p> <blockquote class="citation"> <p> What about </p> <ul><li>Change the single variant we build and the autolink code to be consistent with the docs </li><li>Change the single variant we build and the docs to be consistent with the autolink code </li></ul><p> ? </p> </blockquote> <p> Because the <code>link=static</code> variant is not the most widely used one, AFAIK. Note, I have no real personal opinion as to which one to default to other than trying to satisfy the majority ;-) </p> </blockquote> <p> I guess I was thrown by Rene's answer here, which seemed like an answer to a "why...?" question... </p> <blockquote class="citation"> <blockquote class="citation"> <p> I guess it goes without saying that inexperienced first-time users need the most help. </p> </blockquote> <p> Very true. And this is why we decided the single default to be link=shared, because the variant that seemed to be used by most third party applications and libraries that use Boost. Which, from the experience answering how to build, is what I got asked about most often. I.e. the most common question I get is "I'm trying to build X which wants Boost library Y.dll/so. How do I build that?". And this is from sitting on IRC for two years now. Which is where many such new users end up asking. </p> </blockquote> <p> ...which reminds me why the GSG used static libs when we were building both kinds: one less chance of problems such as failure to set <code>LD_LIBRARY_PATH</code>. What additional changes will be needed to make the instructions work if it's a .so? Various *nixes have different variables for shared library search IIRC. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Wed, 09 Jul 2008 09:30:44 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:27 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:27</guid> <description> <p> I don't think we should target folks who installed Linux yesterday. Anybody doing development on Linux knows how to link to libraries, and about LD_LIBRARY_PATH. I don't think GSG should, among other thing, be "teach yourself Linux programming in 10 mins" document. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Tue, 29 Jul 2008 16:11:32 GMT</pubDate> <title>owner, status changed https://svn.boost.org/trac10/ticket/1744#comment:28 https://svn.boost.org/trac10/ticket/1744#comment:28 <ul> <li><strong>owner</strong> changed from <span class="trac-author">René Rivera</span> to <span class="trac-author">Beman Dawes</span> </li> <li><strong>status</strong> <span class="trac-field-old">reopened</span> → <span class="trac-field-new">new</span> </li> </ul> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:27" title="Comment 27">vladimir_prus</a>: </p> <blockquote class="citation"> <p> I don't think we should target folks who installed Linux yesterday. Anybody doing development on Linux knows how to link to libraries, and about LD_LIBRARY_PATH. I don't think GSG should, among other thing, be "teach yourself Linux programming in 10 mins" document. </p> </blockquote> <p> This attitude really rubs me the wrong way. 'Nuf said on that. </p> <p> I wrote the current GSG, so I get to decide what its purpose is. It should be a "give people foolproof instructions so that they don't continually come to us asking why they can't get started with the libraries, or <em>worse yet, give up without asking</em> document." </p> <p> Some people installing on Linux aren't doing development there. They're just configuring the libraries so the real developers can use them, and it's not uncommon that these people are only really familiar with Windows. It would be great if everybody were experienced enough to get over these humps by themselves, but in reality they're not. Also, with 10 or so new things to get right in order to make the process work, it's easy for even experienced users to overlook something. When things don't work for me, I go back over the instructions step by step and make sure I did everything right. If we don't provide instructions that work, people will have little reason to trust the rest of our documentation. </p> <p> Reassigning to Beman because I consider it absolutely critical that 1.36 not ship with this ticket still open. Sorry, Beman, but we appear to be stalled over here. Can you help us get unstuck? </p> Ticket Vladimir Prus Tue, 29 Jul 2008 16:38:34 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:29 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:29</guid> <description> <p> Oh, well, if you want to invent work for yourself, you can document LD_LIBRARY_PATH, or anything. I remain convinced that building only shared, MT libraries on Linux is the right thing. And I likewise remain convinced that it's not the job of Boost to explain how do use gcc, or ld either -- much like it's not job of any other project except for gcc and binutils themself. </p> <p> The only behavioral change suggested in this issue is to build both shared and static variants on windows -- either always on windows, or only for msvc. I don't get the impression there's clear concensus on that, and can implement anything anybody wants. </p> <p> And this means, I think, that getting started can be adjust to document the current behaviour right away, at least for Linux. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Thu, 14 Aug 2008 19:39:59 GMT</pubDate> <title>owner changed https://svn.boost.org/trac10/ticket/1744#comment:30 https://svn.boost.org/trac10/ticket/1744#comment:30 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Beman Dawes</span> to <span class="trac-author">John Maddock</span> </li> </ul> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1744#comment:20" title="Comment 20">johnmaddock</a>: </p> <blockquote class="citation"> <p> Frankly anything other than --build-type complete is utter useless for VC++ users, sorry to be so blunt, but as you know I was against the change to build only a single variant and still am: I've already lost count of the number of times I've had to explain this, which is rather annoying as the auto-link header was introduced to avoid having to explain the whole build variant thing! </p> </blockquote> <p> So would someone remind me why we didn't change it to --build-type=complete by default for Windows users? This appears to be the only open issue remaining on this ticket. Is the GSG still broken? <em>If</em> the GSG now works for everyone, but the default build type is still useless to Windows users, then perhaps John should open a new ticket for that? </p> Ticket John Maddock Fri, 15 Aug 2008 16:15:37 GMT <link>https://svn.boost.org/trac10/ticket/1744#comment:31 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:31</guid> <description> <p> I believe it's still broken-ish: there is a mention of --build-type=complete in an example command line, but no indication of what it does, or that it's required for most Windows compilers. </p> <p> No idea as for why we haven't made it the default for Windows compilers, IMO it should be, </p> <p> John. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Fri, 15 Aug 2008 23:31:43 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:32 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:32</guid> <description> <p> John, </p> <p> what you described doesn't amount to breakage. The GSG is only broken if someone following its directions will not get the results it promises. If there's an improvement we could make, please open a new ticket for it. In particular, if --build-type=complete ought to be the default on windows, please open a ticket against the appropriate component that says so, and if you feel --build-type=complete should be described in the GSG, open a ticket for that, too. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Sat, 16 Aug 2008 08:36:24 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:33 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:33</guid> <description> <p> Sorry Dave but I disagree. </p> <p> Consider an MSVC user that Builds without with currently undocumented --build-type=complete flag, they get static and dll libraries built against the msvc release runtimes. </p> <p> Then they create a new IDE project (debug build by default) and follow step 6.1... and get a linker error because the necessary binary does not exist. Same if they follow 6.2. </p> <p> IMO it's still broken, just differently than before (but the right fix is to change the build process IMO - fixing the getting started guide is a stopgap). </p> <p> John. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Dave Abrahams</dc:creator> <pubDate>Sat, 16 Aug 2008 09:52:28 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1744#comment:34 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1744#comment:34</guid> <description> <p> The flag, if it is required, doesn't need to be explained in the GSG as long as the reader is instructed to use it, and in fact I might be willing to assert that it shouldn't be explained there. This document is supposed to be a gentle introduction that leaves out many details. </p> <p> That said, I hadn't realized someone put square brackets around the flag in the example (and in italics, to boot, which is totally inconsistent with the conventions used elsewhere in that document). That seems to suggest that the flag is optional. If, as you say, the GSG can't be completed without that flag, then by all means it is broken. We need to make a 2-character change (remove the brackets). So I will do that and close this ticket. Please open new tickets against any other components you think are broken, OK? There's nothing wrong with referencing this ticket from those others. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Sat, 11 Apr 2009 08:24:00 GMT</pubDate> <title>milestone changed https://svn.boost.org/trac10/ticket/1744#comment:35 https://svn.boost.org/trac10/ticket/1744#comment:35 <ul> <li><strong>milestone</strong> <span class="trac-field-old">Boost 1.36.0</span> → <span class="trac-field-new">Boost 1.39.0</span> </li> </ul> <p> I have asked on mailing list about appropriate defaults on Windows and will switch to static linking by default, so as to match autolink, for 1.39. </p> Ticket Vladimir Prus Thu, 16 Apr 2009 05:58:41 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/1744#comment:36 https://svn.boost.org/trac10/ticket/1744#comment:36 <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> Static linking is now the default on windows. </p> Ticket