diff --git a/repos/libports/src/lib/libc/fd_alloc.cc b/repos/libports/src/lib/libc/fd_alloc.cc index 89a3b32f2f..44705926cf 100644 --- a/repos/libports/src/lib/libc/fd_alloc.cc +++ b/repos/libports/src/lib/libc/fd_alloc.cc @@ -13,6 +13,7 @@ */ /* Genode includes */ +#include #include #include @@ -23,8 +24,14 @@ namespace Libc { File_descriptor_allocator *file_descriptor_allocator() { - static File_descriptor_allocator _file_descriptor_allocator; - return &_file_descriptor_allocator; + static bool constructed = 0; + static char placeholder[sizeof(File_descriptor_allocator)]; + if (!constructed) { + Genode::construct_at(placeholder); + constructed = 1; + } + + return reinterpret_cast(placeholder); } }