diff options
author | Sam James <sam@gentoo.org> | 2023-01-09 08:17:11 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-01-09 09:45:01 +0000 |
commit | 34ace9fe79667dfcfd0ab651cc246c85a7706ae6 (patch) | |
tree | 853b4c792a80f759db6fec0fd91af7d407699237 /sys-devel/m4 | |
parent | dev-util/diffoscope: add patch metadata, now merged upstream (diff) | |
download | gentoo-34ace9fe79667dfcfd0ab651cc246c85a7706ae6.tar.gz gentoo-34ace9fe79667dfcfd0ab651cc246c85a7706ae6.tar.bz2 gentoo-34ace9fe79667dfcfd0ab651cc246c85a7706ae6.zip |
sys-devel/m4: stop downgrading FORTIFY_SOURCE
Closes: https://bugs.gentoo.org/890273
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-devel/m4')
-rw-r--r-- | sys-devel/m4/files/m4-1.4.19-fortify-source.patch | 49 | ||||
-rw-r--r-- | sys-devel/m4/m4-1.4.19-r1.ebuild | 101 |
2 files changed, 150 insertions, 0 deletions
diff --git a/sys-devel/m4/files/m4-1.4.19-fortify-source.patch b/sys-devel/m4/files/m4-1.4.19-fortify-source.patch new file mode 100644 index 000000000000..69e5405b6f2b --- /dev/null +++ b/sys-devel/m4/files/m4-1.4.19-fortify-source.patch @@ -0,0 +1,49 @@ +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 + + diff --git a/sys-devel/m4/m4-1.4.19-r1.ebuild b/sys-devel/m4/m4-1.4.19-r1.ebuild new file mode 100644 index 000000000000..83b5384aa9a8 --- /dev/null +++ b/sys-devel/m4/m4-1.4.19-r1.ebuild @@ -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 +} |