sys-devel/m4: Sync with Gentoo

It's from Gentoo commit 231e4e05dfbf967ae40fe2c2e4c0eebac9ac496f.
This commit is contained in:
Flatcar Buildbot 2023-01-23 07:23:00 +00:00 committed by Krzesimir Nowak
parent fcdec9bd96
commit f7a35aad67
2 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1,50 @@
https://lists.gnu.org/archive/html/m4-patches/2023-01/msg00001.html
https://bugs.gentoo.org/890273
From 960b9b4d0774f78d286932251d6f53f638aefb19 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Mon, 9 Jan 2023 08:00:34 +0000
Subject: [PATCH] build: Don't add _FORTIFY_SOURCE if already set by
user/toolchain
Newer toolchains (GCC 12+ or Clang 9+, glibc-2.34) allow _FORTIFY_SOURCE=3.
The current macro used in configure.ac will forcefully downgrade to F_S=2
and emit a warning if the user set something else:
```
x86_64-pc-linux-gnu-gcc -DEXEEXT=\"\" -I. -I../lib -DIN_M4_GNULIB_TESTS=1 -I. -I. -I.. -I./.. -I../lib -I./../lib -O2 -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -Wreturn-type -ggdb3 -Werror=implicit-function-declaration -Werror=implicit-int -c -o glthread/thread.o glthread/thread.c
In file included from glthread/thread.c:20:
../lib/config.h:202: warning: "_FORTIFY_SOURCE" redefined
202 | # define _FORTIFY_SOURCE 2
|
<built-in>: note: this is the location of the previous definition
```
See: 390d259efe8e1c7e4b6babb4738fef7427416857
Signed-off-by: Sam James <sam@gentoo.org>
--- a/configure.ac
+++ b/configure.ac
@@ -133,7 +133,9 @@ if test "$gl_gcc_warnings" = yes; then
[/* Enable compile-time and run-time bounds-checking, and some warnings,
without upsetting newer glibc. */
#if defined __OPTIMIZE__ && __OPTIMIZE__
- # define _FORTIFY_SOURCE 2
+ # ifndef _FORTIFY_SOURCE
+ # define _FORTIFY_SOURCE 2
+ # endif
#endif
])
fi
--- a/lib/config.hin
+++ b/lib/config.hin
@@ -198,7 +198,9 @@
/* Enable compile-time and run-time bounds-checking, and some warnings,
without upsetting newer glibc. */
#if defined __OPTIMIZE__ && __OPTIMIZE__
- # define _FORTIFY_SOURCE 2
+ # ifndef _FORTIFY_SOURCE
+ # define _FORTIFY_SOURCE 2
+ # endif
#endif

View File

@ -0,0 +1,101 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/m4.asc
inherit verify-sig
DESCRIPTION="GNU macro processor"
HOMEPAGE="https://www.gnu.org/software/m4/m4.html"
if [[ ${PV} == *_beta* ]] ; then
MY_P="${PN}-1.4.18d"
SRC_URI="https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz"
SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig )"
S="${WORKDIR}/${MY_P}"
else
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
SRC_URI+=" https://dev.gentoo.org/~floppym/dist/${P}-test-198-sysval-r1.patch.gz"
SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
LICENSE="GPL-3"
SLOT="0"
IUSE="examples nls"
RDEPEND="
virtual/libiconv
nls? (
sys-devel/gettext
virtual/libintl
)"
DEPEND="${RDEPEND}"
# Remember: cannot dep on autoconf since it needs us
BDEPEND="app-arch/xz-utils
nls? ( sys-devel/gettext )
verify-sig? ( sec-keys/openpgp-keys-m4 )"
PATCHES=(
"${FILESDIR}"/ppc-musl.patch
"${FILESDIR}"/loong-fix-build.patch
"${FILESDIR}"/${PN}-1.4.19-make-4.4-tests.patch
"${WORKDIR}"/${P}-test-198-sysval-r1.patch
"${FILESDIR}"/${PN}-1.4.19-fortify-source.patch
)
src_unpack() {
if use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig}
fi
default
}
src_prepare() {
default
# touch generated files after patching m4, to avoid activating maintainer
# mode
# remove when loong-fix-build.patch is no longer necessary
touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die
find . -name Makefile.in -exec touch {} + || die
}
src_configure() {
local -a myeconfargs=(
--enable-changeword
--with-packager="Gentoo Linux"
--with-packager-version="${PVR}"
--with-packager-bug-reports="https://bugs.gentoo.org/"
$(usex nls '' '--disable-nls')
# Disable automagic dependency over libsigsegv; see bug #278026
ac_cv_libsigsegv=no
)
[[ ${USERLAND} != GNU ]] && myeconfargs+=( --program-prefix=g )
econf "${myeconfargs[@]}"
}
src_test() {
[[ -d /none ]] && die "m4 tests will fail with /none/" #244396
emake check
}
src_install() {
default
# autoconf-2.60 for instance, first checks gm4, then m4. If we don't have
# gm4, it might find gm4 from outside the prefix on for instance Darwin
use prefix && dosym m4 /usr/bin/gm4
if use examples ; then
dodoc -r examples
rm -f "${ED}"/usr/share/doc/${PF}/examples/Makefile*
fi
}