Commit: patch 9.1.0104: Linking fails with -lto because of PERL_CFLAGS

5 views
Skip to first unread message

Christian Brabandt

unread,
Feb 12, 2024, 5:30:09 PM2/12/24
to vim...@googlegroups.com
patch 9.1.0104: Linking fails with -lto because of PERL_CFLAGS

Commit: https://github.com/vim/vim/commit/2f9aef42af94f6d68f37f6e9b8cb878e88ed12bf
Author: Christian Brabandt <c...@256bit.org>
Date: Mon Feb 12 23:12:26 2024 +0100

patch 9.1.0104: Linking fails with -lto because of PERL_CFLAGS

Problem: Linking fails with -lto because of PERL_CFLAGS
(Zoltan Toth)
Solution: Filter out -flto argument from Perl CFLAGS.

fixes: #14012

Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/auto/configure b/src/auto/configure
index 70ebb33c4..5c1464835 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -6494,10 +6494,11 @@ printf "%s
" "$vi_cv_perl_xsubpp" >&6; }
fi


- perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
+ perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"
"' | sed -e 's/-fno[^ ]*//' \
-e 's/-fdebug-prefix-map[^ ]*//g' \
-e 's/-pipe //' \
+ -e 's/-flto\(=auto\)\? //' \
-e 's/-W[^ ]*//g' \
-e 's/-D_FORTIFY_SOURCE=.//g'`
perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
@@ -10402,9 +10403,12 @@ system ("touch conf.gtktest");
tmp_version = g_strdup("$min_gtk_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string
", "$min_gtk_version");
+ g_free(tmp_version);
exit(1);
}

+g_free(tmp_version);
+
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) &&
diff --git a/src/configure.ac b/src/configure.ac
index ebe0d08f6..664f21940 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -1163,11 +1163,13 @@ if test "$enable_perlinterp" = "yes" -o "$enable_perlinterp" = "dynamic"; then
dnl Remove "-fno-something", it breaks using cproto.
dnl Remove "-fdebug-prefix-map", it isn't supported by clang.
dnl Remove "FORTIFY_SOURCE", it will be defined twice.
- dnl remove -pipe and -Wxxx, it confuses cproto
+ dnl Remove -pipe and -Wxxx, it confuses cproto
+ dnl Remove -flto[=auto], it causes link failures for clang
perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
-e 'ccflags;perl_inc;print"
"' | sed -e 's/-fno[[^ ]]*//' \
-e 's/-fdebug-prefix-map[[^ ]]*//g' \
-e 's/-pipe //' \
+ -e 's/-flto\(=auto\)\? //' \
-e 's/-W[[^ ]]*//g' \
-e 's/-D_FORTIFY_SOURCE=.//g'`
dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
diff --git a/src/version.c b/src/version.c
index e28a32695..17a789948 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 104,
/**/
103,
/**/
Reply all
Reply to author
Forward
0 new messages