Boost logo

Boost Users :

Subject: [Boost-users] [ filesystem ] 1.45 broken on gcc 4.5 on AIX 5.3
From: Avi Bahra (avibahra_at_[hidden])
Date: 2011-04-08 13:58:22

OK I realise AIX/gcc is not really a supported platform?

But in boost 1.45 the file system causes a crash.

My understanding was that at 1.45 the file system v2 was the default ?
However looking at the stack trace it appears that at start up file system v3
make use of a static object to set the locale(), see file path.cpp

namespace boost
namespace filesystem3

  const path::codecvt_type *&
   static const std::codecvt<wchar_t, char, std::mbstate_t> *
       &std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >
   return facet;

path_locale() ends up calling default_locale(), which call's std::locale("")

In std::locale() for some reason the locale can not be created and an exception
is thrown. This exception has no chance of being caught since it
called before main(). See the totalview trace back below:

The work around appears to be to set the environment variable
LANG to an empty string.

Have not tested this on boost 1.46, but I suspect the same problem.

Best regards,


**** Frame below previous frame **********

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at