Re: [Boost-bugs] [Boost C++ Libraries] #6741: Compile with VC11 arm

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #6741: Compile with VC11 arm
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-03-29 11:32:47


#6741: Compile with VC11 arm
----------------------------------+-----------------------------------------
  Reporter: gongminmin@… | Owner:
      Type: Feature Requests | Status: new
 Milestone: To Be Determined | Component: Building Boost
   Version: Boost 1.49.0 | Severity: Problem
Resolution: | Keywords:
----------------------------------+-----------------------------------------

Comment (by gongminmin@…):

 I tried for a couple times and it works. The patch looks like this.
 endian.hpp and msvc.jam are modified.

 {{{
 diff -r efe34d4e1051 boost/boost/detail/endian.hpp
 --- a/boost/boost/detail/endian.hpp Thu Mar 29 16:28:11 2012 +0800
 +++ b/boost/boost/detail/endian.hpp Thu Mar 29 19:25:44 2012 +0800
 @@ -66,7 +66,7 @@
     || defined(_M_ALPHA) || defined(__amd64) \
     || defined(__amd64__) || defined(_M_AMD64) \
     || defined(__x86_64) || defined(__x86_64__) \
 - || defined(_M_X64) || defined(__bfin__)
 + || defined(_M_X64) || defined(__bfin__) || defined(_M_ARM)

  # define BOOST_LITTLE_ENDIAN
  # define BOOST_BYTE_ORDER 1234
 diff -r efe34d4e1051 boost/tools/build/v2/tools/msvc.jam
 --- a/boost/tools/build/v2/tools/msvc.jam Thu Mar 29 16:28:11 2012
 +0800
 +++ b/boost/tools/build/v2/tools/msvc.jam Thu Mar 29 19:25:44 2012
 +0800
 @@ -126,6 +126,7 @@
      # <setup-amd64>
      # <setup-i386>
      # <setup-ia64>
 + # <setup-arm>
      # Platform specific setup command to invoke before running any
 of the
      # msvc tools used when builing a target for a specific platform,
 e.g.
      # when building a 32 or 64 bit executable.
 @@ -261,7 +262,8 @@
          toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-
 arch-amd64) : /MACHINE:X64 ;
          toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-
 arch-i386) : /MACHINE:X86 ;
          toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-
 arch-ia64) : /MACHINE:IA64 ;
 -
 + toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-
 arch-arm) : /MACHINE:ARM ;
 +
          # Make sure that manifest will be generated even if there is no
          # dependencies to put there.
          toolset.flags $(toolset).link LINKFLAGS $(conditions)/<embed-
 manifest>off : /MANIFEST ;
 @@ -771,7 +773,7 @@

          local below-8.0 = [ MATCH ^([67]\\.) : $(version) ] ;

 - local cpu = i386 amd64 ia64 ;
 + local cpu = i386 amd64 ia64 arm ;
          if $(below-8.0)
          {
              cpu = i386 ;
 @@ -780,6 +782,7 @@
          local setup-amd64 ;
          local setup-i386 ;
          local setup-ia64 ;
 + local setup-arm ;

          if $(command)
          {
 @@ -833,6 +836,7 @@
              local default-setup-amd64 = vcvarsx86_amd64.bat ;
              local default-setup-i386 = vcvars32.bat ;
              local default-setup-ia64 = vcvarsx86_ia64.bat ;
 + local default-setup-arm = vcvarsx86_arm.bat ;

              # http://msdn2.microsoft.com/en-
 us/library/x4d2c09s(VS.80).aspx and
              # http://msdn2.microsoft.com/en-
 us/library/x4d2c09s(vs.90).aspx
 @@ -841,6 +845,7 @@
              local default-global-setup-options-amd64 = x86_amd64 ;
              local default-global-setup-options-i386 = x86 ;
              local default-global-setup-options-ia64 = x86_ia64 ;
 + local default-global-setup-options-arm = x86_arm ;

              # When using 64-bit Windows, and targeting 64-bit, it is
 possible to
              # use a native 64-bit compiler, selected by the "amd64" &
 "ia64"
 @@ -922,6 +927,7 @@
          local default-assembler-amd64 = ml64 ;
          local default-assembler-i386 = "ml -coff" ;
          local default-assembler-ia64 = ias ;
 + local default-assembler-ia64 = armasm ;

          assembler = [ feature.get-values <assembler> : $(options) ] ;

 @@ -1332,6 +1338,9 @@
      <architecture>ia64/<address-model>
      <architecture>ia64/<address-model>64 ;

 +.cpu-arch-arm =
 + <architecture>arm/<address-model>32 ;
 +

  # Supported CPU types (only Itanium optimization options are supported
 from
  # VC++ 2005 on). See
 @@ -1351,7 +1360,7 @@


  # Known toolset versions, in order of preference.
 -.known-versions = 10.0 10.0express 9.0 9.0express 8.0 8.0express 7.1
 7.1toolkit 7.0 6.0 ;
 +.known-versions = 11.0 10.0 10.0express 9.0 9.0express 8.0 8.0express 7.1
 7.1toolkit 7.0 6.0 ;

  # Version aliases.
  .version-alias-6 = 6.0 ;
 @@ -1360,6 +1369,7 @@
  .version-alias-8 = 8.0 ;
  .version-alias-9 = 9.0 ;
  .version-alias-10 = 10.0 ;
 +.version-alias-11 = 11.0 ;

  # Names of registry keys containing the Visual C++ installation path
 (relative
  # to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft").
 @@ -1372,6 +1382,7 @@
  .version-9.0express-reg = "VCExpress\\9.0\\Setup\\VC" ;
  .version-10.0-reg = "VisualStudio\\10.0\\Setup\\VC" ;
  .version-10.0express-reg = "VCExpress\\10.0\\Setup\\VC" ;
 +.version-11.0-reg = "VisualStudio\\11.0\\Setup\\VC" ;

  # Visual C++ Toolkit 2003 does not store its installation path in the
 registry.
  # The environment variable 'VCToolkitInstallDir' and the default
 installation
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6741#comment:1>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC