This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.28.9000-313-gc089fd8
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Nov 2018 15:55:08 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.28.9000-313-gc089fd8
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via c089fd80c793b1a987e1a6e9a08248b0861ec7ed (commit)
from 95edd05c75af2208c62174d135d76b897969a9af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c089fd80c793b1a987e1a6e9a08248b0861ec7ed
commit c089fd80c793b1a987e1a6e9a08248b0861ec7ed
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Nov 23 07:30:56 2018 -0800
x86/CET: Add a re-exec test with legacy bitmap
Add a re-exec test with legacy bitmap to verify that legacy bitmap is
properly hanlded by kernel.
* sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.
(tst-cet-legacy-1a-ARGS): New.
($(objpfx)tst-cet-legacy-1a): New target.
* sysdeps/x86/tst-cet-legacy-1a.c: New file.
diff --git a/ChangeLog b/ChangeLog
index 29f649e..ce7a55f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2018-11-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.
+ (tst-cet-legacy-1a-ARGS): New.
+ ($(objpfx)tst-cet-legacy-1a): New target.
+ * sysdeps/x86/tst-cet-legacy-1a.c: New file.
+
2018-11-22 Joseph Myers <joseph@codesourcery.com>
* conform/conformtest.py (CompileSubTest.__init__): Set
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index f2fd031..7ec46ca 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -18,8 +18,9 @@ ifeq ($(enable-cet),yes)
ifeq ($(subdir),elf)
sysdep-dl-routines += dl-cet
-tests += tst-cet-legacy-1 tst-cet-legacy-2 tst-cet-legacy-2a \
- tst-cet-legacy-3 tst-cet-legacy-4
+tests += tst-cet-legacy-1 tst-cet-legacy-1a tst-cet-legacy-2 \
+ tst-cet-legacy-2a tst-cet-legacy-3 tst-cet-legacy-4
+tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd)
ifneq (no,$(have-tunables))
tests += tst-cet-legacy-4a tst-cet-legacy-4b tst-cet-legacy-4c
endif
@@ -38,6 +39,8 @@ CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
$(objpfx)tst-cet-legacy-1: $(objpfx)tst-cet-legacy-mod-1.so \
$(objpfx)tst-cet-legacy-mod-2.so
+$(objpfx)tst-cet-legacy-1a: $(objpfx)tst-cet-legacy-mod-1.so \
+ $(objpfx)tst-cet-legacy-mod-2.so
$(objpfx)tst-cet-legacy-2: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
$(objpfx)tst-cet-legacy-2.out: $(objpfx)tst-cet-legacy-mod-1.so
$(objpfx)tst-cet-legacy-2a: $(objpfx)tst-cet-legacy-mod-2.so $(libdl)
diff --git a/sysdeps/x86/tst-cet-legacy-1a.c b/sysdeps/x86/tst-cet-legacy-1a.c
new file mode 100644
index 0000000..8fde296
--- /dev/null
+++ b/sysdeps/x86/tst-cet-legacy-1a.c
@@ -0,0 +1,81 @@
+/* Test for re-exec with legacy bitmap.
+ Copyright (C) 2018 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <support/check.h>
+
+/* Nonzero if the program gets called via `exec'. */
+static int restart;
+
+#define CMDLINE_OPTIONS \
+ { "restart", no_argument, &restart, 1 },
+
+extern int do_test (int argc, char *argv[]);
+
+extern int in_dso_1 (void);
+extern int in_dso_2 (void);
+
+static int
+check (void)
+{
+ if (in_dso_1 () != 0x1234678)
+ {
+ puts ("in_dso_1 () != 0x1234678");
+ exit (1);
+ }
+
+ if (in_dso_2 () != 0xbadbeef)
+ {
+ puts ("in_dso_2 () != 0xbadbeef");
+ exit (1);
+ }
+
+ return 0;
+}
+
+int
+do_test (int argc, char *argv[])
+{
+ /* We must have
+ - one or four parameters left if called initially
+ + path for ld.so optional
+ + "--library-path" optional
+ + the library path optional
+ + the application name
+ */
+
+ if (restart)
+ return check ();
+
+ if (argc != 2 && argc != 5)
+ FAIL_EXIT1 ("wrong number of arguments (%d)", argc);
+
+ if (argc == 5)
+ execl (argv[1], argv[1], argv[2], argv[3], argv[4], "--direct",
+ "--restart", NULL);
+ else
+ execl (argv[1], argv[1], "--direct", "--restart", NULL);
+
+ return -1;
+}
+
+#define TEST_FUNCTION_ARGV do_test
+#include <support/test-driver.c>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 ++
sysdeps/x86/Makefile | 7 ++-
.../{tst-cet-legacy-2.c => tst-cet-legacy-1a.c} | 69 ++++++++++++-------
3 files changed, 55 insertions(+), 28 deletions(-)
copy sysdeps/x86/{tst-cet-legacy-2.c => tst-cet-legacy-1a.c} (52%)
hooks/post-receive
--
GNU C Library master sources