diff options
author | amdmi3 <amdmi3@FreeBSD.org> | 2015-09-03 17:57:19 +0800 |
---|---|---|
committer | amdmi3 <amdmi3@FreeBSD.org> | 2015-09-03 17:57:19 +0800 |
commit | 542fb18dbd6476d2ec44f14667257657270388d6 (patch) | |
tree | 46fc04b74bb18f47ad790ed1f883937169a28f4a /graphics | |
parent | b6e9b6cc2761be911e1668525f50adb1c10cab77 (diff) | |
download | freebsd-ports-gnome-542fb18dbd6476d2ec44f14667257657270388d6.tar.gz freebsd-ports-gnome-542fb18dbd6476d2ec44f14667257657270388d6.tar.zst freebsd-ports-gnome-542fb18dbd6476d2ec44f14667257657270388d6.zip |
- Add parts of code from newer wine to fix build on mips and aarch64
PR: 202104
Submitted by: amdmi3
Approved by: maintainer timeout (maho, 4 weeks)
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/libemf/Makefile | 2 | ||||
-rw-r--r-- | graphics/libemf/files/patch-include_libEMF_wine_winnt.h | 202 |
2 files changed, 204 insertions, 0 deletions
diff --git a/graphics/libemf/Makefile b/graphics/libemf/Makefile index 6cae48c94321..907fb3556ef2 100644 --- a/graphics/libemf/Makefile +++ b/graphics/libemf/Makefile @@ -10,6 +10,8 @@ MASTER_SITES= SF MAINTAINER= maho@FreeBSD.org COMMENT= Enhanced Metafile Library +LICENSE= LGPL21 + OPTIONS_DEFINE= DOCS USES= libtool diff --git a/graphics/libemf/files/patch-include_libEMF_wine_winnt.h b/graphics/libemf/files/patch-include_libEMF_wine_winnt.h new file mode 100644 index 000000000000..b07c85853364 --- /dev/null +++ b/graphics/libemf/files/patch-include_libEMF_wine_winnt.h @@ -0,0 +1,202 @@ +--- include/libEMF/wine/winnt.h.orig 2012-11-06 12:40:59 UTC ++++ include/libEMF/wine/winnt.h +@@ -57,6 +57,22 @@ + # define WORDS_BIGENDIAN + # define BITFIELDS_BIGENDIAN + # undef ALLOW_UNALIGNED_ACCESS ++#elif defined(__AARCH64EB__) ++# define WORDS_BIGENDIAN ++# define BITFIELDS_BIGENDIAN ++# undef ALLOW_UNALIGNED_ACCESS ++#elif defined(__AARCH64EL__) || defined(__aarch64__) ++# undef WORDS_BIGENDIAN ++# undef BITFIELDS_BIGENDIAN ++# undef ALLOW_UNALIGNED_ACCESS ++#elif defined(__MIPSEB__) ++# define WORDS_BIGENDIAN ++# define BITFIELDS_BIGENDIAN ++# undef ALLOW_UNALIGNED_ACCESS ++#elif defined(__MIPSEL__) ++# undef WORDS_BIGENDIAN ++# undef BITFIELDS_BIGENDIAN ++# undef ALLOW_UNALIGNED_ACCESS + #elif !defined(RC_INVOKED) + # error Unknown CPU architecture! + #endif +@@ -1425,6 +1441,176 @@ ULONG Cpsr; + + #endif /* __arm__ */ + ++#ifdef __aarch64__ ++/* ++ * FIXME: ++ * ++ * There is not yet an official CONTEXT structure defined for the AArch64 ++ * architecture, so I just made one up. ++ * ++ */ ++ ++#define CONTEXT_ARM64 0x400000 ++#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; ++ ULONG Cpsr; ++ ++ /* 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; ++ ++ /* These are selected by CONTEXT_CONTROL */ ++ ULONGLONG Fp; ++ ULONGLONG Lr; ++ ULONGLONG Sp; ++ ULONGLONG Pc; ++ ++ /* These are selected by CONTEXT_FLOATING_POINT */ ++ /* FIXME */ ++} CONTEXT; ++ ++#endif /* __aarch64__ */ ++ ++/* Mips context definitions */ ++#if defined(_MIPS_) || defined(__MIPS__) || defined(__mips__) ++ ++#define CONTEXT_R4000 0x00010000 ++ ++#define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001) ++#define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002) ++#define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004) ++ ++#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) ++ ++#define EXCEPTION_READ_FAULT 0 ++#define EXCEPTION_WRITE_FAULT 1 ++#define EXCEPTION_EXECUTE_FAULT 8 ++ ++typedef struct _CONTEXT ++{ ++ DWORD Argument[4]; ++ /* These are selected by CONTEXT_FLOATING_POINT */ ++ DWORD FltF0; ++ DWORD FltF1; ++ DWORD FltF2; ++ DWORD FltF3; ++ DWORD FltF4; ++ DWORD FltF5; ++ DWORD FltF6; ++ DWORD FltF7; ++ DWORD FltF8; ++ DWORD FltF9; ++ DWORD FltF10; ++ DWORD FltF11; ++ DWORD FltF12; ++ DWORD FltF13; ++ DWORD FltF14; ++ DWORD FltF15; ++ DWORD FltF16; ++ DWORD FltF17; ++ DWORD FltF18; ++ DWORD FltF19; ++ DWORD FltF20; ++ DWORD FltF21; ++ DWORD FltF22; ++ DWORD FltF23; ++ DWORD FltF24; ++ DWORD FltF25; ++ DWORD FltF26; ++ DWORD FltF27; ++ DWORD FltF28; ++ DWORD FltF29; ++ DWORD FltF30; ++ DWORD FltF31; ++ ++ /* These are selected by CONTEXT_INTEGER */ ++ DWORD IntZero; ++ DWORD IntAt; ++ DWORD IntV0; ++ DWORD IntV1; ++ DWORD IntA0; ++ DWORD IntA1; ++ DWORD IntA2; ++ DWORD IntA3; ++ DWORD IntT0; ++ DWORD IntT1; ++ DWORD IntT2; ++ DWORD IntT3; ++ DWORD IntT4; ++ DWORD IntT5; ++ DWORD IntT6; ++ DWORD IntT7; ++ DWORD IntS0; ++ DWORD IntS1; ++ DWORD IntS2; ++ DWORD IntS3; ++ DWORD IntS4; ++ DWORD IntS5; ++ DWORD IntS6; ++ DWORD IntS7; ++ DWORD IntT8; ++ DWORD IntT9; ++ DWORD IntK0; ++ DWORD IntK1; ++ DWORD IntGp; ++ DWORD IntSp; ++ DWORD IntS8; ++ DWORD IntRa; ++ DWORD IntLo; ++ DWORD IntHi; ++ ++ /* These are selected by CONTEXT_FLOATING_POINT */ ++ DWORD Fsr; ++ ++ /* These are selected by CONTEXT_CONTROL */ ++ DWORD Fir; ++ DWORD Psr; ++ ++ DWORD ContextFlags; ++ DWORD Fill[2]; ++} CONTEXT; ++ ++#endif /* _MIPS_ */ ++ + #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED) + #error You need to define a CONTEXT for your CPU + #endif |