[libEMF] Add initial patch for aarch64 support (likely needs more work)

Peter Robinson pbrobinson at fedoraproject.org
Sun May 11 09:08:30 UTC 2014


commit c50103fdaa5b5d8b1b147252d13965cab5a9a9fe
Author: Peter Robinson <pbrobinson at gmail.com>
Date:   Sun May 11 10:08:50 2014 +0100

    Add initial patch for aarch64 support (likely needs more work)

 libEMF-aarch64.patch |   92 ++++++++++++++++++++++++++++++++++++++++++++++++++
 libEMF.spec          |    9 +++--
 2 files changed, 98 insertions(+), 3 deletions(-)
---
diff --git a/libEMF-aarch64.patch b/libEMF-aarch64.patch
new file mode 100644
index 0000000..927a2c7
--- /dev/null
+++ b/libEMF-aarch64.patch
@@ -0,0 +1,92 @@
+--- libEMF-1.0.7/include/libEMF/wine/winnt.h.orig	2014-05-11 09:42:07.438982485 +0100
++++ libEMF-1.0.7/include/libEMF/wine/winnt.h	2014-05-11 09:42:42.104573014 +0100
+@@ -45,6 +45,10 @@
+ # undef  WORDS_BIGENDIAN
+ # undef  BITFIELDS_BIGENDIAN
+ # undef  ALLOW_UNALIGNED_ACCESS
++#elif defined(__aarch64__)
++# undef  WORDS_BIGENDIAN
++# undef  BITFIELDS_BIGENDIAN
++# undef  ALLOW_UNALIGNED_ACCESS
+ #elif defined(__sparc__)
+ # define WORDS_BIGENDIAN
+ # define BITFIELDS_BIGENDIAN
+@@ -1425,6 +1429,78 @@
+ 
+ #endif /* __arm__ */
+ 
++#ifdef __aarch64__
++/*
++ * FIXME:
++ *
++ * There is not yet an official CONTEXT structure defined for the AArch64
++ * architecture, so I just made one up.
++ *
++ */
++
++/* These definitions are taken directly from wine 
++ * http://source.winehq.org/git/wine.git/blob_plain/HEAD:/include/winnt.h */
++
++#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
diff --git a/libEMF.spec b/libEMF.spec
index 441d6f2..c4c9f4f 100644
--- a/libEMF.spec
+++ b/libEMF.spec
@@ -2,12 +2,12 @@ Summary:	A library for generating Enhanced Metafiles
 Summary(pl):	Biblioteka do generowania plików w formacie Enhanced Metafile
 Name:		libEMF
 Version:	1.0.7
-Release:	4%{?dist}
+Release:	5%{?dist}
 License:	LGPLv2+ and GPLv2+
 URL:		http://libemf.sourceforge.net/
 Source0:	http://downloads.sourceforge.net/project/libemf/libemf/%{version}/libEMF-%{version}.tar.gz
+Patch0:		libEMF-aarch64.patch
 BuildRequires:	libstdc++-devel
-BuildRequires:	libtool
 
 %description
 libEMF is a library for generating Enhanced Metafiles on systems which
@@ -37,7 +37,7 @@ Pliki nagłówkowe libEMF.
 
 %prep
 %setup -q
-autoreconf -vif
+%patch0 -p1 -b .aarch64
 
 %build
 %configure \
@@ -70,6 +70,9 @@ make check
 %{_includedir}/libEMF
 
 %changelog
+* Sun May 11 2014 Peter Robinson <pbrobinson at fedoraproject.org> 1.0.7-7
+- Add initial patch for aarch64 support (likely needs more work)
+
 * Thu Mar 06 2014 Dominik 'Rathann' Mierzejewski <rpm at greysector.net> 1.0.7-4
 - fix build on aarch64 (bug #925711)
 - drop some obsolete/redundant specfile parts


More information about the scm-commits mailing list