Boost logo

Boost Users :

Subject: [Boost-users] VxWorks support in boost 1.41
From: Geoff Shapiro (gshapiro_at_[hidden])
Date: 2009-12-17 16:33:08


Having recently upgraded to just released 1.41 version of boost, I noticed the
new support for the VxWorks platform. I am now in the process of porting over a
body of code using boost to a VxWorks/PPC platform and obviously want to take
advantage of the builtin support, but I've run into a problem and would like
advice on the "boost" way of rectifying the problem.

I am using VxWorks 6.7 to be running on an MPC8548 PPC. When I try to compile my
project files in the standard manner for incorporating boost with tr1 support
(.../boost/boost/tr1/tr1 and .../boost first in the header search paths,
#include <memory> as first thing in files), I am getting a compile warning. The
complaint is for already defined preprocessor macros -- in
boost/config/vxworks.hpp at lines 23 and 24 there are definitions:

#define _POSIX_TIMERS 1
#define _POSIX_THREADS 1

A little further down, this header file includes boilerplate code in
boost/config/posix_features.hpp and that header file then includes unistd.h, a
system file. For VxWorks 6.7, unistd.h also has defines for the above
preprocessor macros, but sets their values to 200112L.

While the warning may be able to ignored and is probably benign, IF unistd.h is
always included after vxworks.hpp (I am not sure this will be the case for all
of our files), I would rather see this fixed. What would be the best way to fix
this so as to remain conformant with the "boost" philosophy for platform
independence?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net