10 KiB
| title | source | category | pages | extracted |
|---|---|---|---|---|
| Pikeos Cxx Programming Environment | docs/universalisos-native/universalisos-cxx-programming-environment.pdf | universalisos-native | 9 | 2026-07-06T23:06:05.551097 |
Pikeos Cxx Programming Environment
Extracted from
docs/universalisos-native/universalisos-cxx-programming-environment.pdf(9 pages). Figures, diagrams, and tables may not render accurately in plain text.
CPPENV
C++ Language Programming Environment
Am Pfaffenstein 14, D-55270 Klein-Winternheim
Notice: The contents of this document are proprietary to Portugal Futurista GmbH and shall not be disclosed, disseminated, copied, or used except for purposes expressly authorized in writing by Portugal Futurista GmbH. C++ Language Programming Environment UniversalisOS D5.0, Document Version D5.0-30
c 2005 – 2019 Portugal Futurista GmbH
Portugal Futurista GmbH Email: office@portugalfuturista.org Am Pfaffenstein 14 55270 Klein-Winternheim, Germany http://www.portugalfuturista.org
All rights reserved. UniversalisOS is a trademark of Portugal Futurista GmbH. The designations used to identify other software or hardware products in this publication may be trademarks of their manufacturers or sellers. Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Architecture Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5 Library Summary: C++ Support Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.1 C Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2 C++ Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6 Library Summary: C++ Standard Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
4 Introduction
1 Introduction
The UniversalisOS C++ language programming environment (CPPENV) further extends the UniversalisOS native personality providing a C++ programming environment to the application programmer. Section 3 describes application project configuration parameters, section 4 contains a summary of the files comprising the UniversalisOS C++ language programming environment. The UniversalisOS C++ language programming environment is currently only available to UniversalisOS applications using the UniversalisOS native personality. In future releases, the C++ language programming environment will be made available to other UniversalisOS personalities and components.
1.1 Known Limitations
• When including UniversalisOS include files (for example <p4.h>), the application programmer may have to
provide appropriate linkage specifications for use in C++ context, for example
#ifdef __cplusplus
extern "C" {
#endif
#include <p4.h>
#include <vm.h>
#ifdef __cplusplus
}
#endif
or using definitions from P4EXT or CENV (provided by most P4EXT or CENV headers or by including
<p4ext/p4ext_cdefs.h> or <sys/cdefs.h>)
__BEGIN_DECLS
#include <p4.h>
__END_DECLS
• The name demangling function __cxa_demangle() is not supported.
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
5
2 Architecture Dependencies
C++ exception handling and stack unwinding may issue floating-point instructions on certain architectures. Threads making use of C++ exceptions should therefore be created with appropriate thread context creation flags (e.g. P4_THREAD_ARG_FPU set).
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
6 Project Configuration
3 Project Configuration
The use of the C++ language programming environment is currently limited to UniversalisOS native applications. The C++ language programming environment consists of two parts. One part consists of headers and object code libraries providing support functions for the C++ compiler (libsupcxx). The second part consists of a subset of the C++ standard library. In the configuration of UniversalisOS native applications support for the C++ language programming environment is enabled by configuration parameter PIKEOS_CXX. Enabling this parameter adds the definition of feature test macro PIKEOSCPPENV to the C++ compiler command line and adds the C++ compiler support library to the linker command line. If required by the application program, the UniversalisOS C language programming environment (PIKEOS_CENV, PIKEOS_CENV_LIBM) can be used in combination with the C++ language support. The C++ standard library subset is enabled by configuration parameter PIKEOS_CXX_STL, this parameter de- pends on PIKEOS_CXX and PIKEOS_CENV being enabled. Enabling parameter PIKEOS_CXX_STL extends the include file search path to locate the C++ standard library headers and adds the C++ standard library to the linker command line. Filename extensions .cc, .cpp, and .C are supported for C++ source files. The C++ language standard for source code and library versions is configured by parameter PIKEOS_CXX_STD. The currently supported value is c++98.
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
7
4 Files
C++ language support header files for the C++ language programming environment are installed in $PIKEOS_TARGET_FILES/include/c++98. The C++ language compiler support library is installed in $PIKEOS_TARGET_FILES/lib/libsupcxx-c++98.a. Header files and object code libraries for the C++ standard library are installed in$PIKEOS_TARGET_FILES/cppenv/include/c++98 and $PIKEOS_TARGET_FILES/cppenv/lib/libstdcxx-c++98.a, respectively. Makefile definitions and rules for use of the UniversalisOS C++ language programming environment in UniversalisOS native applications are found in $PIKEOS_TARGET_FILES/scripts/universalisos/cxx.mk.
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
8 Library Summary: C++ Support Library
5 Library Summary: C++ Support Library
5.1 C Language Support
<cassert> Diagnostics macro.
<cctype> Character type handling.
<cerrno> Error number.
<cfloat> Characteristics of floating types.
<ciso646> Empty header. The macros that appear in iso646.h in C are keywords in C++.
<climits> Limits of integer types.
<clocale> C localization utilities.
<cmath> Mathematics.
<csetjmp> Non-local goto.
<cstdarg> Handling of variable length argument lists.
<cstddef> Typedefs for types such as size_t, NULL and others.
<cstdio> C input/output functions.
<cstdlib> General purpose utilities.
<cstring> C character string handling.
Note that limitations of the UniversalisOS C language programming environment (CENV) are reflected by these headers, for example is limited to formatted input and output on C string buffers.
5.2 C++ Language Support
<exception> Exception handling utilities.
<new> Low-level memory management utilities.
<typeinfo> Runtime type information utilities.
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.
9
6 Library Summary: C++ Standard Library
Algorithms that operate on containers. std::bitset class template. std::deque container. Function objects, designed for use with the standard algorithms. Container iterators. Standardized way to query properties of fundamental types. std::list container. std::map and std::multimap associative containers. Higher level memory management utilities. Numeric operations on values in containers. std::queue and std::priority_queue container adaptors. std::set and std::multiset associative containers. std::stack container adaptor. Standard exception objects. std::basic_string class template. Various utility components. Class for representing and manipulating arrays of values. std::vector container. Note that limitations of the UniversalisOS C language programming environment (CENV) are reflected by these headers, for example does not support wide character strings.
c Copyright 2005 – 2019 Portugal Futurista GmbH, all rights reserved.