Enable LTO and Hardened package

Release: crash-8.0.0-2

Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
This commit is contained in:
Lianbo Jiang 2021-11-26 15:17:10 +08:00
parent 99e49885eb
commit 120df7f566
2 changed files with 42 additions and 10 deletions

35
crash-8.0.0_build.patch Normal file
View File

@ -0,0 +1,35 @@
diff --git crash-8.0.0/Makefile crash-8.0.0/Makefile
index d0574d8f07d3..9dbb61d0dbc8 100644
--- crash-8.0.0/Makefile
+++ crash-8.0.0/Makefile
@@ -198,7 +198,7 @@ GDB_FLAGS=
# TARGET_CFLAGS will be configured automatically by configure
TARGET_CFLAGS=
-CRASH_CFLAGS=-g -D${TARGET} ${TARGET_CFLAGS} ${GDB_FLAGS} ${CFLAGS}
+CRASH_CFLAGS=-g -D${TARGET} ${TARGET_CFLAGS} ${GDB_FLAGS} ${CFLAGS} ${CPPFLAGS} -fPIE
GPL_FILES=
TAR_FILES=${SOURCE_FILES} Makefile ${GPL_FILES} README .rh_rpm_package crash.8 \
@@ -228,7 +228,7 @@ all: make_configure
gdb_merge: force
@if [ ! -f ${GDB}/README ]; then \
make --no-print-directory gdb_unzip; fi
- @echo "${LDFLAGS} -lz -llzo2 -lsnappy -ldl -rdynamic" > ${GDB}/gdb/mergelibs
+ @echo "${LDFLAGS} -lz -llzo2 -lsnappy -ldl -rdynamic -Wl,-z,now -fPIE" > ${GDB}/gdb/mergelibs
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
@rm -f ${PROGRAM}
@if [ ! -f ${GDB}/config.status ]; then \
diff --git crash-8.0.0/configure.c crash-8.0.0/configure.c
index 75006e881f5a..06c94d58c56c 100644
--- crash-8.0.0/configure.c
+++ crash-8.0.0/configure.c
@@ -780,7 +780,8 @@ build_configure(struct supported_gdb_version *sp)
fprintf(fp2, "%s\n", sp->GDB);
sprintf(target_data.gdb_version, "%s", &sp->GDB[4]);
} else if (strncmp(buf, "LDFLAGS=", strlen("LDFLAGS=")) == 0) {
- fprintf(fp2, "LDFLAGS=%s\n", ldflags ? ldflags : "");
+ if (ldflags)
+ fprintf(fp2, "LDFLAGS=%s\n", ldflags ? ldflags : "");
} else
fprintf(fp2, "%s", buf);

View File

@ -4,7 +4,7 @@
Summary: Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles
Name: crash
Version: 8.0.0
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv3
Source0: https://github.com/crash-utility/crash/archive/crash-%{version}.tar.gz
Source1: http://ftp.gnu.org/gnu/gdb/gdb-10.2.tar.gz
@ -18,6 +18,7 @@ Requires: binutils
Provides: bundled(libiberty)
Provides: bundled(gdb) = 10.2
Patch0: lzo_snappy.patch
Patch1: crash-8.0.0_build.patch
%description
The core analysis suite is a self-contained tool that can be used to
@ -38,19 +39,12 @@ offered by Mission Critical Linux, or the LKCD kernel patch.
%prep
%setup -n %{name}-%{version} -q
%patch0 -p1 -b lzo_snappy.patch
%patch1 -p1 -b crash-8.0.0_build.patch
%build
# This package has an internal copy of GDB which has broken configure code for
# INTDIV0_RAISES_SIGFPE and MUST_REINSTALL_SIGHANDLERS
# Updating that code properly seems nontrivial and best left to the package
# maintainer.
# Disable LTO
%define _lto_cflags %{nil}
# Disable hardened package
%undefine _hardened_build
cp %{SOURCE1} .
make RPMPKG="%{version}-%{release}" CFLAGS="%{optflags}" LDFLAGS="%{build_ldflags}"
make RPMPKG="%{version}-%{release}" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" LDFLAGS="%{build_ldflags}"
%install
rm -rf %{buildroot}
@ -71,6 +65,9 @@ cp -p defs.h %{buildroot}%{_includedir}/crash
%{_includedir}/*
%changelog
* Fri Nov 26 2021 Lianbo Jiang <lijiang@redhat.com> - 8.0.0-2
- Enable LTO and Hardened package
* Wed Nov 24 2021 Lianbo Jiang <lijiang@redhat.com> - 8.0.0-1
- Rebase to upstream 8.0.0