sed: rebuild with gnulib fix
gnulib configure wrongly defines HAVE_WEAK_SYMBOLS, backport a patch to fix the resulting crashes. Fixes #2748
This commit is contained in:
parent
0407817d66
commit
1f960a1e6b
11
sed/PKGBUILD
11
sed/PKGBUILD
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
pkgname=sed
|
pkgname=sed
|
||||||
pkgver=4.8
|
pkgver=4.8
|
||||||
pkgrel=1
|
pkgrel=2
|
||||||
pkgdesc="GNU stream editor"
|
pkgdesc="GNU stream editor"
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
url="https://www.gnu.org/software/sed"
|
url="https://www.gnu.org/software/sed"
|
||||||
@ -13,12 +13,14 @@ makedepends=('gettext' 'gettext-devel' 'autotools' 'gcc')
|
|||||||
source=(https://ftp.gnu.org/pub/gnu/sed/${pkgname}-${pkgver}.tar.xz{,.sig}
|
source=(https://ftp.gnu.org/pub/gnu/sed/${pkgname}-${pkgver}.tar.xz{,.sig}
|
||||||
sed-4.4-1.src.patch
|
sed-4.4-1.src.patch
|
||||||
sed-4.7-msysize.patch
|
sed-4.7-msysize.patch
|
||||||
sed-4.4-msys-use-text-mode.patch)
|
sed-4.4-msys-use-text-mode.patch
|
||||||
|
gnulib-cygwin-weak-bug.patch)
|
||||||
sha256sums=('f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633'
|
sha256sums=('f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'12525e7bf4a1b57913d4047a2313f9127f29468193c2b583cfdfa128b4141032'
|
'12525e7bf4a1b57913d4047a2313f9127f29468193c2b583cfdfa128b4141032'
|
||||||
'd25076be5ef7a4128f3d7e5e31125efda4d620c181f7d49919d386aee2fdc0c5'
|
'd25076be5ef7a4128f3d7e5e31125efda4d620c181f7d49919d386aee2fdc0c5'
|
||||||
'5b25526061d61aaecdec464bccc1e1a78d0e0a64dabdd0eea759399f6c92e0a7')
|
'5b25526061d61aaecdec464bccc1e1a78d0e0a64dabdd0eea759399f6c92e0a7'
|
||||||
|
'04bba40ef282164afc9f6f5ad218f4485a20745b8b5c68a6e2cc34f52813e0f9')
|
||||||
validpgpkeys=('155D3FC500C834486D1EEA677FD9FCCB000BEEEE')
|
validpgpkeys=('155D3FC500C834486D1EEA677FD9FCCB000BEEEE')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
@ -26,6 +28,9 @@ prepare() {
|
|||||||
|
|
||||||
patch -p1 -i ${srcdir}/sed-4.7-msysize.patch
|
patch -p1 -i ${srcdir}/sed-4.7-msysize.patch
|
||||||
patch -p1 -i ${srcdir}/sed-4.4-msys-use-text-mode.patch
|
patch -p1 -i ${srcdir}/sed-4.4-msys-use-text-mode.patch
|
||||||
|
# https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4?id=7818455627c5e54813ac89924b8b67d0bc869146
|
||||||
|
# Changed to also check for msys
|
||||||
|
patch -p1 -i ${srcdir}/gnulib-cygwin-weak-bug.patch
|
||||||
|
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
|
|
||||||
|
|||||||
97
sed/gnulib-cygwin-weak-bug.patch
Normal file
97
sed/gnulib-cygwin-weak-bug.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
From 7818455627c5e54813ac89924b8b67d0bc869146 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Bruno Haible <bruno@clisp.org>
|
||||||
|
Date: Fri, 17 Sep 2021 22:22:50 +0200
|
||||||
|
Subject: threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0.
|
||||||
|
|
||||||
|
Reported by Brian Inglis via Akim Demaille in
|
||||||
|
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00063.html>.
|
||||||
|
|
||||||
|
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on
|
||||||
|
Cygwin.
|
||||||
|
---
|
||||||
|
m4/threadlib.m4 | 62 +++++++++++++++++++++++++++++++++------------------------
|
||||||
|
1 file changed, 36 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
(limited to 'm4')
|
||||||
|
|
||||||
|
diff --git a/m4/threadlib.m4 b/m4/threadlib.m4
|
||||||
|
index 37b797c..6b43bbd 100644
|
||||||
|
--- a/m4/threadlib.m4
|
||||||
|
+++ b/m4/threadlib.m4
|
||||||
|
@@ -84,38 +84,48 @@ AC_DEFUN([gl_WEAK_SYMBOLS],
|
||||||
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_CACHE_CHECK([whether imported symbols can be declared weak],
|
||||||
|
[gl_cv_have_weak],
|
||||||
|
- [gl_cv_have_weak=no
|
||||||
|
- dnl First, test whether the compiler accepts it syntactically.
|
||||||
|
- AC_LINK_IFELSE(
|
||||||
|
- [AC_LANG_PROGRAM(
|
||||||
|
- [[extern void xyzzy ();
|
||||||
|
+ [case "$host_os" in
|
||||||
|
+ cygwin* | msys*)
|
||||||
|
+ dnl On Cygwin 3.2.0 with gcc 10.2, the test below would succeed, but
|
||||||
|
+ dnl programs that use pthread_in_use() with weak symbol references
|
||||||
|
+ dnl crash miserably at runtime.
|
||||||
|
+ gl_cv_have_weak="guessing no"
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ gl_cv_have_weak=no
|
||||||
|
+ dnl First, test whether the compiler accepts it syntactically.
|
||||||
|
+ AC_LINK_IFELSE(
|
||||||
|
+ [AC_LANG_PROGRAM(
|
||||||
|
+ [[extern void xyzzy ();
|
||||||
|
#pragma weak xyzzy]],
|
||||||
|
- [[xyzzy();]])],
|
||||||
|
- [gl_cv_have_weak=maybe])
|
||||||
|
- if test $gl_cv_have_weak = maybe; then
|
||||||
|
- dnl Second, test whether it actually works. On Cygwin 1.7.2, with
|
||||||
|
- dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
|
||||||
|
- AC_RUN_IFELSE(
|
||||||
|
- [AC_LANG_SOURCE([[
|
||||||
|
+ [[xyzzy();]])],
|
||||||
|
+ [gl_cv_have_weak=maybe])
|
||||||
|
+ if test $gl_cv_have_weak = maybe; then
|
||||||
|
+ dnl Second, test whether it actually works. On Cygwin 1.7.2, with
|
||||||
|
+ dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
|
||||||
|
+ AC_RUN_IFELSE(
|
||||||
|
+ [AC_LANG_SOURCE([[
|
||||||
|
#include <stdio.h>
|
||||||
|
#pragma weak fputs
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
return (fputs == NULL);
|
||||||
|
}]])],
|
||||||
|
- [gl_cv_have_weak=yes],
|
||||||
|
- [gl_cv_have_weak=no],
|
||||||
|
- [dnl When cross-compiling, assume that only ELF platforms support
|
||||||
|
- dnl weak symbols.
|
||||||
|
- AC_EGREP_CPP([Extensible Linking Format],
|
||||||
|
- [#ifdef __ELF__
|
||||||
|
- Extensible Linking Format
|
||||||
|
- #endif
|
||||||
|
- ],
|
||||||
|
- [gl_cv_have_weak="guessing yes"],
|
||||||
|
- [gl_cv_have_weak="guessing no"])
|
||||||
|
- ])
|
||||||
|
- fi
|
||||||
|
+ [gl_cv_have_weak=yes],
|
||||||
|
+ [gl_cv_have_weak=no],
|
||||||
|
+ [dnl When cross-compiling, assume that only ELF platforms support
|
||||||
|
+ dnl weak symbols.
|
||||||
|
+ AC_EGREP_CPP([Extensible Linking Format],
|
||||||
|
+ [#ifdef __ELF__
|
||||||
|
+ Extensible Linking Format
|
||||||
|
+ #endif
|
||||||
|
+ ],
|
||||||
|
+ [gl_cv_have_weak="guessing yes"],
|
||||||
|
+ [gl_cv_have_weak="guessing no"])
|
||||||
|
+ ])
|
||||||
|
+ fi
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
dnl But when linking statically, weak symbols don't work.
|
||||||
|
case " $LDFLAGS " in
|
||||||
|
*" -static "*) gl_cv_have_weak=no ;;
|
||||||
|
--
|
||||||
|
cgit v1.1
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user