History log of /haiku/headers/private/kernel/util/kernel_cpp.h
Revision Date Author Comments
# 97739603 12-Oct-2022 Axel Dörfler <axeld@pinc-software.de>

kernel: Added operator delete(ptr, nothrow_t)

* This seems to be required when building the DriveEncryption kernel
driver with gcc 11.2 on x86-64, at least.

Change-Id: Ie1ae09435dd912021957e64d4b9a3e7b05913c33
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5742
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 5c31a524 07-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

kernel_cpp: Dynamic exception specifications were deprecated in C++11.


# 08858e10 10-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

kernel_cpp: Don't import all of the "std" namespace.

This file is included, directly or indirectly, by most of the
kernel-space C++ code, and so importing the entirety of "std"
seriously pollutes the global namespace.

So instead, just import "std::nothrow", which is the only thing
we really want in the global namespace. Tested on both GCC2
and GCC7 and seems to work just fine.

While I'm here, also update the include guards and copyright
header to match the standard format used elsewhere.


# edb6d3b1 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

kernel_cpp: Move the C++14 operator delete out of the header.

It seems not all of the kernel includes this, but some use new/delete
anyway. Further, operator delete[] was not implemented at all.

Possibly fixes the ARM build.


# 9ac30627 18-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

kernel: Small fixes for Clang.


# 9e75e900 28-May-2018 Jérôme Duval <jerome.duval@gmail.com>

kernel: use non-deprecated signatures for new/delete operators.

add posix_memalign(), needed for c++17.


# b6f76ebe 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

s/OpenBeOS License/MIT License/ universally, as they're the same thing.

Fixes #8681.


# 7ccbb2f0 07-Nov-2015 Jérôme Duval <jerome.duval@gmail.com>

Add operator delete(void *, size_t) for C++14.


# 617793f4 07-Nov-2015 Jonathan Schleifer <js@webkeks.org>

Add back declarations to kernel_cpp.h for GCC

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 71e03249 07-Nov-2015 Jonathan Schleifer <js@webkeks.org>

Move new / delete kernel_cpp.h -> kernel_cpp.cpp

new and delete may not be defined as inline, as Clang loudly complains.
The same is true for static.


# 56eb43e3 03-Nov-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made kernel_cpp.h usable in the runtime loader.
* Added new(mynothrow) operators which avoid clashes when also linking
against libgcc.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28474 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90072e72 03-Nov-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Always define the symbols needed for basic C++ features. If we link against libgcc.a the symbols from there are simply overridden.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9778 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5de85427 27-Oct-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Since the kernel links against libgcc.a and we use some C++ features that cause functions of libgcc.a to be included that use a couple of formerly undefined symbols (stderr, fprintf, abort, debugger) those had to be added to kernel_cpp.cpp. We don't build the kernel utils as static library anymore, since libgcc.a is listed at the end of the link command line and trying to change that would be a bit ugly. For C++ in the boot loader nothing changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03d14a72 09-Mar-2004 Axel Dörfler <axeld@pinc-software.de>

kernel_cpp.h can now safely be included from C code, great, isn't it?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 581cfaf2 05-Jan-2004 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

- Added declaration and definition of std::nothrow
- Wrapped everything but #includes in #if _KERNEL_MODE to keep from
redeclaring/definining operator new and nothrow in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5921 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d172714d 11-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Lazy man's GCC 3 adaption.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e731e117 07-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added the nothrow variants of the new operator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4549 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ccc316dc 03-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Our <new> lets delete throw __nothing - kernel_cpp.h now reflects this,
although I might change this issue after having had a look at the PPC
compilation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4471 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb688867 27-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

C++ for the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56eb43e3ca9e1274a5b39bf4e2bd266bd8cb525a 03-Nov-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made kernel_cpp.h usable in the runtime loader.
* Added new(mynothrow) operators which avoid clashes when also linking
against libgcc.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28474 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90072e721dd2994e0846ae87bf11d290ea54304a 03-Nov-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Always define the symbols needed for basic C++ features. If we link against libgcc.a the symbols from there are simply overridden.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9778 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5de854278915caa59b39ec2b91be3f140f73e77f 27-Oct-2004 Ingo Weinhold <ingo_weinhold@gmx.de>

Since the kernel links against libgcc.a and we use some C++ features that cause functions of libgcc.a to be included that use a couple of formerly undefined symbols (stderr, fprintf, abort, debugger) those had to be added to kernel_cpp.cpp. We don't build the kernel utils as static library anymore, since libgcc.a is listed at the end of the link command line and trying to change that would be a bit ugly. For C++ in the boot loader nothing changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 03d14a728a567fba67852dc838b58c0087713da8 09-Mar-2004 Axel Dörfler <axeld@pinc-software.de>

kernel_cpp.h can now safely be included from C code, great, isn't it?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 581cfaf2c08321225a5914c0b802f90b523f4c9b 05-Jan-2004 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

- Added declaration and definition of std::nothrow
- Wrapped everything but #includes in #if _KERNEL_MODE to keep from
redeclaring/definining operator new and nothrow in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5921 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d172714dbd16e82f6b1ab44d2080dadcf52e3d66 11-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Lazy man's GCC 3 adaption.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4996 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e731e117020de785bced16789642b2ef6a54a899 07-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added the nothrow variants of the new operator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4549 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ccc316dc1c6502b1e2a5d2c8616c822e11be02e2 03-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Our <new> lets delete throw __nothing - kernel_cpp.h now reflects this,
although I might change this issue after having had a look at the PPC
compilation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4471 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb68886768ccbab73550eb23c62eaabcc843904c 27-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

C++ for the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3701 a95241bf-73f2-0310-859d-f6bbb57e9c96