Opened 13 years ago

Closed 13 years ago

#3133 closed Bugs (fixed)

std::va_list namespace problem

Reported by: talanchor@… Owned by: Robert Ramey
Milestone: To Be Determined Component: serialization
Version: Boost 1.42.0 Severity: Problem
Keywords: Cc: gcc, 3.3.5, on, qnx, 6.3.2, christian.leutloff@…

Description

On QNX Neutrino 6.3.2 boost.serialization fails to compile because va_list is not in std namespace. Problem occurs in the following files: boost/boost/serialization/extended_type_info_typeid.hpp boost/boost/serialization/factory.hpp boost/boost/serialization/extended_type_info_no_rtti.hpp

One way to fix this is to include stdarg.h instead of cstdarg and use va_list instead of std::va_list

Attachments (2)

boost_1_42_0_qnx-6.3.2.patch (4.7 KB ) - added by anonymous 13 years ago.
Here is qnx specific workaround on va_list
std_va_list_qnx642.patch (378 bytes ) - added by Christian Leutloff <christian.leutloff@…> 13 years ago.
Alternative patch, single change only

Download all attachments as: .zip

Change History (8)

comment:1 by anonymous, 13 years ago

Milestone: Boost 1.40.0Boost 1.41.0
Version: Boost 1.39.0Boost 1.40.0

comment:2 by anonymous, 13 years ago

a) what does "fails to compile" mean? Does the file cstdarg not exist? b) Hopefully I would prefer to find a "cleaner" way to do this that wouldn't require a a lot of changes - perhaps hoisting va_list to the std namespace - which is what I believe that the cstdarg file does. c) perhaps you might like to provide a suggested patch to the required files.

Robert Ramey

comment:3 by anonymous, 13 years ago

a) I mean compilation errors, cstdarg does exist, but va_list is not in std namespace b) c) If using stdarg.h instead of cstdarg is not 'clean' solution, then patch will be useless. It's QNX-specific bug.

comment:4 by anonymous, 13 years ago

Milestone: Boost 1.41.0Boost 1.43.0
Version: Boost 1.40.0Boost 1.43.0

by anonymous, 13 years ago

Here is qnx specific workaround on va_list

comment:5 by Christian Leutloff <christian.leutloff@…>, 13 years ago

Cc: gcc 3.3.5 on qnx 6.3.2 christian.leutloff@… added; gcc 3.3.5 on qnx 6.3.2 removed
Milestone: Boost 1.43.0To Be Determined
Version: Boost 1.43.0Boost 1.42.0

An alternative fix could be to reuse the similar change for LIBCOMO in factory.hpp to add the std:: namespace to the existing va_list implementation.

I have successfully build boost 1.42 with gcc 4.3.3 (qcc toolset) on QNX 6.4.1.

I will attach the one line patch, too.

by Christian Leutloff <christian.leutloff@…>, 13 years ago

Attachment: std_va_list_qnx642.patch added

Alternative patch, single change only

comment:6 by Robert Ramey, 13 years ago

Resolution: fixed
Status: newclosed

All right, now you're talking !

I'm puting this in, it will show up next release.

Robert Ramey

Note: See TracTickets for help on using tickets.