COMP: Using a new work-around for stdarg.h problem on SGI.

This commit is contained in:
Brad King 2005-04-21 17:00:36 -04:00
parent cf8a3a1521
commit 2f4e516e23
6 changed files with 20 additions and 40 deletions

View File

@ -50,3 +50,8 @@ TARGET_LINK_LIBRARIES(cmForm ${CURSES_LIBRARY})
IF(CURSES_EXTRA_LIBRARY)
TARGET_LINK_LIBRARIES(cmForm ${CURSES_EXTRA_LIBRARY})
ENDIF(CURSES_EXTRA_LIBRARY)
# See internal_stdio_core.h.in for explanation.
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/internal_stdio_core.h.in
${CMAKE_CURRENT_BINARY_DIR}/internal/stdio_core.h
@ONLY IMMEDIATE)

View File

@ -39,27 +39,7 @@
#include <curses.h>
#include <eti.h>
#include <stdarg.h>
#ifdef __cplusplus
#ifndef va_list
/*
Some compilers move va_list into the std:: namespace and there is no way to
tell that this has been done. Playing with things being included before or
after stdarg.h does not solve things because we do not have control over what
the user does.
This hack solves this problem by moving va_list to our own namespace that is
local for forms.
*/
namespace std {} /* Required for platforms that do not have std:: */
namespace cmakeForms_VA_LIST
{
using namespace std;
typedef va_list hack_va_list;
}
#define va_list cmakeForms_VA_LIST::hack_va_list
#endif /* va_list */
#endif /* __cplusplus */
#ifdef __cplusplus
extern "C" {

View File

@ -0,0 +1,5 @@
/* This is a hack to work around a bug in MIPSpro 7.4 on some SGIs.
We need to include stdarg.h before the stdio core to avoid putting
va_list in the std namespace and never in the global namespace. */
#include <stdarg.h>
#include_next <internal/stdio_core.h>

View File

@ -77,6 +77,11 @@ CONFIGURE_FILE(
"${CMAKE_CURRENT_BINARY_DIR}/xmlrpc_amconfig.h"
)
# See internal_stdio_core.h.in for explanation.
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/internal_stdio_core.h.in
${CMAKE_CURRENT_BINARY_DIR}/internal/stdio_core.h
@ONLY IMMEDIATE)
SET(xmlrpc_SRCS
#XmlRpcCpp.cpp
xmlrpc_array.c

View File

@ -0,0 +1,5 @@
/* This is a hack to work around a bug in MIPSpro 7.4 on some SGIs.
We need to include stdarg.h before the stdio core to avoid putting
va_list in the std namespace and never in the global namespace. */
#include <stdarg.h>
#include_next <internal/stdio_core.h>

View File

@ -29,26 +29,6 @@
#include <stddef.h>
#include <stdarg.h>
#ifdef __cplusplus
#ifndef va_list
/*
Some compilers move va_list into the std:: namespace and there is no way to
tell that this has been done. Playing with things being included before or
after stdarg.h does not solve things because we do not have control over what
the user does.
This hack solves this problem by moving va_list to our own namespace that is
local for forms.
*/
namespace std {} /* Required for platforms that do not have std:: */
namespace xmlrpc_VA_LIST
{
using namespace std;
typedef va_list hack_va_list;
}
#define va_list xmlrpc_VA_LIST::hack_va_list
#endif /* va_list */
#endif /* __cplusplus */
#include <xmlrpc_config.h>
#ifdef HAVE_UNICODE_WCHAR