mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
compel: gcs: add opt-in GCS test support for AArch64
Introduce an opt-in mode for building and running compel tests
with Guarded Control Stack (GCS) enabled on AArch64.
Changes:
- Extend compel/test/infect to support `GCS_ENABLE=1` builds,
adding `-mbranch-protection=standard` and
`-z experimental-gcs=check` to CFLAGS/LDFLAGS.
- Export required GLIBC_TUNABLES at runtime via `TEST_ENV`.
Usage:
make -C compel/test/infect GCS_ENABLE=1
make -C compel/test/infect GCS_ENABLE=1 run
By default (`GCS_ENABLE` unset or 0), builds and runs are unchanged.
Signed-off-by: Igor Svilenkov Bozic <svilenkov@gmail.com>
This commit is contained in:
parent
2f676d20e4
commit
92e6e523b5
2 changed files with 9 additions and 1 deletions
|
|
@ -3,6 +3,11 @@ CFLAGS ?= -O2 -g -Wall -Werror
|
|||
|
||||
COMPEL := ../../../compel/compel-host
|
||||
|
||||
ifeq ($(GCS_ENABLE),1)
|
||||
CFLAGS += -mbranch-protection=standard -DGCS_TEST_ENABLE=1
|
||||
LDFLAGS += -z experimental-gcs=check
|
||||
endif
|
||||
|
||||
all: victim spy
|
||||
|
||||
run:
|
||||
|
|
@ -17,7 +22,7 @@ clean:
|
|||
rm -f parasite.o
|
||||
|
||||
victim: victim.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
spy: spy.c parasite.h
|
||||
$(CC) $(CFLAGS) $(shell $(COMPEL) includes) -o $@ $< $(shell $(COMPEL) --static libs)
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ int main(int argc, char **argv)
|
|||
return -1;
|
||||
}
|
||||
|
||||
#ifdef GCS_TEST_ENABLE
|
||||
setenv("GLIBC_TUNABLES", "glibc.cpu.aarch64_gcs=1:glibc.cpu.aarch64_gcs_policy=2", 1);
|
||||
#endif
|
||||
pid = vfork();
|
||||
if (pid == 0) {
|
||||
close(p_in[1]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue