Initial commit
This commit is contained in:
commit
3ad62e086e
|
@ -0,0 +1,2 @@
|
||||||
|
result
|
||||||
|
result-*
|
|
@ -0,0 +1,43 @@
|
||||||
|
{ nixpkgs ? import <nixpkgs>
|
||||||
|
, system ? { config = "x86_64-unknown-genode"; }
|
||||||
|
}:
|
||||||
|
|
||||||
|
with builtins;
|
||||||
|
|
||||||
|
let
|
||||||
|
nixpkgs' = nixpkgs
|
||||||
|
{ crossSystem = system;
|
||||||
|
config.allowUnsupportedSystem = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
portIncludes = ports: listToAttrs
|
||||||
|
( map
|
||||||
|
( name:
|
||||||
|
let port = getAttr name ports; in
|
||||||
|
{ name = name + "_include";
|
||||||
|
value = getAttr "include" port;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
(attrNames ports)
|
||||||
|
);
|
||||||
|
|
||||||
|
toolchain = import ./tool/toolchain.nix;
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
inherit toolchain;
|
||||||
|
nixpkgs = nixpkgs';
|
||||||
|
|
||||||
|
dhall = import ./dhall { inherit nixpkgs; };
|
||||||
|
|
||||||
|
upstream = import ./upstream { inherit nixpkgs toolchain; };
|
||||||
|
|
||||||
|
ports = import ./ports { inherit nixpkgs toolchain upstream; };
|
||||||
|
|
||||||
|
libretro = import ./libretro { inherit nixpkgs upstream toolchain; inherit (ports) stdcxx libc; };
|
||||||
|
|
||||||
|
shell = import ./shell.nix
|
||||||
|
{ inherit nixpkgs toolchain;
|
||||||
|
dhallPackages = dhall;
|
||||||
|
pkgs = { inherit upstream ports; };
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ nixpkgs, ... } @ args:
|
||||||
|
|
||||||
|
let
|
||||||
|
tool = import ./../tool { inherit nixpkgs; };
|
||||||
|
importPort = path:
|
||||||
|
let f = (import path);
|
||||||
|
in f (builtins.intersectAttrs (builtins.functionArgs f) (tool // args));
|
||||||
|
|
||||||
|
hasSuffixNix = tool.hasSuffix ".nix";
|
||||||
|
in
|
||||||
|
builtins.listToAttrs (
|
||||||
|
builtins.filter
|
||||||
|
(x: x != null)
|
||||||
|
(map
|
||||||
|
(fn:
|
||||||
|
if fn != "default.nix" then
|
||||||
|
{ name = tool.replaceInString ".nix" "" fn;
|
||||||
|
value = importPort (../ports + "/${fn}");
|
||||||
|
}
|
||||||
|
else null
|
||||||
|
)
|
||||||
|
(builtins.attrNames (builtins.readDir ../ports))
|
||||||
|
)
|
||||||
|
)
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ preparePort, nixpkgs, upstream }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (nixpkgs) fetchFromGitHub fetchgit;
|
||||||
|
upstreamSrc = import ./../../upstream/src.nix { inherit fetchgit; };
|
||||||
|
in
|
||||||
|
preparePort {
|
||||||
|
name = "egl";
|
||||||
|
outputs = [ "dev" ];
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
name = "EGL";
|
||||||
|
owner = "KhronosGroup";
|
||||||
|
repo = "EGL-Registry";
|
||||||
|
rev = "d738c39fe25bab9f65bed2cb78c4db253bd473c4";
|
||||||
|
sha256 = "1bb2pgv516i1p8x3171yj3gqkxqxqwg7q42ak627md4x3irmqf2q";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $includedir $pkgconfigdir
|
||||||
|
|
||||||
|
substituteAll ${./egl_api.pc.in} $pkgconfigdir/egl_api.pc
|
||||||
|
|
||||||
|
cp -r api/1.? api/EGL api/KHR $includedir
|
||||||
|
cp ${upstream.src}/repos/libports/include/EGL/eglplatform.h $includedir/EGL/eglplatform.h
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
includedir=@includedir@
|
||||||
|
|
||||||
|
Name: EGL
|
||||||
|
Description: EGL API headers
|
||||||
|
Version: @version@
|
||||||
|
Cflags: -I${includedir}
|
|
@ -0,0 +1,52 @@
|
||||||
|
{ preparePort, nixpkgs, toolchain, upstream }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (nixpkgs.buildPackages) fetchurl ;
|
||||||
|
in
|
||||||
|
preparePort {
|
||||||
|
name = "libc-freebsd-12.0.0";
|
||||||
|
outputs = [ "source" "dev" ];
|
||||||
|
|
||||||
|
builder = ./libc-builder.sh;
|
||||||
|
|
||||||
|
depsBuildBuild = with nixpkgs.buildPackages;
|
||||||
|
[ flex bison glibc stdenv.cc toolchain ];
|
||||||
|
|
||||||
|
src = fetchurl
|
||||||
|
{ url = "http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.0-RELEASE/src.txz";
|
||||||
|
sha256 = "0da393ac2174168a71c1c527d1453e07372295187d05c288250800cb152a889b";
|
||||||
|
};
|
||||||
|
|
||||||
|
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"
|
||||||
|
];
|
||||||
|
|
||||||
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
patches = "${upstream.src}/repos/libports/src/lib/libc/patches/*.patch";
|
||||||
|
patchFlags = "-p0 --strip 3";
|
||||||
|
|
||||||
|
libcPcIn = ./libc.pc.in;
|
||||||
|
libcSymbols = ./libc.symbols;
|
||||||
|
}
|
|
@ -0,0 +1,255 @@
|
||||||
|
source $preparePort/setup
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#
|
||||||
|
# CPU-architecture-specific headers
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# x86-specific headers
|
||||||
|
#
|
||||||
|
mkdir -p $includedir/spec/x86
|
||||||
|
cp \
|
||||||
|
lib/msun/x86/fenv.h \
|
||||||
|
$includedir/spec/x86
|
||||||
|
|
||||||
|
cp -r sys/x86/include $includedir/x86
|
||||||
|
|
||||||
|
#
|
||||||
|
# i386-specific headers
|
||||||
|
#
|
||||||
|
mkdir -p $includedir/spec/x86_32/machine
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_content i386 i386) \
|
||||||
|
$includedir/spec/x86_32
|
||||||
|
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_machine_content i386) \
|
||||||
|
sys/i386/include/specialreg.h \
|
||||||
|
sys/i386/include/npx.h \
|
||||||
|
$includedir/spec/x86_32/machine
|
||||||
|
|
||||||
|
#
|
||||||
|
# AMD64-specific headers
|
||||||
|
#
|
||||||
|
mkdir -p $includedir/spec/x86_64/machine
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_content amd64 amd64) \
|
||||||
|
$includedir/spec/x86_64
|
||||||
|
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_machine_content amd64) \
|
||||||
|
sys/amd64/include/specialreg.h \
|
||||||
|
sys/amd64/include/fpu.h \
|
||||||
|
$includedir/spec/x86_64/machine
|
||||||
|
|
||||||
|
#
|
||||||
|
# ARM-specific headers
|
||||||
|
#
|
||||||
|
mkdir -p $includedir/spec/arm/machine
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_content arm arm) \
|
||||||
|
lib/msun/arm/fenv.h \
|
||||||
|
$includedir/spec/arm
|
||||||
|
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_machine_content arm) \
|
||||||
|
$includedir/spec/arm/machine
|
||||||
|
|
||||||
|
copyIncludes $includedir/spec/arm/machine sys/arm/include \
|
||||||
|
armreg.h atomic-v6.h ieee.h sysreg.h
|
||||||
|
|
||||||
|
#
|
||||||
|
# ARM64-specific headers
|
||||||
|
#
|
||||||
|
mkdir -p $includedir/spec/arm_64/machine
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_content arm64 aarch64) \
|
||||||
|
lib/msun/aarch64/fenv.h \
|
||||||
|
$includedir/spec/arm_64
|
||||||
|
|
||||||
|
cp \
|
||||||
|
$(common_include_libc_arch_machine_content arm64) \
|
||||||
|
$includedir/spec/arm_64/machine
|
||||||
|
|
||||||
|
copyIncludes $includedir/spec/arm_64/machine sys/arm64/include/ \
|
||||||
|
armreg.h
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mkdir -p $pkgconfigdir
|
||||||
|
substituteAll $libcPcIn $pkgconfigdir/libc.pc
|
||||||
|
compileStub $libcSymbols $dev/lib/libc.lib.so
|
||||||
|
|
||||||
|
cp -rv . $source
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
genericBuild
|
|
@ -0,0 +1,8 @@
|
||||||
|
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@ -I@includedir@/spec/x86_64 -I@includedir@/spec/x86
|
||||||
|
Libs: -l:libc.lib.so
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,5 @@
|
||||||
|
Name: POSIX entrypoint
|
||||||
|
Description: Genode POSIX entrypoint library
|
||||||
|
Version: @DEPOT_VERSION@
|
||||||
|
Requires: libc
|
||||||
|
Libs: -l:posix.lib.so
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ preparePort, nixpkgs, toolchain, upstream }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "0.6.0";
|
||||||
|
in
|
||||||
|
preparePort {
|
||||||
|
name = "libm-" + version;
|
||||||
|
outputs = [ "dev" ];
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = nixpkgs.fetchFromGitHub {
|
||||||
|
owner = "JuliaMath";
|
||||||
|
repo = "openlibm";
|
||||||
|
rev = "a96f0740e32c3d8aaa0a34c3988201018dfa90ce";
|
||||||
|
sha256 = "08wfchmmr5200fvmn1kwq9byc1fhsq46hn0y5k8scdl74771c7gh";
|
||||||
|
};
|
||||||
|
|
||||||
|
depsBuildBuild = with nixpkgs.buildPackages; [ stdenv.cc toolchain ];
|
||||||
|
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $pkgconfigdir
|
||||||
|
compileStub ${./libm.symbols} $dev/lib/libm.lib.so
|
||||||
|
substituteAll ${./libm.pc.in} $pkgconfigdir/libm.pc
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
cp -rv include $dev/
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
Name: Libm
|
||||||
|
Description: Genode C mathematic library
|
||||||
|
URL: https://genode.org/
|
||||||
|
Version: @version@
|
||||||
|
Cflags: -I@includedir@
|
||||||
|
Libs: -l:libm.lib.so
|
|
@ -0,0 +1,322 @@
|
||||||
|
_ItL_aT R 384
|
||||||
|
_ItL_atanhi R 64
|
||||||
|
_ItL_atanlo R 64
|
||||||
|
_ItL_pS0 R 16
|
||||||
|
_ItL_pS1 R 16
|
||||||
|
_ItL_pS2 R 16
|
||||||
|
_ItL_pS3 R 16
|
||||||
|
_ItL_pS4 R 16
|
||||||
|
_ItL_pS5 R 16
|
||||||
|
_ItL_pS6 R 16
|
||||||
|
_ItL_pi_lo R 16
|
||||||
|
_ItL_qS1 R 16
|
||||||
|
_ItL_qS2 R 16
|
||||||
|
_ItL_qS3 R 16
|
||||||
|
_ItL_qS4 R 16
|
||||||
|
_ItL_qS5 R 16
|
||||||
|
__exp__D T
|
||||||
|
__fe_dfl_env R 32
|
||||||
|
__fpclassifyd T
|
||||||
|
__fpclassifyf T
|
||||||
|
__fpclassifyl T
|
||||||
|
__ieee754_rem_pio2 T
|
||||||
|
__ieee754_rem_pio2f T
|
||||||
|
__isfinite T
|
||||||
|
__isfinitef T
|
||||||
|
__isfinitel T
|
||||||
|
__isinff T
|
||||||
|
__isinfl T
|
||||||
|
__isnanf T
|
||||||
|
__isnanl T
|
||||||
|
__isnormal T
|
||||||
|
__isnormalf T
|
||||||
|
__isnormall T
|
||||||
|
__kernel_cos T
|
||||||
|
__kernel_cosdf T
|
||||||
|
__kernel_cosl T
|
||||||
|
__kernel_rem_pio2 T
|
||||||
|
__kernel_sin T
|
||||||
|
__kernel_sindf T
|
||||||
|
__kernel_sinl T
|
||||||
|
__kernel_tan T
|
||||||
|
__kernel_tandf T
|
||||||
|
__kernel_tanl T
|
||||||
|
__ldexp_cexp T
|
||||||
|
__ldexp_cexpf T
|
||||||
|
__ldexp_exp T
|
||||||
|
__ldexp_expf T
|
||||||
|
__log__D T
|
||||||
|
__p1evll T
|
||||||
|
__polevll T
|
||||||
|
__scan_nan T
|
||||||
|
__signbit T
|
||||||
|
__signbitf T
|
||||||
|
__signbitl T
|
||||||
|
acos T
|
||||||
|
acosf T
|
||||||
|
acosh T
|
||||||
|
acoshf T
|
||||||
|
acoshl T
|
||||||
|
acosl T
|
||||||
|
asin T
|
||||||
|
asinf T
|
||||||
|
asinh T
|
||||||
|
asinhf T
|
||||||
|
asinhl T
|
||||||
|
asinl T
|
||||||
|
atan T
|
||||||
|
atan2 T
|
||||||
|
atan2f T
|
||||||
|
atan2l T
|
||||||
|
atanf T
|
||||||
|
atanh T
|
||||||
|
atanhf T
|
||||||
|
atanhl T
|
||||||
|
atanl T
|
||||||
|
cabs T
|
||||||
|
cabsf T
|
||||||
|
cabsl T
|
||||||
|
cacos T
|
||||||
|
cacosf T
|
||||||
|
cacosh T
|
||||||
|
cacoshf T
|
||||||
|
cacoshl T
|
||||||
|
cacosl T
|
||||||
|
carg T
|
||||||
|
cargf T
|
||||||
|
cargl T
|
||||||
|
casin T
|
||||||
|
casinf T
|
||||||
|
casinh T
|
||||||
|
casinhf T
|
||||||
|
casinhl T
|
||||||
|
casinl T
|
||||||
|
catan T
|
||||||
|
catanf T
|
||||||
|
catanh T
|
||||||
|
catanhf T
|
||||||
|
catanhl T
|
||||||
|
catanl T
|
||||||
|
cbrt T
|
||||||
|
cbrtf T
|
||||||
|
cbrtl T
|
||||||
|
ccos T
|
||||||
|
ccosf T
|
||||||
|
ccosh T
|
||||||
|
ccoshf T
|
||||||
|
ccoshl T
|
||||||
|
ccosl T
|
||||||
|
ceil T
|
||||||
|
ceilf T
|
||||||
|
ceill T
|
||||||
|
cexp T
|
||||||
|
cexpf T
|
||||||
|
cexpl T
|
||||||
|
cimag T
|
||||||
|
cimagf T
|
||||||
|
cimagl T
|
||||||
|
clog T
|
||||||
|
clogf T
|
||||||
|
clogl T
|
||||||
|
conj T
|
||||||
|
conjf T
|
||||||
|
conjl T
|
||||||
|
copysign T
|
||||||
|
copysignf T
|
||||||
|
copysignl T
|
||||||
|
cos T
|
||||||
|
cosf T
|
||||||
|
cosh T
|
||||||
|
coshf T
|
||||||
|
coshl T
|
||||||
|
cosl T
|
||||||
|
cpow T
|
||||||
|
cpowf T
|
||||||
|
cpowl T
|
||||||
|
cproj T
|
||||||
|
cprojf T
|
||||||
|
cprojl T
|
||||||
|
creal T
|
||||||
|
crealf T
|
||||||
|
creall T
|
||||||
|
csin T
|
||||||
|
csinf T
|
||||||
|
csinh T
|
||||||
|
csinhf T
|
||||||
|
csinhl T
|
||||||
|
csinl T
|
||||||
|
csqrt T
|
||||||
|
csqrtf T
|
||||||
|
csqrtl T
|
||||||
|
ctan T
|
||||||
|
ctanf T
|
||||||
|
ctanh T
|
||||||
|
ctanhf T
|
||||||
|
ctanhl T
|
||||||
|
ctanl T
|
||||||
|
erf T
|
||||||
|
erfc T
|
||||||
|
erfcf T
|
||||||
|
erfcl T
|
||||||
|
erff T
|
||||||
|
erfl T
|
||||||
|
exp T
|
||||||
|
exp2 T
|
||||||
|
exp2f T
|
||||||
|
exp2l T
|
||||||
|
expf T
|
||||||
|
expl T
|
||||||
|
expm1 T
|
||||||
|
expm1f T
|
||||||
|
expm1l T
|
||||||
|
fabs T
|
||||||
|
fabsf T
|
||||||
|
fabsl T
|
||||||
|
fdim T
|
||||||
|
fdimf T
|
||||||
|
fdiml T
|
||||||
|
fedisableexcept T
|
||||||
|
feenableexcept T
|
||||||
|
fegetenv T
|
||||||
|
feholdexcept T
|
||||||
|
feraiseexcept T
|
||||||
|
fesetexceptflag T
|
||||||
|
feupdateenv T
|
||||||
|
floor T
|
||||||
|
floorf T
|
||||||
|
floorl T
|
||||||
|
fma T
|
||||||
|
fmaf T
|
||||||
|
fmal T
|
||||||
|
fmax T
|
||||||
|
fmaxf T
|
||||||
|
fmaxl T
|
||||||
|
fmin T
|
||||||
|
fminf T
|
||||||
|
fminl T
|
||||||
|
fmod T
|
||||||
|
fmodf T
|
||||||
|
fmodl T
|
||||||
|
frexp T
|
||||||
|
frexpf T
|
||||||
|
frexpl T
|
||||||
|
hypot T
|
||||||
|
hypotf T
|
||||||
|
hypotl T
|
||||||
|
ilogb T
|
||||||
|
ilogbf T
|
||||||
|
ilogbl T
|
||||||
|
isinf T
|
||||||
|
isinff W
|
||||||
|
isnan T
|
||||||
|
isnanf W
|
||||||
|
isopenlibm T
|
||||||
|
j0 T
|
||||||
|
j0f T
|
||||||
|
j1 T
|
||||||
|
j1f T
|
||||||
|
jn T
|
||||||
|
jnf T
|
||||||
|
ldexp T
|
||||||
|
ldexpf T
|
||||||
|
ldexpl T
|
||||||
|
lgamma T
|
||||||
|
lgamma_r T
|
||||||
|
lgammaf T
|
||||||
|
lgammaf_r T
|
||||||
|
lgammal T
|
||||||
|
lgammal_r T
|
||||||
|
llrint T
|
||||||
|
llrintf T
|
||||||
|
llrintl T
|
||||||
|
llround T
|
||||||
|
llroundf T
|
||||||
|
llroundl T
|
||||||
|
log T
|
||||||
|
log10 T
|
||||||
|
log10f T
|
||||||
|
log10l T
|
||||||
|
log1p T
|
||||||
|
log1pf T
|
||||||
|
log1pl T
|
||||||
|
log2 T
|
||||||
|
log2f T
|
||||||
|
log2l T
|
||||||
|
logb T
|
||||||
|
logbf T
|
||||||
|
logbl T
|
||||||
|
logf T
|
||||||
|
logl T
|
||||||
|
lrint T
|
||||||
|
lrintf T
|
||||||
|
lrintl T
|
||||||
|
lround T
|
||||||
|
lroundf T
|
||||||
|
lroundl T
|
||||||
|
modf T
|
||||||
|
modff T
|
||||||
|
modfl T
|
||||||
|
nan T
|
||||||
|
nanf T
|
||||||
|
nanl T
|
||||||
|
nearbyint T
|
||||||
|
nearbyintf T
|
||||||
|
nearbyintl T
|
||||||
|
nextafter T
|
||||||
|
nextafterf T
|
||||||
|
nextafterl T
|
||||||
|
nexttoward T
|
||||||
|
nexttowardf T
|
||||||
|
nexttowardl T
|
||||||
|
pow T
|
||||||
|
powf T
|
||||||
|
powl T
|
||||||
|
remainder T
|
||||||
|
remainderf T
|
||||||
|
remainderl T
|
||||||
|
remquo T
|
||||||
|
remquof T
|
||||||
|
remquol T
|
||||||
|
rint T
|
||||||
|
rintf T
|
||||||
|
rintl T
|
||||||
|
round T
|
||||||
|
roundf T
|
||||||
|
roundl T
|
||||||
|
scalbln T
|
||||||
|
scalblnf T
|
||||||
|
scalblnl T
|
||||||
|
scalbn T
|
||||||
|
scalbnf T
|
||||||
|
scalbnl T
|
||||||
|
signgam B 4
|
||||||
|
sin T
|
||||||
|
sincos T
|
||||||
|
sincosf T
|
||||||
|
sincosl T
|
||||||
|
sinf T
|
||||||
|
sinh T
|
||||||
|
sinhf T
|
||||||
|
sinhl T
|
||||||
|
sinl T
|
||||||
|
sqrt T
|
||||||
|
sqrtf T
|
||||||
|
sqrtl T
|
||||||
|
tan T
|
||||||
|
tanf T
|
||||||
|
tanh T
|
||||||
|
tanhf T
|
||||||
|
tanhl T
|
||||||
|
tanl T
|
||||||
|
tgamma T
|
||||||
|
tgammaf T
|
||||||
|
tgammal T
|
||||||
|
trunc T
|
||||||
|
truncf T
|
||||||
|
truncl T
|
||||||
|
y0 T
|
||||||
|
y0f T
|
||||||
|
y1 T
|
||||||
|
y1f T
|
||||||
|
yn T
|
||||||
|
ynf T
|
|
@ -0,0 +1,63 @@
|
||||||
|
{ preparePort, nixpkgs, upstream }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "11.2.2";
|
||||||
|
upstreamMesaDir = "${upstream.src}/repos/libports/src/lib/mesa";
|
||||||
|
in
|
||||||
|
preparePort {
|
||||||
|
name = "mesa-${version}";
|
||||||
|
outputs = [ "source" "dev" ];
|
||||||
|
|
||||||
|
depsBuildBuild = with nixpkgs.buildPackages; [ bison flex python ];
|
||||||
|
|
||||||
|
src = nixpkgs.fetchurl {
|
||||||
|
url = "https://mesa.freedesktop.org/archive/older-versions/11.x/${version}/mesa-${version}.tar.gz";
|
||||||
|
sha256 = "e2453014cd2cc5337a5180cdeffe8cf24fffbb83e20a96888e2b01df868eaae6";
|
||||||
|
};
|
||||||
|
|
||||||
|
tarFlags = "--files-from ${upstreamMesaDir}/files.list";
|
||||||
|
|
||||||
|
patches = "${upstreamMesaDir}/patches/*.patch";
|
||||||
|
patchFlags = "-p4";
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $pkgconfigdir
|
||||||
|
|
||||||
|
pushd src/compiler/glsl
|
||||||
|
bison -o glsl_parser.cpp -p "_mesa_glsl_" \
|
||||||
|
--defines=glsl_parser.h glsl_parser.yy
|
||||||
|
|
||||||
|
flex -o glsl_lexer.cpp glsl_lexer.ll
|
||||||
|
|
||||||
|
pushd glcpp
|
||||||
|
bison -o sglcpp-parse.c \
|
||||||
|
-p "glcpp_parser_" --defines=glcpp-parse.h \
|
||||||
|
glcpp-parse.y
|
||||||
|
|
||||||
|
flex -o glcpp-lex.c glcpp-lex.l
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd src/mesa/program
|
||||||
|
bison -o program_parse.tab.c \
|
||||||
|
-p "_mesa_program_" --defines=program_parse.tab.h \
|
||||||
|
program_parse.y
|
||||||
|
|
||||||
|
flex -o lex.yy.c program_lexer.l
|
||||||
|
popd
|
||||||
|
|
||||||
|
mkdir -p src/mapi/shared-glapi
|
||||||
|
pushd src/mapi/shared-glapi
|
||||||
|
python ../mapi_abi.py --mode lib --printer shared-glapi \
|
||||||
|
../glapi/gen/gl_and_es_API.xml > glapi_mapi_tmp.h
|
||||||
|
popd
|
||||||
|
|
||||||
|
mv include $includedir
|
||||||
|
|
||||||
|
substituteAll ${./mesa.pc.in} $pkgconfigdir/mesa.pc
|
||||||
|
|
||||||
|
mkdir $source
|
||||||
|
mv * $source/
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
includedir=@includedir@
|
||||||
|
|
||||||
|
Name: mesa
|
||||||
|
Description: Mesa library
|
||||||
|
Version: @version@
|
||||||
|
Libs: -l:mesa.lib.so
|
||||||
|
Cflags: -I${includedir}
|
|
@ -0,0 +1,102 @@
|
||||||
|
{ preparePort, nixpkgs, toolchain, upstream }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (nixpkgs.buildPackages) fetchurl fetchgit flex bison;
|
||||||
|
libc = import ./../libc { inherit preparePort nixpkgs toolchain upstream; };
|
||||||
|
libm = import ./../libm { inherit preparePort nixpkgs toolchain upstream; };
|
||||||
|
version = "8.3.0";
|
||||||
|
in
|
||||||
|
preparePort {
|
||||||
|
name = "stdcxx-${version}";
|
||||||
|
outputs = [ "source" "dev" ];
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
depsBuildBuild = with nixpkgs.buildPackages; [ pkgconfig stdenv.cc ];
|
||||||
|
buildInputs = [ toolchain ];
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
|
||||||
|
sha256 = "0b3xv411xhlnjmin2979nxcbnidgvzqdf4nbhix99x60dkzavfk4";
|
||||||
|
};
|
||||||
|
|
||||||
|
tarFlags =
|
||||||
|
[ "gcc-${version}/libstdc++-v3"
|
||||||
|
"gcc-${version}/libgcc/gthr-single.h"
|
||||||
|
];
|
||||||
|
|
||||||
|
sourceRoot = "gcc-${version}/libstdc++-v3";
|
||||||
|
|
||||||
|
patches = "${upstream.src}/repos/libports/src/lib/stdcxx/patches}/*.patch";
|
||||||
|
patchFlags = "-p1";
|
||||||
|
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
for slop in include/c_global/cstdlib include/bits/std_abs.h include/c_global/cmath; do
|
||||||
|
sed 's/^#include_next/#include/' -i $slop
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p $dev/lib
|
||||||
|
compileStub ${./stdcxx.symbols} $dev/lib/stdcxx.lib.so
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $source $includedir/bits $includedir/config $pkgconfigdir
|
||||||
|
|
||||||
|
local libcPc=${libc.dev}/lib/pkgconfig/libc.pc
|
||||||
|
local libmPc=${libm.dev}/lib/pkgconfig/libm.pc
|
||||||
|
libcCflags=`awk '/^Cflags/ { $1=""; print $0 }' $libcPc` \
|
||||||
|
libmCflags=`awk '/^Cflags/ { $1=""; print $0 }' $libmPc` \
|
||||||
|
substituteAll ${./stdcxx.pc.in} $pkgconfigdir/stdcxx.pc
|
||||||
|
|
||||||
|
cp -r src config libsupc++ $source
|
||||||
|
|
||||||
|
cp -r \
|
||||||
|
include/* \
|
||||||
|
include/c_compatibility/complex.h \
|
||||||
|
include/c_compatibility/fenv.h \
|
||||||
|
include/c_compatibility/tgmath.h \
|
||||||
|
libsupc++/cxxabi.h \
|
||||||
|
libsupc++/exception \
|
||||||
|
libsupc++/initializer_list \
|
||||||
|
libsupc++/new \
|
||||||
|
libsupc++/typeinfo \
|
||||||
|
$includedir
|
||||||
|
|
||||||
|
cp -r \
|
||||||
|
libsupc++/atomic_lockfree_defines.h \
|
||||||
|
libsupc++/cxxabi_forced.h \
|
||||||
|
libsupc++/cxxabi_init_exception.h \
|
||||||
|
libsupc++/exception.h \
|
||||||
|
libsupc++/exception_defines.h \
|
||||||
|
libsupc++/exception_ptr.h \
|
||||||
|
libsupc++/hash_bytes.h \
|
||||||
|
libsupc++/nested_exception.h \
|
||||||
|
config/cpu/generic/atomic_word.h \
|
||||||
|
config/cpu/generic/cpu_defines.h \
|
||||||
|
config/cpu/generic/cxxabi_tweaks.h \
|
||||||
|
config/cpu/generic/opt/bits/opt_random.h \
|
||||||
|
config/os/generic/ctype_base.h \
|
||||||
|
config/os/generic/ctype_inline.h \
|
||||||
|
config/os/generic/error_constants.h \
|
||||||
|
config/os/generic/os_defines.h \
|
||||||
|
config/locale/generic/messages_members.h \
|
||||||
|
config/locale/generic/time_members.h \
|
||||||
|
${upstream.src}/repos/libports/include/stdcxx/bits/*.h \
|
||||||
|
$includedir/bits
|
||||||
|
|
||||||
|
cp -r \
|
||||||
|
config/allocator/new_allocator_base.h \
|
||||||
|
config/io/basic_file_stdio.h \
|
||||||
|
config/io/c_io_stdio.h \
|
||||||
|
config/locale/generic/c_locale.h \
|
||||||
|
$includedir/config
|
||||||
|
|
||||||
|
cp config/io/basic_file_stdio.h $includedir/bits/basic_file.h
|
||||||
|
cp config/allocator/new_allocator_base.h $includedir/bits/c++allocator.h
|
||||||
|
cp config/io/c_io_stdio.h $includedir/bits/c++io.h
|
||||||
|
cp config/locale/generic/c_locale.h $includedir/bits/c++locale.h
|
||||||
|
cp ../libgcc/gthr-single.h $includedir/bits/gthr.h
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
includedir=@includedir@
|
||||||
|
Name: stdcxx
|
||||||
|
Description: Genode Standard C++ library
|
||||||
|
Version: @version@
|
||||||
|
Requires: libc
|
||||||
|
Cflags: -D_GLIBCXX_HAVE_MBSTATE_T -D_GLIBCXX_ATOMIC_BUILTINS_4 -D_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC -I${includedir} -I${includedir}/std -I${includedir}/c_global @libcCflags@ @libmCflags@
|
||||||
|
Libs: -l:stdcxx.lib.so
|
|
@ -0,0 +1,864 @@
|
||||||
|
_Z20_txnal_cow_string_D1Pv T
|
||||||
|
_Z23_txnal_cow_string_c_strPKv T
|
||||||
|
_Z23_txnal_sso_string_c_strPKv T
|
||||||
|
_Z26_txnal_logic_error_get_msgPv T
|
||||||
|
_Z27_txnal_cow_string_D1_commitPv T
|
||||||
|
_Z28_txnal_runtime_error_get_msgPv T
|
||||||
|
_Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_ T
|
||||||
|
_ZGTtNKSt11logic_error4whatEv T
|
||||||
|
_ZGTtNKSt13runtime_error4whatEv T
|
||||||
|
_ZGTtNSt11logic_errorC1EPKc T
|
||||||
|
_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt11logic_errorC2EPKc T
|
||||||
|
_ZGTtNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt11logic_errorD0Ev T
|
||||||
|
_ZGTtNSt11logic_errorD1Ev T
|
||||||
|
_ZGTtNSt11logic_errorD2Ev T
|
||||||
|
_ZGTtNSt11range_errorC1EPKc T
|
||||||
|
_ZGTtNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt11range_errorC2EPKc T
|
||||||
|
_ZGTtNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt11range_errorD0Ev T
|
||||||
|
_ZGTtNSt11range_errorD1Ev T
|
||||||
|
_ZGTtNSt11range_errorD2Ev T
|
||||||
|
_ZGTtNSt12domain_errorC1EPKc T
|
||||||
|
_ZGTtNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12domain_errorC2EPKc T
|
||||||
|
_ZGTtNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12domain_errorD0Ev T
|
||||||
|
_ZGTtNSt12domain_errorD1Ev T
|
||||||
|
_ZGTtNSt12domain_errorD2Ev T
|
||||||
|
_ZGTtNSt12length_errorC1EPKc T
|
||||||
|
_ZGTtNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12length_errorC2EPKc T
|
||||||
|
_ZGTtNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12length_errorD0Ev T
|
||||||
|
_ZGTtNSt12length_errorD1Ev T
|
||||||
|
_ZGTtNSt12length_errorD2Ev T
|
||||||
|
_ZGTtNSt12out_of_rangeC1EPKc T
|
||||||
|
_ZGTtNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12out_of_rangeC2EPKc T
|
||||||
|
_ZGTtNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt12out_of_rangeD0Ev T
|
||||||
|
_ZGTtNSt12out_of_rangeD1Ev T
|
||||||
|
_ZGTtNSt12out_of_rangeD2Ev T
|
||||||
|
_ZGTtNSt13runtime_errorC1EPKc T
|
||||||
|
_ZGTtNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt13runtime_errorC2EPKc T
|
||||||
|
_ZGTtNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt13runtime_errorD0Ev T
|
||||||
|
_ZGTtNSt13runtime_errorD1Ev T
|
||||||
|
_ZGTtNSt13runtime_errorD2Ev T
|
||||||
|
_ZGTtNSt14overflow_errorC1EPKc T
|
||||||
|
_ZGTtNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt14overflow_errorC2EPKc T
|
||||||
|
_ZGTtNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt14overflow_errorD0Ev T
|
||||||
|
_ZGTtNSt14overflow_errorD1Ev T
|
||||||
|
_ZGTtNSt14overflow_errorD2Ev T
|
||||||
|
_ZGTtNSt15underflow_errorC1EPKc T
|
||||||
|
_ZGTtNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt15underflow_errorC2EPKc T
|
||||||
|
_ZGTtNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt15underflow_errorD0Ev T
|
||||||
|
_ZGTtNSt15underflow_errorD1Ev T
|
||||||
|
_ZGTtNSt15underflow_errorD2Ev T
|
||||||
|
_ZGTtNSt16invalid_argumentC1EPKc T
|
||||||
|
_ZGTtNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt16invalid_argumentC2EPKc T
|
||||||
|
_ZGTtNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZGTtNSt16invalid_argumentD0Ev T
|
||||||
|
_ZGTtNSt16invalid_argumentD1Ev T
|
||||||
|
_ZGTtNSt16invalid_argumentD2Ev T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base8_M_resetEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb T
|
||||||
|
_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base16_M_attach_singleEPNS_19_Safe_iterator_baseEb T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base16_M_detach_singleEPNS_19_Safe_iterator_baseE T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_ T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base9_M_attachEPNS_19_Safe_iterator_baseEb T
|
||||||
|
_ZN11__gnu_debug19_Safe_sequence_base9_M_detachEPNS_19_Safe_iterator_baseE T
|
||||||
|
_ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb T
|
||||||
|
_ZN11__gnu_debug25_Safe_local_iterator_base16_M_detach_singleEv T
|
||||||
|
_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb T
|
||||||
|
_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base15_M_attach_localEPNS_19_Safe_iterator_baseEb T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base15_M_detach_localEPNS_19_Safe_iterator_baseE T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base22_M_attach_local_singleEPNS_19_Safe_iterator_baseEb T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base22_M_detach_local_singleEPNS_19_Safe_iterator_baseE T
|
||||||
|
_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_ T
|
||||||
|
_ZN14__gnu_parallel9_Settings3getEv T
|
||||||
|
_ZN14__gnu_parallel9_Settings3setERS0_ T
|
||||||
|
_ZN9__gnu_cxx12__atomic_addEPVii T
|
||||||
|
_ZN9__gnu_cxx15__concat_size_tEPcmm T
|
||||||
|
_ZN9__gnu_cxx15__snprintf_liteEPcmPKcP13__va_list_tag T
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base11_S_end_freeE B 8
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base12_M_get_mutexEv T
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base12_S_free_listE B 128
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base12_S_heap_sizeE B 8
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base13_S_start_freeE B 8
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base16_M_get_free_listEm T
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base17_M_allocate_chunkEmRi T
|
||||||
|
_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm T
|
||||||
|
_ZN9__gnu_cxx18__exchange_and_addEPVii T
|
||||||
|
_ZN9__gnu_cxx26__throw_insufficient_spaceEPKcS1_ T
|
||||||
|
_ZN9__gnu_cxx9free_list6_M_getEm T
|
||||||
|
_ZN9__gnu_cxx9free_list8_M_clearEv T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_ T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv T
|
||||||
|
_ZNK11__gnu_debug16_Error_formatter8_M_errorEv T
|
||||||
|
_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv T
|
||||||
|
_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_ T
|
||||||
|
_ZNK11__gnu_debug25_Safe_local_iterator_base16_M_get_containerEv T
|
||||||
|
_ZNKSt10bad_typeid4whatEv T
|
||||||
|
_ZNKSt10error_code23default_error_conditionEv T
|
||||||
|
_ZNKSt11logic_error4whatEv T
|
||||||
|
_ZNKSt12bad_weak_ptr4whatEv T
|
||||||
|
_ZNKSt12future_error4whatEv T
|
||||||
|
_ZNKSt13random_device13_M_getentropyEv T
|
||||||
|
_ZNKSt13runtime_error4whatEv T
|
||||||
|
_ZNKSt16bad_array_length4whatEv T
|
||||||
|
_ZNKSt17bad_function_call4whatEv T
|
||||||
|
_ZNKSt19__iosfail_type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv T
|
||||||
|
_ZNKSt20bad_array_new_length4whatEv T
|
||||||
|
_ZNKSt3_V214error_category10_M_messageB5cxx11Ei T
|
||||||
|
_ZNKSt3_V214error_category10_M_messageEi T
|
||||||
|
_ZNKSt3_V214error_category10equivalentERKSt10error_codei T
|
||||||
|
_ZNKSt3_V214error_category10equivalentEiRKSt15error_condition T
|
||||||
|
_ZNKSt3_V214error_category23default_error_conditionEi T
|
||||||
|
_ZNKSt6locale2id5_M_idEv T
|
||||||
|
_ZNKSt6locale4nameB5cxx11Ev T
|
||||||
|
_ZNKSt6locale4nameEv T
|
||||||
|
_ZNKSt6locale5facet11_M_cow_shimEPKNS_2idE T
|
||||||
|
_ZNKSt6locale5facet11_M_sso_shimEPKNS_2idE T
|
||||||
|
_ZNKSt6localeeqERKS_ T
|
||||||
|
_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm T
|
||||||
|
_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm T
|
||||||
|
_ZNKSt8bad_cast4whatEv T
|
||||||
|
_ZNKSt8ios_base7failure4whatEv T
|
||||||
|
_ZNKSt8ios_base7failureB5cxx114whatEv T
|
||||||
|
_ZNKSt9bad_alloc4whatEv T
|
||||||
|
_ZNKSt9type_info10__do_catchEPKS_PPvj T
|
||||||
|
_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv T
|
||||||
|
_ZNKSt9type_info14__is_pointer_pEv T
|
||||||
|
_ZNKSt9type_info15__is_function_pEv T
|
||||||
|
_ZNSt10__num_base11_S_atoms_inE D 8
|
||||||
|
_ZNSt10__num_base12_S_atoms_outE D 8
|
||||||
|
_ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc T
|
||||||
|
_ZNSt10bad_typeidD0Ev T
|
||||||
|
_ZNSt10bad_typeidD1Ev T
|
||||||
|
_ZNSt10bad_typeidD2Ev T
|
||||||
|
_ZNSt10ctype_base5alnumE R 4
|
||||||
|
_ZNSt10ctype_base5alphaE R 4
|
||||||
|
_ZNSt10ctype_base5blankE R 4
|
||||||
|
_ZNSt10ctype_base5cntrlE R 4
|
||||||
|
_ZNSt10ctype_base5digitE R 4
|
||||||
|
_ZNSt10ctype_base5graphE R 4
|
||||||
|
_ZNSt10ctype_base5lowerE R 4
|
||||||
|
_ZNSt10ctype_base5printE R 4
|
||||||
|
_ZNSt10ctype_base5punctE R 4
|
||||||
|
_ZNSt10ctype_base5spaceE R 4
|
||||||
|
_ZNSt10ctype_base5upperE R 4
|
||||||
|
_ZNSt10ctype_base6xdigitE R 4
|
||||||
|
_ZNSt10money_base18_S_default_patternE R 4
|
||||||
|
_ZNSt10money_base20_S_construct_patternEccc T
|
||||||
|
_ZNSt10money_base8_S_atomsE D 8
|
||||||
|
_ZNSt11logic_errorC1EPKc T
|
||||||
|
_ZNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt11logic_errorC1ERKS_ T
|
||||||
|
_ZNSt11logic_errorC1ERKSs T
|
||||||
|
_ZNSt11logic_errorC2EPKc T
|
||||||
|
_ZNSt11logic_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt11logic_errorC2ERKS_ T
|
||||||
|
_ZNSt11logic_errorC2ERKSs T
|
||||||
|
_ZNSt11logic_errorD0Ev T
|
||||||
|
_ZNSt11logic_errorD1Ev T
|
||||||
|
_ZNSt11logic_errorD2Ev T
|
||||||
|
_ZNSt11logic_erroraSERKS_ T
|
||||||
|
_ZNSt11range_errorC1EPKc T
|
||||||
|
_ZNSt11range_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt11range_errorC1ERKSs T
|
||||||
|
_ZNSt11range_errorC2EPKc T
|
||||||
|
_ZNSt11range_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt11range_errorC2ERKSs T
|
||||||
|
_ZNSt11range_errorD0Ev T
|
||||||
|
_ZNSt11range_errorD1Ev T
|
||||||
|
_ZNSt11range_errorD2Ev T
|
||||||
|
_ZNSt11regex_errorC1ENSt15regex_constants10error_typeE T
|
||||||
|
_ZNSt11regex_errorC2ENSt15regex_constants10error_typeE T
|
||||||
|
_ZNSt11regex_errorD0Ev T
|
||||||
|
_ZNSt11regex_errorD1Ev T
|
||||||
|
_ZNSt11regex_errorD2Ev T
|
||||||
|
_ZNSt12__cow_stringC1EOS_ T
|
||||||
|
_ZNSt12__cow_stringC1EPKcm T
|
||||||
|
_ZNSt12__cow_stringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12__cow_stringC1ERKS_ T
|
||||||
|
_ZNSt12__cow_stringC1ERKSs T
|
||||||
|
_ZNSt12__cow_stringC1Ev T
|
||||||
|
_ZNSt12__cow_stringC2EOS_ T
|
||||||
|
_ZNSt12__cow_stringC2EPKcm T
|
||||||
|
_ZNSt12__cow_stringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12__cow_stringC2ERKS_ T
|
||||||
|
_ZNSt12__cow_stringC2ERKSs T
|
||||||
|
_ZNSt12__cow_stringC2Ev T
|
||||||
|
_ZNSt12__cow_stringD1Ev T
|
||||||
|
_ZNSt12__cow_stringD2Ev T
|
||||||
|
_ZNSt12__cow_stringaSEOS_ T
|
||||||
|
_ZNSt12__cow_stringaSERKS_ T
|
||||||
|
_ZNSt12__sso_stringC1EOS_ T
|
||||||
|
_ZNSt12__sso_stringC1EPKcm T
|
||||||
|
_ZNSt12__sso_stringC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12__sso_stringC1ERKS_ T
|
||||||
|
_ZNSt12__sso_stringC1ERKSs T
|
||||||
|
_ZNSt12__sso_stringC1Ev T
|
||||||
|
_ZNSt12__sso_stringC2EOS_ T
|
||||||
|
_ZNSt12__sso_stringC2EPKcm T
|
||||||
|
_ZNSt12__sso_stringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12__sso_stringC2ERKS_ T
|
||||||
|
_ZNSt12__sso_stringC2ERKSs T
|
||||||
|
_ZNSt12__sso_stringC2Ev T
|
||||||
|
_ZNSt12__sso_stringD1Ev T
|
||||||
|
_ZNSt12__sso_stringD2Ev T
|
||||||
|
_ZNSt12__sso_stringaSEOS_ T
|
||||||
|
_ZNSt12__sso_stringaSERKS_ T
|
||||||
|
_ZNSt12bad_weak_ptrD0Ev T
|
||||||
|
_ZNSt12bad_weak_ptrD1Ev T
|
||||||
|
_ZNSt12bad_weak_ptrD2Ev T
|
||||||
|
_ZNSt12domain_errorC1EPKc T
|
||||||
|
_ZNSt12domain_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12domain_errorC1ERKSs T
|
||||||
|
_ZNSt12domain_errorC2EPKc T
|
||||||
|
_ZNSt12domain_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12domain_errorC2ERKSs T
|
||||||
|
_ZNSt12domain_errorD0Ev T
|
||||||
|
_ZNSt12domain_errorD1Ev T
|
||||||
|
_ZNSt12domain_errorD2Ev T
|
||||||
|
_ZNSt12future_errorD0Ev T
|
||||||
|
_ZNSt12future_errorD1Ev T
|
||||||
|
_ZNSt12future_errorD2Ev T
|
||||||
|
_ZNSt12length_errorC1EPKc T
|
||||||
|
_ZNSt12length_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12length_errorC1ERKSs T
|
||||||
|
_ZNSt12length_errorC2EPKc T
|
||||||
|
_ZNSt12length_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12length_errorC2ERKSs T
|
||||||
|
_ZNSt12length_errorD0Ev T
|
||||||
|
_ZNSt12length_errorD1Ev T
|
||||||
|
_ZNSt12length_errorD2Ev T
|
||||||
|
_ZNSt12out_of_rangeC1EPKc T
|
||||||
|
_ZNSt12out_of_rangeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12out_of_rangeC1ERKSs T
|
||||||
|
_ZNSt12out_of_rangeC2EPKc T
|
||||||
|
_ZNSt12out_of_rangeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt12out_of_rangeC2ERKSs T
|
||||||
|
_ZNSt12out_of_rangeD0Ev T
|
||||||
|
_ZNSt12out_of_rangeD1Ev T
|
||||||
|
_ZNSt12out_of_rangeD2Ev T
|
||||||
|
_ZNSt12placeholders2_1E R 1
|
||||||
|
_ZNSt12placeholders2_2E R 1
|
||||||
|
_ZNSt12placeholders2_3E R 1
|
||||||
|
_ZNSt12placeholders2_4E R 1
|
||||||
|
_ZNSt12placeholders2_5E R 1
|
||||||
|
_ZNSt12placeholders2_6E R 1
|
||||||
|
_ZNSt12placeholders2_7E R 1
|
||||||
|
_ZNSt12placeholders2_8E R 1
|
||||||
|
_ZNSt12placeholders2_9E R 1
|
||||||
|
_ZNSt12placeholders3_10E R 1
|
||||||
|
_ZNSt12placeholders3_11E R 1
|
||||||
|
_ZNSt12placeholders3_12E R 1
|
||||||
|
_ZNSt12placeholders3_13E R 1
|
||||||
|
_ZNSt12placeholders3_14E R 1
|
||||||
|
_ZNSt12placeholders3_15E R 1
|
||||||
|
_ZNSt12placeholders3_16E R 1
|
||||||
|
_ZNSt12placeholders3_17E R 1
|
||||||
|
_ZNSt12placeholders3_18E R 1
|
||||||
|
_ZNSt12placeholders3_19E R 1
|
||||||
|
_ZNSt12placeholders3_20E R 1
|
||||||
|
_ZNSt12placeholders3_21E R 1
|
||||||
|
_ZNSt12placeholders3_22E R 1
|
||||||
|
_ZNSt12placeholders3_23E R 1
|
||||||
|
_ZNSt12placeholders3_24E R 1
|
||||||
|
_ZNSt12placeholders3_25E R 1
|
||||||
|
_ZNSt12placeholders3_26E R 1
|
||||||
|
_ZNSt12placeholders3_27E R 1
|
||||||
|
_ZNSt12placeholders3_28E R 1
|
||||||
|
_ZNSt12placeholders3_29E R 1
|
||||||
|
_ZNSt12system_errorD0Ev T
|
||||||
|
_ZNSt12system_errorD1Ev T
|
||||||
|
_ZNSt12system_errorD2Ev T
|
||||||
|
_ZNSt13random_device14_M_init_pretr1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt13random_device14_M_init_pretr1ERKSs T
|
||||||
|
_ZNSt13random_device16_M_getval_pretr1Ev T
|
||||||
|
_ZNSt13random_device7_M_finiEv T
|
||||||
|
_ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt13random_device7_M_initERKSs T
|
||||||
|
_ZNSt13random_device9_M_getvalEv T
|
||||||
|
_ZNSt13runtime_errorC1EPKc T
|
||||||
|
_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt13runtime_errorC1ERKS_ T
|
||||||
|
_ZNSt13runtime_errorC1ERKSs T
|
||||||
|
_ZNSt13runtime_errorC2EPKc T
|
||||||
|
_ZNSt13runtime_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt13runtime_errorC2ERKS_ T
|
||||||
|
_ZNSt13runtime_errorC2ERKSs T
|
||||||
|
_ZNSt13runtime_errorD0Ev T
|
||||||
|
_ZNSt13runtime_errorD1Ev T
|
||||||
|
_ZNSt13runtime_errorD2Ev T
|
||||||
|
_ZNSt13runtime_erroraSERKS_ T
|
||||||
|
_ZNSt14overflow_errorC1EPKc T
|
||||||
|
_ZNSt14overflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt14overflow_errorC1ERKSs T
|
||||||
|
_ZNSt14overflow_errorC2EPKc T
|
||||||
|
_ZNSt14overflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt14overflow_errorC2ERKSs T
|
||||||
|
_ZNSt14overflow_errorD0Ev T
|
||||||
|
_ZNSt14overflow_errorD1Ev T
|
||||||
|
_ZNSt14overflow_errorD2Ev T
|
||||||
|
_ZNSt15_List_node_base4hookEPS_ T
|
||||||
|
_ZNSt15_List_node_base4swapERS_S0_ T
|
||||||
|
_ZNSt15_List_node_base6unhookEv T
|
||||||
|
_ZNSt15_List_node_base7reverseEv T
|
||||||
|
_ZNSt15_List_node_base8transferEPS_S0_ T
|
||||||
|
_ZNSt15underflow_errorC1EPKc T
|
||||||
|
_ZNSt15underflow_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt15underflow_errorC1ERKSs T
|
||||||
|
_ZNSt15underflow_errorC2EPKc T
|
||||||
|
_ZNSt15underflow_errorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt15underflow_errorC2ERKSs T
|
||||||
|
_ZNSt15underflow_errorD0Ev T
|
||||||
|
_ZNSt15underflow_errorD1Ev T
|
||||||
|
_ZNSt15underflow_errorD2Ev T
|
||||||
|
_ZNSt16bad_array_lengthD0Ev T
|
||||||
|
_ZNSt16bad_array_lengthD1Ev T
|
||||||
|
_ZNSt16bad_array_lengthD2Ev T
|
||||||
|
_ZNSt16invalid_argumentC1EPKc T
|
||||||
|
_ZNSt16invalid_argumentC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt16invalid_argumentC1ERKSs T
|
||||||
|
_ZNSt16invalid_argumentC2EPKc T
|
||||||
|
_ZNSt16invalid_argumentC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt16invalid_argumentC2ERKSs T
|
||||||
|
_ZNSt16invalid_argumentD0Ev T
|
||||||
|
_ZNSt16invalid_argumentD1Ev T
|
||||||
|
_ZNSt16invalid_argumentD2Ev T
|
||||||
|
_ZNSt17bad_function_callD0Ev T
|
||||||
|
_ZNSt17bad_function_callD1Ev T
|
||||||
|
_ZNSt17bad_function_callD2Ev T
|
||||||
|
_ZNSt19__iosfail_type_infoD0Ev T
|
||||||
|
_ZNSt19__iosfail_type_infoD1Ev T
|
||||||
|
_ZNSt19__iosfail_type_infoD2Ev T
|
||||||
|
_ZNSt20bad_array_new_lengthD0Ev T
|
||||||
|
_ZNSt20bad_array_new_lengthD1Ev T
|
||||||
|
_ZNSt20bad_array_new_lengthD2Ev T
|
||||||
|
_ZNSt21__numeric_limits_base10has_denormE R 4
|
||||||
|
_ZNSt21__numeric_limits_base10is_boundedE R 1
|
||||||
|
_ZNSt21__numeric_limits_base10is_integerE R 1
|
||||||
|
_ZNSt21__numeric_limits_base11round_styleE R 4
|
||||||
|
_ZNSt21__numeric_limits_base12has_infinityE R 1
|
||||||
|
_ZNSt21__numeric_limits_base12max_digits10E R 4
|
||||||
|
_ZNSt21__numeric_limits_base12max_exponentE R 4
|
||||||
|
_ZNSt21__numeric_limits_base12min_exponentE R 4
|
||||||
|
_ZNSt21__numeric_limits_base13has_quiet_NaNE R 1
|
||||||
|
_ZNSt21__numeric_limits_base14is_specializedE R 1
|
||||||
|
_ZNSt21__numeric_limits_base14max_exponent10E R 4
|
||||||
|
_ZNSt21__numeric_limits_base14min_exponent10E R 4
|
||||||
|
_ZNSt21__numeric_limits_base15has_denorm_lossE R 1
|
||||||
|
_ZNSt21__numeric_limits_base15tinyness_beforeE R 1
|
||||||
|
_ZNSt21__numeric_limits_base17has_signaling_NaNE R 1
|
||||||
|
_ZNSt21__numeric_limits_base5radixE R 4
|
||||||
|
_ZNSt21__numeric_limits_base5trapsE R 1
|
||||||
|
_ZNSt21__numeric_limits_base6digitsE R 4
|
||||||
|
_ZNSt21__numeric_limits_base8digits10E R 4
|
||||||
|
_ZNSt21__numeric_limits_base8is_exactE R 1
|
||||||
|
_ZNSt21__numeric_limits_base9is_iec559E R 1
|
||||||
|
_ZNSt21__numeric_limits_base9is_moduloE R 1
|
||||||
|
_ZNSt21__numeric_limits_base9is_signedE R 1
|
||||||
|
_ZNSt3_V214error_categoryD0Ev T
|
||||||
|
_ZNSt3_V214error_categoryD1Ev T
|
||||||
|
_ZNSt3_V214error_categoryD2Ev T
|
||||||
|
_ZNSt3_V215system_categoryEv T
|
||||||
|
_ZNSt3_V216generic_categoryEv T
|
||||||
|
_ZNSt3tr18__detail12__prime_listE R 2440
|
||||||
|
_ZNSt6__norm15_List_node_base4hookEPS0_ T
|
||||||
|
_ZNSt6__norm15_List_node_base4swapERS0_S1_ T
|
||||||
|
_ZNSt6__norm15_List_node_base6unhookEv T
|
||||||
|
_ZNSt6__norm15_List_node_base7reverseEv T
|
||||||
|
_ZNSt6__norm15_List_node_base8transferEPS0_S1_ T
|
||||||
|
_ZNSt6chrono12system_clock3nowEv T
|
||||||
|
_ZNSt6chrono12system_clock9is_steadyE R 1
|
||||||
|
_ZNSt6chrono3_V212steady_clock3nowEv T
|
||||||
|
_ZNSt6chrono3_V212steady_clock9is_steadyE R 1
|
||||||
|
_ZNSt6chrono3_V212system_clock3nowEv T
|
||||||
|
_ZNSt6chrono3_V212system_clock9is_steadyE R 1
|
||||||
|
_ZNSt6gslice8_IndexerC1EmRKSt8valarrayImES4_ T
|
||||||
|
_ZNSt6gslice8_IndexerC2EmRKSt8valarrayImES4_ T
|
||||||
|
_ZNSt6locale10_S_classicE B 8
|
||||||
|
_ZNSt6locale11_M_coalesceERKS_S1_i T
|
||||||
|
_ZNSt6locale13_S_categoriesE D 8
|
||||||
|
_ZNSt6locale13_S_initializeEv T
|
||||||
|
_ZNSt6locale17_S_twinned_facetsE D 272
|
||||||
|
_ZNSt6locale18_S_initialize_onceEv T
|
||||||
|
_ZNSt6locale21_S_normalize_categoryEi T
|
||||||
|
_ZNSt6locale2id11_S_refcountE B 4
|
||||||
|
_ZNSt6locale3allE R 4
|
||||||
|
_ZNSt6locale4noneE R 4
|
||||||
|
_ZNSt6locale4timeE R 4
|
||||||
|
_ZNSt6locale5_Impl10_S_id_timeE D 56
|
||||||
|
_ZNSt6locale5_Impl11_S_id_ctypeE D 56
|
||||||
|
_ZNSt6locale5_Impl13_M_init_extraEPPNS_5facetE T
|
||||||
|
_ZNSt6locale5_Impl13_M_init_extraEPvS1_PKcS3_ T
|
||||||
|
_ZNSt6locale5_Impl13_S_id_collateE D 24
|
||||||
|
_ZNSt6locale5_Impl13_S_id_numericE D 56
|
||||||
|
_ZNSt6locale5_Impl14_S_id_messagesE D 24
|
||||||
|
_ZNSt6locale5_Impl14_S_id_monetaryE D 72
|
||||||
|
_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetEm T
|
||||||
|
_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE T
|
||||||
|
_ZNSt6locale5_Impl16_M_replace_facetEPKS0_PKNS_2idE T
|
||||||
|
_ZNSt6locale5_Impl19_M_replace_categoryEPKS0_PKPKNS_2idE T
|
||||||
|
_ZNSt6locale5_Impl19_S_facet_categoriesE D 56
|
||||||
|
_ZNSt6locale5_Impl21_M_replace_categoriesEPKS0_i T
|
||||||
|
_ZNSt6locale5_ImplC1EPKcm T
|
||||||
|
_ZNSt6locale5_ImplC1ERKS0_m T
|
||||||
|
_ZNSt6locale5_ImplC1Em T
|
||||||
|
_ZNSt6locale5_ImplC2EPKcm T
|
||||||
|
_ZNSt6locale5_ImplC2ERKS0_m T
|
||||||
|
_ZNSt6locale5_ImplC2Em T
|
||||||
|
_ZNSt6locale5_ImplD1Ev T
|
||||||
|
_ZNSt6locale5_ImplD2Ev T
|
||||||
|
_ZNSt6locale5ctypeE R 4
|
||||||
|
_ZNSt6locale5facet11_S_c_localeE B 8
|
||||||
|
_ZNSt6locale5facet13_S_get_c_nameEv T
|
||||||
|
_ZNSt6locale5facet15_S_get_c_localeEv T
|
||||||
|
_ZNSt6locale5facet17_S_clone_c_localeERPi T
|
||||||
|
_ZNSt6locale5facet18_S_create_c_localeERPiPKcS1_ T
|
||||||
|
_ZNSt6locale5facet18_S_initialize_onceEv T
|
||||||
|
_ZNSt6locale5facet19_S_destroy_c_localeERPi T
|
||||||
|
_ZNSt6locale5facet20_S_lc_ctype_c_localeEPiPKc T
|
||||||
|
_ZNSt6locale5facet9_S_c_nameE R 2
|
||||||
|
_ZNSt6locale5facetD0Ev T
|
||||||
|
_ZNSt6locale5facetD1Ev T
|
||||||
|
_ZNSt6locale5facetD2Ev T
|
||||||
|
_ZNSt6locale6globalERKS_ T
|
||||||
|
_ZNSt6locale7classicEv T
|
||||||
|
_ZNSt6locale7collateE R 4
|
||||||
|
_ZNSt6locale7numericE R 4
|
||||||
|
_ZNSt6locale8messagesE R 4
|
||||||
|
_ZNSt6locale8monetaryE R 4
|
||||||
|
_ZNSt6locale9_S_globalE B 8
|
||||||
|
_ZNSt6localeC1EPKc T
|
||||||
|
_ZNSt6localeC1EPNS_5_ImplE T
|
||||||
|
_ZNSt6localeC1ERKS_ T
|
||||||
|
_ZNSt6localeC1ERKS_PKci T
|
||||||
|
_ZNSt6localeC1ERKS_S1_i T
|
||||||
|
_ZNSt6localeC1Ev T
|
||||||
|
_ZNSt6localeC2EPKc T
|
||||||
|
_ZNSt6localeC2EPNS_5_ImplE T
|
||||||
|
_ZNSt6localeC2ERKS_ T
|
||||||
|
_ZNSt6localeC2ERKS_PKci T
|
||||||
|
_ZNSt6localeC2ERKS_S1_i T
|
||||||
|
_ZNSt6localeC2Ev T
|
||||||
|
_ZNSt6localeD1Ev T
|
||||||
|
_ZNSt6localeD2Ev T
|
||||||
|
_ZNSt6localeaSERKS_ T
|
||||||
|
_ZNSt8__detail12__prime_listE R 2440
|
||||||
|
_ZNSt8__detail15_List_node_base10_M_reverseEv T
|
||||||
|
_ZNSt8__detail15_List_node_base11_M_transferEPS0_S1_ T
|
||||||
|
_ZNSt8__detail15_List_node_base4swapERS0_S1_ T
|
||||||
|
_ZNSt8__detail15_List_node_base7_M_hookEPS0_ T
|
||||||
|
_ZNSt8__detail15_List_node_base9_M_unhookEv T
|
||||||
|
_ZNSt8bad_castD0Ev T
|
||||||
|
_ZNSt8bad_castD1Ev T
|
||||||
|
_ZNSt8bad_castD2Ev T
|
||||||
|
_ZNSt8ios_base10floatfieldE R 4
|
||||||
|
_ZNSt8ios_base10scientificE R 4
|
||||||
|
_ZNSt8ios_base11adjustfieldE R 4
|
||||||
|
_ZNSt8ios_base13_M_grow_wordsEib T
|
||||||
|
_ZNSt8ios_base15sync_with_stdioEb T
|
||||||
|
_ZNSt8ios_base17_M_call_callbacksENS_5eventE T
|
||||||
|
_ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi T
|
||||||
|
_ZNSt8ios_base20_M_dispose_callbacksEv T
|
||||||
|
_ZNSt8ios_base2inE R 4
|
||||||
|
_ZNSt8ios_base3appE R 4
|
||||||
|
_ZNSt8ios_base3ateE R 4
|
||||||
|
_ZNSt8ios_base3begE R 4
|
||||||
|
_ZNSt8ios_base3curE R 4
|
||||||
|
_ZNSt8ios_base3decE R 4
|
||||||
|
_ZNSt8ios_base3endE R 4
|
||||||
|
_ZNSt8ios_base3hexE R 4
|
||||||
|
_ZNSt8ios_base3octE R 4
|
||||||
|
_ZNSt8ios_base3outE R 4
|
||||||
|
_ZNSt8ios_base4Init11_S_refcountE B 4
|
||||||
|
_ZNSt8ios_base4Init20_S_synced_with_stdioE D 1
|
||||||
|
_ZNSt8ios_base4InitC1Ev T
|
||||||
|
_ZNSt8ios_base4InitC2Ev T
|
||||||
|
_ZNSt8ios_base4InitD1Ev T
|
||||||
|
_ZNSt8ios_base4InitD2Ev T
|
||||||
|
_ZNSt8ios_base4leftE R 4
|
||||||
|
_ZNSt8ios_base5fixedE R 4
|
||||||
|
_ZNSt8ios_base5imbueERKSt6locale T
|
||||||
|
_ZNSt8ios_base5rightE R 4
|
||||||
|
_ZNSt8ios_base5truncE R 4
|
||||||
|
_ZNSt8ios_base6badbitE R 4
|
||||||
|
_ZNSt8ios_base6binaryE R 4
|
||||||
|
_ZNSt8ios_base6eofbitE R 4
|
||||||
|
_ZNSt8ios_base6skipwsE R 4
|
||||||
|
_ZNSt8ios_base6xallocEv T
|
||||||
|
_ZNSt8ios_base7_M_initEv T
|
||||||
|
_ZNSt8ios_base7_M_moveERS_ T
|
||||||
|
_ZNSt8ios_base7_M_swapERS_ T
|
||||||
|
_ZNSt8ios_base7failbitE R 4
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C2EPKcRKSt10error_code T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11C2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10error_code T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11D0Ev T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11D1Ev T
|
||||||
|
_ZNSt8ios_base7failureB5cxx11D2Ev T
|
||||||
|
_ZNSt8ios_base7failureC1ERKSs T
|
||||||
|
_ZNSt8ios_base7failureC2ERKSs T
|
||||||
|
_ZNSt8ios_base7failureD0Ev T
|
||||||
|
_ZNSt8ios_base7failureD1Ev T
|
||||||
|
_ZNSt8ios_base7failureD2Ev T
|
||||||
|
_ZNSt8ios_base7goodbitE R 4
|
||||||
|
_ZNSt8ios_base7showposE R 4
|
||||||
|
_ZNSt8ios_base7unitbufE R 4
|
||||||
|
_ZNSt8ios_base8internalE R 4
|
||||||
|
_ZNSt8ios_base8showbaseE R 4
|
||||||
|
_ZNSt8ios_base9basefieldE R 4
|
||||||
|
_ZNSt8ios_base9boolalphaE R 4
|
||||||
|
_ZNSt8ios_base9showpointE R 4
|
||||||
|
_ZNSt8ios_base9uppercaseE R 4
|
||||||
|
_ZNSt8ios_baseC1Ev T
|
||||||
|
_ZNSt8ios_baseC2Ev T
|
||||||
|
_ZNSt8ios_baseD0Ev T
|
||||||
|
_ZNSt8ios_baseD1Ev T
|
||||||
|
_ZNSt8ios_baseD2Ev T
|
||||||
|
_ZNSt9__cxx199815_List_node_base4hookEPS0_ T
|
||||||
|
_ZNSt9__cxx199815_List_node_base4swapERS0_S1_ T
|
||||||
|
_ZNSt9__cxx199815_List_node_base6unhookEv T
|
||||||
|
_ZNSt9__cxx199815_List_node_base7reverseEv T
|
||||||
|
_ZNSt9__cxx199815_List_node_base8transferEPS0_S1_ T
|
||||||
|
_ZNSt9bad_allocD0Ev T
|
||||||
|
_ZNSt9bad_allocD1Ev T
|
||||||
|
_ZNSt9bad_allocD2Ev T
|
||||||
|
_ZNSt9type_infoD0Ev T
|
||||||
|
_ZNSt9type_infoD1Ev T
|
||||||
|
_ZNSt9type_infoD2Ev T
|
||||||
|
_ZSt11_Hash_bytesPKvmm T
|
||||||
|
_ZSt15_Fnv_hash_bytesPKvmm T
|
||||||
|
_ZSt15future_categoryv T
|
||||||
|
_ZSt15get_new_handlerv T
|
||||||
|
_ZSt15set_new_handlerPFvvE T
|
||||||
|
_ZSt16__throw_bad_castv T
|
||||||
|
_ZSt17__gslice_to_indexmRKSt8valarrayImES2_RS0_ T
|
||||||
|
_ZSt17__throw_bad_allocv T
|
||||||
|
_ZSt17__verify_groupingPKcmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE T
|
||||||
|
_ZSt17__verify_groupingPKcmRKSs T
|
||||||
|
_ZSt17iostream_categoryv T
|
||||||
|
_ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base T
|
||||||
|
_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base T
|
||||||
|
_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base T
|
||||||
|
_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base T
|
||||||
|
_ZSt18__throw_bad_typeidv T
|
||||||
|
_ZSt19__throw_ios_failurePKc T
|
||||||
|
_ZSt19__throw_logic_errorPKc T
|
||||||
|
_ZSt19__throw_range_errorPKc T
|
||||||
|
_ZSt19__throw_regex_errorNSt15regex_constants10error_typeE T
|
||||||
|
_ZSt20_Rb_tree_black_countPKSt18_Rb_tree_node_baseS1_ T
|
||||||
|
_ZSt20_Rb_tree_rotate_leftPSt18_Rb_tree_node_baseRS0_ T
|
||||||
|
_ZSt20__throw_domain_errorPKc T
|
||||||
|
_ZSt20__throw_future_errori T
|
||||||
|
_ZSt20__throw_length_errorPKc T
|
||||||
|
_ZSt20__throw_out_of_rangePKc T
|
||||||
|
_ZSt20__throw_system_errori T
|
||||||
|
_ZSt21_Rb_tree_rotate_rightPSt18_Rb_tree_node_baseRS0_ T
|
||||||
|
_ZSt21__destroy_ios_failurePv T
|
||||||
|
_ZSt21__throw_bad_exceptionv T
|
||||||
|
_ZSt21__throw_runtime_errorPKc T
|
||||||
|
_ZSt22__throw_overflow_errorPKc T
|
||||||
|
_ZSt22__verify_grouping_implPKcmS0_m T
|
||||||
|
_ZSt23__construct_ios_failurePvPKc T
|
||||||
|
_ZSt23__throw_underflow_errorPKc T
|
||||||
|
_ZSt24__is_ios_failure_handlerPKN10__cxxabiv117__class_type_infoE T
|
||||||
|
_ZSt24__throw_invalid_argumentPKc T
|
||||||
|
_ZSt24__throw_out_of_range_fmtPKcz T
|
||||||
|
_ZSt25__throw_bad_function_callv T
|
||||||
|
_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_ T
|
||||||
|
_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_ T
|
||||||
|
_ZSt3cin B 280
|
||||||
|
_ZSt4cerr B 272
|
||||||
|
_ZSt4clog B 272
|
||||||
|
_ZSt4cout B 272
|
||||||
|
_ZSt4wcin B 280
|
||||||
|
_ZSt5wcerr B 272
|
||||||
|
_ZSt5wclog B 272
|
||||||
|
_ZSt5wcout B 272
|
||||||
|
_ZSt7nothrow R 1
|
||||||
|
_ZdaPv T
|
||||||
|
_ZdaPvRKSt9nothrow_t T
|
||||||
|
_ZdaPvm T
|
||||||
|
_ZdlPv T
|
||||||
|
_ZdlPvRKSt9nothrow_t T
|
||||||
|
_ZdlPvm T
|
||||||
|
_Znam T
|
||||||
|
_ZnamRKSt9nothrow_t T
|
||||||
|
_Znwm T
|
||||||
|
_ZnwmRKSt9nothrow_t T
|
||||||
|
__cxa_bad_cast T
|
||||||
|
__cxa_bad_typeid T
|
||||||
|
__cxa_throw_bad_array_length T
|
||||||
|
__cxa_throw_bad_array_new_length T
|
||||||
|
|
||||||
|
# manually added typeinfo, vtable and VTT symbols
|
||||||
|
|
||||||
|
_ZTINSt6locale5facetE V
|
||||||
|
_ZTISo V
|
||||||
|
_ZTISt11regex_error V
|
||||||
|
_ZTISt13runtime_error V
|
||||||
|
_ZTISt15basic_streambufIcSt11char_traitsIcEE V
|
||||||
|
_ZTISt16invalid_argument W
|
||||||
|
_ZTISt5ctypeIcE V
|
||||||
|
_ZTISt7codecvtIcc11__mbstate_tE V
|
||||||
|
_ZTISt8ios_base V
|
||||||
|
_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTTNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTTSt14basic_ifstreamIcSt11char_traitsIcEE V
|
||||||
|
_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE V
|
||||||
|
_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTVNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE V
|
||||||
|
_ZTVSt11regex_error V
|
||||||
|
_ZTVSt13basic_filebufIcSt11char_traitsIcEE V
|
||||||
|
_ZTVSt14basic_ifstreamIcSt11char_traitsIcEE V
|
||||||
|
_ZTVSt14basic_ofstreamIcSt11char_traitsIcEE V
|
||||||
|
_ZTVSt15basic_streambufIcSt11char_traitsIcEE V
|
||||||
|
_ZTVSt16invalid_argument V
|
||||||
|
_ZTVSt9basic_iosIcSt11char_traitsIcEE V
|
||||||
|
|
||||||
|
# manually added template-related symbols
|
||||||
|
|
||||||
|
_ZNKSt12__basic_fileIcE7is_openEv T
|
||||||
|
_ZNKSt5ctypeIcE13_M_widen_initEv T
|
||||||
|
_ZNKSt9type_infoeqERKS_ T
|
||||||
|
_ZNSi6ignoreEli T
|
||||||
|
_ZNSi7getlineEPclc T
|
||||||
|
_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei T
|
||||||
|
_ZNSt12__basic_fileIcE5closeEv T
|
||||||
|
_ZNSt12__basic_fileIcE6xsgetnEPcl T
|
||||||
|
_ZNSt12__basic_fileIcE6xsputnEPKcl T
|
||||||
|
_ZNSt12__basic_fileIcE7seekoffElSt12_Ios_Seekdir T
|
||||||
|
_ZNSt12__basic_fileIcE7seekoffExSt12_Ios_Seekdir T
|
||||||
|
_ZNSt12__basic_fileIcE8xsputn_2EPKclS2_l T
|
||||||
|
_ZNSt12__basic_fileIcE9showmanycEv T
|
||||||
|
_ZNSt12__basic_fileIcEC1EPi T
|
||||||
|
_ZNSt12__basic_fileIcED1Ev T
|
||||||
|
_ZNSt5ctypeIcE2idE B 8
|
||||||
|
_ZNSt7codecvtIcc11__mbstate_tE2idE B 8
|
||||||
|
_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_ T
|
||||||
|
_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE T
|
||||||
|
|
||||||
|
# manually added weak symbols
|
||||||
|
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE4gptrEv W
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE4pptrEv W
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE5ebackEv W
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE5egptrEv W
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE5epptrEv W
|
||||||
|
_ZNKSt15basic_streambufIcSt11char_traitsIcEE5pbaseEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12find_last_ofEcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEPKcmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13find_first_ofEcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17find_first_not_ofEPKcmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4copyEPcmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEPKcmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEPKcmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5rfindEcm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEv W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_ W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEmmPKc W
|
||||||
|
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm W
|
||||||
|
_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv W
|
||||||
|
_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv W
|
||||||
|
_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv W
|
||||||
|
_ZNKSt9basic_iosIcSt11char_traitsIcEE3badEv W
|
||||||
|
_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv W
|
||||||
|
_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv W
|
||||||
|
_ZNSaIcEC1ERKS_ W
|
||||||
|
_ZNSaIcEC1Ev W
|
||||||
|
_ZNSaIcEC2ERKS_ W
|
||||||
|
_ZNSaIcEC2Ev W
|
||||||
|
_ZNSaIcED1Ev W
|
||||||
|
_ZNSaIcED2Ev W
|
||||||
|
_ZNSdC1Ev W
|
||||||
|
_ZNSdC2Ev W
|
||||||
|
_ZNSi10_M_extractIdEERSiRT_ W
|
||||||
|
_ZNSi10_M_extractIfEERSiRT_ W
|
||||||
|
_ZNSi10_M_extractIjEERSiRT_ W
|
||||||
|
_ZNSi10_M_extractImEERSiRT_ W
|
||||||
|
_ZNSi10_M_extractIyEERSiRT_ W
|
||||||
|
_ZNSi3getERc W
|
||||||
|
_ZNSi4peekEv W
|
||||||
|
_ZNSi7getlineEPcl W
|
||||||
|
_ZNSi7putbackEc W
|
||||||
|
_ZNSirsERd W
|
||||||
|
_ZNSirsERf W
|
||||||
|
_ZNSirsERi W
|
||||||
|
_ZNSirsERj W
|
||||||
|
_ZNSo3putEc W
|
||||||
|
_ZNSo5flushEv W
|
||||||
|
_ZNSo5tellpEv W
|
||||||
|
_ZNSo5writeEPKcl W
|
||||||
|
_ZNSo9_M_insertIPKvEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIbEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIdEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIeEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIlEERSoT_ W
|
||||||
|
_ZNSo9_M_insertImEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIxEERSoT_ W
|
||||||
|
_ZNSo9_M_insertIyEERSoT_ W
|
||||||
|
_ZNSoC1Ev W
|
||||||
|
_ZNSoC2Ev W
|
||||||
|
_ZNSoD0Ev W
|
||||||
|
_ZNSoD1Ev W
|
||||||
|
_ZNSoD2Ev W
|
||||||
|
_ZNSolsEPFRSoS_E W
|
||||||
|
_ZNSolsEPFRSt8ios_baseS0_E W
|
||||||
|
_ZNSolsEd W
|
||||||
|
_ZNSolsEf W
|
||||||
|
_ZNSolsEi W
|
||||||
|
_ZNSolsEj W
|
||||||
|
_ZNSolsEl W
|
||||||
|
_ZNSolsEm W
|
||||||
|
_ZNSolsEs W
|
||||||
|
_ZNSolsEx W
|
||||||
|
_ZNSolsEy W
|
||||||
|
_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode W
|
||||||
|
_ZNSt13basic_filebufIcSt11char_traitsIcEE5closeEv W
|
||||||
|
_ZNSt13basic_filebufIcSt11char_traitsIcEEC1Ev W
|
||||||
|
_ZNSt13basic_filebufIcSt11char_traitsIcEED1Ev W
|
||||||
|
_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode W
|
||||||
|
_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev W
|
||||||
|
_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode W
|
||||||
|
_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_ W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_ W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE5gbumpEi W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE5imbueERKSt6locale W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE5pbumpEi W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE5uflowEv W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsgetnEPcl W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEE6xsputnEPKcl W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEEC1Ev W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEEC2Ev W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEED0Ev W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEED1Ev W
|
||||||
|
_ZNSt15basic_streambufIcSt11char_traitsIcEED2Ev W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_capacityEm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcS5_S5_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE14_M_replace_auxEmmmc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5beginEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEmc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmmc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEmc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_M_dataEPc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_S8_S8_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7replaceEmmPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEmm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8pop_backEv W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EmcRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EmcRKS3_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_ W
|
||||||
|
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc W
|
||||||
|
_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm W
|
||||||
|
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode W
|
||||||
|
_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev W
|
||||||
|
_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode W
|
||||||
|
_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev W
|
||||||
|
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1ESt13_Ios_Openmode W
|
||||||
|
_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEE5imbueERKSt6locale W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEEC1Ev W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEEC2Ev W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEED0Ev W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEED1Ev W
|
||||||
|
_ZNSt9basic_iosIcSt11char_traitsIcEED2Ev W
|
||||||
|
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l W
|
||||||
|
_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ W
|
||||||
|
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc W
|
||||||
|
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c W
|
||||||
|
_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St13_Setprecision W
|
||||||
|
_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE W
|
||||||
|
_ZStrsIcSt11char_traitsIcEERSt13basic_istreamIT_T0_ES6_RS3_ W
|
||||||
|
_ZTv0_n24_NSoD0Ev W
|
||||||
|
_ZTv0_n24_NSoD1Ev W
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ preparePort, nixpkgs }:
|
||||||
|
|
||||||
|
preparePort {
|
||||||
|
inherit (nixpkgs.zlib) name src;
|
||||||
|
outputs = [ "dev" ];
|
||||||
|
VERSION = nixpkgs.zlib.version;
|
||||||
|
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $pkgconfigdir
|
||||||
|
substituteAllInPlace zlib.pc.in
|
||||||
|
sed \
|
||||||
|
-e "s|Libs:.*|Libs: -l:zlib.lib.so|" \
|
||||||
|
-e "/@/d" \
|
||||||
|
< zlib.pc.in > $pkgconfigdir/zlib.pc
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
mkdir -p $includedir
|
||||||
|
cp *.h $includedir
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{ genodepkgs ? builtins.fetchGit ./.
|
||||||
|
, nixpkgs ? builtins.fetchGit
|
||||||
|
{ url = "git://depot.h4ck.me/srv/git/nixpkgs";
|
||||||
|
ref = "genode";
|
||||||
|
}
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
build.x86_64 =
|
||||||
|
let pkgs = import ./default.nix
|
||||||
|
{ inherit (nixpkgs);
|
||||||
|
system = { config = "x86_64-unknown-genode"; };
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{ inherit (pkgs) upstream ports; };
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{ nixpkgs, toolchain, dhallPackages, pkgs }:
|
||||||
|
|
||||||
|
let
|
||||||
|
args =
|
||||||
|
{ name = "genode-dev-env";
|
||||||
|
buildInputs = with nixpkgs.buildPackages;
|
||||||
|
[ toolchain
|
||||||
|
stdenv.glibc.dev
|
||||||
|
git tup
|
||||||
|
ccache
|
||||||
|
pkgconfig
|
||||||
|
pkgs.upstream.dev
|
||||||
|
pkgs.ports.libc.dev
|
||||||
|
];
|
||||||
|
|
||||||
|
GENODE_DEV = pkgs.upstream.dev;
|
||||||
|
|
||||||
|
shellHook =
|
||||||
|
''
|
||||||
|
export DHALL_PRELUDE=${dhallPackages.prelude}/package.dhall
|
||||||
|
export DHALL_GENODE=${dhallPackages.genode}/package.dhall
|
||||||
|
export DHALL_GENODE_TYPES=${dhallPackages.genode}/types.dhall
|
||||||
|
export PROMPT_DIRTRIM=2
|
||||||
|
export PS1="\[\033[1;30m\]dev: [\[\033[1;37m\]\w\[\033[1;30m\]] $\[\033[0m\] "
|
||||||
|
export PS2="\[\033[1;30m\]>\[\033[0m\] "
|
||||||
|
'';
|
||||||
|
# Setup a prompt with a distinct appearance
|
||||||
|
};
|
||||||
|
in
|
||||||
|
nixpkgs.buildPackages.mkShell
|
||||||
|
( args
|
||||||
|
// { passthru =
|
||||||
|
{ mkShell = { buildInputs, ... }@args': nixpkgs.buildPackages.mkShell
|
||||||
|
( args // args' // { buildInputs = args.buildInputs ++ args'.buildInputs; } );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
|
@ -0,0 +1,477 @@
|
||||||
|
/*
|
||||||
|
* \brief Tools and utility functions
|
||||||
|
* \author Emery Hemingway
|
||||||
|
* \date 2014-09-30
|
||||||
|
*/
|
||||||
|
|
||||||
|
{ nixpkgs ? import <nixpkgs> { } }:
|
||||||
|
|
||||||
|
with builtins;
|
||||||
|
|
||||||
|
rec {
|
||||||
|
inherit nixpkgs;
|
||||||
|
inherit (nixpkgs) fetchurl;
|
||||||
|
|
||||||
|
##
|
||||||
|
# Add a prefix to a list of strings.
|
||||||
|
addPrefix = prefix: map (s: prefix+s);
|
||||||
|
|
||||||
|
##
|
||||||
|
# Determine if any of the following libs are shared.
|
||||||
|
anyShared = libs:
|
||||||
|
let h = head libs; in
|
||||||
|
if libs == [] then false else
|
||||||
|
if h.shared or false then true else anyShared (tail libs);
|
||||||
|
|
||||||
|
##
|
||||||
|
# Drop a suffix from the end of a string.
|
||||||
|
dropSuffix = suf: str:
|
||||||
|
let
|
||||||
|
strL = stringLength str;
|
||||||
|
sufL = stringLength suf;
|
||||||
|
in
|
||||||
|
if lessThan strL sufL || substring (sub strL sufL) strL str != suf
|
||||||
|
then abort "${str} does not have suffix ${suf}"
|
||||||
|
else substring 0 (sub strL sufL) str;
|
||||||
|
|
||||||
|
##
|
||||||
|
# Generate a list of file paths from a directory and
|
||||||
|
# filenames.
|
||||||
|
fromDir = dir: map (s: dir+("/"+s));
|
||||||
|
|
||||||
|
##
|
||||||
|
# Utility functions for gathering sources.
|
||||||
|
fromGlob =
|
||||||
|
dir: glob:
|
||||||
|
let
|
||||||
|
dirName = dir.name or baseNameOf (toString dir);
|
||||||
|
in
|
||||||
|
import (shellDerivation {
|
||||||
|
name = "${dirName}-glob.nix";
|
||||||
|
script = ./from-glob.sh;
|
||||||
|
#PATH="${nixpkgs.coreutils}/bin";
|
||||||
|
inherit dir glob;
|
||||||
|
});
|
||||||
|
|
||||||
|
fromPath = path: [ [ path (baseNameOf (toString path)) ] ];
|
||||||
|
fromPaths = paths: map (p: [ p (baseNameOf (toString p)) ]) paths;
|
||||||
|
|
||||||
|
##
|
||||||
|
# Filter out libs that are not derivations
|
||||||
|
filterFakeLibs = libs: filter (lib: hasAttr "shared" lib) libs;
|
||||||
|
|
||||||
|
##
|
||||||
|
# Test if a string ends in '.h'.
|
||||||
|
hasDotH = s: substring (sub (stringLength s) 2) 2 s == ".h";
|
||||||
|
hasDotHH = s: substring (sub (stringLength s) 3) 3 s == ".hh";
|
||||||
|
hasDotHPP = s: substring (sub (stringLength s) 4) 4 s == ".hpp";
|
||||||
|
|
||||||
|
##
|
||||||
|
# Filter out everything but *.h on a path.
|
||||||
|
# Prevents files that exist alongside headers from changing header path hash.
|
||||||
|
filterHeaders = dir: filterSource
|
||||||
|
(path: type: hasDotH path || hasDotHH path || hasDotHPP path || type == "directory")
|
||||||
|
dir;
|
||||||
|
|
||||||
|
##
|
||||||
|
# Find a filename in a search path.
|
||||||
|
findFile = fn: searchPath:
|
||||||
|
if searchPath == [] then []
|
||||||
|
else
|
||||||
|
let
|
||||||
|
sp = head searchPath;
|
||||||
|
fn' = sp + "/${fn}";
|
||||||
|
in
|
||||||
|
if builtins.typeOf fn' != "path" then [] else
|
||||||
|
if pathExists fn' then
|
||||||
|
[ { key = fn'; relative = fn; } ]
|
||||||
|
else findFile fn (tail searchPath);
|
||||||
|
|
||||||
|
findIncludes = main: path:
|
||||||
|
map (x: [ x.key x.relative ]) (genericClosure {
|
||||||
|
startSet = [ { key = main; relative = baseNameOf (toString main); } ];
|
||||||
|
operator =
|
||||||
|
{ key, ... }:
|
||||||
|
let
|
||||||
|
includes = import (includesOf key);
|
||||||
|
includesFound =
|
||||||
|
nixpkgs.lib.concatMap
|
||||||
|
(fn: findFile fn ([ (dirOf main) ] ++ path))
|
||||||
|
includes;
|
||||||
|
in includesFound;
|
||||||
|
});
|
||||||
|
|
||||||
|
##
|
||||||
|
# Recursively find libraries.
|
||||||
|
findLibraries = libs:
|
||||||
|
let
|
||||||
|
list = map (lib: { key = lib.name; inherit lib; });
|
||||||
|
in
|
||||||
|
map (x: x.lib) (genericClosure {
|
||||||
|
startSet = list libs;
|
||||||
|
operator = { key, lib }: list lib.libs or [];
|
||||||
|
});
|
||||||
|
|
||||||
|
##
|
||||||
|
# Recursively find libraries to link.
|
||||||
|
findLinkLibraries = libs:
|
||||||
|
let
|
||||||
|
list = libs: map
|
||||||
|
(lib: { key = lib.name; inherit lib; })
|
||||||
|
(filter (lib: hasAttr "drvPath" lib) libs);
|
||||||
|
in
|
||||||
|
map (x: x.lib) (genericClosure {
|
||||||
|
startSet = list libs;
|
||||||
|
operator =
|
||||||
|
{ key, lib }:
|
||||||
|
if lib.shared then []
|
||||||
|
else list lib.libs or [];
|
||||||
|
});
|
||||||
|
|
||||||
|
findLocalIncludes = main: path:
|
||||||
|
let path' = [ (dirOf main) ] ++ path; in
|
||||||
|
map (x: [ x.key x.relative ]) (genericClosure {
|
||||||
|
startSet = [ { key = main; relative = baseNameOf (toString main); } ];
|
||||||
|
operator =
|
||||||
|
{ key, ... }:
|
||||||
|
let
|
||||||
|
includes = import (localIncludesOf key);
|
||||||
|
includesFound =
|
||||||
|
nixpkgs.lib.concatMap
|
||||||
|
(fn: findFile fn path')
|
||||||
|
includes;
|
||||||
|
in includesFound;
|
||||||
|
});
|
||||||
|
|
||||||
|
##
|
||||||
|
# Recursively find shared libraries.
|
||||||
|
findRuntimeLibraries = libs:
|
||||||
|
let
|
||||||
|
filter = libs: builtins.filter (lib: lib.shared) libs;
|
||||||
|
list = libs:
|
||||||
|
map (lib: { key = lib.name; inherit lib; }) libs;
|
||||||
|
in
|
||||||
|
filter (map (x: x.lib) (genericClosure {
|
||||||
|
startSet = list libs;
|
||||||
|
operator =
|
||||||
|
{ key, lib }:
|
||||||
|
list ([lib ] ++ lib.libs);
|
||||||
|
}));
|
||||||
|
|
||||||
|
##
|
||||||
|
# Determine if a string has the given suffix.
|
||||||
|
hasSuffix = suf: str:
|
||||||
|
let
|
||||||
|
strL = stringLength str;
|
||||||
|
sufL = stringLength suf;
|
||||||
|
in
|
||||||
|
if lessThan strL sufL then false else
|
||||||
|
substring (sub strL sufL) strL str == suf;
|
||||||
|
|
||||||
|
includesOf = file:
|
||||||
|
import (derivation {
|
||||||
|
name =
|
||||||
|
if typeOf file == "path"
|
||||||
|
then "${baseNameOf (toString file)}-includes"
|
||||||
|
else "includes";
|
||||||
|
system = currentSystem;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
builder = "${nixpkgs.perl}/bin/perl";
|
||||||
|
args = [ ./find-includes.pl ];
|
||||||
|
inherit file;
|
||||||
|
});
|
||||||
|
|
||||||
|
##
|
||||||
|
# Create a bootable ISO.
|
||||||
|
iso =
|
||||||
|
{ name, contents, kernel, kernelArgs }:
|
||||||
|
shellDerivation {
|
||||||
|
name = "${name}.iso";
|
||||||
|
script = ./iso.sh;
|
||||||
|
PATH="${nixpkgs.coreutils}/bin:${nixpkgs.cdrkit}/bin:${nixpkgs.binutils}/bin";
|
||||||
|
inherit kernel kernelArgs;
|
||||||
|
inherit (nixpkgs) syslinux cdrkit;
|
||||||
|
sources = map (x: x.source) contents;
|
||||||
|
targets = map (x: x.target) contents;
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
# Generate a contents list of runtime libraries for a package.
|
||||||
|
# This will go away as tool.runtime matures.
|
||||||
|
libContents = contents: builtins.concatLists (map (
|
||||||
|
content:
|
||||||
|
map (source: { target = "/"; inherit source; }) content.source.runtime.libs or []
|
||||||
|
) contents);
|
||||||
|
|
||||||
|
localIncludesOf = main: derivation {
|
||||||
|
name =
|
||||||
|
if typeOf main == "path"
|
||||||
|
then "${baseNameOf (toString main)}-local-includes"
|
||||||
|
else "local-includes";
|
||||||
|
system = currentSystem;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
builder = "${nixpkgs.perl}/bin/perl";
|
||||||
|
args = [ ./find-local-includes.pl ];
|
||||||
|
inherit main;
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
# Merge an attr between two sets.
|
||||||
|
mergeAttr =
|
||||||
|
name: s1: s2:
|
||||||
|
let
|
||||||
|
a1 = getAttr name s1;
|
||||||
|
a2 = getAttr name s2;
|
||||||
|
type1 = typeOf a1;
|
||||||
|
type2 = typeOf a2;
|
||||||
|
in
|
||||||
|
if type1 == "null" then a2 else if type2 == "null" then a1 else
|
||||||
|
if type1 != type2 then abort "cannot merge ${name}s of type ${type1} and ${type2}" else
|
||||||
|
if type1 == "set" then mergeSet a1 a2 else
|
||||||
|
if type1 == "list" then a1 ++ a2 else
|
||||||
|
if type1 == "string" then "${a1} ${a2}" else
|
||||||
|
#if type1 == "int" then add a1 a2 else
|
||||||
|
abort "cannot merge ${type1} ${name} ${toString a1} ${toString a2}";
|
||||||
|
|
||||||
|
##
|
||||||
|
# Merge two sets together.
|
||||||
|
mergeSet = s1: s2:
|
||||||
|
s1 // s2 // (listToAttrs (map
|
||||||
|
(name: { inherit name; value = mergeAttr name s1 s2; })
|
||||||
|
(attrNames (intersectAttrs s1 s2))
|
||||||
|
));
|
||||||
|
|
||||||
|
##
|
||||||
|
# Merge a list of sets.
|
||||||
|
mergeSets =
|
||||||
|
sets:
|
||||||
|
if sets == [] then {} else
|
||||||
|
mergeSet (head sets) (mergeSets (tail sets));
|
||||||
|
|
||||||
|
newDir =
|
||||||
|
name: contents:
|
||||||
|
derivation {
|
||||||
|
inherit name contents;
|
||||||
|
system = builtins.currentSystem;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
builder = shell;
|
||||||
|
PATH="${nixpkgs.coreutils}/bin";
|
||||||
|
args = [ "-e" "-c" ''
|
||||||
|
mkdir -p $out ; \
|
||||||
|
for i in $contents; do cp -Hr $i $out; done
|
||||||
|
'' ];
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
# Generate a list of paths from a path and a shell glob.
|
||||||
|
pathsFromGlob = dir: glob:
|
||||||
|
let path = toString dir; in
|
||||||
|
import (derivation {
|
||||||
|
name = "${baseNameOf path}-glob.nix";
|
||||||
|
args = [ "-e" "-O" "nullglob" ./path-from-glob.sh ];
|
||||||
|
inherit dir glob path;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
preparePort = import ./prepare-port { inherit nixpkgs; };
|
||||||
|
|
||||||
|
# Concatenate the named attr found in pkgs.
|
||||||
|
propagate = attrName: pkgs:
|
||||||
|
let
|
||||||
|
pkg = head pkgs;
|
||||||
|
in
|
||||||
|
if pkgs == [] then [] else
|
||||||
|
( if hasAttr attrName pkg
|
||||||
|
then getAttr attrName pkg
|
||||||
|
else []
|
||||||
|
) ++
|
||||||
|
(propagate attrName (tail pkgs));
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Replace substring a with substring b in string s.
|
||||||
|
replaceInString =
|
||||||
|
a: b: s:
|
||||||
|
let
|
||||||
|
al = stringLength a;
|
||||||
|
bl = stringLength b;
|
||||||
|
sl = stringLength s;
|
||||||
|
in
|
||||||
|
if al == 0 then s else
|
||||||
|
if sl == 0 then "" else
|
||||||
|
if ((substring 0 al s) == a) then
|
||||||
|
b+(replaceInString a b (substring al sl s))
|
||||||
|
else
|
||||||
|
(substring 0 1 s) + (replaceInString a b (substring 1 sl s));
|
||||||
|
|
||||||
|
shell = nixpkgs.bash + "/bin/sh";
|
||||||
|
|
||||||
|
# Save some typing when creating derivation that use our shell.
|
||||||
|
shellDerivation = { script, ... } @ args:
|
||||||
|
derivation ( (removeAttrs args [ "script" ]) //
|
||||||
|
{ system = builtins.currentSystem;
|
||||||
|
builder = shell;
|
||||||
|
args = [ "-e" script ];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
singleton = x: [x];
|
||||||
|
|
||||||
|
# Bootability is not assured, so its really system image.
|
||||||
|
systemImage = import ./system-image { inherit nixpkgs; };
|
||||||
|
bootImage = systemImage; # get rid of this
|
||||||
|
|
||||||
|
|
||||||
|
wildcard =
|
||||||
|
path: glob:
|
||||||
|
let
|
||||||
|
relativePaths = import (shellDerivation {
|
||||||
|
name = "files.nix";
|
||||||
|
PATH="${nixpkgs.coreutils}/bin";
|
||||||
|
script = ./wildcard.sh;
|
||||||
|
inherit path glob;
|
||||||
|
|
||||||
|
});
|
||||||
|
in
|
||||||
|
map (rp: (path+"/${rp}")) relativePaths;
|
||||||
|
|
||||||
|
# Appends string context from another string
|
||||||
|
addContextFrom = a: b: substring 0 0 a + b;
|
||||||
|
|
||||||
|
# Compares strings not requiring context equality
|
||||||
|
# Obviously, a workaround but works on all Nix versions
|
||||||
|
eqStrings = a: b: addContextFrom b a == addContextFrom a b;
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
# Cut a string with a separator and produces a list of strings which were
|
||||||
|
# separated by this separator. e.g.,
|
||||||
|
# `splitString "." "foo.bar.baz"' returns ["foo" "bar" "baz"].
|
||||||
|
# From nixpkgs.
|
||||||
|
splitString = _sep: _s:
|
||||||
|
let
|
||||||
|
sep = addContextFrom _s _sep;
|
||||||
|
s = addContextFrom _sep _s;
|
||||||
|
sepLen = stringLength sep;
|
||||||
|
sLen = stringLength s;
|
||||||
|
lastSearch = sLen - sepLen;
|
||||||
|
startWithSep = startAt:
|
||||||
|
substring startAt sepLen s == sep;
|
||||||
|
|
||||||
|
recurse = index: startAt:
|
||||||
|
let cutUntil = i: [(substring startAt (i - startAt) s)]; in
|
||||||
|
if index < lastSearch then
|
||||||
|
if startWithSep index then
|
||||||
|
let restartAt = index + sepLen; in
|
||||||
|
cutUntil index ++ recurse restartAt restartAt
|
||||||
|
else
|
||||||
|
recurse (index + 1) startAt
|
||||||
|
else
|
||||||
|
cutUntil sLen;
|
||||||
|
in
|
||||||
|
recurse 0 0;
|
||||||
|
##
|
||||||
|
# What I thought builtins.match would do.
|
||||||
|
matchPattern = pat: str:
|
||||||
|
concatLists (
|
||||||
|
map
|
||||||
|
( l:
|
||||||
|
let m = match pat l; in
|
||||||
|
if m == null then [] else m
|
||||||
|
)
|
||||||
|
(splitString "\n" str)
|
||||||
|
);
|
||||||
|
|
||||||
|
##
|
||||||
|
# Generate a set of local ("") and system (<>)
|
||||||
|
# preprocessor include directives from a file.
|
||||||
|
relativeIncludes = file:
|
||||||
|
let
|
||||||
|
matches = pattern: lines:
|
||||||
|
concatLists (filter (x: x != null) (map (match pattern) lines));
|
||||||
|
lines = splitString "\n" (readFile file);
|
||||||
|
in
|
||||||
|
{ local = matches ''.*#include\s*"([^>]*)".*'' lines;
|
||||||
|
system = matches ''.*#include\s*<([^>]*)>.*'' lines;
|
||||||
|
};
|
||||||
|
|
||||||
|
##
|
||||||
|
# Find a file in a set of directories.
|
||||||
|
findFile' = key: dirs:
|
||||||
|
if substring 0 1 key == "!" then builtins.trace "found a !key" key else
|
||||||
|
if dirs == [] then null else
|
||||||
|
let abs = (builtins.head dirs) +"/${key}"; in
|
||||||
|
if builtins.pathExists abs then abs
|
||||||
|
else findFile' key (builtins.tail dirs);
|
||||||
|
|
||||||
|
##
|
||||||
|
# Generate a set of relative to absolute include mappings from a file.
|
||||||
|
# This set includes a mapping from the orginal file basename to its
|
||||||
|
# absolute path.
|
||||||
|
#
|
||||||
|
# The genericClosure primative applies an operation to a list of sets that
|
||||||
|
# contain the attribute 'key'. This operation returns a similar list of sets,
|
||||||
|
# and genericClosure appends elements of that list that contain a key
|
||||||
|
# that does not already exist in the previous set. All sets returned by this
|
||||||
|
# operation contain a function to resolve the relative path at 'key' into an
|
||||||
|
# absolute one at 'abs', and a function to parse the absolute path at 'abs'
|
||||||
|
# into a list of relative includes at 'inc'. GenericClosure discards any set
|
||||||
|
# with a relative path at 'key' that it has already been seen, and thus due
|
||||||
|
# to lazy evaulation, no relative path is resolved or parsed twice.
|
||||||
|
#
|
||||||
|
# A ! is prepended to the files of the initial set, to differentiate them from
|
||||||
|
# files with unsolved locations and to satisfy the requirement that strings
|
||||||
|
# not directly reference store paths in findFile'
|
||||||
|
includesOfFiles = files: searchPath:
|
||||||
|
let
|
||||||
|
concat = sets:
|
||||||
|
if sets == [] then {} else
|
||||||
|
let x = head sets; in
|
||||||
|
(if x.abs == null || substring 0 1 x.key == "!" then {} else { "${x.key}" = x.abs; }) // concat (tail sets);
|
||||||
|
in
|
||||||
|
concat (genericClosure {
|
||||||
|
# Can the startSet really be filled with elements sharing a key?
|
||||||
|
startSet = map (abs: { key = "!${abs}"; inherit abs; inc = includesOf abs; }) files;
|
||||||
|
operator =
|
||||||
|
{ key, abs, inc }: if abs == null then [] else let abs' = abs; in
|
||||||
|
(map
|
||||||
|
(key: rec { inherit key; abs = (findFile' key searchPath); inc = includesOf abs; })
|
||||||
|
inc.system)
|
||||||
|
++
|
||||||
|
(map
|
||||||
|
(key: rec { inherit key; abs = (findFile' key (if typeOf abs' == "path" then searchPath ++ [ (dirOf abs') ] else searchPath)); inc = relativeIncludes abs; })
|
||||||
|
inc.local);
|
||||||
|
});
|
||||||
|
|
||||||
|
##
|
||||||
|
# Load expressions from a directory path and apply func.
|
||||||
|
loadExpressions = func: path:
|
||||||
|
let
|
||||||
|
dirSet = builtins.readDir path;
|
||||||
|
default =
|
||||||
|
if builtins.hasAttr "default.nix" dirSet
|
||||||
|
then func (import (path + "/default.nix"))
|
||||||
|
else {};
|
||||||
|
in
|
||||||
|
default // (builtins.listToAttrs (builtins.filter (x: x != {}) (map
|
||||||
|
(name:
|
||||||
|
let
|
||||||
|
type = builtins.getAttr name dirSet;
|
||||||
|
more = loadExpressions func (path + "/${name}");
|
||||||
|
in
|
||||||
|
if type == "directory"
|
||||||
|
then { inherit name; value = more; }
|
||||||
|
else
|
||||||
|
if
|
||||||
|
(type == "regular" || type == "symlink") &&
|
||||||
|
(hasSuffix ".nix" name)
|
||||||
|
then
|
||||||
|
{ name = dropSuffix ".nix" name;
|
||||||
|
value = func (import (path+"/${name}"));
|
||||||
|
}
|
||||||
|
else { }
|
||||||
|
)
|
||||||
|
(builtins.attrNames dirSet)
|
||||||
|
)));
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
export PATH=
|
||||||
|
for i in $initialPath; do
|
||||||
|
if [ "$i" = / ]; then i=; fi
|
||||||
|
PATH=$PATH${PATH:+:}$i/bin
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir $out
|
||||||
|
|
||||||
|
sed \
|
||||||
|
-e "s^@LD_SCRIPT_SO@^$LD_SCRIPT_SO^g" \
|
||||||
|
-e "s^@initialPath@^$initialPath^g" \
|
||||||
|
< $setup > $out/setup
|
|
@ -0,0 +1,2 @@
|
||||||
|
source $preparePort/setup
|
||||||
|
genericBuild
|
|
@ -0,0 +1,42 @@
|
||||||
|
{ nixpkgs }:
|
||||||
|
let
|
||||||
|
shell = nixpkgs.buildPackages.bash + "/bin/sh";
|
||||||
|
|
||||||
|
initialPath = with nixpkgs.buildPackages;
|
||||||
|
[ coreutils
|
||||||
|
findutils
|
||||||
|
diffutils
|
||||||
|
gawk
|
||||||
|
gnugrep
|
||||||
|
gnused
|
||||||
|
gnutar
|
||||||
|
patch
|
||||||
|
gzip
|
||||||
|
bzip2
|
||||||
|
xz
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{ name
|
||||||
|
, outputs ? [ "out" ]
|
||||||
|
, preferLocalBuild ? true
|
||||||
|
, ... } @ attrs:
|
||||||
|
derivation (attrs // {
|
||||||
|
inherit name outputs initialPath;
|
||||||
|
|
||||||
|
preparePort = derivation {
|
||||||
|
name = "prepare-port";
|
||||||
|
system = builtins.currentSystem;
|
||||||
|
builder = shell;
|
||||||
|
args = [ "-e" ./builder.sh ];
|
||||||
|
setup = ./setup.sh;
|
||||||
|
LD_SCRIPT_SO = ./genode_rel.ld;
|
||||||
|
inherit initialPath;
|
||||||
|
};
|
||||||
|
|
||||||
|
setupHook = ./../setup-hooks.sh;
|
||||||
|
|
||||||
|
system = builtins.currentSystem;
|
||||||
|
|
||||||
|
builder = attrs.realBuilder or shell;
|
||||||
|
args = attrs.args or [ "-e" (attrs.builder or ./default-builder.sh) ];
|
||||||
|
})
|
|
@ -0,0 +1,261 @@
|
||||||
|
/*
|
||||||
|
* \brief Linker script for libraries
|
||||||
|
* \author Sebastian Sumpf
|
||||||
|
* \date 2009-11-05
|
||||||
|
*
|
||||||
|
* Script for --shared -z combreloc: shared library, combine & sort relocs
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2009-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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
PHDRS
|
||||||
|
{
|
||||||
|
ro PT_LOAD;
|
||||||
|
rw PT_LOAD;
|
||||||
|
dynamic PT_DYNAMIC;
|
||||||
|
eh_frame PT_GNU_EH_FRAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
/* Read-only sections, merged into text segment: */
|
||||||
|
.note.gnu.build-id : { *(.note.gnu.build-id) } : ro
|
||||||
|
.hash : { *(.hash) }
|
||||||
|
.gnu.hash : { *(.gnu.hash) }
|
||||||
|
.dynsym : { *(.dynsym) }
|
||||||
|
.dynstr : { *(.dynstr) }
|
||||||
|
.gnu.version : { *(.gnu.version) }
|
||||||
|
.gnu.version_d : { *(.gnu.version_d) }
|
||||||
|
.gnu.version_r : { *(.gnu.version_r) }
|
||||||
|
.rel.dyn :
|
||||||
|
{
|
||||||
|
*(.rel.init)
|
||||||
|
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
|
||||||
|
*(.rel.fini)
|
||||||
|
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
|
||||||
|
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
|
||||||
|
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
|
||||||
|
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
|
||||||
|
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
|
||||||
|
*(.rel.ctors)
|
||||||
|
*(.rel.dtors)
|
||||||
|
*(.rel.got)
|
||||||
|
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
|
||||||
|
}
|
||||||
|
.rela.dyn :
|
||||||
|
{
|
||||||
|
*(.rela.init)
|
||||||
|
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
|
||||||
|
*(.rela.fini)
|
||||||
|
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
|
||||||
|
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
|
||||||
|
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
|
||||||
|
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
|
||||||
|
*(.rela.ctors)
|
||||||
|
*(.rela.dtors)
|
||||||
|
*(.rela.got)
|
||||||
|
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
|
||||||
|
}
|
||||||
|
.rel.plt : { *(.rel.plt) }
|
||||||
|
.rela.plt : { *(.rela.plt) }
|
||||||
|
.init :
|
||||||
|
{
|
||||||
|
KEEP (*(.init))
|
||||||
|
} = 0x0
|
||||||
|
.plt : { *(.plt) }
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||||
|
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||||
|
*(.gnu.warning)
|
||||||
|
} = 0x0
|
||||||
|
.fini :
|
||||||
|
{
|
||||||
|
KEEP (*(.fini))
|
||||||
|
} =0x0
|
||||||
|
PROVIDE (__etext = .);
|
||||||
|
PROVIDE (_etext = .);
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
|
||||||
|
.rodata1 : { *(.rodata1) }
|
||||||
|
|
||||||
|
.eh_frame_hdr : { *(.eh_frame_hdr) } : eh_frame : ro
|
||||||
|
.gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adjust the address for the data segment. We want to adjust up to
|
||||||
|
* the same address within the page on the next page up.
|
||||||
|
*/
|
||||||
|
. = ALIGN(0x1000);
|
||||||
|
|
||||||
|
.data :
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Leave space for parent capability parameters at start of data
|
||||||
|
* section. The protection domain creator is reponsible for storing
|
||||||
|
* sane values here.
|
||||||
|
*/
|
||||||
|
_parent_cap = .;
|
||||||
|
_parent_cap_thread_id = .;
|
||||||
|
LONG(0xffffffff);
|
||||||
|
_parent_cap_local_name = .;
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
LONG(0xffffffff);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Platform-specific entry for Fiasco.OC.
|
||||||
|
*
|
||||||
|
* PIC-code compiled for Fiasco.OC, needs some PIC-compatible
|
||||||
|
* way to enter the kernel, the fixed address of the kernel
|
||||||
|
* entry code address needs to be found here.
|
||||||
|
*/
|
||||||
|
__l4sys_invoke_indirect = .;
|
||||||
|
LONG(0xeacff000);
|
||||||
|
|
||||||
|
*(.data .data.* .gnu.linkonce.d.*)
|
||||||
|
SORT(CONSTRUCTORS)
|
||||||
|
} : rw
|
||||||
|
|
||||||
|
/* .ARM.exidx is sorted, so has to go in its own output section */
|
||||||
|
.ARM.extab : {
|
||||||
|
*(.ARM.extab*)
|
||||||
|
}
|
||||||
|
__exidx_start = .;
|
||||||
|
.ARM.exidx : {
|
||||||
|
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||||
|
}
|
||||||
|
__exidx_end = .;
|
||||||
|
|
||||||
|
/* Thread Local Storage sections */
|
||||||
|
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
|
||||||
|
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
|
||||||
|
|
||||||
|
.preinit_array :
|
||||||
|
{
|
||||||
|
KEEP (*(.preinit_array))
|
||||||
|
}
|
||||||
|
.fini_array :
|
||||||
|
{
|
||||||
|
KEEP (*(.fini_array))
|
||||||
|
KEEP (*(SORT(.fini_array.*)))
|
||||||
|
}
|
||||||
|
.ctors :
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* gcc uses crtbegin.o to find the start of the constructors, so we make
|
||||||
|
* sure it is first. Because this is a wildcard, it doesn't matter if the
|
||||||
|
* user does not actually link against crtbegin.o; the linker won't look
|
||||||
|
* for a file to match a wildcard. The wildcard also means that it
|
||||||
|
* doesn't matter which directory crtbegin.o is in.
|
||||||
|
* */
|
||||||
|
/* KEEP (*crtbegin.o(.ctors))
|
||||||
|
KEEP (*crtbegin?.o(.ctors))*/
|
||||||
|
/*
|
||||||
|
* We don't want to include the .ctor section from the crtend.o file until
|
||||||
|
* after the sorted ctors. The .ctor section from the crtend file contains
|
||||||
|
* the end of ctors marker and it must be last
|
||||||
|
*/
|
||||||
|
KEEP(*(_mark_ctors_start));
|
||||||
|
_ctors_start = .;
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
|
||||||
|
KEEP (*(SORT(.ctors.*)))
|
||||||
|
KEEP (*(.ctors))
|
||||||
|
KEEP (*(.init_array)) /* list of constructors specific for ARM eabi */
|
||||||
|
_ctors_end = .;
|
||||||
|
KEEP(*(_mark_ctors_end));
|
||||||
|
|
||||||
|
}
|
||||||
|
.dtors :
|
||||||
|
{
|
||||||
|
PROVIDE(_dtors_start = .);
|
||||||
|
KEEP (*crtbegin.o(.dtors))
|
||||||
|
KEEP (*crtbegin?.o(.dtors))
|
||||||
|
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
|
||||||
|
KEEP (*(SORT(.dtors.*)))
|
||||||
|
KEEP (*(.dtors))
|
||||||
|
PROVIDE(_dtors_end = .);
|
||||||
|
}
|
||||||
|
.jcr : { KEEP (*(.jcr)) }
|
||||||
|
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
|
||||||
|
|
||||||
|
.data1 : { *(.data1) }
|
||||||
|
.dynamic : { *(.dynamic) } : dynamic : rw
|
||||||
|
/* See: genode_dyn.ld */
|
||||||
|
.got : { *(.got.plt) *(.got) }
|
||||||
|
/* Exception handling */
|
||||||
|
.eh_frame :
|
||||||
|
{
|
||||||
|
__eh_frame_start__ = .;
|
||||||
|
KEEP (*(.eh_frame))
|
||||||
|
LONG(0)
|
||||||
|
}
|
||||||
|
_edata = .; PROVIDE (edata = .);
|
||||||
|
__bss_start = .;
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
*(.dynbss)
|
||||||
|
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Align here to ensure that the .bss section occupies space up to
|
||||||
|
* _end. Align after .bss to ensure correct alignment even if the
|
||||||
|
* .bss section disappears because there are no input sections.
|
||||||
|
*
|
||||||
|
* FIXME: Why do we need it? When there is no .bss section, we don't
|
||||||
|
* pad the .data section.
|
||||||
|
*/
|
||||||
|
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||||
|
}
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
. = ALIGN(32 / 8);
|
||||||
|
_end = .; PROVIDE (end = .);
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
|
||||||
|
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) }
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,7 @@
|
||||||
|
addGenodePkgConfigPath () {
|
||||||
|
if test -e "$1/.genode" && test -d "$1/lib/pkgconfig"; then
|
||||||
|
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$1/lib/pkgconfig"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
addEnvHooks "$targetOffset" addGenodePkgConfigPath
|
|
@ -0,0 +1,69 @@
|
||||||
|
let
|
||||||
|
nixpkgs = import <nixpkgs> {};
|
||||||
|
inherit (nixpkgs) buildPackages;
|
||||||
|
stdenv = nixpkgs.stdenvNoCC;
|
||||||
|
genodeVersion = "19.05";
|
||||||
|
glibc = nixpkgs.stdenv.glibc;
|
||||||
|
glibcVersion = (builtins.parseDrvName glibc.name).version;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "genode-toolchain-${genodeVersion}";
|
||||||
|
version = genodeVersion;
|
||||||
|
|
||||||
|
src =
|
||||||
|
if stdenv.isx86_64 then
|
||||||
|
nixpkgs.fetchurl {
|
||||||
|
url = "https://downloads.sourceforge.net/project/genode/genode-toolchain/${genodeVersion}/genode-toolchain-${genodeVersion}-x86_64.tar.xz";
|
||||||
|
sha256 = "036czy21zk7fvz1y1p67q3d5hgg8rb8grwabgrvzgdsqcv2ls6l9";
|
||||||
|
}
|
||||||
|
else abort "no toolchain for ${stdenv.system}";
|
||||||
|
|
||||||
|
depsBuildBuild = with buildPackages; [ patchelf ];
|
||||||
|
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
# installPhase is disabled for now
|
||||||
|
phases = "unpackPhase fixupPhase";
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
|
||||||
|
echo "unpacking $src..."
|
||||||
|
tar xf $src --strip-components=5 -C $out
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cd $out/bin
|
||||||
|
for platform in arm x86 ; do
|
||||||
|
dest="$"$platform"/bin"
|
||||||
|
eval dest=$"$dest"
|
||||||
|
|
||||||
|
mkdir -p $dest
|
||||||
|
|
||||||
|
for b in genode-$platform-* ; do
|
||||||
|
eval ln -s $b $dest/$\{b#genode-$platform-\}
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
cd -
|
||||||
|
'';
|
||||||
|
|
||||||
|
fixupPhase = ''
|
||||||
|
interp=${glibc.out}/lib/ld-${glibcVersion}.so
|
||||||
|
if [ ! -f "$interp" ] ; then
|
||||||
|
echo new interpreter $interp does not exist,
|
||||||
|
echo cannot patch binaries
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for f in $(find $out); do
|
||||||
|
if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
|
||||||
|
patchelf --set-interpreter $interp \
|
||||||
|
--set-rpath $out/lib:${glibc.out}/lib:${buildPackages.zlib.out}/lib \
|
||||||
|
"$f" || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = { libc = glibc; };
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
{ nixpkgs, toolchain }:
|
||||||
|
|
||||||
|
with builtins;
|
||||||
|
|
||||||
|
nixpkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "genode";
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
version = "19.07";
|
||||||
|
|
||||||
|
HOST_LIBC = toolchain.libc.dev;
|
||||||
|
|
||||||
|
src = nixpkgs.fetchgit
|
||||||
|
{ url = "git://depot.h4ck.me/srv/git/genode";
|
||||||
|
rev = "edb117c13b0cde38ba66ffaaa19a798fbb6d044d";
|
||||||
|
sha256 = "0rkpsh07hdv4r5pgyw707zhv546h96c6h150cdw01hi54jq8c0dr";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
setupHook = ./../tool/setup-hooks.sh;
|
||||||
|
|
||||||
|
depsBuildBuild = with nixpkgs.buildPackages;
|
||||||
|
[ toolchain
|
||||||
|
stdenv.glibc.dev
|
||||||
|
git tup
|
||||||
|
pkgconfig
|
||||||
|
];
|
||||||
|
|
||||||
|
configurePhase =
|
||||||
|
''
|
||||||
|
# Populate the SDK headers
|
||||||
|
mkdir -p $out $dev/include
|
||||||
|
cp -r repos/base/src/ld $dev/ld
|
||||||
|
cp -r repos/base/include $dev/include/base
|
||||||
|
cp -r repos/os/include $dev/include/os
|
||||||
|
cp -r repos/libports/include $dev/include/libports
|
||||||
|
cp -r repos/gems/include $dev/include/gems
|
||||||
|
|
||||||
|
# Configure Tup
|
||||||
|
echo CONFIG_NIX= >> tup.config
|
||||||
|
echo CONFIG_NIX_OUTPUTS_OUT=$out >> tup.config
|
||||||
|
echo CONFIG_NIX_OUTPUTS_DEV=$dev >> tup.config
|
||||||
|
|
||||||
|
# Scan repository and generate script
|
||||||
|
rm Tupfile # skip the dhall stuff
|
||||||
|
tup init
|
||||||
|
tup generate buildPhase.sh
|
||||||
|
|
||||||
|
# Redirect artifacts to Nix store
|
||||||
|
ln -s $out out
|
||||||
|
ln -s $dev dev
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase =
|
||||||
|
''
|
||||||
|
source buildPhase.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase =
|
||||||
|
''
|
||||||
|
touch $dev/.genode
|
||||||
|
for pc in $dev/lib/pkgconfig/*.pc
|
||||||
|
do
|
||||||
|
sed -i "s|-l:|$dev/lib/|g" $pc
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
shellHook =
|
||||||
|
''
|
||||||
|
export PROMPT_DIRTRIM=2
|
||||||
|
export PS1="\[\033[1;30m\]Genode-dev [\[\033[1;37m\]\w\[\033[1;30m\]] $\[\033[0m\] "
|
||||||
|
export PS2="\[\033[1;30m\]>\[\033[0m\] "
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in New Issue