diff mbox series

[meta-oe,scarthgap,4/4] 7zip: Fix build with clang

Message ID 20241222081612.239474-4-hongxu.jia@windriver.com
State New
Headers show
Series [meta-oe,scarthgap,1/4] Use 7zip 24.09 to replace p7zip 16.02 | expand

Commit Message

Hongxu Jia Dec. 22, 2024, 8:16 a.m. UTC
From: Khem Raj <raj.khem@gmail.com>

Signed-off-by: Khem Raj <raj.khem@gmail.com>

(cherry picked from commit e1a8da10f038af69b2d4fc133dea62eceb4f0d46)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta-oe/recipes-extended/7zip/7zip_24.09.bb   | 31 +++++++++++++------
 .../0001-support-yocto-cross-compiling.patch  | 18 ++++++-----
 2 files changed, 31 insertions(+), 18 deletions(-)
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/7zip/7zip_24.09.bb b/meta-oe/recipes-extended/7zip/7zip_24.09.bb
index 99cb28554..9ebeae34e 100644
--- a/meta-oe/recipes-extended/7zip/7zip_24.09.bb
+++ b/meta-oe/recipes-extended/7zip/7zip_24.09.bb
@@ -17,19 +17,27 @@  UPSTREAM_CHECK_URI = "https://github.com/ip7z/7zip/releases/latest"
 S = "${WORKDIR}/git"
 
 # Support Yocto cross compiling
+CXXFLAGS:append:toolchain-clang = " -Wno-error=cast-qual -Wno-error=sign-conversion \
+                                    -Wno-error=disabled-macro-expansion \
+                                    -Wno-error=cast-function-type-strict"
+
 EXTRA_OEMAKE += " \
     CXXFLAGS_EXTRA='${CXXFLAGS}' \
     CFLAGS_BASE2='${CFLAGS}' \
     LDFLAGS_STATIC_3='${LDFLAGS}' \
 "
 
+# Support clang
+MAKEFILE ?= "../../cmpl_gcc.mak"
+MAKEFILE:class-target:toolchain-clang = "../../cmpl_clang.mak"
+
 do_compile() {
-    oe_runmake -C CPP/7zip/Bundles/Alone2    -f ../../cmpl_gcc.mak
-    oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
-    oe_runmake -C CPP/7zip/UI/Console        -f ../../cmpl_gcc.mak
-    oe_runmake -C CPP/7zip/Bundles/SFXCon    -f ../../cmpl_gcc.mak
-    oe_runmake -C CPP/7zip/Bundles/Alone     -f ../../cmpl_gcc.mak
-    oe_runmake -C CPP/7zip/Bundles/Alone7z   -f ../../cmpl_gcc.mak
+    oe_runmake -C CPP/7zip/Bundles/Alone2    -f ${MAKEFILE}
+    oe_runmake -C CPP/7zip/Bundles/Format7zF -f ${MAKEFILE}
+    oe_runmake -C CPP/7zip/UI/Console        -f ${MAKEFILE}
+    oe_runmake -C CPP/7zip/Bundles/SFXCon    -f ${MAKEFILE}
+    oe_runmake -C CPP/7zip/Bundles/Alone     -f ${MAKEFILE}
+    oe_runmake -C CPP/7zip/Bundles/Alone7z   -f ${MAKEFILE}
 }
 
 FILES:${PN} += "${libdir}/*"
@@ -37,15 +45,18 @@  FILES:${PN} += "${libdir}/*"
 FILES_SOLIBSDEV = ""
 INSANE_SKIP:${PN} += "dev-so"
 
+INSTALLDIR ?= "g"
+INSTALLDIR:class-target:toolchain-clang = "c"
+
 do_install() {
 	install -d ${D}${bindir}
-	install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
-	install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
-	install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}/7z.real
+	install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/${INSTALLDIR}/7za ${D}${bindir}
+	install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/${INSTALLDIR}/7zr ${D}${bindir}
+	install -m 0755 ${S}/CPP/7zip/UI/Console/b/${INSTALLDIR}/7z ${D}${bindir}/7z.real
 	install -m 0755 ${WORKDIR}/7z_wrapper.sh ${D}${bindir}/7z
 
 	install -d ${D}${libdir}
-	install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
+	install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/${INSTALLDIR}/7z.so ${D}${libdir}/lib7z.so
 	ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
 }
 
diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
index 06908e94f..e3d047793 100644
--- a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
+++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
@@ -21,8 +21,6 @@  Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
  CPP/7zip/var_gcc.mak  | 2 --
  2 files changed, 1 insertion(+), 3 deletions(-)
 
-diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
-index bcb06a0..297f0a8 100644
 --- a/CPP/7zip/7zip_gcc.mak
 +++ b/CPP/7zip/7zip_gcc.mak
 @@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
@@ -30,12 +28,10 @@  index bcb06a0..297f0a8 100644
  CFLAGS_DEBUG = -DNDEBUG
  ifneq ($(CC), $(CROSS_COMPILE)clang)
 -LFLAGS_STRIP = -s
-+LFLAGS_STRIP = 
++LFLAGS_STRIP =
  endif
  endif
  
-diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
-index 664491c..6d0f485 100644
 --- a/CPP/7zip/var_gcc.mak
 +++ b/CPP/7zip/var_gcc.mak
 @@ -6,7 +6,5 @@ IS_ARM64=
@@ -46,6 +42,12 @@  index 664491c..6d0f485 100644
 -CXX=$(CROSS_COMPILE)g++
  
  # -march=armv8-a+crc+crypto
--- 
-2.34.1
-
+--- a/CPP/7zip/var_clang.mak
++++ b/CPP/7zip/var_clang.mak
+@@ -6,6 +6,4 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)clang
+-CXX=$(CROSS_COMPILE)clang++
+ USE_CLANG=1