2
0
Fork 0

Clean dead expressions

This commit is contained in:
Emery Hemingway 2019-09-23 20:34:54 +02:00
parent a2c2dcad29
commit db934b29d9
28 changed files with 1 additions and 5080 deletions

View File

@ -1,4 +1,4 @@
{ nixpkgs ? import <nixpkgs>, system ? { config = "x86_64-unknown-genode"; } }:
{ nixpkgs ? import <nixpkgs> }:
with builtins;
@ -13,34 +13,11 @@ let
overlays = [ (import ./overlay) ];
};
portIncludes = ports:
with builtins;
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; };
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; };
};
}

View File

@ -1,5 +0,0 @@
{ nixpkgs, stdcxx, libc, upstream, toolchain }:
{
scummvm = import ./scummvm { inherit nixpkgs stdcxx libc upstream toolchain; };
}

View File

@ -1,30 +0,0 @@
{ nixpkgs, stdcxx, libc, upstream, toolchain }:
nixpkgs.stdenvNoCC.mkDerivation
{ name = "scummvm";
src = nixpkgs.fetchFromGitHub
{ owner = "ehmry";
repo = "scummvm";
rev = "9e587c53316eb3ae41ae652ff079dbdbca2a8724";
sha256 = "0vyjlq6hahhifr9vl74i6i7mgpnr89zxhs5jb7kkr68z3d4vnkgd";
};
nativeBuildInputs = with nixpkgs.buildPackages;
[ toolchain pkgconfig ];
buildInputs = [ upstream.dev libc.dev stdcxx.dev ];
sourceRoot = "source/backends/platform/libretro/build";
postUnpack = "chmod -R a+rwX source";
enableParallelBuilding = true;
makeFlags = [ "platform=genode" ];
installPhase =
''
mkdir -p $out/bin
cp libretro.so $out/bin
'';
}

View File

@ -1,24 +0,0 @@
{ 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))
)
)

View File

@ -1,27 +0,0 @@
{ 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
'';
}

View File

@ -1,6 +0,0 @@
includedir=@includedir@
Name: EGL
Description: EGL API headers
Version: @version@
Cflags: -I${includedir}

View File

@ -1,52 +0,0 @@
{ 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;
}

View File

@ -1,255 +0,0 @@
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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@
Name: POSIX entrypoint
Description: Genode POSIX entrypoint library
Version: @DEPOT_VERSION@
Requires: libc
Libs: -l:posix.lib.so

View File

@ -1,31 +0,0 @@
{ 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/
'';
}

View File

@ -1,6 +0,0 @@
Name: Libm
Description: Genode C mathematic library
URL: https://genode.org/
Version: @version@
Cflags: -I@includedir@
Libs: -l:libm.lib.so

View File

@ -1,322 +0,0 @@
_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

View File

@ -1,63 +0,0 @@
{ 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/
'';
}

View File

@ -1,7 +0,0 @@
includedir=@includedir@
Name: mesa
Description: Mesa library
Version: @version@
Libs: -l:mesa.lib.so
Cflags: -I${includedir}

View File

@ -1,102 +0,0 @@
{ 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
'';
}

View File

@ -1,7 +0,0 @@
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

View File

@ -1,864 +0,0 @@
_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

View File

@ -1,23 +0,0 @@
{ 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
'';
}

View File

@ -1,35 +0,0 @@
{ nixpkgs, toolchain, dhallPackages, pkgs }:
let
args = {
name = "genode-dev-env";
buildInputs = with nixpkgs.buildPackages; [
toolchain
git
tup
ccache
pkgconfig
pkgs.upstream.base.dev
pkgs.ports.libc.dev
];
GENODE = pkgs.upstream.base;
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;
});
};
})

View File

@ -1,477 +0,0 @@
/*
* \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)
)));
}

View File

@ -1,12 +0,0 @@
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

View File

@ -1,2 +0,0 @@
source $preparePort/setup
genericBuild

View File

@ -1,42 +0,0 @@
{ 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) ];
})

View File

@ -1,261 +0,0 @@
/*
* \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

View File

@ -1,69 +0,0 @@
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; };
}