Message ID | 20231216165325.2584919-9-hjl.tools@gmail.com |
---|---|
State | New |
Headers | show |
Series | x86/cet: Update CET kernel interface | expand |
On Sat, Dec 16, 2023 at 8:53 AM H.J. Lu <hjl.tools@gmail.com> wrote: > > Verify that CPU_FEATURE_ACTIVE works properly in permissive mode. > --- > sysdeps/x86/Makefile | 1 + > sysdeps/x86/tst-cet-legacy-4.c | 5 +++++ > 2 files changed, 6 insertions(+) > > diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile > index 1bf6ff9e11..6911a07a87 100644 > --- a/sysdeps/x86/Makefile > +++ b/sysdeps/x86/Makefile > @@ -219,6 +219,7 @@ CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none > CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none > CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none > CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch > +CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1 > CFLAGS-tst-cet-legacy-4a.c += -fcf-protection > CFLAGS-tst-cet-legacy-4b.c += -fcf-protection > CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none > diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c > index d75fb0e61c..c098120253 100644 > --- a/sysdeps/x86/tst-cet-legacy-4.c > +++ b/sysdeps/x86/tst-cet-legacy-4.c > @@ -21,6 +21,7 @@ > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > +#include <sys/platform/x86.h> > > #include <support/check.h> > > @@ -40,6 +41,10 @@ do_test (void) > return 0; > } > > +#ifdef CET_IS_PERMISSIVE > + TEST_VERIFY (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK)); > +#endif > + > fp = dlsym (h, "test"); > if (fp == NULL) > FAIL_EXIT1 ("cannot get symbol 'test': %s\n", dlerror ()); > -- > 2.43.0 > I will check it in tomorrow if there is no objection.
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile index 1bf6ff9e11..6911a07a87 100644 --- a/sysdeps/x86/Makefile +++ b/sysdeps/x86/Makefile @@ -219,6 +219,7 @@ CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch +CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1 CFLAGS-tst-cet-legacy-4a.c += -fcf-protection CFLAGS-tst-cet-legacy-4b.c += -fcf-protection CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c index d75fb0e61c..c098120253 100644 --- a/sysdeps/x86/tst-cet-legacy-4.c +++ b/sysdeps/x86/tst-cet-legacy-4.c @@ -21,6 +21,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/platform/x86.h> #include <support/check.h> @@ -40,6 +41,10 @@ do_test (void) return 0; } +#ifdef CET_IS_PERMISSIVE + TEST_VERIFY (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK)); +#endif + fp = dlsym (h, "test"); if (fp == NULL) FAIL_EXIT1 ("cannot get symbol 'test': %s\n", dlerror ());