2
0
Fork 0

New stdenv with painless $CXX

Patch Clang to implicitly pass the required linker flags.
This commit is contained in:
Ehmry - 2020-03-27 14:38:22 +05:30
parent 8a74a86599
commit 4ab70e41cf
31 changed files with 154 additions and 2871 deletions

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
final: prev:
with prev; {
@ -21,9 +23,8 @@ with prev; {
null;
});
genodeHeaders = callPackage ./headers { };
inherit (final.genodeSources) genodeBase;
genodeLibcCross = callPackage ./libc { stdenv = crossLibcStdenv; };
genodeSources = buildPackages.callPackage ./genode { };
libcCrossChooser = name:

View File

@ -1,3 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
{ buildPackages, targetPackages }:
with buildPackages;
@ -37,10 +39,10 @@ let
installPhase = "cp -a . $out";
};
sourceForgeToolchain = callPackage ./toolchain.nix { };
toolchain = callPackage ./toolchain.nix { };
stdenv' = targetPackages.stdenvAdapters.overrideCC targetPackages.stdenv
sourceForgeToolchain;
stdenv' =
targetPackages.stdenvAdapters.overrideCC targetPackages.stdenv toolchain;
platform = stdenv'.targetPlatform;
@ -57,6 +59,7 @@ let
outputHash = hash;
pname = name;
inherit (genodeSources) version;
GENODE_DIR = genodeSources;
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
VERBOSE = "";
@ -76,7 +79,7 @@ let
runHook preBuild
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
mkdir $CONTRIB_DIR
${genodeSources}/tool/ports/prepare_port $pname
$GENODE_DIR/tool/ports/prepare_port $pname
runHook postBuild
'';
@ -106,6 +109,7 @@ let
inherit targets;
dontUnpack = true;
GENODE_DIR = genodeSources;
nativeBuildInputs = [ binutils bison flex stdenv.cc tcl which ]
++ nativeBuildInputs;
@ -119,7 +123,7 @@ let
runHook preConfigure
export CONTRIB_DIR=$NIX_BUILD_TOP/contrib
export BUILD_DIR=$NIX_BUILD_TOP/build
${genodeSources}/tool/create_builddir ${arch}
$GENODE_DIR/tool/create_builddir ${arch}
substituteInPlace build/etc/build.conf \
--replace "#REPOSITORIES" "REPOSITORIES"
mkdir $CONTRIB_DIR; ${linkPorts}
@ -139,10 +143,54 @@ let
buildOverrides = callPackage ./targets.nix { inherit ports; };
specs = with platform;
[ ]
++ lib.optional is32bit "32bit"
++ lib.optional is64bit "64bit"
++ lib.optional isAarch32 "arm"
++ lib.optional isAarch64 "arm_64"
++ lib.optional isRiscV "riscv"
++ lib.optional isx86 "x86"
++ lib.optional isx86_32 "x86_32"
++ lib.optional isx86_64 "x86_64";
genodeBase = buildUpstream {
name = "base";
targets = [ "LIB=vfs" ];
postInstall =
# The actual ld.lib.so is kernel specific
# so ship the stubbed library for linking
''
cp $BUILD_DIR/var/libcache/ld/ld.abi.so $out/ld.lib.so
mkdir -p $out/include
cp -r --no-preserve=mode \
$GENODE_DIR/repos/base/include/* \
$GENODE_DIR/repos/os/include/* \
$GENODE_DIR/repos/demo/include/* \
$GENODE_DIR/repos/gems/include/* \
$out/include/
for spec in ${toString specs}; do
dir=$out/include/spec/$spec
if [ -d $dir ]; then
cp -r $dir/* $out/include/
fi
done
rm -rf $out/include/spec
cp -r $GENODE_DIR/repos/base/src/ld $out/ld
'';
};
in genodeSources // {
inherit buildUpstream;
inherit ports;
toolchain = sourceForgeToolchain;
inherit buildUpstream ports specs toolchain genodeBase;
make = target:
with builtins;
let
@ -154,4 +202,5 @@ in genodeSources // {
name = replaceStrings [ "/" ] [ "-" ] target;
targets = [ target ];
} // attrs);
}

View File

@ -1,63 +0,0 @@
# SPDX-FileCopyrightText: Emery Hemingway
#
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
{ stdenvNoCC, lib, fetchurl }:
let
stdenv = stdenvNoCC;
version = "20.02";
platform = stdenv.targetPlatform;
in stdenv.mkDerivation {
pname = platform.system + "-headers";
inherit version;
src = fetchurl {
url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz";
hash = "sha256-ZY9ND6vDA9u127TAv87uOjPuLzRzBPyp5PzD6iM7uNI=";
};
specs = with platform; []
++ lib.optional is32bit "32bit"
++ lib.optional is64bit "64bit"
++ lib.optional isAarch32 "arm"
++ lib.optional isAarch64 "arm_64"
++ lib.optional isRiscV "riscv"
++ lib.optional isx86 "x86"
++ lib.optional isx86_32 "x86_32"
++ lib.optional isx86_64 "x86_64";
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
tar fx $src \
--strip-components=2 \
genode-$version/repos/base \
genode-$version/repos/demo/include \
genode-$version/repos/gems/include \
genode-$version/repos/libports/include \
genode-$version/repos/os/include \
genode-$version/repos/ports/include \
includeDir=$out/include
mkdir -p $includeDir
for DIR in */include; do
for SPEC in $specs; do
if [ -d $DIR/spec/$SPEC ]; then
cp -r $DIR/spec/$SPEC/* $includeDir/
rm -r $DIR/spec/$SPEC
fi
done
rm -rf $DIR/spec
cp -r $DIR/* $includeDir
done
mkdir $out/ld
cp \
base/src/ld/genode_dyn.dl \
base/src/ld/genode_dyn.ld \
base/src/ld/genode_rel.ld \
$out/ld
'';
}

View File

@ -1,24 +0,0 @@
--- src/lib/libc/include/stdlib.h.orig 2019-04-18 13:26:58.781188866 +0200
+++ src/lib/libc/include/stdlib.h 2019-04-18 13:27:46.100594001 +0200
@@ -81,7 +81,8 @@
#endif
extern int __mb_cur_max;
extern int ___mb_cur_max(void);
-#define MB_CUR_MAX ((size_t)___mb_cur_max())
+/* ASCII only */
+#define MB_CUR_MAX 1
_Noreturn void abort(void);
int abs(int) __pure2;
--- src/lib/libc/include/xlocale/_stdlib.h.orig 2019-04-18 13:28:52.691756865 +0200
+++ src/lib/libc/include/xlocale/_stdlib.h 2019-04-18 13:29:13.079500565 +0200
@@ -57,5 +57,6 @@
int wctomb_l(char *, wchar_t, locale_t);
int ___mb_cur_max_l(locale_t);
-#define MB_CUR_MAX_L(x) ((size_t)___mb_cur_max_l(x))
+/* ASCII only */
+#define MB_CUR_MAX_L(x) 1

View File

@ -1,23 +0,0 @@
--- src/lib/libc/include/runetype.h.orig 2019-04-16 11:51:27.954530199 +0200
+++ src/lib/libc/include/runetype.h 2019-04-16 11:51:53.346901123 +0200
@@ -88,19 +88,7 @@
__BEGIN_DECLS
extern const _RuneLocale _DefaultRuneLocale;
extern const _RuneLocale *_CurrentRuneLocale;
-#if defined(__NO_TLS) || defined(__RUNETYPE_INTERNAL)
-extern const _RuneLocale *__getCurrentRuneLocale(void);
-#else
-extern _Thread_local const _RuneLocale *_ThreadRuneLocale;
-static __inline const _RuneLocale *__getCurrentRuneLocale(void)
-{
-
- if (_ThreadRuneLocale)
- return _ThreadRuneLocale;
- return _CurrentRuneLocale;
-}
-#endif /* __NO_TLS || __RUNETYPE_INTERNAL */
-#define _CurrentRuneLocale (__getCurrentRuneLocale())
+#define _CurrentRuneLocale (&_DefaultRuneLocale)
__END_DECLS
#endif /* !_RUNETYPE_H_ */

View File

@ -1,63 +0,0 @@
Prevent the use of the hidden attribute for symbols. In particular,
the attribute must not be applied to '__libc'-prefixed symbols to allow
overwriting the dummies defined in dummies.cc by other non-weak
implementations such as those in 'libc_noux.lib.so'.
This attribute is applied inconsistently in
libc/lib/libc/include/libc_private.h anyway.
Also, force i386 to call __libc_sigprocmask via PLT to prevent
R_386_PC32 relocations, which had to change the text segment. Other
architectures do this automatically.
--- src/lib/libc/sys/sys/cdefs.h
+++ src/lib/libc/sys/sys/cdefs.h
@@ -447,7 +447,7 @@
#if __GNUC_PREREQ__(4, 0)
#define __null_sentinel __attribute__((__sentinel__))
#define __exported __attribute__((__visibility__("default")))
-#define __hidden __attribute__((__visibility__("hidden")))
+#define __hidden
#else
#define __null_sentinel
#define __exported
--- src/lib/libc/lib/libc/i386/gen/setjmp.S
+++ src/lib/libc/lib/libc/i386/gen/setjmp.S
@@ -54,7 +54,7 @@
pushl %eax /* (sigset_t*)oset */
pushl $0 /* (sigset_t*)set */
pushl $1 /* SIG_BLOCK */
- call __libc_sigprocmask
+ call __i386_libc_sigprocmask
addl $12,%esp
movl 4(%esp),%ecx
movl 0(%esp),%edx
@@ -76,7 +76,7 @@
leal 28(%edx), %eax
pushl %eax /* (sigset_t*)set */
pushl $3 /* SIG_SETMASK */
- call __libc_sigprocmask
+ call __i386_libc_sigprocmask
addl $12,%esp
movl 4(%esp),%edx
movl 8(%esp),%eax
--- src/lib/libc/lib/libc/i386/gen/sigsetjmp.S
+++ src/lib/libc/lib/libc/i386/gen/sigsetjmp.S
@@ -63,7 +63,7 @@
pushl %eax /* (sigset_t*)oset */
pushl $0 /* (sigset_t*)set */
pushl $1 /* SIG_BLOCK */
- call __libc_sigprocmask
+ call __i386_libc_sigprocmask
addl $12,%esp
movl 4(%esp),%ecx
2: movl 0(%esp),%edx
@@ -87,7 +87,7 @@
leal 28(%edx), %eax
pushl %eax /* (sigset_t*)set */
pushl $3 /* SIG_SETMASK */
- call __libc_sigprocmask
+ call __i386_libc_sigprocmask
addl $12,%esp
movl 4(%esp),%edx
2: movl 8(%esp),%eax

View File

@ -1,111 +1,29 @@
# SPDX-FileCopyrightText: Emery Hemingway
#
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
# SPDX-License-Identifier: CC0-1.0
{ stdenv, fetchgit, fetchurl, genodeHeaders, bison, flex, glibc, writeText }:
{ stdenv, genodeSources, genodeBase }:
let
archInfo = with stdenv.hostPlatform;
if isAarch32 then {
inherit isArm isAarch32;
} else if isAarch64 then {
inherit isArm isAarch64;
} else if isx86_32 then {
inherit isx86 isx86_32;
} else if isx86_64 then {
inherit isx86 isx86_64;
} else
{ };
in stdenv.mkDerivation (archInfo // {
pname = "libgenode";
version = "19.11";
genodeSources.buildUpstream {
name = "libc";
outputs = [ "out" "dev" ];
targets = [ "LIB=libm" ];
portInputs = [ genodeSources.ports.libc ];
propagatedBuildInputs = [ genodeBase ];
inherit genodeHeaders;
depsBuildBuild = [
bison
flex
glibc # provides rpcgen
];
src = fetchurl {
url =
"http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.0-RELEASE/src.txz";
sha256 = "0da393ac2174168a71c1c527d1453e07372295187d05c288250800cb152a889b";
};
unpackPhase = "tar xf $src $tarFlags";
tarFlags = [
"--strip-components=2"
"usr/src/contrib/gdtoa"
"usr/src/contrib/libc-vis"
"usr/src/contrib/tzcode/stdtime"
"usr/src/include"
"usr/src/lib/libc"
"usr/src/lib/msun"
"usr/src/sys/amd64"
"usr/src/sys/arm"
"usr/src/sys/arm64"
"usr/src/sys/bsm"
"usr/src/sys/crypto/chacha20"
"usr/src/sys/i386"
"usr/src/sys/libkern"
"usr/src/sys/net"
"usr/src/sys/netinet"
"usr/src/sys/netinet6"
"usr/src/sys/riscv"
"usr/src/sys/rpc"
"usr/src/sys/sys"
"usr/src/sys/vm"
"usr/src/sys/x86"
];
patches = [
./cdefs_no_hidden.patch
./_CurrentRuneLocale.patch
./gdtoa.patch
./log2.patch
./MB_CUR_MAX.patch
./mktime.patch
./printfcommon.patch
./rcmd.patch
./res_init_c.patch
./runetype.patch
./semaphore.patch
./thread_local.patch
./types.patch
./vfwprintf_c_warn.patch
./xlocale.patch
./xlocale_private.patch
./xprintf_float.patch
];
patchFlags = "-p0 --strip 3";
genodeRelLd = "${genodeHeaders}/ld/genode_rel.ld";
genodePrgPcIn = ./genode-prg.pc.in;
libcSymbols = ./libc.symbols;
ldSymbols = ./ld.symbols;
linkerLd = ./linker.ld;
vfsSymbols = ./vfs.symbols;
builder = writeText "builder.sh" ''
source $stdenv/setup
export includedir=$out/include
export pkgconfigdir=$out/lib/pkgconfig
export lddir=${genodeHeaders}/ld
mkdir -p $pkgconfigdir $out/lib
source ${./libc-builder.sh}
substituteAll ${./libc.pc.in} $pkgconfigdir/libc.pc
substituteAll ${./vfs.pc.in} $pkgconfigdir/vfs.pc
substituteAll ${./genode-prg.pc.in} $pkgconfigdir/genode-prg.pc
ln -s $out/lib/libc.lib.so $out/lib/libc.so
LIBC_PORT = genodeSources.ports.libc;
postInstall = ''
mkdir -p $dev/include
pushd $LIBC_PORT/*
cp -r \
include/libc/* \
include/openlibm/* \
$GENODE_DIR/repos/libports/include/libc/* \
$dev/include/
for spec in ${toString genodeSources.specs}; do
dir=include/spec/$spec/libc
if [ -d $dir ]; then
cp -r $dir/* $dev/include/
fi
done
popd
'';
})
}

View File

@ -1,43 +0,0 @@
--- src/lib/libc/contrib/gdtoa/gdtoaimp.h.orig 2019-04-16 11:11:02.420833030 +0200
+++ src/lib/libc/contrib/gdtoa/gdtoaimp.h 2019-04-16 11:11:17.704278981 +0200
@@ -506,40 +506,6 @@
#define Bcopy(x,y) memcpy(&x->sign,&y->sign,y->wds*sizeof(ULong) + 2*sizeof(int))
#endif /* NO_STRING_H */
-/*
- * Paranoia: Protect exported symbols, including ones in files we don't
- * compile right now. The standard strtof and strtod survive.
- */
-#define dtoa __dtoa
-#define gdtoa __gdtoa
-#define freedtoa __freedtoa
-#define strtodg __strtodg
-#define g_ddfmt __g_ddfmt
-#define g_dfmt __g_dfmt
-#define g_ffmt __g_ffmt
-#define g_Qfmt __g_Qfmt
-#define g_xfmt __g_xfmt
-#define g_xLfmt __g_xLfmt
-#define strtoId __strtoId
-#define strtoIdd __strtoIdd
-#define strtoIf __strtoIf
-#define strtoIQ __strtoIQ
-#define strtoIx __strtoIx
-#define strtoIxL __strtoIxL
-#define strtord_l __strtord_l
-#define strtordd __strtordd
-#define strtorf __strtorf
-#define strtorQ_l __strtorQ_l
-#define strtorx_l __strtorx_l
-#define strtorxL __strtorxL
-#define strtodI __strtodI
-#define strtopd __strtopd
-#define strtopdd __strtopdd
-#define strtopf __strtopf
-#define strtopQ __strtopQ
-#define strtopx __strtopx
-#define strtopxL __strtopxL
-
/* Protect gdtoa-internal symbols */
#define Balloc __Balloc_D2A
#define Bfree __Bfree_D2A

View File

@ -1,7 +0,0 @@
lddir=@lddir@
Name: genode-prg
Description: Flags for dynamically-linked Genode programs
URL: https://genode.org/
Version: @version@
Libs: -gc-sections -z max-page-size=0x1000 --dynamic-list=${lddir}/genode_dyn.dl -nostdlib -Ttext=0x01000000 --dynamic-linker=ld.lib.so --eh-frame-hdr -rpath-link=. -T${lddir}/genode_dyn.ld -l:ld.lib.so

View File

@ -1,662 +0,0 @@
#
# \brief Genode application binary interface (ABI)
# \author Norman Feske
# \date 2016-12-20
#
# This file contains the binary application interface (ABI) provided by
# Genode's dynamic linker. Each line contains the name of a symbol followed
# by its type (according to the encoding used by binutil's 'nm' tool). Data
# symbols are furher annotated by the size of their corresponding data object.
# The latter is only needed on ARM.
#
# On the ARM architecture, copy relocations are created for read-only data
# objects that are present in shared libraries. For each data object, the
# linker preserves a slot in the program's BSS according to the object size.
# At runtime, the dynamic linker copies the data from the shared library's
# read-only segment to these slots. The copy relocations for a given binary
# can be inspected via 'objdump -R'. The size of data symbols as present in a
# shared library (like 'ld-hw.lib.a') can be inspected via 'nm --format posix'.
# The data-object sizes as annotated here must always be at least as big as the
# corresponding data objects present in the dynamic linker.
#
# The original version of this file is based on the output of the
# 'tool/abi_symbols' tool with 'ld-<platform>.lib.so' used as argument.
# However, this tool was solely used as a starting point for the - now
# manually maintained - file.
#
# Note that not all symbols present in this list are provided by each variant
# of the dynamic linker. I.e., there are a few symbols that are specific for a
# particular kernel or the C++ ABI of a specific architecture.
#
# Please keep the file sorted via 'LC_COLLATE=C sort'.
#
#
# Copyright (C) 2016-2019 Genode Labs GmbH
#
# This file is part of the Genode OS framework, which is distributed
# under the terms of the GNU Affero General Public License version 3.
#
_Unwind_Complete T
_Unwind_DeleteException T
_Unwind_Resume T
_Z11genode_exiti T
_Z13genode_atexitPFvvE T
_Z16main_thread_utcbv T
_Z21genode___cxa_finalizePv T
_Z22__ldso_raise_exceptionv T
_ZN5Timer10Connection16schedule_timeoutEN6Genode12MicrosecondsERNS1_11Time_source15Timeout_handlerE T
_ZN5Timer10Connection18_schedule_one_shotERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZN5Timer10Connection18_schedule_periodicERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZN5Timer10Connection8_discardERN6Genode7TimeoutE T
_ZN5Timer10Connection9curr_timeEv T
_ZN5Timer10ConnectionC1ERN6Genode3EnvEPKc T
_ZN5Timer10ConnectionC2ERN6Genode3EnvEPKc T
_ZN5Timer10ConnectionC1ERN6Genode3EnvERNS1_10EntrypointEPKc T
_ZN5Timer10ConnectionC2ERN6Genode3EnvERNS1_10EntrypointEPKc T
_ZN6Genode10Entrypoint16_dispatch_signalERNS_6SignalE T
_ZN6Genode10Entrypoint16schedule_suspendEPFvvES2_ T
_ZN6Genode10Entrypoint22Signal_proxy_component6signalEv T
_ZN6Genode10Entrypoint25_process_incoming_signalsEv T
_ZN6Genode10Entrypoint32_wait_and_dispatch_one_io_signalEb T
_ZN6Genode10Entrypoint6manageERNS_22Signal_dispatcher_baseE T
_ZN6Genode10Entrypoint8dissolveERNS_22Signal_dispatcher_baseE T
_ZN6Genode10EntrypointC1ERNS_3EnvE T
_ZN6Genode10EntrypointC1ERNS_3EnvEmPKcNS_8Affinity8LocationE T
_ZN6Genode10EntrypointC2ERNS_3EnvEmPKcNS_8Affinity8LocationE T
_ZN6Genode10EntrypointD1Ev T
_ZN6Genode10EntrypointD2Ev T
_ZN6Genode10Ipc_serverC1Ev T
_ZN6Genode10Ipc_serverC2Ev T
_ZN6Genode10Ipc_serverD1Ev T
_ZN6Genode10Ipc_serverD2Ev T
_ZN6Genode10Vm_sessionD0Ev T
_ZN6Genode10Vm_sessionD2Ev T
_ZN6Genode11Sliced_heap4freeEPvm T
_ZN6Genode11Sliced_heap5allocEmPPv T
_ZN6Genode11Sliced_heapC1ERNS_13Ram_allocatorERNS_10Region_mapE T
_ZN6Genode11Sliced_heapC2ERNS_13Ram_allocatorERNS_10Region_mapE T
_ZN6Genode11Sliced_heapD0Ev T
_ZN6Genode11Sliced_heapD1Ev T
_ZN6Genode11Sliced_heapD2Ev T
_ZN6Genode12Address_infoC1Em T
_ZN6Genode12Address_infoC2Em T
_ZN6Genode12Trace_output12trace_outputEv T
_ZN6Genode12Trace_output8_acquireEv T
_ZN6Genode12Trace_output8_releaseEv T
_ZN6Genode13Avl_node_base15_rotate_subtreeEPS0_bRNS0_6PolicyE T
_ZN6Genode13Avl_node_base18_rebalance_subtreeEPS0_RNS0_6PolicyE T
_ZN6Genode13Avl_node_base6_adoptEPS0_bRNS0_6PolicyE T
_ZN6Genode13Avl_node_base6insertEPS0_RNS0_6PolicyE T
_ZN6Genode13Avl_node_base6removeERNS0_6PolicyE T
_ZN6Genode13Avl_node_baseC1Ev T
_ZN6Genode13Avl_node_baseC2Ev T
_ZN6Genode13Registry_base7ElementC1ERS0_Pv T
_ZN6Genode13Registry_base7ElementC2ERS0_Pv T
_ZN6Genode13Registry_base7ElementD1Ev T
_ZN6Genode13Registry_base7ElementD2Ev T
_ZN6Genode13Registry_base7_insertERNS0_7ElementE T
_ZN6Genode13Registry_base7_removeERNS0_7ElementE T
_ZN6Genode13Registry_base9_for_eachERNS0_15Untyped_functorE T
_ZN6Genode13Session_state7destroyEv T
_ZN6Genode13Session_stateC1ERNS_7ServiceERNS_8Id_spaceINS_6Parent6ClientEEENS6_2IdERKNS_13Session_labelERKNS_6StringILm256EEERKNS_8AffinityE T
_ZN6Genode13Session_stateC2ERNS_7ServiceERNS_8Id_spaceINS_6Parent6ClientEEENS6_2IdERKNS_13Session_labelERKNS_6StringILm256EEERKNS_8AffinityE T
_ZN6Genode13Shared_objectC1ERNS_3EnvERNS_9AllocatorEPKcNS0_4BindENS0_4KeepE T
_ZN6Genode13Shared_objectC2ERNS_3EnvERNS_9AllocatorEPKcNS0_4BindENS0_4KeepE T
_ZN6Genode13Shared_objectD1Ev T
_ZN6Genode13Shared_objectD2Ev T
_ZN6Genode13sleep_foreverEv T
_ZN6Genode14Capability_map6insertEmm T
_ZN6Genode14Dynamic_linker23_for_each_loaded_objectERNS_3EnvERKNS0_11For_each_fnE T
_ZN6Genode14Dynamic_linker4keepERNS_3EnvEPKc T
_ZN6Genode14Dynamic_linker8_respawnERNS_3EnvEPKcS4_ T
_ZN6Genode14Rpc_entrypoint13_free_rpc_capERNS_10Pd_sessionENS_17Native_capabilityE T
_ZN6Genode14Rpc_entrypoint14_alloc_rpc_capERNS_10Pd_sessionENS_17Native_capabilityEm T
_ZN6Genode14Rpc_entrypoint17_activation_entryEv T
_ZN6Genode14Rpc_entrypoint17reply_signal_infoENS_17Native_capabilityEmm T
_ZN6Genode14Rpc_entrypoint22_block_until_cap_validEv T
_ZN6Genode14Rpc_entrypoint5entryEv T
_ZN6Genode14Rpc_entrypoint7_manageEPNS_15Rpc_object_baseE T
_ZN6Genode14Rpc_entrypoint8activateEv T
_ZN6Genode14Rpc_entrypoint9_dissolveEPNS_15Rpc_object_baseE T
_ZN6Genode14Rpc_entrypointC1EPNS_10Pd_sessionEmPKcbNS_8Affinity8LocationE T
_ZN6Genode14Rpc_entrypointC2EPNS_10Pd_sessionEmPKcbNS_8Affinity8LocationE T
_ZN6Genode14Rpc_entrypointD0Ev T
_ZN6Genode14Rpc_entrypointD1Ev T
_ZN6Genode14Rpc_entrypointD2Ev T
_ZN6Genode14Signal_contextD0Ev T
_ZN6Genode14Signal_contextD1Ev T
_ZN6Genode14Signal_contextD2Ev T
_ZN6Genode14cache_coherentEmm T
_ZN6Genode14env_deprecatedEv T
_ZN6Genode14ipc_reply_waitERKNS_17Native_capabilityENS_18Rpc_exception_codeERNS_11Msgbuf_baseES5_ T
_ZN6Genode15Alarm_scheduler12_setup_alarmERNS_5AlarmEmm T
_ZN6Genode15Alarm_scheduler13next_deadlineEPm T
_ZN6Genode15Alarm_scheduler17schedule_absoluteEPNS_5AlarmEy T
_ZN6Genode15Alarm_scheduler18_get_pending_alarmEv T
_ZN6Genode15Alarm_scheduler23_unsynchronized_dequeueEPNS_5AlarmE T
_ZN6Genode15Alarm_scheduler23_unsynchronized_enqueueEPNS_5AlarmE T
_ZN6Genode15Alarm_scheduler6handleEy T
_ZN6Genode15Alarm_scheduler7discardEPNS_5AlarmE T
_ZN6Genode15Alarm_scheduler8scheduleEPNS_5AlarmEm T
_ZN6Genode15Alarm_schedulerD1Ev T
_ZN6Genode15Alarm_schedulerD2Ev T
_ZN6Genode15Cancelable_lock4lockEv T
_ZN6Genode15Cancelable_lock6unlockEv T
_ZN6Genode15Cancelable_lock9Applicant7wake_upEv T
_ZN6Genode15Cancelable_lockC1ENS0_5StateE T
_ZN6Genode15Cancelable_lockC2ENS0_5StateE T
_ZN6Genode15Connection_baseC1Ev T
_ZN6Genode15Connection_baseC2Ev T
_ZN6Genode15Signal_receiver12local_submitENS_6Signal4DataE T
_ZN6Genode15Signal_receiver14pending_signalEv T
_ZN6Genode15Signal_receiver15wait_for_signalEv T
_ZN6Genode15Signal_receiver16block_for_signalEv T
_ZN6Genode15Signal_receiver6manageEPNS_14Signal_contextE T
_ZN6Genode15Signal_receiver8dissolveEPNS_14Signal_contextE T
_ZN6Genode15Signal_receiverC1Ev T
_ZN6Genode15Signal_receiverC2Ev T
_ZN6Genode15Signal_receiverD1Ev T
_ZN6Genode15Signal_receiverD2Ev T
_ZN6Genode16raw_write_stringEPKc T
_ZN6Genode17Native_capability4_decEv T
_ZN6Genode17Native_capability4_incEv T
_ZN6Genode17Native_capabilityC1Ev T
_ZN6Genode17Native_capabilityC2Ev T
_ZN6Genode17Region_map_client13fault_handlerENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode17Region_map_client5stateEv T
_ZN6Genode17Region_map_client6attachENS_10CapabilityINS_9DataspaceEEEmlbNS_10Region_map10Local_addrEbb T
_ZN6Genode17Region_map_client6detachENS_10Region_map10Local_addrE T
_ZN6Genode17Region_map_client9dataspaceEv T
_ZN6Genode17Region_map_clientC1ENS_10CapabilityINS_10Region_mapEEE T
_ZN6Genode17Region_map_clientC2ENS_10CapabilityINS_10Region_mapEEE T
_ZN6Genode17Rm_session_client6createEm T
_ZN6Genode17Rm_session_client7destroyENS_10CapabilityINS_10Region_mapEEE T
_ZN6Genode17Rm_session_clientC1ENS_10CapabilityINS_10Rm_sessionEEE T
_ZN6Genode17Rm_session_clientC2ENS_10CapabilityINS_10Rm_sessionEEE T
_ZN6Genode17Vm_session_client11create_vcpuERNS_9AllocatorERNS_3EnvERNS_15Vm_handler_baseE T
_ZN6Genode17Vm_session_client3runENS_10Vm_session7Vcpu_idE T
_ZN6Genode17Vm_session_client5pauseENS_10Vm_session7Vcpu_idE T
_ZN6Genode17Vm_session_client9cpu_stateENS_10Vm_session7Vcpu_idE T
_ZN6Genode18Allocator_avl_base10_add_blockEPNS0_5BlockEmmb T
_ZN6Genode18Allocator_avl_base10alloc_addrEmm T
_ZN6Genode18Allocator_avl_base12remove_rangeEmm T
_ZN6Genode18Allocator_avl_base13alloc_alignedEmPPvimm T
_ZN6Genode18Allocator_avl_base14_destroy_blockEPNS0_5BlockE T
_ZN6Genode18Allocator_avl_base14any_block_addrEPm T
_ZN6Genode18Allocator_avl_base15_cut_from_blockEPNS0_5BlockEmmS2_S2_ T
_ZN6Genode18Allocator_avl_base20_find_any_used_blockEPNS0_5BlockE T
_ZN6Genode18Allocator_avl_base21_alloc_block_metadataEv T
_ZN6Genode18Allocator_avl_base26_alloc_two_blocks_metadataEPPNS0_5BlockES3_ T
_ZN6Genode18Allocator_avl_base30_revert_allocations_and_rangesEv T
_ZN6Genode18Allocator_avl_base4freeEPv T
_ZN6Genode18Allocator_avl_base5Block13find_best_fitEmjmm T
_ZN6Genode18Allocator_avl_base5Block15find_by_addressEmmb T
_ZN6Genode18Allocator_avl_base5Block16avail_in_subtreeEv T
_ZN6Genode18Allocator_avl_base5Block9recomputeEv T
_ZN6Genode18Allocator_avl_base9add_rangeEmm T
_ZN6Genode18Signal_transmitter6submitEj T
_ZN6Genode18Signal_transmitter7contextENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode18Signal_transmitter7contextEv T
_ZN6Genode18Signal_transmitterC1ENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode18Signal_transmitterC2ENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode18server_socket_pairEv T
_ZN6Genode20env_session_id_spaceEv T
_ZN6Genode23Alarm_timeout_scheduler14handle_timeoutENS_8DurationE T
_ZN6Genode23Alarm_timeout_scheduler18_schedule_one_shotERNS_7TimeoutENS_12MicrosecondsE T
_ZN6Genode23Alarm_timeout_scheduler18_schedule_periodicERNS_7TimeoutENS_12MicrosecondsE T
_ZN6Genode23Alarm_timeout_scheduler7_enableEv T
_ZN6Genode23Alarm_timeout_schedulerC1ERNS_11Time_sourceENS_12MicrosecondsE T
_ZN6Genode23Alarm_timeout_schedulerC2ERNS_11Time_sourceENS_12MicrosecondsE T
_ZN6Genode23Alarm_timeout_schedulerD0Ev T
_ZN6Genode23Alarm_timeout_schedulerD1Ev T
_ZN6Genode23Alarm_timeout_schedulerD2Ev T
_ZN6Genode25env_stack_area_region_mapE B 8
_ZN6Genode28env_stack_area_ram_allocatorE B 8
_ZN6Genode3Log3logEv T
_ZN6Genode3Log8_acquireENS0_4TypeE T
_ZN6Genode3Log8_releaseEv T
_ZN6Genode3Raw7_outputEv T
_ZN6Genode3Raw8_acquireEv T
_ZN6Genode3Raw8_releaseEv T
_ZN6Genode4Heap11quota_limitEm T
_ZN6Genode4Heap4freeEPvm T
_ZN6Genode4Heap5allocEmPPv T
_ZN6Genode4HeapC1EPNS_13Ram_allocatorEPNS_10Region_mapEmPvm T
_ZN6Genode4HeapC2EPNS_13Ram_allocatorEPNS_10Region_mapEmPvm T
_ZN6Genode4HeapD0Ev T
_ZN6Genode4HeapD1Ev T
_ZN6Genode4HeapD2Ev T
_ZN6Genode4Slab13any_used_elemEv T
_ZN6Genode4Slab5Block11_slab_entryEi T
_ZN6Genode4Slab5Block14any_used_entryEv T
_ZN6Genode4Slab5Block5allocEv T
_ZN6Genode4Slab5Block9inc_availERNS0_5EntryE T
_ZN6Genode4Slab5_freeEPv T
_ZN6Genode4Slab5allocEmPPv T
_ZN6Genode4Slab9insert_sbEPv T
_ZN6Genode4SlabC1EmmPvPNS_9AllocatorE T
_ZN6Genode4SlabC2EmmPvPNS_9AllocatorE T
_ZN6Genode4SlabD0Ev T
_ZN6Genode4SlabD1Ev T
_ZN6Genode4SlabD2Ev T
_ZN6Genode5AlarmD0Ev T
_ZN6Genode5AlarmD1Ev T
_ZN6Genode5AlarmD2Ev T
_ZN6Genode5Child10yield_sighENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode5Child11session_capENS_8Id_spaceINS_6Parent6ClientEE2IdE T
_ZN6Genode5Child12session_sighENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode5Child13session_readyERNS_13Session_stateE T
_ZN6Genode5Child13yield_requestEv T
_ZN6Genode5Child14session_closedERNS_13Session_stateE T
_ZN6Genode5Child14yield_responseEv T
_ZN6Genode5Child16resource_requestERKNS_6StringILm160EEE T
_ZN6Genode5Child16session_responseENS_8Id_spaceINS_6Parent6ServerEE2IdENS2_16Session_responseE T
_ZN6Genode5Child18close_all_sessionsEv T
_ZN6Genode5Child19deliver_session_capENS_8Id_spaceINS_6Parent6ServerEE2IdENS_10CapabilityINS_7SessionEEE T
_ZN6Genode5Child19resource_avail_sighENS_10CapabilityINS_14Signal_contextEEE T
_ZN6Genode5Child21initiate_env_sessionsEv T
_ZN6Genode5Child23initiate_env_pd_sessionEv T
_ZN6Genode5Child4exitEi T
_ZN6Genode5Child5closeENS_8Id_spaceINS_6Parent6ClientEE2IdE T
_ZN6Genode5Child5yieldERKNS_6StringILm160EEE T
_ZN6Genode5Child7sessionENS_8Id_spaceINS_6Parent6ClientEE2IdERKNS_13Rpc_in_bufferILm64EEERKNS6_ILm160EEERKNS_8AffinityE T
_ZN6Genode5Child7upgradeENS_8Id_spaceINS_6Parent6ClientEE2IdERKNS_13Rpc_in_bufferILm160EEE T
_ZN6Genode5Child8announceERKNS_13Rpc_in_bufferILm64EEE T
_ZN6Genode5Child9heartbeatEv T
_ZN6Genode5ChildC1ERNS_10Region_mapERNS_14Rpc_entrypointERNS_12Child_policyE T
_ZN6Genode5ChildC2ERNS_10Region_mapERNS_14Rpc_entrypointERNS_12Child_policyE T
_ZN6Genode5ChildD0Ev T
_ZN6Genode5ChildD1Ev T
_ZN6Genode5ChildD2Ev T
_ZN6Genode5Stack4sizeEm T
_ZN6Genode5Trace6Logger17_evaluate_controlEv T
_ZN6Genode5Trace6Logger3logEPKcm T
_ZN6Genode5Trace6LoggerC1Ev T
_ZN6Genode5Trace6LoggerC2Ev T
_ZN6Genode5printERNS_6OutputEPKc T
_ZN6Genode5printERNS_6OutputEPKv T
_ZN6Genode5printERNS_6OutputEd T
_ZN6Genode5printERNS_6OutputEf T
_ZN6Genode5printERNS_6OutputEl T
_ZN6Genode5printERNS_6OutputEm T
_ZN6Genode5printERNS_6OutputEx T
_ZN6Genode5printERNS_6OutputEy T
_ZN6Genode6Output10out_stringEPKcm T
_ZN6Genode6Parent8announceERKNS_13Rpc_in_bufferILm64EEENS_10CapabilityINS_4RootEEE T
_ZN6Genode6Signal19_dec_ref_and_unlockEv T
_ZN6Genode6Signal8_inc_refEv T
_ZN6Genode6SignalC1ENS0_4DataE T
_ZN6Genode6SignalC1ERKS0_ T
_ZN6Genode6SignalC2ENS0_4DataE T
_ZN6Genode6SignalC2ERKS0_ T
_ZN6Genode6SignalD1Ev T
_ZN6Genode6SignalD2Ev T
_ZN6Genode6SignalaSERKS0_ T
_ZN6Genode6Thread10stack_sizeEm T
_ZN6Genode6Thread13native_threadEv T
_ZN6Genode6Thread15cancel_blockingEv T
_ZN6Genode6Thread18stack_virtual_sizeEv T
_ZN6Genode6Thread20free_secondary_stackEPv T
_ZN6Genode6Thread21alloc_secondary_stackEPKcm T
_ZN6Genode6Thread23stack_area_virtual_baseEv T
_ZN6Genode6Thread23stack_area_virtual_sizeEv T
_ZN6Genode6Thread4joinEv T
_ZN6Genode6Thread4nameEPcm T
_ZN6Genode6Thread4utcbEv T
_ZN6Genode6Thread5startEv T
_ZN6Genode6Thread6myselfEv T
_ZN6Genode6Thread7_loggerEv T
_ZN6Genode6Thread7mystackEv T
_ZN6Genode6ThreadC1ERNS_3EnvERKNS_6StringILm32EEEm T
_ZN6Genode6ThreadC1ERNS_3EnvERKNS_6StringILm32EEEmNS_8Affinity8LocationENS_11Cpu_session6WeightERS9_ T
_ZN6Genode6ThreadC1EmPKcmNS0_4TypeENS_8Affinity8LocationE T
_ZN6Genode6ThreadC1EmPKcmNS0_4TypeEPNS_11Cpu_sessionENS_8Affinity8LocationE T
_ZN6Genode6ThreadC2ERNS_3EnvERKNS_6StringILm32EEEm T
_ZN6Genode6ThreadC2ERNS_3EnvERKNS_6StringILm32EEEmNS_8Affinity8LocationENS_11Cpu_session6WeightERS9_ T
_ZN6Genode6ThreadC2EmPKcmNS0_4TypeENS_8Affinity8LocationE T
_ZN6Genode6ThreadC2EmPKcmNS0_4TypeEPNS_11Cpu_sessionENS_8Affinity8LocationE T
_ZN6Genode6ThreadD0Ev T
_ZN6Genode6ThreadD1Ev T
_ZN6Genode6ThreadD2Ev T
_ZN6Genode7Console11_out_stringEPKc T
_ZN6Genode7Console6printfEPKcz T
_ZN6Genode7Console7vprintfEPKcP13__va_list_tag T
_ZN6Genode7Console7vprintfEPKcPc T
_ZN6Genode7Console7vprintfEPKcPv T
_ZN6Genode7Console7vprintfEPKcSt9__va_list T
_ZN6Genode7Timeout17schedule_one_shotENS_12MicrosecondsERNS0_7HandlerE T
_ZN6Genode7Timeout17schedule_periodicENS_12MicrosecondsERNS0_7HandlerE T
_ZN6Genode7Timeout5AlarmD0Ev T
_ZN6Genode7Timeout5AlarmD1Ev T
_ZN6Genode7Timeout5AlarmD2Ev T
_ZN6Genode7Timeout7discardEv T
_ZN6Genode7cap_mapEv T
_ZN6Genode8Duration3addENS_12MicrosecondsE T
_ZN6Genode8Duration3addENS_12MillisecondsE T
_ZN6Genode8ipc_callENS_17Native_capabilityERNS_11Msgbuf_baseES2_m T
_ZN6Genode9ipc_replyENS_17Native_capabilityENS_18Rpc_exception_codeERNS_11Msgbuf_baseE T
_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj T
_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE T
_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastElNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE T
_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcElPKvPKNS_17__class_type_infoES2_ T
_ZNK6Genode11Sliced_heap8overheadEm T
_ZNK6Genode13Session_state24generate_session_requestERNS_13Xml_generatorE T
_ZNK6Genode13Session_state25generate_client_side_infoERNS_13Xml_generatorENS0_6DetailE T
_ZNK6Genode13Session_state25generate_server_side_infoERNS_13Xml_generatorENS0_6DetailE T
_ZNK6Genode13Session_state5printERNS_6OutputE T
_ZNK6Genode13Shared_object7_lookupEPKc T
_ZNK6Genode13Shared_object8link_mapEv T
_ZNK6Genode14Rpc_entrypoint9is_myselfEv T
_ZNK6Genode17Native_capability10local_nameEv T
_ZNK6Genode17Native_capability3rawEv T
_ZNK6Genode17Native_capability5printERNS_6OutputE T
_ZNK6Genode17Native_capability5validEv T
_ZNK6Genode18Allocator_avl_base10valid_addrEm T
_ZNK6Genode18Allocator_avl_base5availEv T
_ZNK6Genode18Allocator_avl_base7size_atEPKv T
_ZNK6Genode3Hex5printERNS_6OutputE T
_ZNK6Genode4Slab8consumedEv T
_ZNK6Genode5Child15main_thread_capEv T
_ZNK6Genode5Child18skipped_heartbeatsEv T
_ZNK6Genode5Child21notify_resource_availEv T
_ZNK6Genode6Thread10stack_baseEv T
_ZNK6Genode6Thread4nameEv T
_ZNK6Genode6Thread9stack_topEv T
_ZNK6Genode8Duration17trunc_to_plain_msEv T
_ZNK6Genode8Duration17trunc_to_plain_usEv T
_ZNK6Genode8Duration9less_thanERKS0_ T
_ZNKSt13bad_exception4whatEv T
_ZNKSt9exception4whatEv T
_ZNSt13bad_exceptionD0Ev T
_ZNSt13bad_exceptionD1Ev T
_ZNSt13bad_exceptionD2Ev T
_ZNSt9exceptionD0Ev T
_ZNSt9exceptionD1Ev T
_ZNSt9exceptionD2Ev T
_ZSt18uncaught_exceptionv T
_ZSt19uncaught_exceptionsv T
_ZSt9terminatev T
_ZTIDd D 16
_ZTIDe D 16
_ZTIDf D 16
_ZTIDi D 16
_ZTIDn D 16
_ZTIDs D 16
_ZTIN10__cxxabiv115__forced_unwindE D 16
_ZTIN10__cxxabiv116__enum_type_infoE D 24
_ZTIN10__cxxabiv117__class_type_infoE D 24
_ZTIN10__cxxabiv117__pbase_type_infoE D 24
_ZTIN10__cxxabiv119__foreign_exceptionE D 16
_ZTIN10__cxxabiv119__pointer_type_infoE D 24
_ZTIN10__cxxabiv120__function_type_infoE D 24
_ZTIN10__cxxabiv120__si_class_type_infoE D 24
_ZTIN10__cxxabiv121__vmi_class_type_infoE D 24
_ZTIN10__cxxabiv123__fundamental_type_infoE D 24
_ZTIN5Timer10ConnectionE D 88
_ZTIN6Genode10Vm_sessionE D 24
_ZTIN6Genode11Sliced_heapE D 24
_ZTIN6Genode14Rpc_entrypointE D 56
_ZTIN6Genode14Signal_contextE D 56
_ZTIN6Genode17Region_map_clientE D 24
_ZTIN6Genode17Rm_session_clientE D 24
_ZTIN6Genode18Allocator_avl_baseE D 24
_ZTIN6Genode23Alarm_timeout_schedulerE D 72
_ZTIN6Genode4HeapE D 24
_ZTIN6Genode4SlabE D 24
_ZTIN6Genode5AlarmE D 16
_ZTIN6Genode5Child14Initial_threadE D 24
_ZTIN6Genode5ChildE D 72
_ZTIN6Genode6OutputE D 24
_ZTIN6Genode6ThreadE D 16
_ZTIN6Genode7ConsoleE D 16
_ZTIN6Genode7Timeout5AlarmE D 16
_ZTIPDd D 32
_ZTIPDe D 32
_ZTIPDf D 32
_ZTIPDi D 32
_ZTIPDn D 32
_ZTIPDs D 32
_ZTIPKDd D 32
_ZTIPKDe D 32
_ZTIPKDf D 32
_ZTIPKDi D 32
_ZTIPKDn D 32
_ZTIPKDs D 32
_ZTIPKa D 32
_ZTIPKb D 32
_ZTIPKc D 32
_ZTIPKd D 32
_ZTIPKe D 32
_ZTIPKf D 32
_ZTIPKh D 32
_ZTIPKi D 32
_ZTIPKj D 32
_ZTIPKl D 32
_ZTIPKm D 32
_ZTIPKs D 32
_ZTIPKt D 32
_ZTIPKx D 32
_ZTIPKy D 32
_ZTIPVKa D 32
_ZTIPVKb D 32
_ZTIPVKc D 32
_ZTIPVKd D 32
_ZTIPVKe D 32
_ZTIPVKf D 32
_ZTIPVKh D 32
_ZTIPVKi D 32
_ZTIPVKj D 32
_ZTIPVKl D 32
_ZTIPVKm D 32
_ZTIPVKs D 32
_ZTIPVKt D 32
_ZTIPVKx D 32
_ZTIPVKy D 32
_ZTIPVa D 32
_ZTIPVb D 32
_ZTIPVc D 32
_ZTIPVd D 32
_ZTIPVe D 32
_ZTIPVf D 32
_ZTIPVh D 32
_ZTIPVi D 32
_ZTIPVj D 32
_ZTIPVl D 32
_ZTIPVm D 32
_ZTIPVs D 32
_ZTIPVt D 32
_ZTIPVx D 32
_ZTIPVy D 32
_ZTIPa D 32
_ZTIPb D 32
_ZTIPc D 32
_ZTIPd D 32
_ZTIPe D 32
_ZTIPf D 32
_ZTIPh D 32
_ZTIPi D 32
_ZTIPj D 32
_ZTIPl D 32
_ZTIPm D 32
_ZTIPs D 32
_ZTIPt D 32
_ZTIPx D 32
_ZTIPy D 32
_ZTISt10bad_typeid D 24
_ZTISt13bad_exception D 24
_ZTISt16bad_array_length D 24
_ZTISt20bad_array_new_length D 24
_ZTISt8bad_cast D 24
_ZTISt9bad_alloc D 24
_ZTISt9exception D 16
_ZTISt9type_info D 16
_ZTIa D 32
_ZTIb D 32
_ZTIc D 32
_ZTId D 32
_ZTIe D 32
_ZTIf D 32
_ZTIh D 32
_ZTIi D 32
_ZTIj D 32
_ZTIl D 32
_ZTIm D 32
_ZTIs D 32
_ZTIt D 32
_ZTIx D 32
_ZTIy D 32
_ZTSN10__cxxabiv115__forced_unwindE R 32
_ZTSN10__cxxabiv116__enum_type_infoE R 33
_ZTSN10__cxxabiv117__class_type_infoE R 34
_ZTSN10__cxxabiv117__pbase_type_infoE R 34
_ZTSN10__cxxabiv119__foreign_exceptionE R 36
_ZTSN10__cxxabiv119__pointer_type_infoE R 36
_ZTSN10__cxxabiv120__function_type_infoE R 37
_ZTSN10__cxxabiv120__si_class_type_infoE R 37
_ZTSN10__cxxabiv121__vmi_class_type_infoE R 38
_ZTSN10__cxxabiv123__fundamental_type_infoE R 40
_ZTSN5Timer10ConnectionE R 21
_ZTSN6Genode11Sliced_heapE R 23
_ZTSN6Genode14Rpc_entrypointE R 26
_ZTSN6Genode14Signal_contextE R 26
_ZTSN6Genode17Region_map_clientE R 29
_ZTSN6Genode17Rm_session_clientE R 29
_ZTSN6Genode18Allocator_avl_baseE R 30
_ZTSN6Genode23Alarm_timeout_schedulerE R 35
_ZTSN6Genode4HeapE R 15
_ZTSN6Genode4SlabE R 15
_ZTSN6Genode5AlarmE R 16
_ZTSN6Genode5Child14Initial_threadE R 32
_ZTSN6Genode5ChildE R 16
_ZTSN6Genode6OutputE R 17
_ZTSN6Genode6ThreadE R 17
_ZTSN6Genode7ConsoleE R 18
_ZTSN6Genode7Timeout5AlarmE R 24
_ZTSSt10bad_typeid R 15
_ZTSSt13bad_exception R 18
_ZTSSt16bad_array_length R 21
_ZTSSt20bad_array_new_length R 25
_ZTSSt8bad_cast R 12
_ZTSSt9bad_alloc R 13
_ZTSSt9exception R 13
_ZTSSt9type_info R 13
_ZTVN10__cxxabiv115__forced_unwindE D 40
_ZTVN10__cxxabiv116__enum_type_infoE D 64
_ZTVN10__cxxabiv117__class_type_infoE D 88
_ZTVN10__cxxabiv117__pbase_type_infoE D 72
_ZTVN10__cxxabiv119__foreign_exceptionE D 40
_ZTVN10__cxxabiv119__pointer_type_infoE D 72
_ZTVN10__cxxabiv120__function_type_infoE D 64
_ZTVN10__cxxabiv120__si_class_type_infoE D 88
_ZTVN10__cxxabiv121__vmi_class_type_infoE D 88
_ZTVN10__cxxabiv123__fundamental_type_infoE D 64
_ZTVN5Timer10ConnectionE D 320
_ZTVN6Genode10Vm_sessionE D 56
_ZTVN6Genode11Sliced_heapE D 72
_ZTVN6Genode14Rpc_entrypointE D 80
_ZTVN6Genode14Signal_contextE D 32
_ZTVN6Genode17Region_map_clientE D 72
_ZTVN6Genode17Rm_session_clientE D 48
_ZTVN6Genode18Allocator_avl_baseE D 128
_ZTVN6Genode23Alarm_timeout_schedulerE D 112
_ZTVN6Genode4HeapE D 72
_ZTVN6Genode4SlabE D 72
_ZTVN6Genode5AlarmE D 40
_ZTVN6Genode5Child14Initial_threadE D 48
_ZTVN6Genode5ChildE D 440
_ZTVN6Genode6OutputE D 48
_ZTVN6Genode6ThreadE D 48
_ZTVN6Genode7ConsoleE D 48
_ZTVN6Genode7Timeout5AlarmE D 32
_ZTVSt10bad_typeid D 40
_ZTVSt13bad_exception D 40
_ZTVSt16bad_array_length D 40
_ZTVSt20bad_array_new_length D 40
_ZTVSt8bad_cast D 40
_ZTVSt9bad_alloc D 40
_ZTVSt9exception D 40
_ZTVSt9type_info D 64
_ZThn236_N5Timer10Connection16schedule_timeoutEN6Genode12MicrosecondsERNS1_11Time_source15Timeout_handlerE T
_ZThn236_N5Timer10Connection9curr_timeEv T
_ZThn240_N5Timer10Connection18_schedule_one_shotERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZThn240_N5Timer10Connection18_schedule_periodicERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZThn240_N5Timer10Connection8_discardERN6Genode7TimeoutE T
_ZThn240_N5Timer10Connection9curr_timeEv T
_ZThn288_N5Timer10Connection16schedule_timeoutEN6Genode12MicrosecondsERNS1_11Time_source15Timeout_handlerE T
_ZThn288_N5Timer10Connection9curr_timeEv T
_ZThn296_N5Timer10Connection18_schedule_one_shotERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZThn296_N5Timer10Connection18_schedule_periodicERN6Genode7TimeoutENS1_12MicrosecondsE T
_ZThn296_N5Timer10Connection8_discardERN6Genode7TimeoutE T
_ZThn296_N5Timer10Connection9curr_timeEv T
_ZThn4_N6Genode23Alarm_timeout_scheduler14handle_timeoutENS_8DurationE T
_ZThn8_N6Genode23Alarm_timeout_scheduler14handle_timeoutENS_8DurationE T
_ZThn8_N6Genode23Alarm_timeout_schedulerD0Ev T
_ZThn8_N6Genode23Alarm_timeout_schedulerD1Ev T
_ZdlPv W
_ZdlPvPN6Genode11DeallocatorE T
_ZdlPvPN6Genode9AllocatorE W
_ZdlPvRN6Genode11DeallocatorE T
_ZdlPvRN6Genode9AllocatorE W
_ZdlPvm W
_ZnajPN6Genode9AllocatorE T
_ZnajRN6Genode9AllocatorE T
_ZnamPN6Genode9AllocatorE T
_ZnamRN6Genode9AllocatorE T
_ZnwjPN6Genode9AllocatorE T
_ZnwjRN6Genode9AllocatorE T
_ZnwmPN6Genode9AllocatorE T
_ZnwmRN6Genode9AllocatorE T
__aeabi_atexit T
__aeabi_unwind_cpp_pr0 T
__aeabi_unwind_cpp_pr1 T
__cxa_allocate_dependent_exception T
__cxa_allocate_exception T
__cxa_atexit T
__cxa_bad_cast T
__cxa_bad_typeid T
__cxa_begin_catch T
__cxa_begin_cleanup T
__cxa_call_terminate T
__cxa_call_unexpected T
__cxa_current_exception_type T
__cxa_demangle T
__cxa_end_catch T
__cxa_end_cleanup T
__cxa_finalize T
__cxa_free_dependent_exception T
__cxa_free_exception T
__cxa_get_exception_ptr T
__cxa_get_globals T
__cxa_get_globals_fast T
__cxa_guard_abort T
__cxa_guard_acquire T
__cxa_guard_release T
__cxa_pure_virtual T
__cxa_rethrow T
__cxa_throw T
__cxa_throw_bad_array_length T
__cxa_throw_bad_array_new_length T
__cxa_type_match T
__dynamic_cast T
__emutls_get_address T
__gxx_personality_v0 T
__stack_chk_fail W
__stack_chk_guard B 8
dl_iterate_phdr T
dl_unwind_find_exidx T
genode_argc D 4
genode_argv D 8
genode_envp B 8
longjmp W
lx_environ B 8
memcmp W
memcpy W
memmove W
memset W
setjmp W
stdout_reconnect T
strcmp W
strlen W
wait_for_continue T

View File

@ -1,298 +0,0 @@
compileStub() {
sed \
-e "s/^\(\w\+\) D \(\w\+\)\$/.data; .global \1; .type \1,%object; .size \1,\2; \1: .skip 1/" \
-e "s/^\(\w\+\) V/.data; .weak \1; .type \1,%object; \1: .skip 1/" \
-e "s/^\(\w\+\) T/.text; .global \1; .type \1,%function; \1:/" \
-e "s/^\(\w\+\) R \(\w\+\)\$/.section .rodata; .global \1; .type \1,%object; .size \1,\2; \1:/" \
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%function; \1:/" \
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%object; .size \1,\2; \1:/" \
-e "s/^\(\w\+\) U/.text; .global \1; movq \1@GOTPCREL(%rip), %rax/" \
$1 > symbols.s
$CC -x assembler -c symbols.s -o tmp.o
$LD -o $2 \
-shared \
-T$genodeRelLd \
tmp.o
rm tmp.o symbols.s
}
compileLd() {
sed \
-e "s/^\(\w\+\) D \(\w\+\)\$/.data; .global \1; .type \1,%object; .size \1,\2; \1: .skip 1/" \
-e "s/^\(\w\+\) V/.data; .weak \1; .type \1,%object; \1: .skip 1/" \
-e "s/^\(\w\+\) T/.text; .global \1; .type \1,%function; \1:/" \
-e "s/^\(\w\+\) R \(\w\+\)\$/.section .rodata; .global \1; .type \1,%object; .size \1,\2; \1:/" \
-e "s/^\(\w\+\) W/.text; .weak \1; .type \1,%function; \1:/" \
-e "s/^\(\w\+\) B \(\w\+\)\$/.bss; .global \1; .type \1,%object; .size \1,\2; \1:/" \
-e "s/^\(\w\+\) U/.text; .global \1; movq \1@GOTPCREL(%rip), %rax/" \
< $ldSymbols \
> ld.symbols.s
$CXX ${cxxFlags} -c ld.symbols.s -o ld.symbols.o
$LD -o $1 \
-shared \
--eh-frame-hdr \
-z max-page-size=0x1000 \
-T$linkerLd \
-T$genodeRelLd \
ld.symbols.o
}
# Add a prefix to the following arguments
#
addPrefix() {
local prefix=$1
local files=""
for (( i = 2; i <= $#; i++)); do
files="$files $prefix${!i}"
done
echo -n $files
}
#
# Copy into dest the following arguments,
# rooted at $includedir
#
copyIncludes() {
local to=$1; shift
local from=$1; shift
mkdir -p $to
for i in $*; do
cp $from/$i $to/
done
}
#
# CPU-architecture-specific headers
#
# The 'common_include_*_content' functions take the CPU architecture as first
# argument.
#
common_include_libc_arch_content() {
local content
for i in stdarg.h float.h
do content="$content sys/$1/include/$i"; done
for i in arith.h _fpmath.h SYS.h gd_qnan.h
do content="$content lib/libc/$2/$i"; done
echo -n $content
}
common_include_libc_arch_machine_content() {
for i in \
_types.h endian.h _limits.h signal.h trap.h _stdint.h \
sysarch.h ieeefp.h frame.h vm.h \
cpufunc.h vmparam.h atomic.h elf.h exec.h reloc.h pmap.h \
ucontext.h setjmp.h asm.h param.h _inttypes.h _align.h float.h
do echo sys/$1/include/$i; done
}
rpcgen_() {
rpcgen -C -h -DWANT_NFS3 $1 -o $2
}
installPhase() {
mkdir -p $includedir/machine
#
# CPU-architecture-specific headers
#
#
# x86-specific headers
#
if [ -n "${isx86:-}" ]; then
cp lib/msun/x86/fenv.h $includedir
cp -r sys/x86/include $includedir/x86
fi
#
# i386-specific headers
#
if [ -n "${isx86_32:-}" ]; then
cp \
$(common_include_libc_arch_content i386 i386) \
$includedir
cp \
$(common_include_libc_arch_machine_content i386) \
sys/i386/include/specialreg.h \
sys/i386/include/npx.h \
$includedir/machine
fi
#
# AMD64-specific headers
#
if [ -n "${isx86_64:-}" ]; then
cp \
$(common_include_libc_arch_content amd64 amd64) \
$includedir
cp \
$(common_include_libc_arch_machine_content amd64) \
sys/amd64/include/specialreg.h \
sys/amd64/include/fpu.h \
$includedir/machine
fi
#
# ARM-specific headers
#
if [ -n "${isAarch32:-}" ]; then
cp \
$(common_include_libc_arch_content arm arm) \
lib/msun/arm/fenv.h \
$includedir
cp \
$(common_include_libc_arch_machine_content arm) \
$includedir/machine
copyIncludes $includedir/machine sys/arm/include \
armreg.h atomic-v6.h ieee.h sysreg.h
fi
#
# ARM64-specific headers
#
if [ -n "${isAarch32:-}" ]; then
cp \
$(common_include_libc_arch_content arm64 aarch64) \
lib/msun/aarch64/fenv.h \
$includedir
cp \
$(common_include_libc_arch_machine_content arm64) \
$includedir/machine
copyIncludes $includedir/machine sys/arm64/include/ \
armreg.h
fi
##############################################################
flex -P_nsyy -t lib/libc/net/nslexer.l \
| sed -e '/YY_BUF_SIZE/s/16384/1024/' \
> lib/libc/net/nslexer.c
bison -d -p_nsyy lib/libc/net/nsparser.y \
--defines=lib/libc/net/nsparser.h \
--output=lib/libc/net/nsparser.c
local generated_files="include/rpc/rpcb_prot.h"
for h in \
bootparam_prot.h nfs_prot.h nlm_prot.h rstat.h ypupdate_prot.h \
crypt.h nis_cache.h pmap_prot.h rwall.h yp.h \
key_prot.h nis_callback.h rex.h sm_inter.h ypxfrd.h \
klm_prot.h nis_object.h rnusers.h spray.h \
mount.h nis.h rquota.h yppasswd.h
do generated_files="$generated_files include/rpcsvc/$h"; done
for file in $generated_files; do
rpcgen -C -h -DWANT_NFS3 ${file%h}x -o $file
done
#
# Generic headers
#
copyIncludes $includedir include \
strings.h limits.h string.h ctype.h _ctype.h \
stdlib.h stdio.h signal.h unistd.h wchar.h time.h sysexits.h \
resolv.h wctype.h locale.h langinfo.h regex.h paths.h ieeefp.h \
inttypes.h fstab.h netdb.h ar.h memory.h res_update.h \
netconfig.h ifaddrs.h pthread.h err.h getopt.h search.h \
varargs.h stddef.h stdbool.h assert.h monetary.h printf.h \
libgen.h dirent.h dlfcn.h link.h fmtmsg.h fnmatch.h fts.h ftw.h \
db.h grp.h nsswitch.h pthread_np.h pwd.h ttyent.h \
stringlist.h glob.h a.out.h elf-hints.h nlist.h spawn.h \
readpassphrase.h setjmp.h elf.h ulimit.h utime.h wordexp.h \
complex.h semaphore.h uchar.h iconv.h termios.h \
xlocale.h runetype.h \
copyIncludes $includedir sys/sys \
syslog.h fcntl.h stdint.h sched.h ktrace.h _semaphore.h ucontext.h errno.h
cp lib/msun/src/math.h $includedir
cp contrib/libc-vis/vis.h $includedir
copyIncludes $includedir/rpc include/rpc \
rpc.h xdr.h auth.h clnt_stat.h clnt.h clnt_soc.h rpc_msg.h \
auth_unix.h auth_des.h svc.h svc_soc.h svc_auth.h pmap_clnt.h \
pmap_prot.h rpcb_clnt.h rpcent.h des_crypt.h des.h nettype.h \
rpcsec_gss.h raw.h rpc_com.h
cp sys/rpc/rpcb_prot.h $includedir/rpc
copyIncludes $includedir/rpcsvc include/rpcsvc \
yp_prot.h ypclnt.h nis_tags.h nislib.h
rpcgen_ include/rpcsvc/nis.x $includedir/rpcsvc/nis.h
rpcgen_ include/rpcsvc/crypt.x $includedir/rpcsvc/crypt.h
mkdir $includedir/gssapi
cp include/gssapi/gssapi.h $includedir/gssapi
copyIncludes $includedir/arpa include/arpa \
inet.h ftp.h nameser.h nameser_compat.h telnet.h tftp.h
copyIncludes $includedir/vm sys/vm vm_param.h vm.h pmap.h
copyIncludes $includedir/net sys/net \
if.h if_dl.h if_tun.h if_types.h radix.h route.h
copyIncludes $includedir/netinet sys/netinet \
in.h in_systm.h ip.h tcp.h
mkdir -p $includedir/netinet6
cp sys/netinet6/in6.h $includedir/netinet6
mkdir -p $includedir/bsm
cp sys/bsm/audit.h $includedir/bsm
copyIncludes $includedir/sys sys/sys \
_types.h limits.h cdefs.h _null.h types.h _pthreadtypes.h \
syslimits.h select.h _sigset.h _timeval.h timespec.h \
_timespec.h stat.h signal.h unistd.h time.h param.h stdint.h \
event.h eventhandler.h disk.h errno.h poll.h queue.h mman.h \
stddef.h sysctl.h uio.h _iovec.h ktrace.h ioctl.h ttycom.h \
ioccom.h filio.h sockio.h wait.h file.h fcntl.h resource.h \
disklabel.h link_elf.h endian.h mount.h ucred.h dirent.h \
cpuset.h socket.h un.h ttydefaults.h imgact_aout.h elf32.h \
elf64.h elf_generic.h elf_common.h nlist_aout.h ipc.h sem.h \
exec.h _lock.h _mutex.h statvfs.h ucontext.h syslog.h times.h \
utsname.h elf.h mtio.h _stdint.h atomic_common.h _ucontext.h \
_cpuset.h _bitset.h bitset.h _stdarg.h _uio.h auxv.h random.h \
_sockaddr_storage.h termios.h _termios.h _umtx.h kerneldump.h \
conf.h disk_zone.h counter.h time.h \
mkdir $includedir/sys/rpc
cp sys/rpc/types.h $includedir/sys/rpc
cp -r include/xlocale $includedir/
ln -s sys/poll.h $includedir/poll.h
rm -r include # Don't need this anymore
cp -r $genodeHeaders/include/* $includedir/
compileStub $libcSymbols $out/lib/libc.lib.so
compileStub $vfsSymbols $out/lib/vfs.lib.so
compileLd $out/lib/ld.lib.so
}
genericBuild

View File

@ -1,8 +0,0 @@
Name: libc
Description: Genode C runtime library
URL: https://genode.org/
Version: @version@
Requires: genode-libports
Requires.private: vfs
Cflags: -D__FreeBSD__=12 -D__GENODE__ -fno-builtin-sin -fno-builtin-cos -fno-builtin-sinf -fno-builtin-cosf -I@includedir@
Libs: -l:libc.lib.so

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +0,0 @@
/*
* \brief LDSO specific linkage settings
* \author Sebastian Sumpf <Sebastian.Sumpf@genode-labs.com>
* \date 2011-04-27
*/
/*
* Copyright (C) 2011-2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
SECTIONS
{
/* set ldso memory location */
. = 0x30000;
}

View File

@ -1,20 +0,0 @@
- add 'log2()' and 'log2f()' declarations
- this patch is only needed for FreeBSD libc versions < 9
+++ src/lib/libc/lib/msun/src/math.h
@@ -204,6 +204,7 @@
double ldexp(double, int);
double log(double);
double log10(double);
+double log2(double);
double modf(double, double *); /* fundamentally !__pure2 */
double pow(double, double);
@@ -317,6 +318,7 @@
int ilogbf(float) __pure2;
float ldexpf(float, int);
float log10f(float);
+float log2f(float);
float log1pf(float);
float logf(float);
float modff(float, float *); /* fundamentally !__pure2 */

View File

@ -1,44 +0,0 @@
diff --git a/src/lib/libc/contrib/tzcode/stdtime/localtime.c b/src/lib/libc/contrib/tzcode/stdtime/localtime.c
index 3c66924..05c01ae 100644
--- src/lib/libc/contrib/tzcode/stdtime/localtime.c
+++ src/lib/libc/contrib/tzcode/stdtime/localtime.c
@@ -1935,6 +1935,10 @@ time2sub(struct tm *const tmp,
lo *= 2;
hi = -(lo + 1);
}
+
+ lo = TIME_T_MIN;
+ hi = TIME_T_MAX;
+
for ( ; ; ) {
t = lo / 2 + hi / 2;
if (t < lo)
diff --git a/src/lib/libc/contrib/tzcode/stdtime/private.h b/src/lib/libc/contrib/tzcode/stdtime/private.h
index 354a78b..8300ba0 100644
--- src/lib/libc/contrib/tzcode/stdtime/private.h
+++ src/lib/libc/contrib/tzcode/stdtime/private.h
@@ -251,6 +251,24 @@ const char * scheck(const char * string, const char * format);
1 + TYPE_SIGNED(type))
#endif /* !defined INT_STRLEN_MAXIMUM */
+#define TWOS_COMPLEMENT(t) ((t) ~ (t) 0 < 0)
+
+/* Max and min values of the integer type T, of which only the bottom
+ B bits are used, and where the highest-order used bit is considered
+ to be a sign bit if T is signed. */
+#define MAXVAL(t, b) \
+ ((t) (((t) 1 << ((b) - 1 - TYPE_SIGNED(t))) \
+ - 1 + ((t) 1 << ((b) - 1 - TYPE_SIGNED(t)))))
+#define MINVAL(t, b) \
+ ((t) (TYPE_SIGNED(t) ? - TWOS_COMPLEMENT(t) - MAXVAL(t, b) : 0))
+
+/* The extreme time values, assuming no padding. */
+#define TIME_T_MIN_NO_PADDING MINVAL(time_t, TYPE_BIT(time_t))
+#define TIME_T_MAX_NO_PADDING MAXVAL(time_t, TYPE_BIT(time_t))
+
+# define TIME_T_MIN TIME_T_MIN_NO_PADDING
+# define TIME_T_MAX TIME_T_MAX_NO_PADDING
+
/*
** INITIALIZE(x)
*/

View File

@ -1,12 +0,0 @@
--- src/lib/libc/lib/libc/stdio/printfcommon.h.orig 2019-04-16 12:35:21.549592905 +0200
+++ src/lib/libc/lib/libc/stdio/printfcommon.h 2019-04-16 12:35:34.163738398 +0200
@@ -47,9 +47,6 @@
#ifndef NO_FLOATING_POINT
-#define dtoa __dtoa
-#define freedtoa __freedtoa
-
#include <float.h>
#include <math.h>
#include "floatio.h"

View File

@ -1,32 +0,0 @@
--- src/lib/libc/include/unistd.h
+++ src/lib/libc/include/unistd.h
@@ -510,8 +510,6 @@
int getresuid(uid_t *, uid_t *, uid_t *);
char *getusershell(void);
int initgroups(const char *, gid_t);
-int iruserok(unsigned long, int, const char *, const char *);
-int iruserok_sa(const void *, int, int, const char *, const char *);
int issetugid(void);
long lpathconf(const char *, int);
#ifndef _MKDTEMP_DECLARED
@@ -533,20 +531,12 @@
#endif
int nfssvc(int, void *);
int profil(char *, size_t, vm_offset_t, int);
-int rcmd(char **, int, const char *, const char *, const char *, int *);
-int rcmd_af(char **, int, const char *,
- const char *, const char *, int *, int);
-int rcmdsh(char **, int, const char *,
- const char *, const char *, const char *);
char *re_comp(const char *);
int re_exec(const char *);
int reboot(int);
int revoke(const char *);
pid_t rfork(int);
pid_t rfork_thread(int, void *, int (*)(void *), void *);
-int rresvport(int *);
-int rresvport_af(int *, int);
-int ruserok(const char *, int, const char *, const char *);
#if __BSD_VISIBLE
#ifndef _SELECT_DECLARED
#define _SELECT_DECLARED

View File

@ -1,125 +0,0 @@
--- src/lib/libc/lib/libc/resolv/res_init.c.old 2019-05-07 11:26:07.854155106 +0200
+++ src/lib/libc/lib/libc/resolv/res_init.c 2019-05-07 11:26:18.499341340 +0200
@@ -93,18 +93,7 @@
#include <unistd.h>
#include <netdb.h>
-#ifndef HAVE_MD5
-# include "../dst/md5.h"
-#else
-# ifdef SOLARIS2
-# include <sys/md5.h>
-# elif _LIBC
-# include <md5.h>
-# endif
-#endif
-#ifndef _MD5_H_
-# define _MD5_H_ 1 /*%< make sure we do not include rsaref md5.h file */
-#endif
+#include <sys/random.h>
#include "un-namespace.h"
@@ -169,6 +158,10 @@
return (__res_vinit(statp, 0));
}
+
+extern char const *libc_resolv_path;
+
+
/*% This function has to be reachable by res_data.c but not publicly. */
int
__res_vinit(res_state statp, int preinit) {
@@ -325,7 +318,7 @@
line[sizeof(name) - 1] == '\t'))
nserv = 0;
- if ((fp = fopen(_PATH_RESCONF, "re")) != NULL) {
+ if ((fp = fopen(libc_resolv_path, "re")) != NULL) {
struct stat sb;
struct timespec now;
@@ -339,6 +332,45 @@
}
/* read the config file */
+#if 1
+ if (fgets(buf, sizeof(buf), fp) != NULL) {
+ /* read nameservers to query */
+ struct addrinfo hints, *ai;
+ char sbuf[NI_MAXSERV];
+ const size_t minsiz = sizeof(statp->_u._ext.ext->nsaddrs[0]);
+
+ cp = buf;
+ cp[strcspn(cp, "\n")] = '\0';
+
+ if ((*cp != '\0') && (*cp != '\n')) {
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = PF_UNSPEC;
+ hints.ai_socktype = SOCK_DGRAM; /*dummy*/
+ hints.ai_flags = AI_NUMERICHOST;
+ sprintf(sbuf, "%u", NAMESERVER_PORT);
+
+ if (getaddrinfo(cp, sbuf, &hints, &ai) == 0 &&
+ ai->ai_addrlen <= minsiz) {
+ if (statp->_u._ext.ext != NULL) {
+ memcpy(&statp->_u._ext.ext->nsaddrs[nserv],
+ ai->ai_addr, ai->ai_addrlen);
+ }
+
+ if (ai->ai_addrlen <=
+ sizeof(statp->nsaddr_list[nserv])) {
+ memcpy(&statp->nsaddr_list[nserv],
+ ai->ai_addr, ai->ai_addrlen);
+ } else {
+ statp->nsaddr_list[nserv].sin_family = 0;
+ }
+
+ freeaddrinfo(ai);
+ nserv++;
+ }
+ }
+ }
+#else
while (fgets(buf, sizeof(buf), fp) != NULL) {
/* skip comments */
if (*buf == ';' || *buf == '#')
@@ -536,6 +568,7 @@
continue;
}
}
+#endif /* 1 */
if (nserv > 0)
statp->nscount = nserv;
#ifdef RESOLVSORT
@@ -777,25 +810,9 @@
u_int
res_nrandomid(res_state statp) {
- struct timeval now;
- u_int16_t u16;
- MD5_CTX ctx;
- u_char *rnd = statp->_rnd == NULL ? srnd : statp->_rnd;
-
- gettimeofday(&now, NULL);
- u16 = (u_int16_t) (now.tv_sec ^ now.tv_usec);
- memcpy(rnd + 14, &u16, 2);
-#ifndef HAVE_MD5
- MD5_Init(&ctx);
- MD5_Update(&ctx, rnd, 16);
- MD5_Final(rnd, &ctx);
-#else
- MD5Init(&ctx);
- MD5Update(&ctx, rnd, 16);
- MD5Final(rnd, &ctx);
-#endif
- memcpy(&u16, rnd + 14, 2);
- return ((u_int) u16);
+ u_int val;
+ getrandom(&val, sizeof(val), 0);
+ return val;
}
/*%

View File

@ -1,15 +0,0 @@
--- src/lib/libc/lib/libc/locale/runetype.c.orig 2019-04-18 15:12:08.961502991 +0200
+++ src/lib/libc/lib/libc/locale/runetype.c 2019-04-18 15:13:44.287945177 +0200
@@ -82,10 +82,9 @@
int ___mb_cur_max(void)
{
- return XLOCALE_CTYPE(__get_locale())->__mb_cur_max;
+ return MB_CUR_MAX;
}
int ___mb_cur_max_l(locale_t locale)
{
- FIX_LOCALE(locale);
- return XLOCALE_CTYPE(locale)->__mb_cur_max;
+ return MB_CUR_MAX;
}

View File

@ -1,11 +0,0 @@
--- src/lib/libc/include/semaphore.h 2019-04-09 14:12:29.619185765 +0200
+++ src/lib/libc/include/semaphore.h.new 2019-04-09 14:31:35.913650094 +0200
@@ -46,7 +46,7 @@
__uint32_t _padding; /* Preserve structure size */
};
-typedef struct _sem sem_t;
+typedef struct sem* sem_t;
#define SEM_FAILED ((sem_t *)0)
#define SEM_VALUE_MAX __INT_MAX

View File

@ -1,23 +0,0 @@
--- src/lib/libc/sys/sys/cdefs.h.orig 2019-04-16 10:50:14.382883576 +0200
+++ src/lib/libc/sys/sys/cdefs.h 2019-04-16 10:50:34.008444965 +0200
@@ -298,20 +298,6 @@
#endif
#endif
-#if !__has_extension(c_thread_local)
-/*
- * XXX: Some compilers (Clang 3.3, GCC 4.7) falsely announce C++11 mode
- * without actually supporting the thread_local keyword. Don't check for
- * the presence of C++11 when defining _Thread_local.
- */
-#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \
- __has_extension(cxx_thread_local)
-#define _Thread_local thread_local
-#else
-#define _Thread_local __thread
-#endif
-#endif
-
#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */
/*

View File

@ -1,52 +0,0 @@
Use the unified size types provided by the Genode tool chain.
diff --git src/lib/libc/sys/arm/include/_types.h src/lib/libc/sys/arm/include/_types.h
index 3012f97..3ec5a24 100644
--- src/lib/libc/sys/arm/include/_types.h
+++ src/lib/libc/sys/arm/include/_types.h
@@ -85,11 +85,11 @@ typedef __int8_t __int_least8_t;
typedef __int16_t __int_least16_t;
typedef __int32_t __int_least32_t;
typedef __int64_t __int_least64_t;
-typedef __int32_t __ptrdiff_t; /* ptr1 - ptr2 */
+typedef __PTRDIFF_TYPE__ __ptrdiff_t; /* ptr1 - ptr2 */
typedef __int32_t __register_t;
typedef __int32_t __segsz_t; /* segment size (in pages) */
-typedef __uint32_t __size_t; /* sizeof() */
-typedef __int32_t __ssize_t; /* byte count or error */
+typedef __SIZE_TYPE__ __size_t; /* sizeof() */
+typedef __PTRDIFF_TYPE__ __ssize_t; /* byte count or error */
typedef __int64_t __time_t; /* time()... */
typedef __uint32_t __uintfptr_t;
typedef __uint64_t __uintmax_t;
diff --git src/lib/libc/sys/x86/include/_types.h src/lib/libc/sys/x86/include/_types.h
index 07893c6..abd2ea4 100644
--- src/lib/libc/sys/x86/include/_types.h
+++ src/lib/libc/sys/x86/include/_types.h
@@ -100,20 +100,20 @@ typedef __int16_t __int_least16_t;
typedef __int32_t __int_least32_t;
typedef __int64_t __int_least64_t;
#ifdef __LP64__
-typedef __int64_t __ptrdiff_t; /* ptr1 - ptr2 */
+typedef __PTRDIFF_TYPE__ __ptrdiff_t; /* ptr1 - ptr2 */
typedef __int64_t __register_t;
typedef __int64_t __segsz_t; /* segment size (in pages) */
-typedef __uint64_t __size_t; /* sizeof() */
-typedef __int64_t __ssize_t; /* byte count or error */
+typedef __SIZE_TYPE__ __size_t; /* sizeof() */
+typedef __PTRDIFF_TYPE__ __ssize_t; /* byte count or error */
typedef __int64_t __time_t; /* time()... */
typedef __uint64_t __uintfptr_t;
typedef __uint64_t __uintptr_t;
#else
-typedef __int32_t __ptrdiff_t;
+typedef __PTRDIFF_TYPE__ __ptrdiff_t;
typedef __int32_t __register_t;
typedef __int32_t __segsz_t;
-typedef __uint32_t __size_t;
-typedef __int32_t __ssize_t;
+typedef __SIZE_TYPE__ __size_t;
+typedef __PTRDIFF_TYPE__ __ssize_t;
typedef __int32_t __time_t;
typedef __uint32_t __uintfptr_t;
typedef __uint32_t __uintptr_t;

View File

@ -1,4 +0,0 @@
Name: VFS
Description: Genode Virtual File-System library
Version: @version@
Libs: -l:vfs.lib.so

View File

@ -1,5 +0,0 @@
_ZN3Vfs26Global_file_system_factory6createERNS_3EnvEN6Genode8Xml_nodeE T
_ZN3Vfs26Global_file_system_factory6extendEPKcRNS_19File_system_factoryE T
_ZN3Vfs26Global_file_system_factoryC1ERN6Genode9AllocatorE T
_ZN3Vfs26Global_file_system_factoryC2ERN6Genode9AllocatorE T
_ZTVN3Vfs26Global_file_system_factoryE D 40

View File

@ -1,31 +0,0 @@
+++ src/lib/libc/lib/libc/stdio/vfwprintf.c
@@ -838,10 +838,10 @@
sign = '-';
if (expt == INT_MAX) { /* inf or nan */
if (*cp == 'N') {
- cp = (ch >= 'a') ? L"nan" : L"NAN";
+ cp = (wchar_t *)((ch >= 'a') ? L"nan" : L"NAN");
sign = '\0';
} else
- cp = (ch >= 'a') ? L"inf" : L"INF";
+ cp = (wchar_t *)((ch >= 'a') ? L"inf" : L"INF");
size = 3;
flags &= ~ZEROPAD;
break;
@@ -953,14 +953,14 @@
case 's':
if (flags & LONGINT) {
if ((cp = GETARG(wchar_t *)) == NULL)
- cp = L"(null)";
+ cp = (wchar_t *)(L"(null)");
} else {
char *mbp;
if (convbuf != NULL)
free(convbuf);
if ((mbp = GETARG(char *)) == NULL)
- cp = L"(null)";
+ cp = (wchar_t *)(L"(null)");
else {
convbuf = __mbsconv(mbp, prec);
if (convbuf == NULL) {

View File

@ -1,35 +0,0 @@
--- src/lib/libc/lib/libc/locale/setrunelocale.c
+++ src/lib/libc/lib/libc/locale/setrunelocale.c
@@ -60,7 +60,7 @@ extern _RuneLocale const *_CurrentRuneLocale;
/*
* A cached version of the runes for this thread. Used by ctype.h
*/
-_Thread_local const _RuneLocale *_ThreadRuneLocale;
+const _RuneLocale *_ThreadRuneLocale;
#endif
extern int __mb_sb_limit;
--- src/lib/libc/lib/libc/locale/xlocale.c
+++ src/lib/libc/lib/libc/locale/xlocale.c
@@ -59,7 +59,7 @@ extern struct xlocale_component __xlocale_C_ctype;
/*
* The locale for this thread.
*/
-_Thread_local locale_t __thread_locale;
+locale_t __thread_locale;
#endif
/*
* Flag indicating that one or more per-thread locales exist.
--- src/lib/libc/lib/libc/locale/xlocale_private.h
+++ src/lib/libc/lib/libc/locale/xlocale_private.h
@@ -213,7 +213,7 @@ extern int __has_thread_locale;
* The per-thread locale. Avoids the need to use pthread lookup functions when
* getting the per-thread locale.
*/
-extern _Thread_local locale_t __thread_locale;
+extern locale_t __thread_locale;
/**
* Returns the current locale for this thread, or the global locale if none is

View File

@ -1,59 +0,0 @@
--- src/lib/libc/lib/libc/locale/xlocale_private.h.orig 2019-04-18 14:31:34.331373088 +0200
+++ src/lib/libc/lib/libc/locale/xlocale_private.h 2019-04-18 14:31:57.418620988 +0200
@@ -166,24 +166,16 @@
__attribute__((unused)) static void*
xlocale_retain(void *val)
{
- struct xlocale_refcounted *obj = val;
- atomic_add_long(&(obj->retain_count), 1);
return (val);
}
+
/**
* Decrements the reference count of a reference-counted structure, freeing it
* if this is the last reference, calling its destructor if it has one.
*/
__attribute__((unused)) static void
xlocale_release(void *val)
-{
- struct xlocale_refcounted *obj = val;
- long count;
-
- count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
- if (count < 0 && obj->destructor != NULL)
- obj->destructor(obj);
-}
+{ }
/**
* Load functions. Each takes the name of a locale and a pointer to the data
@@ -223,27 +215,15 @@
*/
static inline locale_t __get_locale(void)
{
-
- if (!__has_thread_locale) {
- return (&__xlocale_global_locale);
- }
- return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
+ return (&__xlocale_global_locale);
}
#else
locale_t __get_locale(void);
#endif
-/**
- * Two magic values are allowed for locale_t objects. NULL and -1. This
- * function maps those to the real locales that they represent.
- */
static inline locale_t get_real_locale(locale_t locale)
{
- switch ((intptr_t)locale) {
- case 0: return (&__xlocale_C_locale);
- case -1: return (&__xlocale_global_locale);
- default: return (locale);
- }
+ return &__xlocale_global_locale;
}
/**

View File

@ -1,12 +0,0 @@
--- src/lib/libc/lib/libc/stdio/xprintf_float.c.orig 2019-04-16 12:34:20.167688219 +0200
+++ src/lib/libc/lib/libc/stdio/xprintf_float.c 2019-04-16 12:34:01.986830677 +0200
@@ -42,9 +42,6 @@
#include <locale.h>
#include <limits.h>
-#define dtoa __dtoa
-#define freedtoa __freedtoa
-
#include <float.h>
#include <math.h>
#include "gdtoa.h"

View File

@ -109,11 +109,11 @@ index 1a46073aaa3..72b6f7389a3 100644
StringRef S = A->getValue();
diff --git a/lib/Driver/ToolChains/Genode.cpp b/lib/Driver/ToolChains/Genode.cpp
new file mode 100644
index 00000000000..cbb1b9e30c4
index 00000000000..9103ce2a5ee
--- /dev/null
+++ b/lib/Driver/ToolChains/Genode.cpp
@@ -0,0 +1,84 @@
+//===--- Genode.cpp - CloudABI ToolChain Implementations --------*- C++ -*-===//
@@ -0,0 +1,133 @@
+//===--- Genode.cpp - Genode ToolChain Implementations ----------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
@ -144,10 +144,59 @@ index 00000000000..cbb1b9e30c4
+ const InputInfoList &Inputs,
+ const llvm::opt::ArgList &Args,
+ const char *LinkingOutput) const {
+ const ToolChain &ToolChain = getToolChain();
+ const toolchains::Genode &ToolChain =
+ static_cast<const toolchains::Genode &>(getToolChain());
+ const Driver &D = ToolChain.getDriver();
+ const llvm::Triple::ArchType Arch = ToolChain.getArch();
+ ArgStringList CmdArgs;
+
+ if (!D.SysRoot.empty())
+ CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
+
+ // Explicitly set the linker emulation for platforms that might not
+ // be the default emulation for the linker.
+ switch (Arch) {
+ case llvm::Triple::x86:
+ CmdArgs.push_back("-melf_i386");
+ break;
+ case llvm::Triple::x86_64:
+ CmdArgs.push_back("-melf_x86_64");
+ break;
+ case llvm::Triple::riscv32:
+ CmdArgs.push_back("-melf32lriscv");
+ break;
+ case llvm::Triple::riscv64:
+ CmdArgs.push_back("-melf64lriscv");
+ break;
+ default:
+ break;
+ }
+
+ CmdArgs.push_back("--eh-frame-hdr");
+ CmdArgs.push_back("--gc-sections");
+ CmdArgs.push_back("-zmax-page-size=0x1000");
+
+ CmdArgs.push_back("-Ttext=0x01000000");
+
+ Args.AddAllArgs(CmdArgs, options::OPT_L);
+ ToolChain.AddFilePathLibArgs(Args, CmdArgs);
+ Args.AddAllArgs(CmdArgs, options::OPT_T_Group);
+ Args.AddAllArgs(CmdArgs, options::OPT_e);
+ Args.AddAllArgs(CmdArgs, options::OPT_s);
+ Args.AddAllArgs(CmdArgs, options::OPT_t);
+ Args.AddAllArgs(CmdArgs, options::OPT_Z_Flag);
+
+ if (Args.hasArg(options::OPT_static)) {
+ CmdArgs.push_back("-Bstatic");
+ } else {
+ CmdArgs.push_back(Args.MakeArgString("-T" + D.SysRoot + "/ld/genode_dyn.ld"));
+ CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + D.SysRoot + "/ld/genode_dyn.dl"));
+ CmdArgs.push_back("--dynamic-linker=ld.lib.so");
+ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
+ CmdArgs.push_back("-l:ld.lib.so");
+ }
+ }
+
+ if (Output.isFilename()) {
+ CmdArgs.push_back("-o");
+ CmdArgs.push_back(Output.getFilename());
@ -199,11 +248,11 @@ index 00000000000..cbb1b9e30c4
+}
diff --git a/lib/Driver/ToolChains/Genode.h b/lib/Driver/ToolChains/Genode.h
new file mode 100644
index 00000000000..971efb04ef9
index 00000000000..144f4f99abe
--- /dev/null
+++ b/lib/Driver/ToolChains/Genode.h
@@ -0,0 +1,69 @@
+//===----- Genode.h - CloudABI ToolChain Implementations --------*- C++ -*-===//
+//===----- Genode.h - Genode ToolChain Implementations ----------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//

View File

@ -6,6 +6,7 @@
, libxml2, python, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
, buildLlvmTools # tools, but from the previous stage, for cross
, targetLlvmLibraries # libraries, but from the next stage, for cross
, genodeBase
}:
let
@ -112,7 +113,12 @@ let
echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
'' + stdenv.lib.optionalString stdenv.targetPlatform.isWasm ''
echo "-fno-exceptions" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommands cc;
'' + mkExtraBuildCommands cc
+ stdenv.lib.optionalString stdenv.targetPlatform.isGenode ''
echo "-I${genodeBase}/include" >> $out/nix-support/cc-cflags
echo "--sysroot=${genodeBase}" >> $out/nix-support/cc-cflags
echo "-L ${genodeBase}" >> $out/nix-support/cc-cflags
'';
};
lldClangNoLibcxx = wrapCCWith rec {
@ -129,7 +135,11 @@ let
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
echo "-nostdlib++" >> $out/nix-support/cc-cflags
'' + mkExtraBuildCommands cc;
'' + mkExtraBuildCommands cc
+ stdenv.lib.optionalString stdenv.targetPlatform.isGenode ''
echo "--sysroot=${genodeBase}" >> $out/nix-support/cc-cflags
echo "-L ${genodeBase}" >> $out/nix-support/cc-cflags
'';
};
lldClangNoLibc = wrapCCWith rec {
@ -160,6 +170,8 @@ let
extraBuildCommands = ''
echo "-nostartfiles" >> $out/nix-support/cc-cflags
echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags
'' + stdenv.lib.optionalString stdenv.targetPlatform.isGenode ''
echo "--sysroot=${genodeBase}" >> $out/nix-support/cc-cflags
'';
};