From 9042758b3f6b642407d2ba52ab9ad00f7ffddb8e Mon Sep 17 00:00:00 2001 From: s Date: Wed, 26 Jul 2023 14:44:15 +0800 Subject: [PATCH] fix clang build error --- dietlibc-fix-cc.patch | 20 -------------- dietlibc.spec | 14 ++++++++-- fix-clang.patch | 62 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 22 deletions(-) delete mode 100644 dietlibc-fix-cc.patch create mode 100644 fix-clang.patch diff --git a/dietlibc-fix-cc.patch b/dietlibc-fix-cc.patch deleted file mode 100644 index d25dee2..0000000 --- a/dietlibc-fix-cc.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/Makefile 2018-02-11 02:27:23.000000000 +0800 -+++ b/Makefile 2023-04-11 13:41:02.377320181 +0800 -@@ -8,7 +8,7 @@ - BINDIR=${prefix}/bin - MAN1DIR=${prefix}/man/man1 - --EXTRACFLAGS= -+EXTRACFLAGS=-fno-builtin-bcmp - - MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-7]t\?e\?[lb]/arm/') - -@@ -120,7 +120,7 @@ - CFLAGS=$(DEFAULTCFLAGS) - CROSS= - --CC=gcc -+ - CCC=$(CROSS)$(CC) - STRIP=$(COMMENT) $(CROSS)strip - INC=-I. -isystem include \ No newline at end of file diff --git a/dietlibc.spec b/dietlibc.spec index 1505273..279f9b4 100644 --- a/dietlibc.spec +++ b/dietlibc.spec @@ -1,4 +1,8 @@ +%if "%toolchain" == "clang" +%global fixcflags -fomit-frame-pointer -fno-exceptions -fno-asynchronous-unwind-tables %xtra_fixcflags -Os -g3 -Werror-implicit-function-declaration -Wno-unused -Wno-switch -fPIE +%else %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,relro,-z,now +%endif %global basemakeflags prefix=%pkglibdir BINDIR=%{_bindir} MAN1DIR=%{_mandir}/man1 CFLAGS="$RPM_OPT_FLAGS %fixcflags $XTRA_CFLAGS" PDIET=%pkglibdir STRIP=: %global pkglibdir /usr/lib/dietlibc @@ -11,7 +15,7 @@ Name: dietlibc Version: 0.34 -Release: 6 +Release: 7 Summary: A libc optimized for small size License: GPLv2 URL: http://www.fefe.de/dietlibc/ @@ -19,7 +23,7 @@ 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 -Patch0002: dietlibc-fix-cc.patch +Patch0002: fix-clang.patch Obsoletes: dietlibc-lib < %{version}-%{release} @@ -75,6 +79,9 @@ chmod a-x $RPM_BUILD_ROOT%pkglibdir/lib-*/*.o %check XTRA_CFLAGS='-fno-builtin' +%if "%toolchain" == "clang" + export CC=clang +%endif %make_build %basemakeflags -C test all DIET=$(echo `pwd`/bin-*/diet) -k || : %make_build %basemakeflags -C test/inet all DIET=$(echo `pwd`/bin-*/diet) || : @@ -94,6 +101,9 @@ ulimit -m $[ 128*1024 ] -v $[ 256*1024 ] -d $[ 128*1024 ] -s 512 %doc %{_mandir}/*/* %changelog +* Wed Jul 26 2023 yoo - 0.34-7 +- fix patch fail and clang build error + * Thu Apr 13 2023 SaltyFruit - 0.34-6 - Fix CC compiler support and CFLAGS error diff --git a/fix-clang.patch b/fix-clang.patch new file mode 100644 index 0000000..d59d399 --- /dev/null +++ b/fix-clang.patch @@ -0,0 +1,62 @@ +diff -u -r dietlibc-0.34/Makefile dietlibc-0.34/Makefile +--- dietlibc-0.34/Makefile 2018-02-11 02:27:23.000000000 +0800 ++++ dietlibc-0.34/Makefile 2023-07-26 14:25:09.000000000 +0800 +@@ -8,7 +8,7 @@ + BINDIR=${prefix}/bin + MAN1DIR=${prefix}/man/man1 + +-EXTRACFLAGS= ++EXTRACFLAGS=-fno-builtin-bcmp + + MYARCH:=$(shell uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-7]t\?e\?[lb]/arm/') + +@@ -120,7 +120,7 @@ + CFLAGS=$(DEFAULTCFLAGS) + CROSS= + +-CC=gcc ++CC?=gcc + CCC=$(CROSS)$(CC) + STRIP=$(COMMENT) $(CROSS)strip + INC=-I. -isystem include +@@ -492,7 +492,7 @@ + + # DOES NOT WORK YET + mips64: +- $(MAKE) ARCH=mips64 CROSS=mips64-linux- CC="gcc -mabi=64" ++ $(MAKE) ARCH=mips64 CROSS=mips64-linux- CC="clang -mabi=64" + + + # these depend on dietfeatures.h for large file backward compatibility +diff -u -r dietlibc-0.34/test/dirent/Makefile dietlibc-0.34/test/dirent/Makefile +--- dietlibc-0.34/test/dirent/Makefile 2003-12-15 21:07:42.000000000 +0800 ++++ dietlibc-0.34/test/dirent/Makefile 2023-07-26 14:19:29.000000000 +0800 +@@ -1,5 +1,5 @@ + DIET=diet +-CC=gcc ++CC?=gcc + CFLAGS=-Wall + + all: dirent +diff -u -r dietlibc-0.34/test/inet/Makefile dietlibc-0.34/test/inet/Makefile +--- dietlibc-0.34/test/inet/Makefile 2003-12-15 21:07:42.000000000 +0800 ++++ dietlibc-0.34/test/inet/Makefile 2023-07-26 14:19:21.000000000 +0800 +@@ -1,5 +1,5 @@ + DIET=diet +-CC=gcc ++CC?=gcc + CFLAGS=-Wall + + TESTPROGRAMS=test_ifindex tst-gethnm tst-ntoa +diff -u -r dietlibc-0.34/test/Makefile dietlibc-0.34/test/Makefile +--- dietlibc-0.34/test/Makefile 2015-04-11 12:40:53.000000000 +0800 ++++ dietlibc-0.34/test/Makefile 2023-07-26 14:22:41.000000000 +0800 +@@ -2,7 +2,7 @@ + test ffs getdelim stdlib + + DIET=diet +-CC=gcc ++CC?=gcc + CFLAGS=-nostdinc -Wall + + LCOMPAT=-lcompat -- Gitee