1 Dec 01:12
Building boost 1.33.1 64-bit using VC-8
Jason Nye <jnye <at> vitalimages.com>
2006-12-01 00:12:25 GMT
2006-12-01 00:12:25 GMT
Hello all,
First of all, I want to say boost has been totally awesome for the programming team in which I work. Kudos to everyone contributing!
For skimmers, #3 is the one that has a question related to it.
I’m trying to build boost 1.33.1 64-bit using VC-8 (team suite) and I’ve run into some (minor) issues. They are:
- The vc-8_0-x86_amd64-tools.jam does not refer to the correct vcvars batch file. It specifies $(VC_ROOT)\bin\x86_amd64\VCVARSamd64.bat but there isn’t any such file. The proper file is $(VC_ROOT)\bin\x86_amd64\vcvarsx86_amd64.bat
- The thread library doesn’t link because of the ice_wrapper used in once.cpp (in compare_exchange line 119). Replacing the compare_exchange with an actual call to InterlockedCompareExchange did the trick. I believe this is because it is an intrinsic function.
- This one is the most confusing to me: the abi prefix headers perform #pragma pack(push, 8). No warnings pop up in 32-bit mode because 8 bytes is the default alignment. However, in 64-bit mode, the default alignment is 16 bytes. Why would boost ever want to enforce a specific packing? Is it safe for me to simply comment these out? I *really* don’t like the idea of enforcing an 8 byte alignment when the default is 16 bytes. Any comments here?
Thanks!
Jason.
_______________________________________________ Boost-users mailing list Boost-users <at> lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
You would need to wrap this in
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
#endif
if you want the code to be portable, but if you really are taking the
constant's address then it won't be portable to older compilers anyway
(since you can't take the address of an enum which is what
BOOST_STATIC_CONSTANT uses in those cases).
HTH, John.
RSS Feed