gnu: ogre-next: Fix build on riscv64.

* gnu/packages/graphics.scm (ogre-next): Fix build on riscv64.
[source]: Add ogre-next-add-riscv64-support.patch.
[argument]<#:configure-flags>: When target riscv64, Add -DOGRE_SIMD_SSE2=OFF
and -DOGRE_SIMD_NEON=OFF.
* gnu/packages/patches/ogre-next-add-riscv64-support.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I77279f3f5ed238f8b6526b5eceea5751f86ea6e1
This commit is contained in:
Zheng Junjie 2025-03-17 22:16:59 +08:00
parent 953ec15324
commit 76a3b35e31
No known key found for this signature in database
GPG key ID: 3B5AA993E1A2DFF0
3 changed files with 39 additions and 2 deletions

View file

@ -1923,6 +1923,7 @@ dist_patch_DATA = \
%D%/packages/patches/nyacc-binary-literals.patch \ %D%/packages/patches/nyacc-binary-literals.patch \
%D%/packages/patches/obs-modules-location.patch \ %D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \ %D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ogre-next-add-riscv64-support.patch \
%D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \ %D%/packages/patches/ocaml-4.07-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \ %D%/packages/patches/ocaml-4.09-dynamically-allocate-signal-stack.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \ %D%/packages/patches/ocaml-4.09-multiple-definitions.patch \

View file

@ -29,7 +29,7 @@
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2022, 2024, 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 dan <i@dan.games> ;;; Copyright © 2022 dan <i@dan.games>
@ -1354,6 +1354,7 @@ graphics.")
(url "https://github.com/OGRECave/ogre-next") (url "https://github.com/OGRECave/ogre-next")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches (search-patches "ogre-next-add-riscv64-support.patch"))
(sha256 (sha256
(base32 (base32
"1yrlg3s654xbp95208h9a2b8jcwdk69r6sjvll0aiyvxm4c056cw")))) "1yrlg3s654xbp95208h9a2b8jcwdk69r6sjvll0aiyvxm4c056cw"))))
@ -1361,7 +1362,14 @@ graphics.")
((#:tests? _ #f) ((#:tests? _ #f)
;; The test suite is currently disabled by the build system ;; The test suite is currently disabled by the build system
;; (see: https://github.com/OGRECave/ogre-next/issues/466). ;; (see: https://github.com/OGRECave/ogre-next/issues/466).
#f))) #f)
((#:configure-flags flags #~(list))
(if (target-riscv64?)
#~(cons*
"-DOGRE_SIMD_SSE2=OFF"
"-DOGRE_SIMD_NEON=OFF"
#$flags)
flags))))
(inputs (inputs
(modify-inputs (package-inputs ogre) (modify-inputs (package-inputs ogre)
(append rapidjson))))) (append rapidjson)))))

View file

@ -0,0 +1,28 @@
from https://github.com/OGRECave/ogre-next/pull/478
From 12081a8f1a0e676ac618dd7c4c1d2e8390c07278 Mon Sep 17 00:00:00 2001
From: Eric Long <i@hack3r.moe>
Date: Mon, 18 Nov 2024 21:56:13 +0800
Subject: [PATCH] Add riscv64 to 64-bit architectures
---
OgreMain/include/OgrePlatform.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/OgreMain/include/OgrePlatform.h b/OgreMain/include/OgrePlatform.h
index f9f7a12e46..a977aa2958 100644
--- a/OgreMain/include/OgrePlatform.h
+++ b/OgreMain/include/OgrePlatform.h
@@ -81,7 +81,8 @@ THE SOFTWARE.
#if defined( __x86_64__ ) || defined( _M_X64 ) || defined( _M_X64 ) || defined( _M_AMD64 ) || \
defined( __ppc64__ ) || defined( __PPC64__ ) || defined( __arm64__ ) || defined( __aarch64__ ) || \
defined( _M_ARM64 ) || defined( __mips64 ) || defined( __mips64_ ) || defined( __alpha__ ) || \
- defined( __ia64__ ) || defined( __e2k__ ) || defined( __s390__ ) || defined( __s390x__ )
+ defined( __ia64__ ) || defined( __e2k__ ) || defined( __s390__ ) || defined( __s390x__ ) || \
+ (defined(__riscv) && __riscv_xlen == 64)
# define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_64
#else
# define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_32
--
2.47.1