fuckit_dot_so.git
10 years agoUse the LLVM disassembler to advance %rip.
Matt Mullins [Mon, 26 May 2014 02:04:51 +0000 (19:04 -0700)]
Use the LLVM disassembler to advance %rip.

This contains logic to only permit the LLVM disassembler to read the page
containing the faulting address, so this cannot handle instructions that span
two pages.  The effect of doing so would likely be ++%rip, but that has not
been tested yet.

10 years agoUse a GNU ld version script to hide all symbols
Matt Mullins [Mon, 26 May 2014 01:24:50 +0000 (18:24 -0700)]
Use a GNU ld version script to hide all symbols

Without this, running clang (or anything else that uses LLVM) will crash
because we might LD_PRELOAD the wrong symbol versions into its binary.

We don't need to export any symbols at all, since everything is done via the
.init section.  This library just needs to be mapped in memory somewhere so our
function pointers don't disappear.

10 years agoInitialize LLVM target and disassembler.
Matt Mullins [Sun, 25 May 2014 23:23:12 +0000 (16:23 -0700)]
Initialize LLVM target and disassembler.

10 years agoUse autoconf to build.
Matt Mullins [Sun, 25 May 2014 22:49:45 +0000 (15:49 -0700)]
Use autoconf to build.

10 years agoSet up LLVM at initialization.
Matt Mullins [Sun, 25 May 2014 22:06:29 +0000 (15:06 -0700)]
Set up LLVM at initialization.

10 years agoC++ doesn't do structure initialization.
Matt Mullins [Sun, 25 May 2014 22:02:43 +0000 (15:02 -0700)]
C++ doesn't do structure initialization.

10 years agoUse C++ because LLVM is C++.
Matt Mullins [Sun, 25 May 2014 21:55:02 +0000 (14:55 -0700)]
Use C++ because LLVM is C++.

10 years agoAdd supporting test programs.
Matt Mullins [Sun, 18 May 2014 00:13:19 +0000 (17:13 -0700)]
Add supporting test programs.

10 years agoInitial commit.
Matt Mullins [Sun, 18 May 2014 00:13:10 +0000 (17:13 -0700)]
Initial commit.