Ryan Houdek
7e2e6fc27f
Adds basic emulated files support
...
Allows us to override some files explicitly
2020-03-06 07:56:15 +02:00
Ryan Houdek
472ec5f5cf
Adds 11 new emulated syscalls
2020-03-06 07:56:15 +02:00
Ryan Houdek
4523ec52de
Fixes struct stat being different definitions on x86 and Arm
2020-03-06 07:56:13 +02:00
Ryan Houdek
299947e3bf
Change syscall time debug to a define
2020-03-06 07:56:13 +02:00
Ryan Houdek
eb1f643e16
Use header provided syscall defines
2020-03-06 07:56:13 +02:00
Ryan Houdek
3402b7293e
Implements some more syscalls seen by remote X11
2020-03-06 07:56:07 +02:00
Ryan Houdek
6ee7d493f3
Adds the ability to set a rootfs overlay path
2020-03-06 07:56:07 +02:00
Ryan Houdek
124dc592a9
Syscall additions and improvements
...
Fixes a bug in writev where we need to parse the iovec struct and
convert it.
Implements 15 new syscalls
2020-03-06 07:56:04 +02:00
Ryan Houdek
f3e5ee4840
Adds new syscalls to emulate
...
Adds ten new syscalls that I managed to hit in console apps
2020-03-06 07:56:03 +02:00
Ryan Houdek
6e46a28116
Fixes bug in syscall gettime
...
gettime can have a nullptr argument and also we were using the wrong
argument
2020-03-06 07:56:02 +02:00
Ryan Houdek
1b4e9434e4
Add accurate std output option
...
This gives us accurate stdout and stderr output.
Useful for terminal applications that take advantage of ncurses or
similar
2020-03-06 07:56:02 +02:00
Ryan Houdek
9c873d85ec
Fixes mmap syscall to work for dlopen and dlsym
...
This makes my test app that is loading ld.so with dlopen actually work.
2020-03-06 07:56:00 +02:00
Scott Mansell
e9923fa704
Add lseek syscall
2020-03-06 07:56:00 +02:00
Scott Mansell
86fc779f81
Add getcwd syscall
2020-03-06 07:55:36 +02:00
Scott Mansell
d32ebc0de0
Signal our lack of support for CET shadow stacks
...
Needed to support binaries linked with glibc 2.30 and later.
glibc doesn't actually check CPUID, as kernel support is needed.
Instead, it just calls ARCH_CET_STATUS and checks for an error.
2020-03-06 07:55:18 +02:00
Ryan Houdek
199cfd76d8
Refactor IR and other changes that are hard to split
...
I had to change how blocks are represented to make it easier to parse
This required a fairly substantial refactor that makes it so blocks are
represented differently and we can walk them sequentially.
This will make future analysis easier to deal with.
Had to rewrite the passes and core's parsing of the IR afterwards.
Moved RA in to a optimization pass to be shared between the JIT backends
This works because x86-64 and AArch64 RA can be identical.
Still doesn't support PHI nodes or spilling correctly, this is the first
step in the process of getting there.
2020-03-06 07:55:13 +02:00
Ryan Houdek
71a9713970
Add some stracing to the syscall emulation
2020-03-06 07:54:32 +02:00
Ryan Houdek
55b4eb8689
Defined a few more Linux syscalls
2020-03-06 07:54:32 +02:00
Ryan Houdek
47d91e05f0
Add ioctl to filemanagement
2020-03-06 07:54:31 +02:00
Ryan Houdek
febd707634
Removes some debug logging in the file manager and stops explicitly avoiding the ld.so.cache
2020-03-06 07:52:33 +02:00
Ryan Houdek
7252050e42
Initial commit
2020-03-06 07:48:39 +02:00