Add clang support for unzip 6.0
Signed-off-by: Cheng Li <cheng@kubuds.cn> (cherry picked from commit b8ff847b26ac8c1a11f1c585db9977eb3108a00e)
This commit is contained in:
parent
de52ae80fd
commit
9677b15b34
73
unzip-6.0-support-clang-build.patch
Normal file
73
unzip-6.0-support-clang-build.patch
Normal file
@ -0,0 +1,73 @@
|
||||
From 3ac162e9f6ff4b138f3141af2b5c345b9c9b4ee1 Mon Sep 17 00:00:00 2001
|
||||
From: Cheng Li <cheng@kubuds.cn>
|
||||
Date: Tue, 9 Apr 2024 13:46:50 +0000
|
||||
Subject: [PATCH] unzip-6.0-support-clang-build
|
||||
|
||||
---
|
||||
unix/Makefile | 15 +++++++++------
|
||||
unix/configure | 2 ++
|
||||
2 files changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/unix/Makefile b/unix/Makefile
|
||||
index ab32270..3de8873 100644
|
||||
--- a/unix/Makefile
|
||||
+++ b/unix/Makefile
|
||||
@@ -42,12 +42,12 @@
|
||||
# such as -DDOSWILD).
|
||||
|
||||
# UnZip flags
|
||||
-CC = cc# try using "gcc" target rather than changing this (CC and LD
|
||||
+CC ?= cc# try using "gcc" target rather than changing this (CC and LD
|
||||
LD = $(CC)# must match, else "unresolved symbol: ___main" is possible)
|
||||
AS = as
|
||||
LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
|
||||
AF = $(LOC)
|
||||
-CFLAGS = -O
|
||||
+CFLAGS ?= -O
|
||||
CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC)
|
||||
CF = $(CFLAGS) $(CF_NOOPT)
|
||||
LFLAGS1 =
|
||||
@@ -547,6 +547,9 @@ generic: flags # now try autoconfigure first
|
||||
generic_gcc:
|
||||
$(MAKE) $(MAKEF) generic CC=gcc IZ_BZIP2="$(IZ_BZIP2)"
|
||||
|
||||
+generic_clang:
|
||||
+ $(MAKE) $(MAKEF) generic CC=clang IZ_BZIP2="$(IZ_BZIP2)"
|
||||
+
|
||||
# extensions to perform SVR4 package-creation after compilation
|
||||
generic_pkg: generic svr4package
|
||||
generic_gccpkg: generic_gcc svr4package
|
||||
@@ -594,13 +597,13 @@ generic_shlib: unix_make
|
||||
@echo\
|
||||
'which is UnZip linked with the DLL). This target is an example only.'
|
||||
@echo ""
|
||||
- $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC -DDLL"
|
||||
- gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
|
||||
+ $(MAKE) objsdll CFLAGS="-O3 -Wall -fPIC -DDLL"
|
||||
+ $(CC) -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
|
||||
$(RM) libunzip.so.0 libunzip.so
|
||||
$(LN) -s libunzip.so.0.4 libunzip.so.0
|
||||
$(LN) -s libunzip.so.0 libunzip.so
|
||||
- gcc -c -O unzipstb.c
|
||||
- gcc -o unzip_shlib unzipstb.o -L. -lunzip
|
||||
+ $(CC) -c -O unzipstb.c
|
||||
+ $(CC) -o unzip_shlib unzipstb.o -L. -lunzip
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# "Autoconfig" group, aliases for the generic targets using configure:
|
||||
diff --git a/unix/configure b/unix/configure
|
||||
index 4d6f867..c231721 100755
|
||||
--- a/unix/configure
|
||||
+++ b/unix/configure
|
||||
@@ -432,6 +432,8 @@ if [ $? -ne 0 ]; then
|
||||
done
|
||||
if [ ${OPT} ]; then
|
||||
LFLAGS2="${LFLAGS2} ${OPT}"
|
||||
+ elif [ "$CC" == "clang" ]; then
|
||||
+ CFLAGSR="${CFLAGSR}"
|
||||
else
|
||||
CFLAGSR="${CFLAGSR} -DNO_DIR"
|
||||
fi
|
||||
--
|
||||
2.41.0
|
||||
|
||||
13
unzip.spec
13
unzip.spec
@ -1,6 +1,6 @@
|
||||
Name: unzip
|
||||
Version: 6.0
|
||||
Release: 51
|
||||
Release: 52
|
||||
Summary: A utility for unpacking zip files
|
||||
License: Info-ZIP,Public Domain
|
||||
URL: http://www.info-zip.org/UnZip.html
|
||||
@ -29,6 +29,7 @@ Patch0020: unzip-6.0-alt-iconv-utf8-print.patch
|
||||
Patch0021: 0001-Fix-CVE-2016-9844-rhbz-1404283.patch
|
||||
Patch0022: unzip-6.0-timestamp.patch
|
||||
Patch0023: unzip-6.0-cve-2018-1000035-heap-based-overflow.patch
|
||||
Patch0024: unzip-6.0-support-clang-build.patch
|
||||
|
||||
Patch6000: CVE-2018-18384.patch
|
||||
Patch6001: CVE-2019-13232-pre.patch
|
||||
@ -58,8 +59,13 @@ Package help includes man pages for unzip.
|
||||
|
||||
%build
|
||||
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fPIE"
|
||||
%make_build -f unix/Makefile CF_NOOPT="-I. -DUNIX $RPM_OPT_FLAGS -DNOMEMCPY -DIZ_HAVE_UXUIDGID -DNO_LCHMOD" \
|
||||
%if "%{?toolchain}" == "clang"
|
||||
%make_build -f unix/Makefile CF_NOOPT="-I. -DUNIX $RPM_OPT_FLAGS -DNOMEMCPY -DIZ_HAVE_UXUIDGID -DNO_LCHMOD" \
|
||||
LFLAGS2="-Wl,-z,relro -pie" generic_clang
|
||||
%else
|
||||
%make_build -f unix/Makefile CF_NOOPT="-I. -DUNIX $RPM_OPT_FLAGS -DNOMEMCPY -DIZ_HAVE_UXUIDGID -DNO_LCHMOD" \
|
||||
LFLAGS2="-Wl,-z,relro -pie" generic_gcc
|
||||
%endif
|
||||
|
||||
%install
|
||||
%make_install -f unix/Makefile prefix=$RPM_BUILD_ROOT%{_prefix} MANDIR=$RPM_BUILD_ROOT%{_mandir}/man1 INSTALL="cp -p"
|
||||
@ -76,6 +82,9 @@ make check -f unix/Makefile
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Sun Apr 7 2024 licheng <cheng@kubuds.cn> - 6.0-52
|
||||
- add support for clang
|
||||
|
||||
* Sat Mar 4 2023 yanglongkang <yanglongkang@h-partners.com> - 6.0-51
|
||||
- add "PIE" compiler options
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user