[libEMF] Add support for ARM using definitions from WINE
Peter Robinson
pbrobinson at fedoraproject.org
Tue May 1 09:47:51 UTC 2012
commit 0e9bc0a922fc22d412de8fe7ecf2ae86aabb9449
Author: Peter Robinson <pbrobinson at gmail.com>
Date: Tue May 1 10:47:47 2012 +0100
Add support for ARM using definitions from WINE
libEMF-arm.patch | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
libEMF.spec | 35 +++++++++++-----------
2 files changed, 101 insertions(+), 17 deletions(-)
---
diff --git a/libEMF-arm.patch b/libEMF-arm.patch
new file mode 100644
index 0000000..5f4e58e
--- /dev/null
+++ b/libEMF-arm.patch
@@ -0,0 +1,83 @@
+--- libEMF-1.0.4/include/libEMF/wine/winnt.h.orig 2012-05-01 09:36:45.607228307 +0100
++++ libEMF-1.0.4/include/libEMF/wine/winnt.h 2012-05-01 10:27:53.636581246 +0100
+@@ -37,6 +37,10 @@
+ # undef WORDS_BIGENDIAN
+ # undef BITFIELDS_BIGENDIAN
+ # undef ALLOW_UNALIGNED_ACCESS
++#elif defined(__arm__)
++# undef WORDS_BIGENDIAN
++# undef BITFIELDS_BIGENDIAN
++# undef ALLOW_UNALIGNED_ACCESS
+ #elif defined(__sparc__)
+ # define WORDS_BIGENDIAN
+ # define BITFIELDS_BIGENDIAN
+@@ -1128,6 +1132,69 @@
+
+ #endif /* __s390__ */
+
++#ifdef __arm__
++
++/* These definitions are taken directly from wine
++ * http://source.winehq.org/git/wine.git/blob_plain/HEAD:/include/winnt.h */
++
++/* The following flags control the contents of the CONTEXT structure. */
++
++#define CONTEXT_ARM 0x0200000
++#define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001)
++#define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002)
++#define CONTEXT_FLOATING_POINT (CONTEXT_ARM | 0x00000004)
++#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM | 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 {
++/* The flags values within this flag control the contents of
++ * a CONTEXT record.
++ *
++ * If the context record is used as an input parameter, then
++ * for each portion of the context record controlled by a flag
++ * whose value is set, it is assumed that that portion of the
++ * context record contains valid context. If the context record
++ * is being used to modify a thread's context, then only that
++ * portion of the threads context will be modified.
++ *
++ * If the context record is used as an IN OUT parameter to capture
++ * the context of a thread, then only those portions of the thread's
++ * context corresponding to set flags will be returned.
++ *
++ * The context record is never used as an OUT only parameter. */
++
++ULONG ContextFlags;
++
++/* This section is specified/returned if the ContextFlags word contains
++ * the flag CONTEXT_INTEGER. */
++ULONG R0;
++ULONG R1;
++ULONG R2;
++ULONG R3;
++ULONG R4;
++ULONG R5;
++ULONG R6;
++ULONG R7;
++ULONG R8;
++ULONG R9;
++ULONG R10;
++ULONG Fp;
++ULONG Ip;
++
++/* These are selected by CONTEXT_CONTROL */
++ULONG Sp;
++ULONG Lr;
++ULONG Pc;
++ULONG Cpsr;
++} CONTEXT;
++
++#endif /* __arm__ */
++
+ #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 44e2a52..9037deb 100644
--- a/libEMF.spec
+++ b/libEMF.spec
@@ -2,18 +2,19 @@ Summary: A library for generating Enhanced Metafiles
Summary(pl): Biblioteka do generowania plików w formacie Enhanced Metafile
Name: libEMF
Version: 1.0.4
-Release: 3%{?dist}
+Release: 4%{?dist}
License: LGPLv2+ and GPLv2+
Group: System Environment/Libraries
+URL: http://libemf.sourceforge.net/
+
Source0: http://downloads.sourceforge.net/pstoedit/%{name}-%{version}.tar.gz
# Source0-md5: a4e91fd8077ce5f540f569e20e8ef7ff
Patch0: %{name}-amd64.patch
Patch1: %{name}-axp.patch
-Patch3: %{name}-s390.patch
-URL: http://libemf.sourceforge.net/
+Patch2: %{name}-s390.patch
+Patch3: %{name}-arm.patch
BuildRequires: libstdc++-devel
BuildRequires: libtool
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
%description
libEMF is a library for generating Enhanced Metafiles on systems which
@@ -46,35 +47,32 @@ Pliki nagłówkowe libEMF.
%setup -q
%patch0 -p1 -b .amd64
%patch1 -p1 -b .axp
-%patch3 -p1 -b .s390
+%patch2 -p1 -b .s390
+%patch3 -p1 -b .arm
+
chmod 0644 libemf/libemf.h
%build
# supplied libtool is broken (no C++ libraries support)
-%{__libtoolize} --force
-%{__aclocal}
-%{__autoconf}
-%{__automake}
+libtoolize --force
+aclocal
+autoconf
+automake
%configure \
--disable-static \
--enable-editing
-%{__make} %{?_smp_mflags}
+make %{?_smp_mflags}
%install
-rm -rf $RPM_BUILD_ROOT
-
export CPPROG="cp -p"
-%{__make} install \
+make install \
DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/libEMF.la
%check
-%{__make} check
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+make check
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@@ -92,6 +90,9 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/libEMF
%changelog
+* Tue May 1 2012 Peter Robinson <pbrobinson at fedoraproject.org> - 1.0.4-4
+- Add support for ARM using definitions from WINE
+
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
More information about the scm-commits
mailing list