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