OpenBSD compatibility, except that GCC is not emiting valid SSE asm, so disable it on OpenBSD
This commit is contained in:
parent
2b2ca1baf5
commit
c21d271af5
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,6 @@
|
|||||||
spectre_*-*
|
spectre_*-*
|
||||||
*.json
|
*.json
|
||||||
|
uuid
|
||||||
|
uuid_obsd/uuid.d
|
||||||
|
uuid_obsd/uuid.o
|
||||||
|
uuid_obsd/uuid
|
||||||
|
46
Makefile
46
Makefile
@ -17,10 +17,10 @@
|
|||||||
.SILENT:
|
.SILENT:
|
||||||
|
|
||||||
ifeq ($(shell uname),OpenBSD)
|
ifeq ($(shell uname),OpenBSD)
|
||||||
GCC:= egcc
|
GCC:=
|
||||||
DEPS:= $(GCC) clang ./uuid
|
DEPS:= clang ./uuid
|
||||||
ifndef MKUUID
|
ifndef MKUUID
|
||||||
MKUUID!= $(shell $(MAKE) uuid)
|
MKUUID!= $(shell stat uuid > /dev/null 2>&1 || (make -C uuid_obsd && ln -s uuid_obsd/uuid uuid))
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
GCC:= gcc
|
GCC:= gcc
|
||||||
@ -28,12 +28,14 @@ DEPS:= $(GCC) clang uuid lld
|
|||||||
LDFLAGS+= -fuse-ld=lld
|
LDFLAGS+= -fuse-ld=lld
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef MKUUID
|
||||||
EXECUTABLES= $(DEPS)
|
EXECUTABLES= $(DEPS)
|
||||||
XXXX:= $(foreach exec,$(EXECUTABLES), $(if $(shell which $(exec) 2> /dev/null),X,$(error "No '$(exec)' in PATH, please install it and restart octopus !")))
|
XXXX:= $(foreach exec,$(EXECUTABLES), $(if $(shell which $(exec) 2> /dev/null),X,$(error "No '$(exec)' in PATH, please install it and restart octopus !")))
|
||||||
|
endif
|
||||||
|
|
||||||
### Generic flags
|
### Generic flags
|
||||||
SRCS= spectre_v1 spectre_v2
|
SRCS= spectre_v1 spectre_v2
|
||||||
CFLAGS= -march=native
|
CFLAGS+= -march=native
|
||||||
CFLAGS+= -W
|
CFLAGS+= -W
|
||||||
CFLAGS+= -Wall
|
CFLAGS+= -Wall
|
||||||
CFLAGS+= -Werror -Wextra
|
CFLAGS+= -Werror -Wextra
|
||||||
@ -44,20 +46,26 @@ CFLAGS+= -Wno-missing-field-initializers
|
|||||||
CCS= clang $(GCC)
|
CCS= clang $(GCC)
|
||||||
OPTIMIZATIONS= 0 1 2 3 fast s
|
OPTIMIZATIONS= 0 1 2 3 fast s
|
||||||
RETPOLINE= mretpoline
|
RETPOLINE= mretpoline
|
||||||
UUID:= $(shell uuid || uuidgen || ./uuid)
|
UUID:= $(shell uuid 2> /dev/null || uuidgen 2> /dev/null || ./uuid)
|
||||||
RESULTS_FILE:= results-$(UUID).json
|
RESULTS_FILE:= results-$(UUID).json
|
||||||
SSH_KEY= octoupload
|
SSH_KEY= octoupload
|
||||||
TIMES= 3
|
TIMES= 3
|
||||||
OCTOFLAGS= -j
|
OCTOFLAGS= -j
|
||||||
|
|
||||||
|
ifeq ($(shell uname),OpenBSD)
|
||||||
|
COUNTER= $(shell jot $(TIMES) 1)
|
||||||
|
else
|
||||||
|
COUNTER= $(shell seq $(TIMES))
|
||||||
|
endif
|
||||||
|
|
||||||
### Octopus internals
|
### Octopus internals
|
||||||
CPU:= $(shell LC_ALL=en_US.UTF-8 lscpu | grep "Model name" | cut -d":" -f 2 | sort | uniq | awk '{$$1=$$1;print}')
|
CPU:= $(shell LC_ALL=en_US.UTF-8 lscpu | grep "Model name" | cut -d":" -f 2 | sort | uniq | awk '{$$1=$$1;print}')
|
||||||
UCODE:= $(shell (grep microcode /proc/cpuinfo || printf unknown) | sort | uniq | awk '{print $$NF}' || printf unknown)
|
UCODE:= $(shell (grep microcode /proc/cpuinfo 2> /dev/null || printf unknown) | sort | uniq | awk '{print $$NF}' || printf unknown)
|
||||||
KERN:= $(shell uname -svm)
|
KERN:= $(shell uname -svm)
|
||||||
CLANGV:= $(shell clang -v 2>&1 | head -n 1)
|
CLANGV:= $(shell clang -v 2>&1 | head -n 1)
|
||||||
GCCV:= $(shell gcc -v 2>&1 | grep 'gcc version')
|
GCCV:= $(shell (gcc -v 2>&1 | grep 'gcc version') || printf unknown)
|
||||||
VULN1:= $(shell (cat /sys/devices/system/cpu/vulnerabilities/spectre_v1 || printf unknown))
|
VULN1:= $(shell (cat /sys/devices/system/cpu/vulnerabilities/spectre_v1 2> /dev/null || printf unknown))
|
||||||
VULN2:= $(shell (cat /sys/devices/system/cpu/vulnerabilities/spectre_v2 || printf unknown))
|
VULN2:= $(shell (cat /sys/devices/system/cpu/vulnerabilities/spectre_v2 2> /dev/null || printf unknown))
|
||||||
|
|
||||||
|
|
||||||
ifneq ($(shell uname),OpenBSD)
|
ifneq ($(shell uname),OpenBSD)
|
||||||
@ -134,13 +142,13 @@ upload: $(RESULTS_FILE)
|
|||||||
build: $(PROGS)
|
build: $(PROGS)
|
||||||
|
|
||||||
$(RESULTS_FILE): build
|
$(RESULTS_FILE): build
|
||||||
printf "\033[1m\033[94m________ __\n";
|
printf '\033[1m\033[94m________ __\n'
|
||||||
printf "\_____ \ _____/ |_ ____ ______ __ __ ______\n";
|
printf '\\_____ \\ _____/ |_ ____ ______ __ __ ______\n'
|
||||||
printf " / | \_/ ___\ __\/ _ \\____ \| | \/ ___/\n";
|
printf ' / | \\_/ ___\\ __\\/ _ \\\\____ \\| | \\/ ___/\n'
|
||||||
printf "/ | \ \___| | ( <_> ) |_> > | /\___ \ \n";
|
printf '/ | \\ \\___| | ( <_> ) |_> > | /\\___ \\ \n'
|
||||||
printf "\_______ /\___ >__| \____/| __/|____//____ >\n";
|
printf '\\_______ /\\___ >__| \\____/| __/|____//____ >\n'
|
||||||
printf " \/ \/ |__| \/\033[0m\n";
|
printf ' \\/ \\/ |__| \\/\033[0m\n'
|
||||||
printf " Samuel AUBERTIN - EURECOM\n"
|
printf ' Samuel AUBERTIN - EURECOM\n'
|
||||||
printf "\033[4mUUID\033[0m\t\t$(UUID)\n"
|
printf "\033[4mUUID\033[0m\t\t$(UUID)\n"
|
||||||
printf "\033[4mCPU\033[0m\t\t$(CPU)\n"
|
printf "\033[4mCPU\033[0m\t\t$(CPU)\n"
|
||||||
printf "\033[4mMicrocode\033[0m\t$(UCODE)\n"
|
printf "\033[4mMicrocode\033[0m\t$(UCODE)\n"
|
||||||
@ -159,7 +167,7 @@ $(RESULTS_FILE): build
|
|||||||
printf "\"spectre_v2\": \"$(VULN2)\",\n" >> $@
|
printf "\"spectre_v2\": \"$(VULN2)\",\n" >> $@
|
||||||
printf "\"results\": [\n" >> $@
|
printf "\"results\": [\n" >> $@
|
||||||
for p in $(PROGS); do \
|
for p in $(PROGS); do \
|
||||||
for t in $$(seq $(TIMES)); do \
|
for t in $(COUNTER); do \
|
||||||
sleep 0.1; \
|
sleep 0.1; \
|
||||||
(./$$p $(OCTOFLAGS) || printf "{ \"$$p\": false }")>> $@; \
|
(./$$p $(OCTOFLAGS) || printf "{ \"$$p\": false }")>> $@; \
|
||||||
if ! [ "$$p" = "$(lastword $(PROGS))" ]; \
|
if ! [ "$$p" = "$(lastword $(PROGS))" ]; \
|
||||||
@ -220,8 +228,6 @@ $(RSGPROGS):
|
|||||||
@$(PROGRESS) $(SUB_TWO) $(addprefix -, $(SUB_FOUR)) $(CFLAGS) -mfunction-return=thunk -mindirect-branch=thunk -mindirect-branch-register -$(SUB_THREE) -o $@ $(SUB_ONE).c
|
@$(PROGRESS) $(SUB_TWO) $(addprefix -, $(SUB_FOUR)) $(CFLAGS) -mfunction-return=thunk -mindirect-branch=thunk -mindirect-branch-register -$(SUB_THREE) -o $@ $(SUB_ONE).c
|
||||||
$(SUB_TWO) $(addprefix -, $(SUB_FOUR)) $(CFLAGS) -mfunction-return=thunk -mindirect-branch=thunk -mindirect-branch-register -$(SUB_THREE) -o $@ $(SUB_ONE).c
|
$(SUB_TWO) $(addprefix -, $(SUB_FOUR)) $(CFLAGS) -mfunction-return=thunk -mindirect-branch=thunk -mindirect-branch-register -$(SUB_THREE) -o $@ $(SUB_ONE).c
|
||||||
|
|
||||||
uuid:
|
|
||||||
$(CC) -o $@ uuid.c
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(PROGS) *.json
|
rm -rf $(PROGS) *.json
|
||||||
|
make -C uuid_obsd clean
|
||||||
|
7
uuid_obsd/Makefile
Normal file
7
uuid_obsd/Makefile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# $OpenBSD: Makefile,v 1.4 2017/02/19 00:46:57 jca Exp $
|
||||||
|
|
||||||
|
PROG= uuid
|
||||||
|
NOMAN=
|
||||||
|
|
||||||
|
|
||||||
|
.include <bsd.prog.mk>
|
Loading…
Reference in New Issue
Block a user