universalisos/docs-extracted/pikeos-native/pikeos-cxx-programming-environment.md
Fábio Coutada ae6144a1c5 feat(docs): extract all extractable PikeOS PDF manuals to markdown
- Extract 37 of 45 PDFs under docs/ to docs-extracted/
- Preserve directory structure (apex, cdk, development, platform, etc.)
- Add docs-extracted/index.md with navigation table
- 8 PDFs were 0-byte/empty and could not be extracted
2026-07-06 23:07:19 +01:00

10 KiB
Raw Blame History

title source category pages extracted
Pikeos Cxx Programming Environment docs/pikeos-native/pikeos-cxx-programming-environment.pdf pikeos-native 9 2026-07-06T23:06:05.551097

Pikeos Cxx Programming Environment

Extracted from docs/pikeos-native/pikeos-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 SYSGO GmbH and shall not be disclosed, disseminated, copied, or used except for purposes expressly authorized in writing by SYSGO GmbH. C++ Language Programming Environment PikeOS D5.0, Document Version D5.0-30

c 2005 2019 SYSGO GmbH

SYSGO GmbH Email: office@sysgo.com Am Pfaffenstein 14 55270 Klein-Winternheim, Germany http://www.sysgo.com

All rights reserved. PikeOS is a trademark of SYSGO 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 SYSGO GmbH, all rights reserved.

4 Introduction

1 Introduction

The PikeOS C++ language programming environment (CPPENV) further extends the PikeOS 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 PikeOS C++ language programming environment. The PikeOS C++ language programming environment is currently only available to PikeOS applications using the PikeOS native personality. In future releases, the C++ language programming environment will be made available to other PikeOS personalities and components.

1.1 Known Limitations

  • When including PikeOS 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 SYSGO 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 SYSGO GmbH, all rights reserved.

6 Project Configuration

3 Project Configuration

The use of the C++ language programming environment is currently limited to PikeOS 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 PikeOS 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 PikeOS 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 SYSGO 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 PikeOS C++ language programming environment in PikeOS native applications are found in $PIKEOS_TARGET_FILES/scripts/pikeos/cxx.mk.

                         c Copyright 2005  2019 SYSGO 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 PikeOS 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 SYSGO 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 PikeOS C language programming environment (CENV) are reflected by these headers, for example does not support wide character strings.

                          c Copyright 2005  2019 SYSGO GmbH, all rights reserved.