Commit Graph
30 Commits
Author SHA1 Message Date
Michał Kowalczyk 19b8dee8ee pal_loader: Disable the annoying GDB banner
Because GDB is awesome this isn't actually configurable in .gdbinit (or
at least I couldn't find any way to do this) and we need to fix it via
the commandline.
2020-04-25 02:14:31 +02:00
Michał Kowalczyk 4f57ada563 [Pal] Clean up argv handling and PAL invocation
This is a preparation for even more clean-ups and bugfixes, which are
required by protected argv+envp implementation.
2020-04-20 22:00:58 +02:00
Isaku Yamahata df358b8ba8 [Make] Consistently use $(RM) instead of rm -f 2020-02-12 01:09:21 +01:00
Isaku Yamahata ff0fd4d0fd [.gitignore] Remove * from .gitignore files
Plain wildcards `*` in .gitignore are considered a bad practice
because they may cause unintended ignore of files. This commit
replaces `*` with explicit lists of file names.
2020-02-11 12:15:56 -08:00
borysp d4dcbdd76b [Runtime] Fix pal_loader bash script typo 2020-02-10 00:13:13 +01:00
Isaku Yamahata 43ef9982e2 [Runtime] Fix pal_loader bash script for shellcheck 2020-02-05 23:21:06 -08:00
Isaku Yamahata 50bdec8a23 [LibOS,Pal] Move Makefile.Host under Scripts/ 2020-02-05 23:21:05 -08:00
Isaku Yamahata 0912f20ccf [LibOS,Pal] Unify the setting of CC and remove raw gcc invocations 2020-02-05 23:21:05 -08:00
Simon Gaiser 7377a787bc [Makefile] Add distclean target
Before, there was no target that cleaned up downloaded sources. This
commit adds a distclean target to match the 'apps' Makefiles.
2020-02-04 01:15:08 +01:00
Jia Zhang fd0c564cf9 [Pal] pal_loader: Detect PAL_HOST if make is unavailable
In certain cases (e.g, a container runtime for production), `make` and `gcc`
programs may be unavailable. In this case, detect `PAL_HOST` based on the
base name of libpal.
2019-10-22 19:32:55 -07:00
Wojtek Porczyk e0b690f22e [PAL] fix pal_loader SGX invocation
This fixes regression from 2d29f7aaeb
2019-10-01 23:39:42 +02:00
Simon Gaiser 2d29f7aaeb [Makefile] Drop SGX_RUN
For detection of SGX/non-SGX (for example in regression tests) always
use the SGX environment variable. To generate launch/EINIT tokens use
the new 'sgx-tokens' Make target.
2019-09-27 12:38:14 +02:00
Simon Gaiser 1ff85d10a3 [Makefile] Move building of tests to a separate target
Fixes #204.
2019-08-14 00:44:17 +02:00
Simon Gaiser 4e33068678 [Makefile] Drop unused targets 2019-08-14 00:44:17 +02:00
Isaku Yamahata 161ea54354 [pal_loader] Introduce INSIDE_EMACS arg to pal_loader so it runs GDB under Emacs 2019-08-05 12:22:27 -07:00
Michał Kowalczyk 5ec5e2f24c Delete all reference monitor residues 2019-07-31 02:30:47 +02:00
Chia-Che Tsai ad0dd8be31 [PAL] Purge the reference monitor loader code (move to EXPERIMENTAL)
This commit removes the following from the master Graphene branch (this
is now moved to the EXPERIMENTAL/linux-reference-monitor branch):
- Remove reference monitor loader code
- Remove sandboxing code and dependency to reference monitor code
- Remove Linux kernel changes for reference monitor
- Remove README instructions and scripts regarding reference monitor
2019-07-26 15:32:49 -07:00
Michał Kowalczyk c9eb1d84e1 Fix Bash shebangs compatibility 2019-02-05 17:59:25 +01:00
Isaku Yamahata 13b859b789 Runtime/Makefile: all goal should be default
Since clean rule is first target, just "make" means "make clean" as default goal.
This is a surprise. usually "make" means "make all".
So move all rule to the first target.

Signed-off-by: Isaku Yamahata <isaku.yamahata@gmail.com>
2019-02-04 10:07:53 -05:00
Isaku Yamahata 4a63e6a577 [LibOS/benchmark] make LibOS/shim/tests/benchmark build again
This patch fixes up to make LibOS/shim/tests/benchmark build again.
It addresses small 4 issues as follows.

