Skip to content

Commit

Permalink
addpkg: libemf
Browse files Browse the repository at this point in the history
  • Loading branch information
r-value committed Nov 12, 2021
1 parent 0842c48 commit 826bb34
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 0 deletions.
84 changes: 84 additions & 0 deletions libemf/add-riscv64-support.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
Index: libemf-1.0.12/include/libEMF/wine/winnt.h
===================================================================
--- libemf-1.0.12.orig/include/libEMF/wine/winnt.h
+++ libemf-1.0.12/include/libEMF/wine/winnt.h
@@ -74,6 +74,10 @@
# define WORDS_BIGENDIAN
# define BITFIELDS_BIGENDIAN
# undef ALLOW_UNALIGNED_ACCESS
+#elif defined(__riscv)
+# undef WORDS_BIGENDIAN
+# undef BITFIELDS_BIGENDIAN
+# undef ALLOW_UNALIGNED_ACCESS
#elif !defined(RC_INVOKED)
# error Unknown CPU architecture!
#endif
@@ -1587,6 +1591,68 @@ typedef struct _CONTEXT {

#endif /* __e2k__ */

+#ifdef __riscv
+
+/*
+ * FIXME:
+ *
+ * There is not yet an official CONTEXT structure defined for the RISC-V
+ * architecture, so I just made one up.
+ *
+ */
+
+#define CONTEXT_CONTROL 0x0001
+#define CONTEXT_FLOATING_POINT 0x0002
+#define CONTEXT_INTEGER 0x0004
+#define CONTEXT_DEBUG_REGISTERS 0x0008
+#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
+
+typedef struct _CONTEXT {
+ ULONG ContextFlags;
+
+ /* This section is specified/returned if the ContextFlags word contains
+ the flag CONTEXT_INTEGER. */
+ 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 Pc;
+
+ /* These are selected by CONTEXT_FLOATING_POINT */
+ /* FIXME */
+} CONTEXT;
+
+#endif /* __riscv */
+
#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
#error You need to define a CONTEXT for your CPU
#endif
24 changes: 24 additions & 0 deletions libemf/riscv64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git PKGBUILD PKGBUILD
index 434beaf..32e767c 100644
--- PKGBUILD
+++ PKGBUILD
@@ -9,8 +9,17 @@ arch=('x86_64')
url='http://libemf.sourceforge.net/'
license=('GPL' 'LGPL')
depends=('gcc-libs')
-source=("https://sourceforge.net/projects/libemf/files/libemf/${pkgver}/${pkgname}-${pkgver}.tar.gz")
-sha256sums=('74d92c017e8beb41730a8be07c2c6e4ff6547660c84bf91f832d8f325dd0cf82')
+source=("https://sourceforge.net/projects/libemf/files/libemf/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ "add-riscv64-support.patch")
+sha256sums=('74d92c017e8beb41730a8be07c2c6e4ff6547660c84bf91f832d8f325dd0cf82'
+ '8f6f0ddee95183d95f979e5cb56cf440906ded663eaaca97a444fecf520a925e')
+
+prepare() {
+ cd "${pkgname}-${pkgver}"
+
+ # Patch from https://build.opensuse.org/package/view_file/openSUSE:Factory:RISCV/libEMF/riscv.patch
+ patch -Np1 -i ${srcdir}/add-riscv64-support.patch
+}

build() {
cd "${pkgname}-${pkgver}"

0 comments on commit 826bb34

Please sign in to comment.