title: Name Conflict when Building Boost libraries with Cygwin/GCC
body: <p>I'm in the process of migrating a C++ application from VC++ to GCC (running on Windows using Cygwin). My first problem now is that I cannot build the Boost libraries.</p>
  
  <p>For example to build Boost.Exception with VC++ I would write:</p>
  
  <pre><code>b2 --with-exception variant=debug,release link=static runtime-link=static
  </code></pre>
  
  <p>and I would get the files libboost_exception-vc100-mt-s-1_51.lib and libboost_exception-vc100-mt-sgd-1_51.lib in my stage\lib directory.</p>
  
  <p>However when I try the same using GCC form a Cygwin terminal I get errors. I found out that building only debug (or only release) like this works:</p>
  
  <pre><code>./b2 --with-exception variant=debug link=static runtime-link=static
  </code></pre>
  
  <p>It creates libboost_exception.a in my stage\lib directory for both cases (debug and release). So there seems to be a name conflict (same name for debug and release variant). Is this a bug in the boost build system or am I doing something wrong?</p>
  
  <hr>
  
  <p><strong>Edit:</strong></p>
  
  <p>The output of </p>
  
  <pre><code>./b2 --with-exception variant=debug,release link=static runtime-link=static
  </code></pre>
  
  <p>is:</p>
  
  <blockquote>
    <p>Building the Boost C++ Libraries.</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/build/virtual-target.jam:1079: in virtual-target.register-actual-name from module virtual-target</p>
    
    <p>error: Duplicate name of actual target: libboost_exception.a</p>
    
    <p>error: previous virtual target { common%common.copy-libboost_exception.a.STATIC_LIB { gcc%gcc.archive-libboost_exception.a.STATIC_LIB { gcc%gcc.compile.c++-clone_current_exception_non_intrusive.o.OBJ { clone_current_exception_non_intrusive.cpp.CPP } } } }</p>
    
    <p>error: created from ./stage-proper
    error: another virtual target { common%common.copy-libboost_exception.a.STATIC_LIB { gcc%gcc.archive-libboost_exception.a.STATIC_LIB { gcc%gcc.compile.c++-clone_current_exception_non_intrusive.o.OBJ { clone_current_exception_non_intrusive.cpp.CPP } } } }</p>
    
    <p>error: created from ./stage-proper</p>
    
    <p>error: added properties: off NDEBUG full speed off release</p>
    
    <p>error: removed properties: on off off on debug</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@1014</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@1014.actualize from module object(file-target)@1014</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/build-system.jam:749: in load from module build-system</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/kernel/modules.jam:283: in import from module modules</p>
    
    <p>/cygdrive/c/boost_1_51_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module</p>
    
    <p>/cygdrive/c/boost_1_51_0/boost-build.jam:17: in module scope from module</p>
  </blockquote>