about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2020-05-30 19:28:47 +0100
committerDavid Carlier <devnexen@gmail.com>2020-05-30 19:28:47 +0100
commit0adb664a315dbd3c5e63c348de0dfd44ff05edb4 (patch)
treeeacd1a1164e1966945ea385f4a46070884584815
parent4a5432890185fdce0fbfde60f507526ae6cf8a04 (diff)
downloadafl++-0adb664a315dbd3c5e63c348de0dfd44ff05edb4.tar.gz
OpenBSD build update and llvm mode fix
Unlike upstream version, LLVM in OpenBSD enable by default anti ROP gadget
 leading to bigger binaries and lower performances.
On OpenBSD, it needs to link to c++ abi for th unwind symbols.
-rw-r--r--GNUmakefile2
-rw-r--r--llvm_mode/GNUmakefile4
2 files changed, 5 insertions, 1 deletions
diff --git a/GNUmakefile b/GNUmakefile
index dd817d35..7556b617 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -100,7 +100,7 @@ ifeq "$(shell uname -s)" "DragonFly"
 endif
 
 ifeq "$(shell uname -s)" "OpenBSD"
-  override CFLAGS  += -I /usr/local/include/
+  override CFLAGS  += -I /usr/local/include/ -mno-retpoline
   LDFLAGS += -Wl,-z,notext -L /usr/local/lib/
 endif
 
diff --git a/llvm_mode/GNUmakefile b/llvm_mode/GNUmakefile
index 50a6be2b..b2f5a366 100644
--- a/llvm_mode/GNUmakefile
+++ b/llvm_mode/GNUmakefile
@@ -226,6 +226,10 @@ endif
 
 ifeq "$(shell uname)" "OpenBSD"
   CLANG_LFL += `$(LLVM_CONFIG) --libdir`/libLLVM.so
+  CLANG_CFL += -mno-retpoline
+  CFLAGS += -mno-retpoline
+  # Needed for unwind symbols
+  LDFLAGS += -lc++abi
 endif
 
 ifeq "$(shell echo '$(HASH)include <sys/ipc.h>@$(HASH)include <sys/shm.h>@int main() { int _id = shmget(IPC_PRIVATE, 65536, IPC_CREAT | IPC_EXCL | 0600); shmctl(_id, IPC_RMID, 0); return 0;}' | tr @ '\n' | $(CC) -x c - -o .test2 2>/dev/null && echo 1 || echo 0 ; rm -f .test2 )" "1"