Commit 66c36af077 for openssl.org
commit 66c36af0777392c74cfc1a4a64938f19d6b657e5
Author: sunnyqeen <sunnyqeen@gmail.com>
Date: Wed Feb 7 11:58:44 2024 +0100
Fix unix Makefile template to avoid command line too long error on windows
On cygwin/msys systems that run on Windows, command line length is limited. using response file instead of putting objects on the command line will avoid this error
CLA: trivial
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
MergeDate: Sun Jun 21 15:56:08 2026
(Merged from https://github.com/openssl/openssl/pull/23077)
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index de345a5e8a..f27517e565 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
@@ -11,6 +11,7 @@
our $makedepcmd = platform->makedepcmd();
sub windowsdll { $config{target} =~ /^(?:Cygwin|mingw)/ }
+ sub run_on_windows { $^O =~ /^(?:cygwin|msys|MSWin32)/ }
# Shared AIX support is special. We put libcrypto[64].so.ver into
# libcrypto.a and use libcrypto_a.a as static one, unless using
@@ -1895,13 +1896,27 @@ $import: $full
EOF
}
}
- $recipe .= <<"EOF";
+ if (!run_on_windows()) {
+ $recipe .= <<"EOF";
$full: $fulldeps
\$(CC) \$(LIB_CFLAGS) $linkflags\$(LIB_LDFLAGS)$shared_soname$shared_imp \\
-o $full$shared_def \\
$fullobjs \\
$linklibs \$(LIB_EX_LIBS)
EOF
+ } else {
+ $recipe .= <<"EOF";
+$full: $fulldeps
+ \$(file >\$@.lst, \\
+ $fullobjs \\
+ )
+ \$(CC) \$(LIB_CFLAGS) $linkflags\$(LIB_LDFLAGS)$shared_soname$shared_imp \\
+ -o $full$shared_def \\
+ @\$@.lst \\
+ $linklibs \$(LIB_EX_LIBS)
+ rm -f \$@.lst
+EOF
+ }
if (windowsdll()) {
$recipe .= <<"EOF";
rm -f apps/$full