Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libEMF for openSUSE:Factory checked in at 2022-09-27 20:13:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libEMF (Old) and /work/SRC/openSUSE:Factory/.libEMF.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libEMF" Tue Sep 27 20:13:03 2022 rev:28 rq:1005984 version:1.0.13 Changes: -------- --- /work/SRC/openSUSE:Factory/libEMF/libEMF.changes 2021-11-15 15:27:49.913847553 +0100 +++ /work/SRC/openSUSE:Factory/.libEMF.new.2275/libEMF.changes 2022-09-27 20:13:05.845716753 +0200 @@ -1,0 +2,6 @@ +Sat Sep 24 08:37:06 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- add riscv64-support.patch +- enable build for riscv64 + +------------------------------------------------------------------- New: ---- riscv64-support.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libEMF.spec ++++++ --- /var/tmp/diff_new_pack.9GMjIz/_old 2022-09-27 20:13:06.369717909 +0200 +++ /var/tmp/diff_new_pack.9GMjIz/_new 2022-09-27 20:13:06.373717918 +0200 @@ -1,7 +1,7 @@ # # spec file for package libEMF # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,12 +22,13 @@ Summary: Library for Manipulation with Enhanced MetaFile (EMF, ECMA-234) License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Libraries -URL: http://libemf.sourceforge.net/ -Source: http://downloads.sourceforge.net/libemf/libemf-%{version}.tar.gz +URL: https://libemf.sourceforge.net/ +Source: https://downloads.sourceforge.net/libemf/libemf-%{version}.tar.gz +Patch1: riscv64-support.patch Patch2: ppc64le-support.patch BuildRequires: gcc-c++ # taken from includes/wine/winnt.h -ExclusiveArch: alpha %{arm} aarch64 %{ix86} mips ppc ppc64 ppc64le sparc s390 s390x x86_64 +ExclusiveArch: alpha %{arm} aarch64 %{ix86} mips ppc ppc64 ppc64le riscv64 sparc s390 s390x x86_64 %description LibEMF is a C/C++ library that provides a drawing toolkit based on @@ -89,8 +90,7 @@ SO/OO graphics object. %prep -%setup -q -n libemf-%{version} -%patch2 -p1 +%autosetup -p1 -n libemf-%{version} %build %configure\ ++++++ riscv64-support.patch ++++++ From: Bo YU <tsu.y...@gmail.com> Date: Mon, 27 Jun 2022 20:11:46 +0800 Subject: add-support-riscv64 add support for riscv64 arch Original reference e2k code for supporting riscv64 arch --- include/libEMF/wine/winnt.h | 75 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/include/libEMF/wine/winnt.h b/include/libEMF/wine/winnt.h index 39e2f90..1609f38 100644 --- a/include/libEMF/wine/winnt.h +++ b/include/libEMF/wine/winnt.h @@ -69,6 +69,10 @@ # define WORDS_BIGENDIAN # define BITFIELDS_BIGENDIAN # undef ALLOW_UNALIGNED_ACCESS +#elif defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64 +# undef WORDS_BIGENDIAN +# undef BITFIELDS_BIGENDIAN +# undef ALLOW_UNALIGNED_ACCESS #elif !defined(RC_INVOKED) # error Unknown CPU architecture! #endif @@ -1582,6 +1586,77 @@ typedef struct _CONTEXT { #endif /* __e2k__ */ +#ifdef __riscv && __riscv_xlen==64 +/* + * FIXME: + * + * There is not yet an official CONTEXT structure defined for the + * riscv64 architecture (64-bit LE), so I just made one up. + * + */ + +#define CONTEXT_RISCV64 0x4000000 +#define CONTEXT_CONTROL (CONTEXT_RISCV64 | 0x00000001) +#define CONTEXT_INTEGER (CONTEXT_RISCV64 | 0x00000002) +#define CONTEXT_FLOATING_POINT (CONTEXT_RISCV64 | 0x00000004) +#define CONTEXT_DEBUG_REGISTERS (CONTEXT_RISCV64 | 0x00000008) + +#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER) + +#define EXCEPTION_READ_FAULT 0 +#define EXCEPTION_WRITE_FAULT 1 +#define EXCEPTION_EXECUTE_FAULT 8 + +typedef struct _CONTEXT { + ULONG ContextFlags; + + /* This section is specified/returned if the ContextFlags word contains + the flag CONTEXT_INTEGER. */ + ULONGLONG X0; + ULONGLONG X1; + ULONGLONG X2; + ULONGLONG X3; + ULONGLONG X4; + ULONGLONG X5; + ULONGLONG X6; + ULONGLONG X7; + ULONGLONG X8; + ULONGLONG X9; + ULONGLONG X10; + ULONGLONG X11; + ULONGLONG X12; + ULONGLONG X13; + ULONGLONG X14; + ULONGLONG X15; + ULONGLONG X16; + ULONGLONG X17; + ULONGLONG X18; + ULONGLONG X19; + ULONGLONG X20; + ULONGLONG X21; + ULONGLONG X22; + ULONGLONG X23; + ULONGLONG X24; + ULONGLONG X25; + ULONGLONG X26; + ULONGLONG X27; + ULONGLONG X28; + ULONGLONG X29; + ULONGLONG X30; + ULONGLONG X31; + + /* These are selected by CONTEXT_CONTROL */ + ULONGLONG Sp; + ULONGLONG Pc; + ULONGLONG PState; + + /* These are selected by CONTEXT_FLOATING_POINT */ + /* FIXME */ +} CONTEXT; + +#endif /* __riscv64__ */ + + #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED) #error You need to define a CONTEXT for your CPU #endif