Module Name: src Committed By: mrg Date: Sun Jun 9 18:55:00 UTC 2024
Modified Files: src/crypto/external/bsd/openssl/lib/libcrypto: blake2.inc src/lib/libc/citrus: citrus_module.c src/lib/libc/stdlib: strsuftoll.c Log Message: m68k vs GCC 12: apply -fno-stack-protector to a few things. i've looked at the C code here and i can't see any real problems, and in at least the strsuftoll.c case, i'm convinced it is not a real problem for the reported case, and indicates a GCC bug. for strsuftoll.c, this fixes basic parsing of almost any input. the simple test case is "dd count=1". in my testing, it was only the front-end strsuftoll() that needs the checking removed, the sub-functions are fine. for citrus_module.c, this fixes "env LC_CTYPE=en_US.UTF-8 locale", and i was able to reduce to only _citrus_find_getops(). for blake2_prov.c, i chose to apply to the whole file to avoid editing a 3rd-party source. these issues and their source-file fixes were discovered by rin@. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc cvs rdiff -u -r1.13 -r1.14 src/lib/libc/citrus/citrus_module.c cvs rdiff -u -r1.9 -r1.10 src/lib/libc/stdlib/strsuftoll.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc diff -u src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc:1.2 src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc:1.3 --- src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc:1.2 Sat May 6 17:07:22 2023 +++ src/crypto/external/bsd/openssl/lib/libcrypto/blake2.inc Sun Jun 9 18:55:00 2024 @@ -1,4 +1,4 @@ -# $NetBSD: blake2.inc,v 1.2 2023/05/06 17:07:22 christos Exp $ +# $NetBSD: blake2.inc,v 1.3 2024/06/09 18:55:00 mrg Exp $ # # @(#) Copyright (c) 1995 Simon J. Gerraty # @@ -19,3 +19,7 @@ SRCS += ${BLAKE2_SRCS} .for cryptosrc in ${BLAKE2_SRCS} CPPFLAGS.${cryptosrc} = -I${OPENSSLSRC}/crypto/blake2 .endfor + +.if ${MACHINE_ARCH} == "m68k" +COPTS.blake2_prov.c += -fno-stack-protector +.endif Index: src/lib/libc/citrus/citrus_module.c diff -u src/lib/libc/citrus/citrus_module.c:1.13 src/lib/libc/citrus/citrus_module.c:1.14 --- src/lib/libc/citrus/citrus_module.c:1.13 Thu Jan 4 20:57:28 2018 +++ src/lib/libc/citrus/citrus_module.c Sun Jun 9 18:55:00 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: citrus_module.c,v 1.13 2018/01/04 20:57:28 kamil Exp $ */ +/* $NetBSD: citrus_module.c,v 1.14 2024/06/09 18:55:00 mrg Exp $ */ /*- * Copyright (c)1999, 2000, 2001, 2002 Citrus Project, @@ -89,7 +89,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: citrus_module.c,v 1.13 2018/01/04 20:57:28 kamil Exp $"); +__RCSID("$NetBSD: citrus_module.c,v 1.14 2024/06/09 18:55:00 mrg Exp $"); #endif /* LIBC_SCCS and not lint */ #include "namespace.h" @@ -275,6 +275,9 @@ _findshlib(char *name, int *majorp, int return path[0] ? path : NULL; } +#ifdef __m68k__ /* See doc/HACKS. */ +__attribute((__optimize__("-fno-stack-protector"))) +#endif void * _citrus_find_getops(_citrus_module_t handle, const char *modname, const char *ifname) Index: src/lib/libc/stdlib/strsuftoll.c diff -u src/lib/libc/stdlib/strsuftoll.c:1.9 src/lib/libc/stdlib/strsuftoll.c:1.10 --- src/lib/libc/stdlib/strsuftoll.c:1.9 Sat Oct 22 22:08:47 2011 +++ src/lib/libc/stdlib/strsuftoll.c Sun Jun 9 18:55:00 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: strsuftoll.c,v 1.9 2011/10/22 22:08:47 christos Exp $ */ +/* $NetBSD: strsuftoll.c,v 1.10 2024/06/09 18:55:00 mrg Exp $ */ /*- * Copyright (c) 2001-2002,2004 The NetBSD Foundation, Inc. * All rights reserved. @@ -67,7 +67,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: strsuftoll.c,v 1.9 2011/10/22 22:08:47 christos Exp $"); +__RCSID("$NetBSD: strsuftoll.c,v 1.10 2024/06/09 18:55:00 mrg Exp $"); #endif /* LIBC_SCCS and not lint */ #ifdef _LIBC @@ -111,6 +111,9 @@ __weak_alias(strsuftollx, _strsuftollx) * appropriate error. * */ +#ifdef __m68k__ /* See doc/HACKS. */ +__attribute((__optimize__("-fno-stack-protector"))) +#endif /* LONGLONG */ long long strsuftoll(const char *desc, const char *val,