From 4ab70e41cfcbe405b4d6ef49e0f492badf466dcb Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Fri, 27 Mar 2020 14:38:22 +0530 Subject: [PATCH] New stdenv with painless $CXX Patch Clang to implicitly pass the required linker flags. --- overlay/default.nix | 5 +- overlay/genode/default.nix | 65 +- overlay/headers/default.nix | 63 -- overlay/libc/MB_CUR_MAX.patch | 24 - overlay/libc/_CurrentRuneLocale.patch | 23 - overlay/libc/cdefs_no_hidden.patch | 63 -- overlay/libc/default.nix | 132 +-- overlay/libc/gdtoa.patch | 43 - overlay/libc/genode-prg.pc.in | 7 - overlay/libc/ld.symbols | 662 ---------------- overlay/libc/libc-builder.sh | 298 ------- overlay/libc/libc.pc.in | 8 - overlay/libc/libc.symbols | 1057 ------------------------- overlay/libc/linker.ld | 18 - overlay/libc/log2.patch | 20 - overlay/libc/mktime.patch | 44 - overlay/libc/printfcommon.patch | 12 - overlay/libc/rcmd.patch | 32 - overlay/libc/res_init_c.patch | 125 --- overlay/libc/runetype.patch | 15 - overlay/libc/semaphore.patch | 11 - overlay/libc/thread_local.patch | 23 - overlay/libc/types.patch | 52 -- overlay/libc/vfs.pc.in | 4 - overlay/libc/vfs.symbols | 5 - overlay/libc/vfwprintf_c_warn.patch | 31 - overlay/libc/xlocale.patch | 35 - overlay/libc/xlocale_private.patch | 59 -- overlay/libc/xprintf_float.patch | 12 - overlay/llvm-8/clang/genode.patch | 61 +- overlay/llvm-8/default.nix | 16 +- 31 files changed, 154 insertions(+), 2871 deletions(-) delete mode 100644 overlay/headers/default.nix delete mode 100644 overlay/libc/MB_CUR_MAX.patch delete mode 100644 overlay/libc/_CurrentRuneLocale.patch delete mode 100644 overlay/libc/cdefs_no_hidden.patch delete mode 100644 overlay/libc/gdtoa.patch delete mode 100644 overlay/libc/genode-prg.pc.in delete mode 100644 overlay/libc/ld.symbols delete mode 100755 overlay/libc/libc-builder.sh delete mode 100644 overlay/libc/libc.pc.in delete mode 100644 overlay/libc/libc.symbols delete mode 100644 overlay/libc/linker.ld delete mode 100644 overlay/libc/log2.patch delete mode 100644 overlay/libc/mktime.patch delete mode 100644 overlay/libc/printfcommon.patch delete mode 100644 overlay/libc/rcmd.patch delete mode 100644 overlay/libc/res_init_c.patch delete mode 100644 overlay/libc/runetype.patch delete mode 100644 overlay/libc/semaphore.patch delete mode 100644 overlay/libc/thread_local.patch delete mode 100644 overlay/libc/types.patch delete mode 100644 overlay/libc/vfs.pc.in delete mode 100644 overlay/libc/vfs.symbols delete mode 100644 overlay/libc/vfwprintf_c_warn.patch delete mode 100644 overlay/libc/xlocale.patch delete mode 100644 overlay/libc/xlocale_private.patch delete mode 100644 overlay/libc/xprintf_float.patch diff --git a/overlay/default.nix b/overlay/default.nix index 0c7d441..ee12a05 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -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: diff --git a/overlay/genode/default.nix b/overlay/genode/default.nix index aadc2df..e281c52 100644 --- a/overlay/genode/default.nix +++ b/overlay/genode/default.nix @@ -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); + } diff --git a/overlay/headers/default.nix b/overlay/headers/default.nix deleted file mode 100644 index a50d224..0000000 --- a/overlay/headers/default.nix +++ /dev/null @@ -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 - ''; -} diff --git a/overlay/libc/MB_CUR_MAX.patch b/overlay/libc/MB_CUR_MAX.patch deleted file mode 100644 index 7419fcc..0000000 --- a/overlay/libc/MB_CUR_MAX.patch +++ /dev/null @@ -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 - - diff --git a/overlay/libc/_CurrentRuneLocale.patch b/overlay/libc/_CurrentRuneLocale.patch deleted file mode 100644 index 1420e84..0000000 --- a/overlay/libc/_CurrentRuneLocale.patch +++ /dev/null @@ -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_ */ diff --git a/overlay/libc/cdefs_no_hidden.patch b/overlay/libc/cdefs_no_hidden.patch deleted file mode 100644 index 67c691f..0000000 --- a/overlay/libc/cdefs_no_hidden.patch +++ /dev/null @@ -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 diff --git a/overlay/libc/default.nix b/overlay/libc/default.nix index 4829dad..87635de 100644 --- a/overlay/libc/default.nix +++ b/overlay/libc/default.nix @@ -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 ''; -}) +} diff --git a/overlay/libc/gdtoa.patch b/overlay/libc/gdtoa.patch deleted file mode 100644 index d9d6ae3..0000000 --- a/overlay/libc/gdtoa.patch +++ /dev/null @@ -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 diff --git a/overlay/libc/genode-prg.pc.in b/overlay/libc/genode-prg.pc.in deleted file mode 100644 index 9cc5a1c..0000000 --- a/overlay/libc/genode-prg.pc.in +++ /dev/null @@ -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 diff --git a/overlay/libc/ld.symbols b/overlay/libc/ld.symbols deleted file mode 100644 index 2f2daaa..0000000 --- a/overlay/libc/ld.symbols +++ /dev/null @@ -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-.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 diff --git a/overlay/libc/libc-builder.sh b/overlay/libc/libc-builder.sh deleted file mode 100755 index 065c96b..0000000 --- a/overlay/libc/libc-builder.sh +++ /dev/null @@ -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 diff --git a/overlay/libc/libc.pc.in b/overlay/libc/libc.pc.in deleted file mode 100644 index 5f3521f..0000000 --- a/overlay/libc/libc.pc.in +++ /dev/null @@ -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 diff --git a/overlay/libc/libc.symbols b/overlay/libc/libc.symbols deleted file mode 100644 index 4b8fd9b..0000000 --- a/overlay/libc/libc.symbols +++ /dev/null @@ -1,1057 +0,0 @@ -___runetype T -___tolower T -___toupper T -__assert T -__dn_expand T -__error T -__flt_rounds T -__fpclassifyd T -__fpclassifyf T -__has_sse D 4 -__h_errno T -__h_errno_set T -__inet_addr T -__inet_aton T -__inet_nsap_ntoa T -__inet_ntoa T -__inet_ntop T -__inet_pton T -__isthreaded B 4 -__mb_cur_max D 8 -___mb_cur_max D 50 -__res_init T -__res_query T -__res_state T -__srget T -__stderrp D 8 -__stdinp D 8 -__stdoutp D 8 -__swbuf T -__test_sse T -__xuname T -_exit T -_getlong T -_getshort T -a64l T -abort T -abs T -accept T -accept4 T -access T -alarm T -alphasort T -arc4random T -arc4random_addrandom T -arc4random_buf T -arc4random_stir T -arc4random_uniform T -asctime T -asctime_r T -asprintf T -atexit T -atof T -atoi T -atol T -atoll T -basename T -bcmp T -bcopy T -bind T -bsearch T -btowc T -bzero T -calloc T -cfgetispeed T -cfgetospeed T -cfmakeraw T -cfsetispeed T -cfsetospeed T -cfsetspeed T -cgetcap T -cgetclose T -cgetent T -cgetfirst T -cgetmatch T -cgetnext T -cgetnum T -cgetset T -cgetstr T -cgetustr T -chdir T -check_utility_compat T -chmod W -chown W -chroot W -clearerr T -clearerr_unlocked T -clock T -clock_gettime W -clock_getres W -close T -closedir T -closelog T -confstr T -connect T -creat W -crypt W -ctermid T -ctermid_r T -ctime T -ctime_r T -daemon T -dbopen W -des_cipher T -des_setkey T -difftime T -digittoint T -dirname T -div T -dl_iterate_phdr W -dladdr T -dlclose T -dlerror T -dlfunc T -dlinfo T -dllockinit W -dlopen T -dlsym T -dlvsym T -dprintf T -drand48 T -dup T -dup2 T -encrypt T -endfsent T -endgrent T -endnetgrent T -endpwent W -endttyent T -endusershell T -environ B 8 -erand48 T -err W -err_set_exit T -err_set_file T -errc T -errx T -execl T -execle T -execlp T -execv T -execvP T -execve T -execvp T -exit T -f_prealloc T -fchdir T -fchmod W -fchown W -fclose T -fcloseall W -fcntl T -fdatasync W -fdevname T -fdevname_r T -fdopen T -fdopendir T -feof T -feof_unlocked T -ferror T -ferror_unlocked T -fflagstostr T -fflush T -ffs T -ffsl T -ffsll T -fgetc T -fgetln T -fgetpos T -fgets T -fgetwc T -fgetwln T -fgetws T -fileno T -fileno_unlocked T -flock W -flockfile W -fls T -flsl T -flsll T -fmtcheck W -fmtmsg T -fnmatch T -fopen T -fork W -fpathconf W -fprintf T -fpurge T -fputc T -fputs T -fputwc T -fputws T -fread T -free T -freeaddrinfo T -freebsd7___semctl W -freebsd7_semctl T -freelocale T -freopen T -fscanf T -fseek T -fseeko T -fsetpos T -fstat T -fstatat T -fstatfs T -fstatvfs T -fsync T -ftell T -ftello T -ftok T -ftruncate T -ftrylockfile W -fts_children T -fts_close T -fts_get_clientptr T -fts_get_stream T -fts_open T -fts_read T -fts_set T -fts_set_clientptr T -ftw T -funlockfile W -funopen T -fwide T -fwprintf T -fwrite T -fwscanf T -gai_strerror T -getaddrinfo T -getbootfile T -getbsize T -getc T -getc_unlocked T -getchar T -getchar_unlocked T -getcontext W -getcwd T -getdelim T -getdirentries T -getdiskbyname T -getdomainname T -getdtablesize W -getegid W -getentropy W -getenv T -geteuid W -getfsent T -getfsfile T -getfsspec T -getfsstat W -getfstab T -getgid W -getgrent T -getgrent_r T -getgrgid T -getgrgid_r T -getgrnam T -getgrnam_r T -getgrouplist T -getgroups W -gethostbyaddr T -gethostbyaddr_r T -gethostbyname W -gethostid T -gethostname T -getline T -getloadavg T -getlogin T -getlogin_r T -getmntinfo T -getmode T -getnameinfo W -getnetgrent T -getopt T -getopt_long T -getopt_long_only T -getpagesize T -getpass T -getpeereid T -getpeername T -getpgrp W -getpid W -getppid W -getpriority W -getprogname W -getprotobyname T -getprotobyname_r T -getpwent W -getpwent_r W -getpwnam W -getpwnam_r W -getpwuid W -getpwuid_r W -getrandom W -getrlimit W -getrusage W -gets T -getservbyname W -getservbyport T -getservbyport_r T -getsid W -getsockname T -getsockopt T -getsubopt T -gettimeofday W -getttyent T -getttynam T -getuid W -getusershell T -getw T -getwc T -getwchar T -getwd T -glob T -globfree T -gmtime T -gmtime_r T -grantpt T -group_from_gid T -hcreate T -hdestroy T -heapsort T -hsearch T -imaxabs T -imaxdiv T -in6addr_any R 16 -in6addr_linklocal_allnodes R 16 -in6addr_loopback R 16 -in6addr_nodelocal_allnodes R 16 -index T -inet_addr W -inet_aton W -inet_lnaof W -inet_makeaddr W -inet_net_ntop W -inet_net_pton W -inet_neta W -inet_netof W -inet_network W -inet_nsap_addr W -inet_nsap_ntoa W -inet_ntoa W -inet_ntoa_r W -inet_ntop W -inet_pton W -initgroups T -initstate T -innetgr T -insque T -ioctl T -isalnum T -isalpha T -isascii T -isatty T -isblank T -iscntrl T -isdialuptty T -isdigit T -isgraph T -ishexnumber T -isideogram T -isinf W -islower T -isnan W -isnanf W -isnettty T -isnumber T -isphonogram T -isprint T -ispunct T -isrune T -issetugid T -isspace T -isspecial T -isupper T -iswalnum T -iswalpha T -iswascii T -iswblank T -iswcntrl T -iswctype T -iswdigit T -iswgraph T -iswhexnumber T -iswideogram T -iswlower T -iswnumber T -iswphonogram T -iswprint T -iswpunct T -iswrune T -iswspace T -iswspecial T -iswupper T -iswxdigit T -isxdigit T -jrand48 T -kill W -killpg T -ksem_init T -l64a T -l64a_r T -labs T -lcong48 T -ldexp T -ldiv T -lfind T -libc_select_notify V -link W -listen T -llabs T -lldiv T -localeconv T -localtime T -localtime_r T -lockf T -longjmp W -longjmperror T -lrand48 T -lsearch T -lseek T -lstat T -madvise W -makecontext W -malloc T -mblen T -mbrlen T -mbrtowc T -mbsinit T -mbsnrtowcs T -mbsrtowcs T -mbstowcs T -mbtowc T -memccpy T -memchr T -memcmp T -memcpy T -memmem T -memmove T -memrchr T -memset T -mergesort T -mkdir T -mkdtemp T -mkfifo W -mknod W -mkstemp T -mkstemps T -mktemp T -mktime T -mmap T -mprotect W -mrand48 T -msync T -munmap T -nanosleep W -clock_nanosleep W -newlocale T -nextwctype T -nftw T -nice T -nl_langinfo T -nlist T -nrand48 T -offtime T -open T -openat T -opendir T -openlog T -optarg B 8 -opterr D 4 -optind D 4 -optopt B 4 -optreset B 4 -pathconf W -pause W -pclose T -perror T -pipe T -poll W -ppoll W -popen T -posix2time T -posix_fadvise T -posix_madvise T -posix_spawn T -posix_spawn_file_actions_addclose T -posix_spawn_file_actions_adddup2 T -posix_spawn_file_actions_addopen T -posix_spawn_file_actions_destroy T -posix_spawn_file_actions_init T -posix_spawnattr_destroy T -posix_spawnattr_getflags T -posix_spawnattr_getpgroup T -posix_spawnattr_getschedparam T -posix_spawnattr_getschedpolicy T -posix_spawnattr_getsigdefault T -posix_spawnattr_getsigmask T -posix_spawnattr_init T -posix_spawnattr_setflags T -posix_spawnattr_setpgroup T -posix_spawnattr_setschedparam T -posix_spawnattr_setschedpolicy T -posix_spawnattr_setsigdefault T -posix_spawnattr_setsigmask T -posix_spawnp T -pread T -printf T -pselect W -psignal T -pthread_atfork T -pthread_attr_destroy T -pthread_attr_getdetachstate T -pthread_attr_getguardsize T -pthread_attr_getinheritsched T -pthread_attr_get_np T -pthread_attr_getschedparam T -pthread_attr_getschedpolicy T -pthread_attr_getscope T -pthread_attr_getstack T -pthread_attr_getstackaddr T -pthread_attr_getstacksize T -pthread_attr_init T -pthread_attr_setdetachstate T -pthread_attr_setguardsize T -pthread_attr_setinheritsched T -pthread_attr_setschedparam T -pthread_attr_setschedpolicy T -pthread_attr_setscope T -pthread_attr_setstackaddr T -pthread_attr_setstacksize T -pthread_cancel T -pthread_cleanup_pop T -pthread_cleanup_push T -pthread_cond_broadcast T -pthread_cond_destroy T -pthread_cond_init T -pthread_cond_signal T -pthread_cond_timedwait T -pthread_cond_wait T -pthread_condattr_destroy T -pthread_condattr_init T -pthread_condattr_setclock T -pthread_create W -pthread_detach T -pthread_equal T -pthread_exit T -pthread_getspecific T -pthread_join T -pthread_key_create T -pthread_key_delete T -pthread_kill T -pthread_main_np T -pthread_mutex_destroy T -pthread_mutex_init T -pthread_mutex_lock T -pthread_mutex_trylock T -pthread_mutex_unlock T -pthread_mutexattr_destroy T -pthread_mutexattr_init T -pthread_mutexattr_settype T -pthread_once T -pthread_rwlock_destroy T -pthread_rwlock_init T -pthread_rwlock_rdlock T -pthread_rwlock_tryrdlock T -pthread_rwlock_trywrlock T -pthread_rwlock_unlock T -pthread_rwlock_wrlock T -pthread_self T -pthread_setcancelstate T -pthread_setcanceltype T -pthread_setspecific T -pthread_sigmask T -pthread_testcancel T -ptsname T -putc T -putc_unlocked T -putchar T -putchar_unlocked T -putenv T -puts T -putw T -putwc T -putwchar T -pwrite T -qsort T -qsort_r T -radixsort T -raise W -rand T -rand_r T -random T -read T -readdir T -readdir_r T -readlink T -readpassphrase T -readv T -realloc T -reallocf T -realpath T -recv T -recvfrom T -recvmsg T -regcomp T -regerror T -regexec T -regfree T -register_printf_function T -register_printf_render T -register_printf_render_std T -remove T -remque T -rename T -rewind T -rewinddir T -rindex T -rmdir T -rpmatch T -sbrk W -scandir T -scanf T -sched_setparam W -sched_setscheduler W -sched_yield W -seed48 T -seekdir T -select W -sem_close T -semctl T -sem_destroy T -sem_getvalue T -semget W -sem_init T -sem_open T -semop W -sem_post T -sem_timedwait T -sem_trywait T -sem_unlink T -sem_wait T -send T -sendmsg W -sendto T -setbuf T -setbuffer T -setcontext W -setdomainname T -setegid W -setenv T -seteuid W -setfsent T -setfstab T -setgid W -setgrent T -setgroupent T -setgroups W -sethostid T -sethostname T -setitimer W -setjmp T -setkey T -setlinebuf T -setlocale T -setlogmask T -setmode T -setnetgrent T -setpassent W -setpgid W -setpgrp T -setpriority W -setprogname T -setpwent W -setregid W -setreuid W -setrgid T -setrlimit W -setruid T -setsid W -setsockopt T -setstate T -setttyent T -setuid W -setusershell T -setvbuf T -shutdown T -sigaction W -sigaddset T -sigblock T -sigdelset T -sigemptyset T -sigfillset T -sighold T -sigignore T -siginterrupt T -sigismember T -siglongjmp W -signal T -sigpause T -sigprocmask W -sigrelse T -sigset T -sigsetjmp T -sigsetmask T -sigsuspend W -sigvec T -sl_add T -sl_find T -sl_free T -sl_init T -sleep W -snprintf T -socket T -socketpair W -sprintf T -sradixsort T -srand T -srand48 T -sranddev T -srandom T -srandomdev T -sscanf T -stat T -statfs W -statvfs T -stpcpy T -stpncpy T -strcasecmp T -strcasestr T -strcat T -strchr T -strcmp T -strcoll T -strcpy T -strcspn T -strdup T -strerror T -strerror_r T -strfmon T -strftime T -strlcat T -strlcpy T -strlen T -strmode T -strncasecmp T -strncat T -strncmp T -strncpy T -strndup T -strnlen T -strnstr T -strpbrk T -strptime T -strrchr T -strsep T -strsignal T -strspn T -strstr T -strtod T -strtof T -strtofflags T -strtoimax T -strtok T -strtok_r W -strtol T -strtold T -strtoll T -strtonum T -strtoq T -strtoul T -strtoull T -strtoumax T -strtouq T -strunvis T -strunvisx T -strvis T -strvisx T -strxfrm T -suboptarg B 8 -swab T -swapcontext W -swprintf T -swscanf T -symlink T -sync W -sys_errlist D 776 -sys_nerr R 4 -sys_nsig R 4 -sys_siglist D 256 -sys_signame D 256 -syscall T -sysconf T -sysctl T -sysctlbyname T -sysctlnametomib T -syslog T -system W -tcdrain W -tcflow T -tcflush T -tcgetattr T -tcgetpgrp T -tcgetsid T -tcsendbreak T -tcsetattr T -tcsetpgrp T -tcsetsid T -tdelete T -telldir T -tempnam T -tfind T -time T -time2posix T -timegm T -timelocal T -timeoff T -times T -timezone T -tmpfile T -tmpnam T -toascii T -tolower T -toupper T -towctrans T -towlower T -towupper T -truncate W -tsearch T -ttyname T -ttyname_r T -ttyslot T -twalk T -tzname D 16 -tzset T -tzsetwall T -ualarm T -ulimit T -umask W -uname T -ungetc T -ungetwc T -unlink T -unlockpt T -unsetenv T -unvis T -uselocale T -user_from_uid T -usleep W -utimes W -utime W -vasprintf T -vdprintf T -verr T -verrc T -verrx T -vfork W -vfprintf T -vfscanf W -vfwprintf T -vfwscanf T -vis T -vprintf T -vscanf T -vsnprintf T -vsprintf T -vsscanf T -vswprintf T -vswscanf T -vsyslog T -vwarn T -vwarnc T -vwarnx T -vwprintf T -vwscanf T -wait W -wait3 T -waitpid W -warn W -warnc T -warnx T -wcpcpy T -wcpncpy T -wcrtomb T -wcscasecmp T -wcscat T -wcschr T -wcscmp T -wcscoll T -wcscpy T -wcscspn T -wcsdup T -wcsftime T -wcslcat T -wcslcpy T -wcslen T -wcsncasecmp T -wcsncat T -wcsncmp T -wcsncpy T -wcsnlen T -wcsnrtombs T -wcspbrk T -wcsrchr T -wcsrtombs T -wcsspn T -wcsstr T -wcstod T -wcstof T -wcstoimax T -wcstok T -wcstol T -wcstold T -wcstoll T -wcstombs T -wcstoul T -wcstoull T -wcstoumax T -wcswidth T -wcsxfrm T -wctob T -wctomb T -wctrans T -wctype T -wcwidth T -wmemchr T -wmemcmp T -wmemcpy T -wmemmove T -wmemset T -wordexp T -wordfree T -wprintf T -write T -writev T -wscanf T -xsi_sigpause T - - -# -# Symbols needed by libm -# -__mb_sb_limit D 4 -_DefaultRuneLocale D 4224 -_CurrentRuneLocale D 8 -__isinf T - - -# -# Public interface between Genode-component code and the libc runtime -# -_ZN4Libc9Component9constructERNS_3EnvE U -_ZN4Libc9Component10stack_sizeEv W -_ZN4Libc30execute_in_application_contextERNS_16Application_codeE T -_ZN4Libc19Select_handler_base6selectEiR6fd_setS2_S2_ T -_ZN4Libc19Select_handler_baseC1Ev T -_ZN4Libc19Select_handler_baseC2Ev T -_ZN4Libc19Select_handler_baseD1Ev T -_ZN4Libc19Select_handler_baseD2Ev T -_ZN4Libc10resume_allEv T -_ZN4Libc7suspendERNS_15Suspend_functorEm T -_Z16pthread_registryv T -_ZN16Pthread_registry6insertEP7pthread T -_ZN16Pthread_registry6removeEP7pthread T -_ZN16Pthread_registry8containsEP7pthread T -_ZN4Libc14pthread_createEPP7pthreadPFPvS3_ES3_mPKcPN6Genode11Cpu_sessionENS8_8Affinity8LocationE T -_ZN4Libc14pthread_createEPP7pthreadRN6Genode6ThreadE T - -# -# Libc plugin interface -# -_ZN4Libc16schedule_suspendEPFvvE T -_ZN4Libc25File_descriptor_allocator15find_by_libc_fdEi T -_ZN4Libc25File_descriptor_allocator4freeEPNS_15File_descriptorE T -_ZN4Libc25File_descriptor_allocator5allocEPNS_6PluginEPNS_14Plugin_contextEi T -_ZN4Libc25file_descriptor_allocatorEv T -_ZN4Libc6Plugin10getsockoptEPNS_15File_descriptorEiiPvPj T -_ZN4Libc6Plugin10setsockoptEPNS_15File_descriptorEiiPKvj T -_ZN4Libc6Plugin11getpeernameEPNS_15File_descriptorEP8sockaddrPj T -_ZN4Libc6Plugin11getsocknameEPNS_15File_descriptorEP8sockaddrPj T -_ZN4Libc6Plugin13getdirentriesEPNS_15File_descriptorEPcmPx T -_ZN4Libc6Plugin13getdirentriesEPNS_15File_descriptorEPcmPl T -_ZN4Libc6Plugin13supports_mmapEv T -_ZN4Libc6Plugin13supports_openEPKci T -_ZN4Libc6Plugin13supports_pipeEv T -_ZN4Libc6Plugin13supports_pollEv T -_ZN4Libc6Plugin13supports_statEPKc T -_ZN4Libc6Plugin14supports_mkdirEPKct T -_ZN4Libc6Plugin14supports_rmdirEPKc T -_ZN4Libc6Plugin15supports_accessEPKci T -_ZN4Libc6Plugin15supports_execveEPKcPKPcS5_ T -_ZN4Libc6Plugin15supports_renameEPKcS2_ T -_ZN4Libc6Plugin15supports_selectEiP6fd_setS2_S2_P7timeval T -_ZN4Libc6Plugin15supports_socketEiii T -_ZN4Libc6Plugin15supports_unlinkEPKc T -_ZN4Libc6Plugin16supports_symlinkEPKcS2_ T -_ZN4Libc6Plugin17supports_readlinkEPKcPcj T -_ZN4Libc6Plugin17supports_readlinkEPKcPcm T -_ZN4Libc6Plugin3dupEPNS_15File_descriptorE T -_ZN4Libc6Plugin4bindEPNS_15File_descriptorEPK8sockaddrj T -_ZN4Libc6Plugin4dup2EPNS_15File_descriptorES2_ T -_ZN4Libc6Plugin4mmapEPvmiiPNS_15File_descriptorEx T -_ZN4Libc6Plugin4mmapEPvmiiPNS_15File_descriptorEl T -_ZN4Libc6Plugin4openEPKci T -_ZN4Libc6Plugin4pipeEPPNS_15File_descriptorE T -_ZN4Libc6Plugin4pollERNS_15File_descriptorER6pollfd T -_ZN4Libc6Plugin4readEPNS_15File_descriptorEPvj T -_ZN4Libc6Plugin4readEPNS_15File_descriptorEPvm T -_ZN4Libc6Plugin4recvEPNS_15File_descriptorEPvji T -_ZN4Libc6Plugin4recvEPNS_15File_descriptorEPvmi T -_ZN4Libc6Plugin4sendEPNS_15File_descriptorEPKvji T -_ZN4Libc6Plugin4sendEPNS_15File_descriptorEPKvmi T -_ZN4Libc6Plugin4statEPKcP4stat T -_ZN4Libc6Plugin5closeEPNS_15File_descriptorE T -_ZN4Libc6Plugin5fcntlEPNS_15File_descriptorEil T -_ZN4Libc6Plugin5fstatEPNS_15File_descriptorEP4stat T -_ZN4Libc6Plugin5fsyncEPNS_15File_descriptorE T -_ZN4Libc6Plugin5ioctlEPNS_15File_descriptorEiPc T -_ZN4Libc6Plugin5lseekEPNS_15File_descriptorEli T -_ZN4Libc6Plugin5lseekEPNS_15File_descriptorExi T -_ZN4Libc6Plugin5mkdirEPKct T -_ZN4Libc6Plugin5msyncEPvmi T -_ZN4Libc6Plugin5rmdirEPKc T -_ZN4Libc6Plugin5writeEPNS_15File_descriptorEPKvj T -_ZN4Libc6Plugin5writeEPNS_15File_descriptorEPKvm T -_ZN4Libc6Plugin6acceptEPNS_15File_descriptorEP8sockaddrPj T -_ZN4Libc6Plugin6accessEPKci T -_ZN4Libc6Plugin6execveEPKcPKPcS5_ T -_ZN4Libc6Plugin6listenEPNS_15File_descriptorEi T -_ZN4Libc6Plugin6munmapEPvj T -_ZN4Libc6Plugin6munmapEPvm T -_ZN4Libc6Plugin6renameEPKcS2_ T -_ZN4Libc6Plugin6selectEiP6fd_setS2_S2_P7timeval T -_ZN4Libc6Plugin6sendtoEPNS_15File_descriptorEPKvjiPK8sockaddrj T -_ZN4Libc6Plugin6sendtoEPNS_15File_descriptorEPKvmiPK8sockaddrj T -_ZN4Libc6Plugin6socketEiii T -_ZN4Libc6Plugin6unlinkEPKc T -_ZN4Libc6Plugin7connectEPNS_15File_descriptorEPK8sockaddrj T -_ZN4Libc6Plugin7fstatfsEPNS_15File_descriptorEP6statfs T -_ZN4Libc6Plugin7recvmsgEPNS_15File_descriptorEP6msghdri T -_ZN4Libc6Plugin7symlinkEPKcS2_ T -_ZN4Libc6Plugin8priorityEv T -_ZN4Libc6Plugin8readlinkEPKcPcj T -_ZN4Libc6Plugin8readlinkEPKcPcm T -_ZN4Libc6Plugin8recvfromEPNS_15File_descriptorEPvjiP8sockaddrPj T -_ZN4Libc6Plugin8recvfromEPNS_15File_descriptorEPvmiP8sockaddrPj T -_ZN4Libc6Plugin8shutdownEPNS_15File_descriptorEi T -_ZN4Libc6Plugin9ftruncateEPNS_15File_descriptorEl T -_ZN4Libc6Plugin9ftruncateEPNS_15File_descriptorEx T -_ZN4Libc6Plugin10resume_allEv T -_ZN4Libc6PluginC1Ei T -_ZN4Libc6PluginC2Ei T -_ZN4Libc6PluginD0Ev T -_ZN4Libc6PluginD1Ev T -_ZN4Libc6PluginD2Ev T -_ZN4Libc9mem_allocEv T -_ZTIN4Libc6PluginE D 40 diff --git a/overlay/libc/linker.ld b/overlay/libc/linker.ld deleted file mode 100644 index 2880cee..0000000 --- a/overlay/libc/linker.ld +++ /dev/null @@ -1,18 +0,0 @@ -/* - * \brief LDSO specific linkage settings - * \author Sebastian Sumpf - * \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; -} - diff --git a/overlay/libc/log2.patch b/overlay/libc/log2.patch deleted file mode 100644 index 950e558..0000000 --- a/overlay/libc/log2.patch +++ /dev/null @@ -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 */ diff --git a/overlay/libc/mktime.patch b/overlay/libc/mktime.patch deleted file mode 100644 index 0860f3e..0000000 --- a/overlay/libc/mktime.patch +++ /dev/null @@ -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) - */ diff --git a/overlay/libc/printfcommon.patch b/overlay/libc/printfcommon.patch deleted file mode 100644 index 301d5af..0000000 --- a/overlay/libc/printfcommon.patch +++ /dev/null @@ -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 - #include - #include "floatio.h" diff --git a/overlay/libc/rcmd.patch b/overlay/libc/rcmd.patch deleted file mode 100644 index c69adf2..0000000 --- a/overlay/libc/rcmd.patch +++ /dev/null @@ -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 diff --git a/overlay/libc/res_init_c.patch b/overlay/libc/res_init_c.patch deleted file mode 100644 index 4eb8d7b..0000000 --- a/overlay/libc/res_init_c.patch +++ /dev/null @@ -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 - #include - --#ifndef HAVE_MD5 --# include "../dst/md5.h" --#else --# ifdef SOLARIS2 --# include --# elif _LIBC --# include --# endif --#endif --#ifndef _MD5_H_ --# define _MD5_H_ 1 /*%< make sure we do not include rsaref md5.h file */ --#endif -+#include - - #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; - } - - /*% diff --git a/overlay/libc/runetype.patch b/overlay/libc/runetype.patch deleted file mode 100644 index 1e8dbec..0000000 --- a/overlay/libc/runetype.patch +++ /dev/null @@ -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; - } diff --git a/overlay/libc/semaphore.patch b/overlay/libc/semaphore.patch deleted file mode 100644 index 495f080..0000000 --- a/overlay/libc/semaphore.patch +++ /dev/null @@ -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 diff --git a/overlay/libc/thread_local.patch b/overlay/libc/thread_local.patch deleted file mode 100644 index 89fa01b..0000000 --- a/overlay/libc/thread_local.patch +++ /dev/null @@ -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 */ - - /* diff --git a/overlay/libc/types.patch b/overlay/libc/types.patch deleted file mode 100644 index e401f6e..0000000 --- a/overlay/libc/types.patch +++ /dev/null @@ -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; diff --git a/overlay/libc/vfs.pc.in b/overlay/libc/vfs.pc.in deleted file mode 100644 index 34cb586..0000000 --- a/overlay/libc/vfs.pc.in +++ /dev/null @@ -1,4 +0,0 @@ -Name: VFS -Description: Genode Virtual File-System library -Version: @version@ -Libs: -l:vfs.lib.so diff --git a/overlay/libc/vfs.symbols b/overlay/libc/vfs.symbols deleted file mode 100644 index 45fca6d..0000000 --- a/overlay/libc/vfs.symbols +++ /dev/null @@ -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 diff --git a/overlay/libc/vfwprintf_c_warn.patch b/overlay/libc/vfwprintf_c_warn.patch deleted file mode 100644 index 0fd446a..0000000 --- a/overlay/libc/vfwprintf_c_warn.patch +++ /dev/null @@ -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) { diff --git a/overlay/libc/xlocale.patch b/overlay/libc/xlocale.patch deleted file mode 100644 index 9753875..0000000 --- a/overlay/libc/xlocale.patch +++ /dev/null @@ -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 diff --git a/overlay/libc/xlocale_private.patch b/overlay/libc/xlocale_private.patch deleted file mode 100644 index b355704..0000000 --- a/overlay/libc/xlocale_private.patch +++ /dev/null @@ -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; - } - - /** diff --git a/overlay/libc/xprintf_float.patch b/overlay/libc/xprintf_float.patch deleted file mode 100644 index f44cb7a..0000000 --- a/overlay/libc/xprintf_float.patch +++ /dev/null @@ -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 - #include - --#define dtoa __dtoa --#define freedtoa __freedtoa -- - #include - #include - #include "gdtoa.h" diff --git a/overlay/llvm-8/clang/genode.patch b/overlay/llvm-8/clang/genode.patch index d863264..1b5b76f 100644 --- a/overlay/llvm-8/clang/genode.patch +++ b/overlay/llvm-8/clang/genode.patch @@ -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(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 +// diff --git a/overlay/llvm-8/default.nix b/overlay/llvm-8/default.nix index fe1046c..251e489 100644 --- a/overlay/llvm-8/default.nix +++ b/overlay/llvm-8/default.nix @@ -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 ''; };