Accepting request 160298 from multimedia:libs

- aarch64-support.patch: Support for aarch64 (forwarded request 160296 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/160298
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libEMF?expand=0&rev=19
This commit is contained in:
Stephan Kulow 2013-03-21 09:39:26 +00:00 committed by Git OBS Bridge
commit 5b42053b51
3 changed files with 103 additions and 1 deletions

95
aarch64-support.patch Normal file
View File

@ -0,0 +1,95 @@
Index: libEMF-1.0.7/include/libEMF/wine/winnt.h
===================================================================
--- libEMF-1.0.7.orig/include/libEMF/wine/winnt.h
+++ libEMF-1.0.7/include/libEMF/wine/winnt.h
@@ -57,6 +57,10 @@
# define WORDS_BIGENDIAN
# define BITFIELDS_BIGENDIAN
# undef ALLOW_UNALIGNED_ACCESS
+#elif defined(__aarch64__)
+# undef WORDS_BIGENDIAN
+# undef BITFIELDS_BIGENDIAN
+# undef ALLOW_UNALIGNED_ACCESS
#elif !defined(RC_INVOKED)
# error Unknown CPU architecture!
#endif
@@ -1425,6 +1429,79 @@ ULONG Cpsr;
#endif /* __arm__ */
+#ifdef __aarch64__
+
+/* These definitions are taken directly from wine
+ http://source.winehq.org/git/wine.git/blob_plain/HEAD:/include/winnt.h */
+
+/*
+ * FIXME:
+ *
+ * There is not yet an official CONTEXT structure defined for the AArch64
+ * architecture, so I just made one up.
+ *
+ */
+
+#define CONTEXT_ARM64 0x2000000
+#define CONTEXT_CONTROL (CONTEXT_ARM64 | 0x00000001)
+#define CONTEXT_INTEGER (CONTEXT_ARM64 | 0x00000002)
+#define CONTEXT_FLOATING_POINT (CONTEXT_ARM64 | 0x00000004)
+#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 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;
+
+ /* These are selected by CONTEXT_CONTROL */
+ ULONGLONG Sp;
+ ULONGLONG Pc;
+ ULONGLONG PState;
+
+ /* These are selected by CONTEXT_FLOATING_POINT */
+ /* FIXME */
+} CONTEXT;
+
+#endif /* __aarch64__ */
+
#if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
#error You need to define a CONTEXT for your CPU
#endif

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Mar 20 16:30:03 UTC 2013 - schwab@suse.de
- aarch64-support.patch: Support for aarch64
-------------------------------------------------------------------
Wed Feb 27 06:20:03 UTC 2013 - coolo@suse.com

View File

@ -21,13 +21,14 @@ BuildRequires: gcc-c++
Version: 1.0.7
Release: 0
Source: %{name}-%{version}.tar.gz
Patch: aarch64-support.patch
Url: http://libemf.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Library for Manipulation with Enhanced MetaFile (EMF, ECMA-234)
License: LGPL-2.1+ and GPL-2.0+
Group: System/Libraries
# taken from includes/wine/winnt.h
ExclusiveArch: alpha %arm %ix86 mips ppc ppc64 sparc s390 s390x x86_64
ExclusiveArch: alpha %arm aarch64 %ix86 mips ppc ppc64 sparc s390 s390x x86_64
%description
LibEMF is a C/C++ library that provides a drawing toolkit based on
@ -90,6 +91,7 @@ SO/OO graphics object.
%prep
%setup -q
%patch -p1
%build
%configure\