dietlibc/dietlibc.spec
lingsheng 2af242ee30 Add BIND_NOW and PIE flags
(cherry picked from commit e5a376391660a79d70d037e8cdaeae9032252a44)
2021-09-08 15:38:53 +08:00

104 lines
3.1 KiB
RPMSpec

%global fixcflags -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables %xtra_fixcflags -Os -g3 -Werror-implicit-function-declaration -Wno-unused -Wno-switch -fPIE -Wl,-z,now
%global basemakeflags prefix=%pkglibdir BINDIR=%{_bindir} MAN1DIR=%{_mandir}/man1 CFLAGS="$RPM_OPT_FLAGS %fixcflags $XTRA_CFLAGS" PDIET=%pkglibdir STRIP=:
%global pkglibdir /usr/lib/dietlibc
%ifarch x86_64
%bcond_without ssp
%else
%bcond_with ssp
%endif
Name: dietlibc
Version: 0.34
Release: 4
Summary: A libc optimized for small size
License: GPLv2
URL: http://www.fefe.de/dietlibc/
Source0: https://www.fefe.de/dietlibc/%{name}-%{version}.tar.xz
Source1: http://www.fefe.de/dietlibc/%{name}-%{version}.tar.xz.sig
Patch0001: dietlibc-insecure-defpath.patch
Obsoletes: dietlibc-lib < %{version}-%{release}
BuildRequires: gcc
Requires: %{name}-devel = %{version}-%{release}
%description
The diet libc is a libc that is optimized for small size. It can be used to create small statically
linked binaries for Linux on alpha, arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
%package devel
Summary: Development documents for %{name}
Requires: %{name} = %{version}-%{release}
Obsoletes: %{name}-header < %{version}-%{release}
Provides: %{name}-header = %{version}-%{release}
Provides: %{name}-static = %{version}-%{release} %{name}-static%{?_isa} = %{version}-%{release}
%description devel
The package provides libraries and some other development documents for developing applications
that use %{name}.
%package help
Summary: Help documents for %{name}
%description help
The package provides man pages and some other help information for %{name}.
%prep
%autosetup -p1 -n %{name}-%{version}
%if %{without ssp}
sed -i -e 's!^#define WANT_SSP$!// \0!g;
s!.*\(#define WANT_STACKGAP\).*!\1!g' dietfeatures.h
%global xtra_fixcflags -fno-stack-protector
%else
%global xtra_fixcflags %nil
%endif
sed -i -e '/#define \(WANT_LARGEFILE_BACKCOMPAT\)/d' dietfeatures.h
sed -i -e '/#define \(WANT_VALGRIND_SUPPORT\)/d' dietfeatures.h
%build
%make_build %basemakeflags all
%install
install -d -m755 $RPM_BUILD_ROOT/etc
%make_install %basemakeflags
ln -s lib-%{_arch} ${RPM_BUILD_ROOT}%pkglibdir/lib-%{_arch}-%{_vendor}
chmod a-x $RPM_BUILD_ROOT%pkglibdir/lib-*/*.o
%check
XTRA_CFLAGS='-fno-builtin'
%make_build %basemakeflags -C test all DIET=$(echo `pwd`/bin-*/diet) -k || :
%make_build %basemakeflags -C test/inet all DIET=$(echo `pwd`/bin-*/diet) || :
cd test
ulimit -m $[ 128*1024 ] -v $[ 256*1024 ] -d $[ 128*1024 ] -s 512
%files
%doc AUTHOR COPYING
%{_bindir}/*
%exclude %{_bindir}/dnsd
%files devel
%pkglibdir
%files help
%doc BUGS CAVEAT CHANGES FAQ PORTING README* SECURITY THANKS TODO
%doc %{_mandir}/*/*
%changelog
* Tue Sep 07 2021 lingsheng <lingsheng@huawei.com> - 0.34-4
- Add BIND_NOW and PIE flags
* Wed Jul 21 2021 lingsheng <lingsheng@huawei.com> - 0.34-3
- Remove unnecessary buildrequire gdb
* Thu Feb 27 2020 zhouyihang<zhouyihang1@huawei.com> - 0.34-2
- Package init