Boost logo

Boost :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2006-11-03 11:38:59


  Attached is patch for serialization/test/test_tools.hpp header which
  works around a documented problem with tmpnam() function on HP-UX,
  both ia64 and PA-RISC.

  The problem is that tmpnam() function is useless when called with
  NULL argument from a program compiled -mt, which is how boost is
  compiled on HP-UX/aCC. The tempnam() function does not have this
  limitaiton and the HP-UX-specific patch below redefines tmpnam as
  tempnam.

  This problem was causing hundreds of serialization library tests to
  fail. With the patch, all serialization library tests pass.

  I've verified, that the patch does not cause any regression.

  The patch below is for CVS HEAD. Can it be applied to HEAD and merged
  into the RC_1_34_0 branch?

  Thanks,
    Boris

Index: test_tools.hpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/serialization/test/test_tools.hpp,v
retrieving revision 1.14
diff -r1.14 test_tools.hpp
12a13
> // (C) Copyright 2006 Boris Gubenko.
85a87,103
> // HP-UX has a restriction that for multi-thread applications, (i.e.
> // the ones compiled -mt) if argument to tmpnam is a NULL pointer, then,
> // citing the tmpnam(3S) manpage, "the operation is not performed and a
> // NULL pointer is returned". tempnam does not have this restriction, so,
> // let's use tempnam instead.
> #if defined(__hpux)
>
> #define tmpnam(X) tempnam(NULL,X)
>
> namespace boost {
> namespace archive {
> using ::tempnam;
> } // archive
> } // boost
>
> #endif // defined(__hpux)
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk