main/s390-tools: disable _FORTIFY_SOURCE in zipl

Disabling _FORTIFY_SOURCE fixes SIGFPE in zipl:

Program received signal SIGFPE, Arithmetic exception.
memcpy (__n=7976, __os=<optimized out>, __od=0x3fffdff60c0) at /usr/include/fortify/string.h:53
53              return __builtin_memcpy(__od, __os, __n);

disassebly shows that the exception happens on the jump instruction to
memcpy. Work around it by disabling _FORTIFY_SOURCE for zipl.

(cherry picked from commit 9fa935396c81958bec1b169f3309644297976938)
This commit is contained in:
Natanael Copa 2023-10-05 12:23:59 +02:00
parent 4c15c4bcdf
commit fd2f3a876c
2 changed files with 17 additions and 2 deletions

View File

@ -2,7 +2,7 @@
# Maintainer: Tuan Hoang <tmhoang@linux.ibm.com>
pkgname=s390-tools
pkgver=2.21.0
pkgrel=0
pkgrel=1
pkgdesc="Tools for use with the s390 Linux kernel and device drivers"
url="https://github.com/ibm-s390-tools/s390-tools"
arch="s390x"
@ -12,7 +12,7 @@ depends="bash"
makedepends="linux-headers libexecinfo-dev zlib-dev fuse3-dev ncurses-dev openssl1.1-compat-dev libxml2-dev
cryptsetup-dev json-c-dev net-snmp-dev curl-dev"
triggers="$pkgname.trigger=/boot"
subpackages="$pkgname-doc"
subpackages="$pkgname-doc $pkgname-dbg"
source="$pkgname-$pkgver.tar.gz::https://github.com/ibm-s390-tools/s390-tools/archive/v$pkgver.tar.gz
0002-musl-fixes.patch
0004-missing-time-header.patch
@ -29,6 +29,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/ibm-s390-tools/s390-tools/ar
bash.patch
argz.patch
iucvterm-gettext.patch
zipl-disable-fortify-source.patch
argz.c
argz.h
@ -75,6 +76,7 @@ f5e06e28f77c44f591d74f383ce308a6bfb129b00b291601f2be8866dd1382c597348794be2109c9
3577c2e0715a5553f5061354b3ff9d9ab2e52712b140fb24a84471c3d3e0d47acf74e00d4f05d7a94aa82942cf84f8ae0b30ac15dfe32d10ff2d24a7a7c0c41f bash.patch
5bc7b2b51bd298d0942ff2f96bb9e30d258100ce87b48285fd4dfeb24448f33a3c679789187d4355c487e64057d7f49a44c0d934bb5f427d18fd625e55de5b0c argz.patch
c3746ea9e5c638a7adc51bfd8ffebc34f2be45d8d816e9f5711ba8f238fe028f711c91c6732a08a8088e32261f769e2e41a079997295e146082212b8fa84a246 iucvterm-gettext.patch
bb4925d3ad1c128af5f7072b94228a2efa4bd2a227dd2de6badec6b5d846b1fbf116228f8f514f3c5d86b1b51597d9bc2c47149d723e3b1944ceed6c5fe7fd60 zipl-disable-fortify-source.patch
2e573314d4c4ed90b61da28de22ae8e2f68ced5489f7e5e0b30f51b776efaf40c1f781d3b485418572d8f33a169fa6946b7358cbd4a7de5a3724b20ed622262b argz.c
50bd5c0f555963dadbfaa72df5bf0801a48743d6d0feddb6ebfa4ffa410196216c1860d3a577361e035169fea4217aef3f04d69394c59db65b60c5ea29eba8cb argz.h
5e19ccfce59a2a79863db676b0ea4280cb9016cda1a30dc233526f52425c305410dd148453b75c2613acac37e364305ee25f8e545d57c5059cca19a13bac2a5e Makefile.argz

View File

@ -0,0 +1,13 @@
diff --git a/zipl/src/Makefile b/zipl/src/Makefile
index 786bb7f..2a1e10a 100644
--- a/zipl/src/Makefile
+++ b/zipl/src/Makefile
@@ -4,7 +4,7 @@ include ../../common.mak
ALL_CPPFLAGS += -I../include -I../boot \
-DZFCPDUMP_IMAGE="STRINGIFY($(ZFCPDUMP_DIR)/$(ZFCPDUMP_IMAGE))" \
-DZFCPDUMP_INITRD="STRINGIFY($(ZFCPDUMP_DIR)/$(ZFCPDUMP_INITRD))" \
- -D_FILE_OFFSET_BITS=64 $(NO_PIE_CFLAGS)
+ -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE $(NO_PIE_CFLAGS)
ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS)
libs = $(rootdir)/libutil/libutil.a