- Runtime/pal_loader
  pass --no-print-directory to make pal_loader doesn't work as
  expected when it's invoked by make command as below.  pal_loader
  invokes make with --quiet. But when pal_loader is called by make as
  sub command, the message, "Entering/Leaving <dir>" is still output.
  pass --no-print-directory to make to suppress Entering/Leaving
  message.

  > /graphene/Runtime/pal-make[1]: Entering
  > directory '/graphene/Pal/test'
  > Linux
  > make[1]: Leaving directory
  > '/graphene/devel/graphene/Pal/test' is not built, or
  > security mode is not supported

- fix up Makefiles to build LibOS/shim/tests/benchmark
  Otherwise the build fails as follows.
  > $ make
  > ln -sf ../../../../Runtime/pal_loader
  > [ fork_latency ]
  > [ test_start.m ]
  > [ rpc_latency.libos ]
  > /usr/bin/ld: cannot find -llibos
  > collect2: error: ld returned 1 exit status
  > Makefile:18: recipe for target 'rpc_latency.libos' failed
  > make: *** [rpc_latency.libos] Error 1

- update stale manifest.template

- update .gitignore
  The change set of 7f5a4cc made Makefile create .lib directory.
  So add it to .gitignore.

Signed-off-by: Isaku Yamahata <isaku.yamahata@gmail.com>
2019-01-22 23:06:45 +01:00
Michał Kowalczyk f14049316a [Build] Add make format target 2018-12-04 00:17:52 +01:00
Chia-Che Tsai f8bf469018 Cleaning up and rewriting VMA bookkeeping code (#183)
1. Redesign of the VMA bookkeeping logic in the library OS
2. ASLR reimplementation
3. Support MAP_32BITS flags for mmap()
4. Safeguarding library OS internal memory from user memory and checkpoint buffers
5. Eliminating race conditions at VMA lookup and bookkeeping
6. Enable early VMA bookkeeping during initialization
7. Adding documentation for the VMA implementation
2018-04-16 08:47:50 -07:00
Chia-Che Tsai 3aaf591fc5 Fixing a bunch of memory leaking issues (#86)
* add memusg to pal_loader script

* Stop bleeding PAL handles.

Deprecating DkOjectReference and reference counting in PAL handle.
Deprecating DkSemaphoreDestroy and DkEventDestroy (replaced by DkObjectClose).
Cleaning unused PAL handles in the library OS.
Adding a heap tracing feature to profile usage of PAL handles.

* fix a bug in SGX mode that mapping untrusted files into memory never got free by DkVirtualMemoryFree()

* adding lighttpd SSL option

* fixing the freeing convention of PAL handles; On SGX, event and mutex handles need to be freed seperately.

* changing how mutexes and events are allocated on SGX

* fixing GCC regression tests (for both Linux and SGX)

* fix a double-free problem of the first thread handle
2017-12-08 10:46:55 -08:00
Michał Kowalczyk 3a24ad56d4 Add lacking .PHONY to Makefiles (#118) 2017-11-25 08:56:36 +00:00
Don Porter 9357833e52 Get LTP running again on SGX 2017-04-07 12:59:10 -04:00
Chia-Che Tsai 3cf3bd2df3 fix a bug in allocating enclave pages. another bug in waking enclave threads 2017-02-11 16:11:20 -05:00
Chia-Che Tsai 76967f39d3 Bugfixes:
- Fixing AES-CMAC algorithm
- Using SHA512 to hash file stubs (much faster than SHA256 and AES-CMAC)
- Hardening enclave interface (still work-in-progress); delt with issue #28
- Handling socket/pipe polling better
- Allowing setting the lowest heap address in enclaves ('sgx.heap_min' in manifest)
- Fixing the pipe between processes (for SGX)
- Fixing race condition in futex handling in LibOS
- Inheriting epoll handles in forked chilren
- Assigning signal code (now only hard-coding FPE_INTDIV, BUS_ADRERR, SEGV_ACCERR, SEGV_MAPERR)
- Fixing race condition in vma allocation (likely to fix bug() in bookkeep/shim_vma.c)
- Clearer debug message in LibOS
- Fixing calling convention in LibOS and glibc
- Fixing futex behavior (FUTEX_WAIT takes relative time, FUTEX_WAIT_BITSET takes absolute time)
- More system call implemented
- More application working (NGINX)
2017-02-11 09:03:47 -05:00
Don Porter 28585ad957 Fix build of python on SGX (#41) 2017-02-02 23:58:56 -05:00
Don Porter 04fe97ec0e A few more fixes 2017-02-02 17:26:32 -05:00
Chia-Che Tsai 2d4bfeeb29 move pal_loader to Runtime. finding manifest.sgx from manifest 2017-02-02 10:01:48 -05:00