From owner-svn-ports-head@freebsd.org Thu Sep 3 09:57:21 2015 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 288C39C92DA; Thu, 3 Sep 2015 09:57:21 +0000 (UTC) (envelope-from amdmi3@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 190BE34F; Thu, 3 Sep 2015 09:57:21 +0000 (UTC) (envelope-from amdmi3@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t839vKrn069015; Thu, 3 Sep 2015 09:57:20 GMT (envelope-from amdmi3@FreeBSD.org) Received: (from amdmi3@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t839vKRd069013; Thu, 3 Sep 2015 09:57:20 GMT (envelope-from amdmi3@FreeBSD.org) Message-Id: <201509030957.t839vKRd069013@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: amdmi3 set sender to amdmi3@FreeBSD.org using -f From: Dmitry Marakasov Date: Thu, 3 Sep 2015 09:57:20 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r395939 - in head/graphics/libemf: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Sep 2015 09:57:21 -0000 Author: amdmi3 Date: Thu Sep 3 09:57:19 2015 New Revision: 395939 URL: https://svnweb.freebsd.org/changeset/ports/395939 Log: - 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) Added: head/graphics/libemf/files/ head/graphics/libemf/files/patch-include_libEMF_wine_winnt.h (contents, props changed) Modified: head/graphics/libemf/Makefile Modified: head/graphics/libemf/Makefile ============================================================================== --- head/graphics/libemf/Makefile Thu Sep 3 09:52:06 2015 (r395938) +++ head/graphics/libemf/Makefile Thu Sep 3 09:57:19 2015 (r395939) @@ -10,6 +10,8 @@ MASTER_SITES= SF MAINTAINER= maho@FreeBSD.org COMMENT= Enhanced Metafile Library +LICENSE= LGPL21 + OPTIONS_DEFINE= DOCS USES= libtool Added: head/graphics/libemf/files/patch-include_libEMF_wine_winnt.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/libemf/files/patch-include_libEMF_wine_winnt.h Thu Sep 3 09:57:19 2015 (r395939) @@ -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