-
Notifications
You must be signed in to change notification settings - Fork 1
Protecting C++ Dispatch through Interleaved VTables
License
UCSD-PL/ivt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Low Level Virtual Machine (LLVM) + IVT/OVT (Interleaved/Ordered VTables) ================================ To get started: 1) Setup prerequisites - download and build binutils with gold support. Lets say that binutils source is in $(BINUTILS_SRC) and the built version is in $(BINUTILS_BUILD). git clone --depth 1 git://sourceware.org/git/binutils-gdb.git $(BINUTILS_SRC) mkdir $(BINUTILS_BUILD) cd $(BINUTILS_BUILD) $(BINUTILS_SRC)/configure --enable-gold --enable-plugins --disable-werror make -j 8 (or however many cores you can spare) (If you run into any weird errors with your binutils build, try removing the $(BINUTILS_BUILD) directory, re-creating it, and running configure/make again) 2) Clone the repo in $(REPO_DIR) git clone https://github.com/UCSD-PL/ivt.git $(REPO_DIR) 3) Build the repo in a directory $(REPO_BUILD_DIR): mkdir $(REPO_BUILD_DIR) cd $(REPO_BUILD_DIR) $(REPO_DIR)/configure --enable-optimized=1 --with-binutils-include=$(BINUTILS_SRC)/include make -j 8 (or however many cores you can spare...) 4) Set the benchmark paths - edit $(REPO_DIR)/benchmarks/folder.cfg and set the variables: LLVM_DIR="$(REPO_DIR)" LLVM_BUILD_DIR="$(REPO_BUILD_DIR)/Release+Asserts/bin" BINUTILS_BUILD_DIR="$(BINUTILS_BUILD)" 5) Symlink ld-new to ld inside the binutils build's gold directory: cd $(BINUTILS_BUILD)/gold ln -s ld-new ld 6) Build the two libraries - libdlcfi and libdyncast cd $(REPO_DIR)/libdlcfi make clean all cd $(REPO_DIR)/libdyncast make clean all 7) Run the benchmarks cd $(REPO_DIR)/benchmarks ./run_all_benchmarks.sh If the benchmarks run successfully, you should see something like this in the end: ############################################################ DONE !!! ############################################################
About
Protecting C++ Dispatch through Interleaved VTables
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published