[openssh-commits] [openssh] 01/01: Expand -fzero-call-used-regs test to cover gcc 11.

git+noreply at mindrot.org git+noreply at mindrot.org
Tue Nov 21 16:24:32 AEDT 2023


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 99a2df5e1994cdcb44ba2187b5f34d0e9190be91
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Tue Nov 21 16:19:29 2023 +1100

    Expand -fzero-call-used-regs test to cover gcc 11.
    
    It turns out that gcc also has some problems with -fzero-call-used-regs,
    at least v11 on mips.  Previously the test in OSSH_CHECK_CFLAG_COMPILE
    was sufficient to catch it with "=all", but not sufficient for "=used".
    Expand the testcase and include it in the other tests for good measure.
    See bz#3629.  ok djm at .
---
 m4/openssh.m4 | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/m4/openssh.m4 b/m4/openssh.m4
index 8c33c701..e6d392a0 100644
--- a/m4/openssh.m4
+++ b/m4/openssh.m4
@@ -15,7 +15,7 @@ AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{
 #include <stdlib.h>
 #include <stdio.h>
 /* Trivial function to help test for -fzero-call-used-regs */
-void f(int n) {}
+int f(int n) {return rand() % n;}
 int main(int argc, char **argv) {
 	(void)argv;
 	/* Some math to catch -ftrapv problems in the toolchain */
@@ -65,6 +65,8 @@ AC_DEFUN([OSSH_CHECK_CFLAG_LINK], [{
 	AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <stdlib.h>
 #include <stdio.h>
+/* Trivial function to help test for -fzero-call-used-regs */
+int f(int n) {return rand() % n;}
 int main(int argc, char **argv) {
 	(void)argv;
 	/* Some math to catch -ftrapv problems in the toolchain */
@@ -73,6 +75,7 @@ int main(int argc, char **argv) {
 	double m = l / 0.5;
 	long long int n = argc * 12345LL, o = 12345LL * (long long int)argc;
 	long long int p = n * o;
+	f(0);
 	printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p);
 	exit(0);
 }
@@ -104,6 +107,8 @@ AC_DEFUN([OSSH_CHECK_LDFLAG_LINK], [{
 	AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #include <stdlib.h>
 #include <stdio.h>
+/* Trivial function to help test for -fzero-call-used-regs */
+int f(int n) {return rand() % n;}
 int main(int argc, char **argv) {
 	(void)argv;
 	/* Some math to catch -ftrapv problems in the toolchain */
@@ -112,6 +117,7 @@ int main(int argc, char **argv) {
 	double m = l / 0.5;
 	long long int n = argc * 12345LL, o = 12345LL * (long long int)argc;
 	long long p = n * o;
+	f(0);
 	printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p);
 	exit(0);
 }

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list