Initial commit

post-mortem
Emery Hemingway 3 years ago
commit 3ad62e086e
  1. 2
      .gitignore
  2. 43
      default.nix
  3. 24
      ports/default.nix
  4. 27
      ports/egl_api/default.nix
  5. 6
      ports/egl_api/egl_api.pc.in
  6. 52
      ports/libc/default.nix
  7. 255
      ports/libc/libc-builder.sh
  8. 8
      ports/libc/libc.pc.in
  9. 1057
      ports/libc/libc.symbols
  10. 5
      ports/libc/posix.pc.in
  11. 31
      ports/libm/default.nix
  12. 6
      ports/libm/libm.pc.in
  13. 322
      ports/libm/libm.symbols
  14. 63
      ports/mesa/default.nix
  15. 7
      ports/mesa/mesa.pc.in
  16. 102
      ports/stdcxx/default.nix
  17. 7
      ports/stdcxx/stdcxx.pc.in
  18. 864
      ports/stdcxx/stdcxx.symbols
  19. 23
      ports/zlib/default.nix
  20. 16
      release.nix
  21. 37
      shell.nix
  22. 477
      tool/default.nix
  23. 12
      tool/prepare-port/builder.sh
  24. 2
      tool/prepare-port/default-builder.sh
  25. 42
      tool/prepare-port/default.nix
  26. 261
      tool/prepare-port/genode_rel.ld
  27. 1264
      tool/prepare-port/setup.sh
  28. 7
      tool/setup-hooks.sh
  29. 69
      tool/toolchain.nix
  30. 73
      upstream/default.nix

2
.gitignore vendored

@ -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