Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 00/18] Package Updates
@ 2013-04-24 21:36 Saul Wold
  2013-04-24 21:36 ` [PATCH 01/18] less: Update to 458 Saul Wold
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Nothing really suprising here, I am doing a glib update 
and will have some other changes pending after that is
complete.

I am also testing an update to pkgconfig, which now carries
a mini glib to prevent circular issues, the first to was to
move patches from the .inc to the .bb file.

Sau!

The following changes since commit 395b90054eccddc1c9062a9a8657ed4482b7710a:

  glib-2.0: disable tests for native builds, and respect ptest for LSB (2013-04-22 15:48:57 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib sgw/updates
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/updates

Saul Wold (18):
  less: Update to 458
  lsbinitscripts: Update to 9.46
  sysstat: Update to 10.1.5
  sqlite: Update to 3071602
  dhcp: Update to 4.2.5-P1
  resolvconf: Update to 1.71
  dpkg: Update to 1.16.10
  file: Update to 5.14
  libffi: Update to 3.0.13
  nspr: Update to 4.9.6
  libgcrypt: Update to 1.5.1
  pkgconfig: Move patches in prep for 0.28 update
  libxkbcommon: Update to 0.3.0
  glew: fix generation of glew.pc needed by mesa-demos
  mesa-demos: Update to 8.1.0
  glib-2.0: Update to 2.36
  glib-networking: Update to 2.36
  build-appliance: Add version info

 .../dhcp-3.0.3-dhclient-dbus.patch                 |    0
 .../{dhcp-4.2.5 => dhcp}/fix-client-path.patch     |    0
 .../{dhcp-4.2.5 => dhcp}/fix-external-bind.patch   |    0
 .../dhcp/{dhcp-4.2.5 => dhcp}/fixincludes.patch    |    0
 .../dhcp/{dhcp-4.2.5 => dhcp}/fixsepbuild.patch    |    0
 .../{dhcp-4.2.5 => dhcp}/link-with-lcrypto.patch   |    0
 .../dhcp/{dhcp-4.2.5 => dhcp}/noattrmode.patch     |    0
 .../dhcp/{dhcp-4.2.5 => dhcp}/site.h               |    0
 .../dhcp/{dhcp_4.2.5.bb => dhcp_4.2.5-P1.bb}       |    4 +-
 .../{resolvconf_1.70.bb => resolvconf_1.71.bb}     |    5 +-
 .../glib-2.0/obsolete_automake_macros.patch        |   13 -
 .../{glib-2.0_2.34.3.bb => glib-2.0_2.36.0.bb}     |   12 +-
 meta/recipes-core/glib-2.0/glib.inc                |    2 +-
 ...working_2.28.7.bb => glib-networking_2.36.0.bb} |   10 +-
 ...iance-image.bb => build-appliance-image_8.0.bb} |    0
 .../dpkg/{dpkg_1.16.9.bb => dpkg_1.16.10.bb}       |    4 +-
 .../file/{file_5.13.bb => file_5.14.bb}            |    4 +-
 meta/recipes-devtools/pkgconfig/pkgconfig.inc      |    8 +-
 meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb  |    7 +
 .../less/{less_457.bb => less_458.bb}              |    5 +-
 ...binitscripts_9.45.bb => lsbinitscripts_9.46.bb} |    7 +-
 .../{sysstat_10.1.4.bb => sysstat_10.1.5.bb}       |    4 +-
 .../libffi/0001-libffi-update-for-3.0.11.patch     |  171 --
 .../libffi/aarch64-adding-build-support.patch      |   63 -
 .../libffi/libffi/add-aarch64-support.patch        | 2672 --------------------
 .../libffi/libffi/fix-libffi.la-location.patch     |   18 +
 .../libffi/{libffi_3.0.11.bb => libffi_3.0.13.bb}  |   11 +-
 .../glew/files/fix-glew.pc-install.patch           |   44 +
 meta/recipes-graphics/glew/glew_1.9.0.bb           |    1 +
 ...glgears-Make-EGL_KHR_image-usage-portable.patch |   95 -
 .../mesa-demos/dso_linking_change_build_fix.patch  |   24 -
 .../mesa/mesa-demos/gles2-info.patch               |   21 -
 .../{mesa-demos_8.0.1.bb => mesa-demos_8.1.0.bb}   |   11 +-
 ...libxkbcommon_0.2.0.bb => libxkbcommon_0.3.0.bb} |   11 +-
 .../libgcrypt-1.5.0/obsolete_automake_macros.patch |   15 -
 meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb  |    9 -
 meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb  |    4 +
 .../nspr/{nspr_4.9.5.bb => nspr_4.9.6.bb}          |    7 +-
 .../{sqlite3_3071502.bb => sqlite3_3071602.bb}     |    9 +-
 39 files changed, 118 insertions(+), 3153 deletions(-)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/dhcp-3.0.3-dhclient-dbus.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fix-client-path.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fix-external-bind.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixincludes.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixsepbuild.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/link-with-lcrypto.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/noattrmode.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/site.h (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp_4.2.5.bb => dhcp_4.2.5-P1.bb} (66%)
 rename meta/recipes-connectivity/resolvconf/{resolvconf_1.70.bb => resolvconf_1.71.bb} (87%)
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/obsolete_automake_macros.patch
 rename meta/recipes-core/glib-2.0/{glib-2.0_2.34.3.bb => glib-2.0_2.36.0.bb} (85%)
 rename meta/recipes-core/glib-networking/{glib-networking_2.28.7.bb => glib-networking_2.36.0.bb} (71%)
 rename meta/recipes-core/images/{build-appliance-image.bb => build-appliance-image_8.0.bb} (100%)
 rename meta/recipes-devtools/dpkg/{dpkg_1.16.9.bb => dpkg_1.16.10.bb} (71%)
 rename meta/recipes-devtools/file/{file_5.13.bb => file_5.14.bb} (86%)
 rename meta/recipes-extended/less/{less_457.bb => less_458.bb} (87%)
 rename meta/recipes-extended/lsb/{lsbinitscripts_9.45.bb => lsbinitscripts_9.46.bb} (77%)
 rename meta/recipes-extended/sysstat/{sysstat_10.1.4.bb => sysstat_10.1.5.bb} (44%)
 delete mode 100644 meta/recipes-gnome/libffi/libffi/0001-libffi-update-for-3.0.11.patch
 delete mode 100644 meta/recipes-gnome/libffi/libffi/aarch64-adding-build-support.patch
 delete mode 100644 meta/recipes-gnome/libffi/libffi/add-aarch64-support.patch
 create mode 100644 meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
 rename meta/recipes-gnome/libffi/{libffi_3.0.11.bb => libffi_3.0.13.bb} (76%)
 create mode 100644 meta/recipes-graphics/glew/files/fix-glew.pc-install.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/dso_linking_change_build_fix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-demos_8.0.1.bb => mesa-demos_8.1.0.bb} (69%)
 rename meta/recipes-graphics/xorg-lib/{libxkbcommon_0.2.0.bb => libxkbcommon_0.3.0.bb} (67%)
 delete mode 100644 meta/recipes-support/libgcrypt/libgcrypt-1.5.0/obsolete_automake_macros.patch
 delete mode 100644 meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb
 create mode 100644 meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb
 rename meta/recipes-support/nspr/{nspr_4.9.5.bb => nspr_4.9.6.bb} (95%)
 rename meta/recipes-support/sqlite/{sqlite3_3071502.bb => sqlite3_3071602.bb} (41%)

-- 
1.8.0.2




^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 01/18] less: Update to 458
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:36 ` [PATCH 02/18] lsbinitscripts: Update to 9.46 Saul Wold
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-extended/less/{less_457.bb => less_458.bb} | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
 rename meta/recipes-extended/less/{less_457.bb => less_458.bb} (87%)

diff --git a/meta/recipes-extended/less/less_457.bb b/meta/recipes-extended/less/less_458.bb
similarity index 87%
rename from meta/recipes-extended/less/less_457.bb
rename to meta/recipes-extended/less/less_458.bb
index 41d2515..3e4518a 100644
--- a/meta/recipes-extended/less/less_457.bb
+++ b/meta/recipes-extended/less/less_458.bb
@@ -23,12 +23,11 @@ LICENSE = "GPLv3+ | BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://LICENSE;md5=866cc220f330b04ae4661fc3cdfedea7"
 DEPENDS = "ncurses"
-PR = "r0"
 
 SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "b5a964682f327b0dceb690f34e02632f"
-SRC_URI[sha256sum] = "63c9c421df5c64439babc3aa44861512c298af394c932672b3e5aeb53580eed8"
+SRC_URI[md5sum] = "935b38aa2e73c888c210dedf8fd94f49"
+SRC_URI[sha256sum] = "e536c7819ede54b3d487f0ffc4c14b3620bed83734d92a81e89f62346db0fcac"
 
 inherit autotools update-alternatives
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 02/18] lsbinitscripts: Update to 9.46
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
  2013-04-24 21:36 ` [PATCH 01/18] less: Update to 458 Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:36 ` [PATCH 03/18] sysstat: Update to 10.1.5 Saul Wold
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../lsb/{lsbinitscripts_9.45.bb => lsbinitscripts_9.46.bb}         | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
 rename meta/recipes-extended/lsb/{lsbinitscripts_9.45.bb => lsbinitscripts_9.46.bb} (77%)

diff --git a/meta/recipes-extended/lsb/lsbinitscripts_9.45.bb b/meta/recipes-extended/lsb/lsbinitscripts_9.46.bb
similarity index 77%
rename from meta/recipes-extended/lsb/lsbinitscripts_9.45.bb
rename to meta/recipes-extended/lsb/lsbinitscripts_9.46.bb
index 2cc5f16..50401bf 100644
--- a/meta/recipes-extended/lsb/lsbinitscripts_9.45.bb
+++ b/meta/recipes-extended/lsb/lsbinitscripts_9.46.bb
@@ -2,17 +2,16 @@ DESCRIPTION = "SysV init scripts which only is used in an LSB image"
 SECTION = "base"
 LICENSE = "GPLv2"
 DEPENDS = "popt glib-2.0"
-PR = "r0"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6"
 
 S="${WORKDIR}/initscripts-${PV}"
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-${PV}.tar.bz2/dd514ee65e4a4610be836bb34c62c0ed/initscripts-${PV}.tar.bz2 \
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-9.46.tar.bz2/f0755d9f1e0a8ae470c22798695c3b39/initscripts-9.46.tar.bz2 \
            file://functions.patch \
           " 
 
-SRC_URI[md5sum] = "dd514ee65e4a4610be836bb34c62c0ed"
-SRC_URI[sha256sum] = "dd8bfa09f41f56c223f90629f31fc16decc3b9df4c72b1e3ee00cfa3f7d9c48c"
+SRC_URI[md5sum] = "f0755d9f1e0a8ae470c22798695c3b39"
+SRC_URI[sha256sum] = "f1b9003826d6c524c6b144e554ec38e788531270b8df252218708da11c9e4973"
 
 inherit update-alternatives
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 03/18] sysstat: Update to 10.1.5
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
  2013-04-24 21:36 ` [PATCH 01/18] less: Update to 458 Saul Wold
  2013-04-24 21:36 ` [PATCH 02/18] lsbinitscripts: Update to 9.46 Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:36 ` [PATCH 04/18] sqlite: Update to 3071602 Saul Wold
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../recipes-extended/sysstat/{sysstat_10.1.4.bb => sysstat_10.1.5.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-extended/sysstat/{sysstat_10.1.4.bb => sysstat_10.1.5.bb} (44%)

diff --git a/meta/recipes-extended/sysstat/sysstat_10.1.4.bb b/meta/recipes-extended/sysstat/sysstat_10.1.5.bb
similarity index 44%
rename from meta/recipes-extended/sysstat/sysstat_10.1.4.bb
rename to meta/recipes-extended/sysstat/sysstat_10.1.5.bb
index d7fe93b..7513fd2 100644
--- a/meta/recipes-extended/sysstat/sysstat_10.1.4.bb
+++ b/meta/recipes-extended/sysstat/sysstat_10.1.5.bb
@@ -4,5 +4,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
 
 PR = "${INC_PR}.0"
 
-SRC_URI[md5sum] = "0a8e9f69c66fc6737e6645e22eed3275"
-SRC_URI[sha256sum] = "7a39a923dbb4c50752a5b8227f4e76fbfea2b2545bd7faf9c168a5dc8e031dc9"
+SRC_URI[md5sum] = "cdf66d6acd5c8cab709e07980b77ea6b"
+SRC_URI[sha256sum] = "81f1fdcea991f6c4e64a7a65cd9045ec2418be3379d8a80db7dec59bb7b6d3c8"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 04/18] sqlite: Update to 3071602
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (2 preceding siblings ...)
  2013-04-24 21:36 ` [PATCH 03/18] sysstat: Update to 10.1.5 Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:36 ` [PATCH 05/18] dhcp: Update to 4.2.5-P1 Saul Wold
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../sqlite/{sqlite3_3071502.bb => sqlite3_3071602.bb}            | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
 rename meta/recipes-support/sqlite/{sqlite3_3071502.bb => sqlite3_3071602.bb} (41%)

diff --git a/meta/recipes-support/sqlite/sqlite3_3071502.bb b/meta/recipes-support/sqlite/sqlite3_3071602.bb
similarity index 41%
rename from meta/recipes-support/sqlite/sqlite3_3071502.bb
rename to meta/recipes-support/sqlite/sqlite3_3071602.bb
index ad81214..09f54f6 100644
--- a/meta/recipes-support/sqlite/sqlite3_3071502.bb
+++ b/meta/recipes-support/sqlite/sqlite3_3071602.bb
@@ -2,10 +2,9 @@ require sqlite3.inc
 
 LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=65f0a57ca6928710b418c094b3570bb0"
 
-PR = "r0"
+SRC_URI = "http://www.sqlite.org/2013/sqlite-autoconf-${PV}.tar.gz"
 
-SRC_URI = "http://www.sqlite.org/sqlite-autoconf-${PV}.tar.gz"
-S = "${WORKDIR}/sqlite-autoconf-${PV}"
+SRC_URI[md5sum] = "ce7d2bc0d9b8dd18995b888c6b0b220f"
+SRC_URI[sha256sum] = "1d7e6937c19fc5de1c0cdb392638296e4a6d8b158001dbb421e257dfb6f088db"
 
-SRC_URI[md5sum] = "bcb0ab0b5b30116b2531cfeef3c861b4"
-SRC_URI[sha256sum] = "782d16b797f6ca879f6f679ba3fb6ceb54bcb0cab65feef332058bf04b36ba8c"
+S = "${WORKDIR}/sqlite-autoconf-${PV}"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 05/18] dhcp: Update to 4.2.5-P1
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (3 preceding siblings ...)
  2013-04-24 21:36 ` [PATCH 04/18] sqlite: Update to 3071602 Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:36 ` [PATCH 06/18] resolvconf: Update to 1.71 Saul Wold
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../dhcp/{dhcp-4.2.5 => dhcp}/dhcp-3.0.3-dhclient-dbus.patch          | 0
 .../dhcp/{dhcp-4.2.5 => dhcp}/fix-client-path.patch                   | 0
 .../dhcp/{dhcp-4.2.5 => dhcp}/fix-external-bind.patch                 | 0
 meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixincludes.patch | 0
 meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixsepbuild.patch | 0
 .../dhcp/{dhcp-4.2.5 => dhcp}/link-with-lcrypto.patch                 | 0
 meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/noattrmode.patch  | 0
 meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/site.h            | 0
 meta/recipes-connectivity/dhcp/{dhcp_4.2.5.bb => dhcp_4.2.5-P1.bb}    | 4 ++--
 9 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/dhcp-3.0.3-dhclient-dbus.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fix-client-path.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fix-external-bind.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixincludes.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/fixsepbuild.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/link-with-lcrypto.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/noattrmode.patch (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp-4.2.5 => dhcp}/site.h (100%)
 rename meta/recipes-connectivity/dhcp/{dhcp_4.2.5.bb => dhcp_4.2.5-P1.bb} (66%)

diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/dhcp-3.0.3-dhclient-dbus.patch b/meta/recipes-connectivity/dhcp/dhcp/dhcp-3.0.3-dhclient-dbus.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/dhcp-3.0.3-dhclient-dbus.patch
rename to meta/recipes-connectivity/dhcp/dhcp/dhcp-3.0.3-dhclient-dbus.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/fix-client-path.patch b/meta/recipes-connectivity/dhcp/dhcp/fix-client-path.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/fix-client-path.patch
rename to meta/recipes-connectivity/dhcp/dhcp/fix-client-path.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/fix-external-bind.patch b/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/fix-external-bind.patch
rename to meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/fixincludes.patch b/meta/recipes-connectivity/dhcp/dhcp/fixincludes.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/fixincludes.patch
rename to meta/recipes-connectivity/dhcp/dhcp/fixincludes.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/fixsepbuild.patch b/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/fixsepbuild.patch
rename to meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/link-with-lcrypto.patch b/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/link-with-lcrypto.patch
rename to meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/noattrmode.patch b/meta/recipes-connectivity/dhcp/dhcp/noattrmode.patch
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/noattrmode.patch
rename to meta/recipes-connectivity/dhcp/dhcp/noattrmode.patch
diff --git a/meta/recipes-connectivity/dhcp/dhcp-4.2.5/site.h b/meta/recipes-connectivity/dhcp/dhcp/site.h
similarity index 100%
rename from meta/recipes-connectivity/dhcp/dhcp-4.2.5/site.h
rename to meta/recipes-connectivity/dhcp/dhcp/site.h
diff --git a/meta/recipes-connectivity/dhcp/dhcp_4.2.5.bb b/meta/recipes-connectivity/dhcp/dhcp_4.2.5-P1.bb
similarity index 66%
rename from meta/recipes-connectivity/dhcp/dhcp_4.2.5.bb
rename to meta/recipes-connectivity/dhcp/dhcp_4.2.5-P1.bb
index 3ec9f3b..a5eed34 100644
--- a/meta/recipes-connectivity/dhcp/dhcp_4.2.5.bb
+++ b/meta/recipes-connectivity/dhcp/dhcp_4.2.5-P1.bb
@@ -9,5 +9,5 @@ SRC_URI += "file://fixincludes.patch \
             file://fixsepbuild.patch \
            "
 
-SRC_URI[md5sum] = "6489e919ac093d17249270ee9be1020e"
-SRC_URI[sha256sum] = "771a5cffb1fd1392d25926e22e1c58a006e2ad02ecd77d136096e5e366a5b6bc"
+SRC_URI[md5sum] = "f68e3c1f00a9af5742bc5e71d567cf93"
+SRC_URI[sha256sum] = "59b06c9f5d775e46999b422c45b9229402c462b114ce1685617bfb2b8b028250"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 06/18] resolvconf: Update to 1.71
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (4 preceding siblings ...)
  2013-04-24 21:36 ` [PATCH 05/18] dhcp: Update to 4.2.5-P1 Saul Wold
@ 2013-04-24 21:36 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 07/18] dpkg: Update to 1.16.10 Saul Wold
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:36 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../resolvconf/{resolvconf_1.70.bb => resolvconf_1.71.bb}            | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
 rename meta/recipes-connectivity/resolvconf/{resolvconf_1.70.bb => resolvconf_1.71.bb} (87%)

diff --git a/meta/recipes-connectivity/resolvconf/resolvconf_1.70.bb b/meta/recipes-connectivity/resolvconf/resolvconf_1.71.bb
similarity index 87%
rename from meta/recipes-connectivity/resolvconf/resolvconf_1.70.bb
rename to meta/recipes-connectivity/resolvconf/resolvconf_1.71.bb
index d401114..d342a6e 100644
--- a/meta/recipes-connectivity/resolvconf/resolvconf_1.70.bb
+++ b/meta/recipes-connectivity/resolvconf/resolvconf_1.71.bb
@@ -10,12 +10,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
 AUTHOR = "Thomas Hood"
 HOMEPAGE = "http://packages.debian.org/resolvconf"
 RDEPENDS_${PN} = "bash"
-PR = "r0"
 
 SRC_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/resolvconf_${PV}.tar.gz"
 
-SRC_URI[md5sum] = "95e19745790fd1c9a102ddde3bfdb15c"
-SRC_URI[sha256sum] = "7bb1ccfb68d61a96b91d135c4048f464482b634b0fc4a4b9d9a0f56ced5b4bf6"
+SRC_URI[md5sum] = "f073ab06b11584c8af86e7f84a56680e"
+SRC_URI[sha256sum] = "f2ec30a0e89330c6cbc3117efd60639da8305782979844ee4a1906e4b0ca230c"
 
 inherit allarch
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 07/18] dpkg: Update to 1.16.10
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (5 preceding siblings ...)
  2013-04-24 21:36 ` [PATCH 06/18] resolvconf: Update to 1.71 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 08/18] file: Update to 5.14 Saul Wold
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-devtools/dpkg/{dpkg_1.16.9.bb => dpkg_1.16.10.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/dpkg/{dpkg_1.16.9.bb => dpkg_1.16.10.bb} (71%)

diff --git a/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb b/meta/recipes-devtools/dpkg/dpkg_1.16.10.bb
similarity index 71%
rename from meta/recipes-devtools/dpkg/dpkg_1.16.9.bb
rename to meta/recipes-devtools/dpkg/dpkg_1.16.10.bb
index 9ae4042..309c17c 100644
--- a/meta/recipes-devtools/dpkg/dpkg_1.16.9.bb
+++ b/meta/recipes-devtools/dpkg/dpkg_1.16.10.bb
@@ -8,7 +8,7 @@ SRC_URI += "file://noman.patch \
             file://fix-timestamps.patch \
             file://remove-tar-no-timestamp.patch"
 
-SRC_URI[md5sum] = "4df9319b2d17e19cdb6fe94dacee44da"
-SRC_URI[sha256sum] = "73cd7fba4e54acddd645346b4bc517030b9c35938e82215d3eeb8b4e7af26b7a"
+SRC_URI[md5sum] = "a20a06a5272717274a8b009368f237da"
+SRC_URI[sha256sum] = "aeaacf0884039940d9463901102194f9a42eb5702157b9e7a23f43e0d9f65cf2"
 
 PR = "${INC_PR}.0"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 08/18] file: Update to 5.14
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (6 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 07/18] dpkg: Update to 1.16.10 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 09/18] libffi: Update to 3.0.13 Saul Wold
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-devtools/file/{file_5.13.bb => file_5.14.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/file/{file_5.13.bb => file_5.14.bb} (86%)

diff --git a/meta/recipes-devtools/file/file_5.13.bb b/meta/recipes-devtools/file/file_5.14.bb
similarity index 86%
rename from meta/recipes-devtools/file/file_5.13.bb
rename to meta/recipes-devtools/file/file_5.14.bb
index c97fed4..4270ff2 100644
--- a/meta/recipes-devtools/file/file_5.13.bb
+++ b/meta/recipes-devtools/file/file_5.14.bb
@@ -17,8 +17,8 @@ SRC_URI = "ftp://ftp.astron.com/pub/file/file-${PV}.tar.gz \
            file://dump \
            file://filesystems"
 
-SRC_URI[md5sum] = "d60c1364ba956eff7d21f8250808fc6d"
-SRC_URI[sha256sum] = "f75b7b23ac576b47ed4ba4915e2fb239d9c0d74ac5b4e6a89704b1ed45ee6e2b"
+SRC_URI[md5sum] = "c26625f1d6773ad4bc5a87c0e315632c"
+SRC_URI[sha256sum] = "461ba01dd0900a3b7c2dcd901b04903192c07887a9c1928af0be507572c77fe4"
 
 inherit autotools
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 09/18] libffi: Update to 3.0.13
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (7 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 08/18] file: Update to 5.14 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 10/18] nspr: Update to 4.9.6 Saul Wold
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

New patch is required to fix the location of the libdir defined i
the libffi.la file which caused a bad RPATH (/usr/lib/../lib) due
to the gcc -print-multi-os-directory returning ../lib.

Remove Aarch64 patches as it is now supported upsteam. Other patch
code is also upstreamed

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../libffi/0001-libffi-update-for-3.0.11.patch     |  171 --
 .../libffi/aarch64-adding-build-support.patch      |   63 -
 .../libffi/libffi/add-aarch64-support.patch        | 2672 --------------------
 .../libffi/libffi/fix-libffi.la-location.patch     |   18 +
 .../libffi/{libffi_3.0.11.bb => libffi_3.0.13.bb}  |   11 +-
 5 files changed, 21 insertions(+), 2914 deletions(-)
 delete mode 100644 meta/recipes-gnome/libffi/libffi/0001-libffi-update-for-3.0.11.patch
 delete mode 100644 meta/recipes-gnome/libffi/libffi/aarch64-adding-build-support.patch
 delete mode 100644 meta/recipes-gnome/libffi/libffi/add-aarch64-support.patch
 create mode 100644 meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
 rename meta/recipes-gnome/libffi/{libffi_3.0.11.bb => libffi_3.0.13.bb} (76%)

diff --git a/meta/recipes-gnome/libffi/libffi/0001-libffi-update-for-3.0.11.patch b/meta/recipes-gnome/libffi/libffi/0001-libffi-update-for-3.0.11.patch
deleted file mode 100644
index 2ff109b..0000000
--- a/meta/recipes-gnome/libffi/libffi/0001-libffi-update-for-3.0.11.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 936ab07cec90243a6a336c5aa6205f4edbeb00d5 Mon Sep 17 00:00:00 2001
-From: Andrei Dinu <andrei.adrianx.dinu@intel.com>
-Date: Wed, 12 Sep 2012 17:42:29 +0300
-Subject: [PATCH] libffi update for 3.0.11
-
-Upstream-Status : Pending
-
-Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
----
- m4/ax_append_flag.m4        |   69 +++++++++++++++++++++++++++++++++++++++++
- m4/ax_check_compile_flag.m4 |   72 +++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 141 insertions(+)
- create mode 100644 m4/ax_append_flag.m4
- create mode 100644 m4/ax_check_compile_flag.m4
-
-diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4
-new file mode 100644
-index 0000000..1d38b76
---- /dev/null
-+++ b/m4/ax_append_flag.m4
-@@ -0,0 +1,69 @@
-+# ===========================================================================
-+#      http://www.gnu.org/software/autoconf-archive/ax_append_flag.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+#   AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
-+#
-+# DESCRIPTION
-+#
-+#   FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
-+#   added in between.
-+#
-+#   If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
-+#   CFLAGS) is used.  FLAGS-VARIABLE is not changed if it already contains
-+#   FLAG.  If FLAGS-VARIABLE is unset in the shell, it is set to exactly
-+#   FLAG.
-+#
-+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
-+#
-+# LICENSE
-+#
-+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-+#
-+#   This program is free software: you can redistribute it and/or modify it
-+#   under the terms of the GNU General Public License as published by the
-+#   Free Software Foundation, either version 3 of the License, or (at your
-+#   option) any later version.
-+#
-+#   This program is distributed in the hope that it will be useful, but
-+#   WITHOUT ANY WARRANTY; without even the implied warranty of
-+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-+#   Public License for more details.
-+#
-+#   You should have received a copy of the GNU General Public License along
-+#   with this program. If not, see <http://www.gnu.org/licenses/>.
-+#
-+#   As a special exception, the respective Autoconf Macro's copyright owner
-+#   gives unlimited permission to copy, distribute and modify the configure
-+#   scripts that are the output of Autoconf when processing the Macro. You
-+#   need not follow the terms of the GNU General Public License when using
-+#   or distributing such scripts, even though portions of the text of the
-+#   Macro appear in them. The GNU General Public License (GPL) does govern
-+#   all other use of the material that constitutes the Autoconf Macro.
-+#
-+#   This special exception to the GPL applies to versions of the Autoconf
-+#   Macro released by the Autoconf Archive. When you make and distribute a
-+#   modified version of the Autoconf Macro, you may extend this special
-+#   exception to the GPL to apply to your modified version as well.
-+
-+#serial 2
-+
-+AC_DEFUN([AX_APPEND_FLAG],
-+[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
-+AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])dnl
-+AS_VAR_SET_IF(FLAGS,
-+  [case " AS_VAR_GET(FLAGS) " in
-+    *" $1 "*)
-+      AC_RUN_LOG([: FLAGS already contains $1])
-+      ;;
-+    *)
-+      AC_RUN_LOG([: FLAGS="$FLAGS $1"])
-+      AS_VAR_SET(FLAGS, ["AS_VAR_GET(FLAGS) $1"])
-+      ;;
-+   esac],
-+  [AS_VAR_SET(FLAGS,["$1"])])
-+AS_VAR_POPDEF([FLAGS])dnl
-+])dnl AX_APPEND_FLAG
-diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
-new file mode 100644
-index 0000000..c3a8d69
---- /dev/null
-+++ b/m4/ax_check_compile_flag.m4
-@@ -0,0 +1,72 @@
-+# ===========================================================================
-+#   http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
-+#
-+# DESCRIPTION
-+#
-+#   Check whether the given FLAG works with the current language's compiler
-+#   or gives an error.  (Warnings, however, are ignored)
-+#
-+#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-+#   success/failure.
-+#
-+#   If EXTRA-FLAGS is defined, it is added to the current language's default
-+#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
-+#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
-+#   force the compiler to issue an error when a bad flag is given.
-+#
-+#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-+#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-+#
-+# LICENSE
-+#
-+#   Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-+#   Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-+#
-+#   This program is free software: you can redistribute it and/or modify it
-+#   under the terms of the GNU General Public License as published by the
-+#   Free Software Foundation, either version 3 of the License, or (at your
-+#   option) any later version.
-+#
-+#   This program is distributed in the hope that it will be useful, but
-+#   WITHOUT ANY WARRANTY; without even the implied warranty of
-+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-+#   Public License for more details.
-+#
-+#   You should have received a copy of the GNU General Public License along
-+#   with this program. If not, see <http://www.gnu.org/licenses/>.
-+#
-+#   As a special exception, the respective Autoconf Macro's copyright owner
-+#   gives unlimited permission to copy, distribute and modify the configure
-+#   scripts that are the output of Autoconf when processing the Macro. You
-+#   need not follow the terms of the GNU General Public License when using
-+#   or distributing such scripts, even though portions of the text of the
-+#   Macro appear in them. The GNU General Public License (GPL) does govern
-+#   all other use of the material that constitutes the Autoconf Macro.
-+#
-+#   This special exception to the GPL applies to versions of the Autoconf
-+#   Macro released by the Autoconf Archive. When you make and distribute a
-+#   modified version of the Autoconf Macro, you may extend this special
-+#   exception to the GPL to apply to your modified version as well.
-+
-+#serial 2
-+
-+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-+[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
-+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
-+  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
-+  _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
-+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
-+    [AS_VAR_SET(CACHEVAR,[yes])],
-+    [AS_VAR_SET(CACHEVAR,[no])])
-+  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-+AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
-+  [m4_default([$2], :)],
-+  [m4_default([$3], :)])
-+AS_VAR_POPDEF([CACHEVAR])dnl
-+])dnl AX_CHECK_COMPILE_FLAGS
--- 
-1.7.9.5
-
diff --git a/meta/recipes-gnome/libffi/libffi/aarch64-adding-build-support.patch b/meta/recipes-gnome/libffi/libffi/aarch64-adding-build-support.patch
deleted file mode 100644
index b0c0f06..0000000
--- a/meta/recipes-gnome/libffi/libffi/aarch64-adding-build-support.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Upstream-Status: merged
-
-From 92f009a706c643d49e8d6e5ae6c9fb94ae5b2e9b Mon Sep 17 00:00:00 2001
-From: Ricardo Salveti de Araujo <ricardo.salveti@linaro.org>
-Date: Sat, 29 Sep 2012 01:07:56 -0300
-Subject: [PATCH] aarch64: adding build support
-
-Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@linaro.org>
----
- Makefile.am  |    6 +++++-
- configure.ac |    5 +++++
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 16f32a6..e11050d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -36,7 +36,8 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
- 	msvcc.sh generate-ios-source-and-headers.py \
- 	generate-osx-source-and-headers.py \
-         libffi.xcodeproj/project.pbxproj \
--	src/arm/trampoline.S
-+	src/arm/trampoline.S src/aarch64/ffi.c \
-+	src/aarch64/ffitarget.h src/aarch64/sysv.S
- 
- info_TEXINFOS = doc/libffi.texi
- 
-@@ -157,6 +158,9 @@ if FFI_EXEC_TRAMPOLINE_TABLE
- nodist_libffi_la_SOURCES += src/arm/trampoline.S
- endif
- endif
-+if AARCH64
-+nodist_libffi_la_SOURCES += src/aarch64/sysv.S src/aarch64/ffi.c
-+endif
- if AVR32
- nodist_libffi_la_SOURCES += src/avr32/sysv.S src/avr32/ffi.c
- endif
-diff --git a/configure.ac b/configure.ac
-index 9b946a2..9205391 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -63,6 +63,10 @@ case "$host" in
- 	TARGET=ARM; TARGETDIR=arm
- 	;;
- 
-+  aarch64*-*-*)
-+	TARGET=AARCH64; TARGETDIR=aarch64
-+	;;
-+
-   amd64-*-freebsd* | amd64-*-openbsd*)
- 	TARGET=X86_64; TARGETDIR=x86
-   	;;
-@@ -234,6 +238,7 @@ AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
- AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
- AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
- AM_CONDITIONAL(ARM, test x$TARGET = xARM)
-+AM_CONDITIONAL(AARCH64, test x$TARGET = xAARCH64)
- AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
- AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
- AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
--- 
-1.7.10.4
-
diff --git a/meta/recipes-gnome/libffi/libffi/add-aarch64-support.patch b/meta/recipes-gnome/libffi/libffi/add-aarch64-support.patch
deleted file mode 100644
index d08a5b4..0000000
--- a/meta/recipes-gnome/libffi/libffi/add-aarch64-support.patch
+++ /dev/null
@@ -1,2672 +0,0 @@
-Upstream-Status: merged
-
-From 6fb142b06652d3a4f295778b14adadbc9d93fbe7 Mon Sep 17 00:00:00 2001
-From: Marcus Shawcroft <marcus. shawcroft@arm.dot.com>
-Date: Fri, 28 Sep 2012 17:28:48 +0100
-Subject: [PATCH] New port for ARM AArch64
-
-ARM would like to contribute a libffi port for the ARM AArch64
-architecture.  The port passes the test suite cleanly.  The proposed
-ChangeLog and patches are included below.
-
-/Marcus
-
-2012-09-18  James Greenhalgh  <james.greenhalgh at arm.com>
-	    Marcus Shawcroft  <marcus.shawcroft at arm.com>
-
-	* README: Add details of aarch64 port.
-	* src/aarch64/ffi.c: New.
-	* src/aarch64/ffitarget.h: Likewise.
-	* src/aarch64/sysv.S: Likewise.
-
-2012-09-18  James Greenhalgh  <james.greenhalgh at arm.com>
-	    Marcus Shawcroft  <marcus.shawcroft at arm.com>
-
-	* testsuite/lib/libffi.exp: Add support for aarch64.
-	* testsuite/libffi.call/cls_struct_va1.c: New.
-	* testsuite/libffi.call/cls_uchar_va.c: Likewise.
-	* testsuite/libffi.call/cls_uint_va.c: Likewise.
-	* testsuite/libffi.call/cls_ulong_va.c: Liekwise.
-	* testsuite/libffi.call/cls_ushort_va.c: Likewise.
-	* testsuite/libffi.call/nested_struct11.c: Likewise.
-	* testsuite/libffi.call/uninitialized.c: Likewise.
-	* testsuite/libffi.call/va_1.c: Likewise.
-	* testsuite/libffi.call/va_struct1.c: Likewise.
-	* testsuite/libffi.call/va_struct2.c: Likewise.
-	* testsuite/libffi.call/va_struct3.c: Likewise.
----
- README                                  |    2 +
- src/aarch64/ffi.c                       | 1076 +++++++++++++++++++++++++++++++
- src/aarch64/ffitarget.h                 |   59 ++
- src/aarch64/sysv.S                      |  307 +++++++++
- testsuite/lib/libffi.exp                |    4 +
- testsuite/libffi.call/cls_struct_va1.c  |  114 ++++
- testsuite/libffi.call/cls_uchar_va.c    |   44 ++
- testsuite/libffi.call/cls_uint_va.c     |   45 ++
- testsuite/libffi.call/cls_ulong_va.c    |   45 ++
- testsuite/libffi.call/cls_ushort_va.c   |   44 ++
- testsuite/libffi.call/nested_struct11.c |  121 ++++
- testsuite/libffi.call/uninitialized.c   |   61 ++
- testsuite/libffi.call/va_1.c            |  196 ++++++
- testsuite/libffi.call/va_struct1.c      |  121 ++++
- testsuite/libffi.call/va_struct2.c      |  123 ++++
- testsuite/libffi.call/va_struct3.c      |  125 ++++
- 16 files changed, 2487 insertions(+)
- create mode 100644 src/aarch64/ffi.c
- create mode 100644 src/aarch64/ffitarget.h
- create mode 100644 src/aarch64/sysv.S
- create mode 100644 testsuite/libffi.call/cls_struct_va1.c
- create mode 100644 testsuite/libffi.call/cls_uchar_va.c
- create mode 100644 testsuite/libffi.call/cls_uint_va.c
- create mode 100644 testsuite/libffi.call/cls_ulong_va.c
- create mode 100644 testsuite/libffi.call/cls_ushort_va.c
- create mode 100644 testsuite/libffi.call/nested_struct11.c
- create mode 100644 testsuite/libffi.call/uninitialized.c
- create mode 100644 testsuite/libffi.call/va_1.c
- create mode 100644 testsuite/libffi.call/va_struct1.c
- create mode 100644 testsuite/libffi.call/va_struct2.c
- create mode 100644 testsuite/libffi.call/va_struct3.c
-
-diff --git a/README b/README
-index 0cf0720..8fc473f 100644
---- a/README
-+++ b/README
-@@ -51,6 +51,7 @@ tested:
- |--------------+------------------|
- | Architecture | Operating System |
- |--------------+------------------|
-+| AArch64      | Linux            |
- | Alpha        | Linux            |
- | Alpha        | Tru64            |
- | ARM          | Linux            |
-@@ -319,6 +320,7 @@ Thorup.
- Major processor architecture ports were contributed by the following
- developers:
- 
-+aarch64		Marcus Shawcroft, James Greenhalgh
- alpha		Richard Henderson
- arm		Raffaele Sena
- cris		Simon Posnjak, Hans-Peter Nilsson
-diff --git a/src/aarch64/ffi.c b/src/aarch64/ffi.c
-new file mode 100644
-index 0000000..1405665
---- /dev/null
-+++ b/src/aarch64/ffi.c
-@@ -0,0 +1,1076 @@
-+/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+``Software''), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
-+
-+#include <stdio.h>
-+
-+#include <ffi.h>
-+#include <ffi_common.h>
-+
-+#include <stdlib.h>
-+
-+/* Stack alignment requirement in bytes */
-+#define AARCH64_STACK_ALIGN 16
-+
-+#define N_X_ARG_REG 8
-+#define N_V_ARG_REG 8
-+
-+#define AARCH64_FFI_WITH_V (1 << AARCH64_FFI_WITH_V_BIT)
-+
-+union _d
-+{
-+  UINT64 d;
-+  UINT32 s[2];
-+};
-+
-+struct call_context
-+{
-+  UINT64 x [AARCH64_N_XREG];
-+  struct
-+  {
-+    union _d d[2];
-+  } v [AARCH64_N_VREG];
-+};
-+
-+static void *
-+get_x_addr (struct call_context *context, unsigned n)
-+{
-+  return &context->x[n];
-+}
-+
-+static void *
-+get_s_addr (struct call_context *context, unsigned n)
-+{
-+#if defined __AARCH64EB__
-+  return &context->v[n].d[1].s[1];
-+#else
-+  return &context->v[n].d[0].s[0];
-+#endif
-+}
-+
-+static void *
-+get_d_addr (struct call_context *context, unsigned n)
-+{
-+#if defined __AARCH64EB__
-+  return &context->v[n].d[1];
-+#else
-+  return &context->v[n].d[0];
-+#endif
-+}
-+
-+static void *
-+get_v_addr (struct call_context *context, unsigned n)
-+{
-+  return &context->v[n];
-+}
-+
-+/* Return the memory location at which a basic type would reside
-+   were it to have been stored in register n.  */
-+
-+static void *
-+get_basic_type_addr (unsigned short type, struct call_context *context,
-+		     unsigned n)
-+{
-+  switch (type)
-+    {
-+    case FFI_TYPE_FLOAT:
-+      return get_s_addr (context, n);
-+    case FFI_TYPE_DOUBLE:
-+      return get_d_addr (context, n);
-+    case FFI_TYPE_LONGDOUBLE:
-+      return get_v_addr (context, n);
-+    case FFI_TYPE_UINT8:
-+    case FFI_TYPE_SINT8:
-+    case FFI_TYPE_UINT16:
-+    case FFI_TYPE_SINT16:
-+    case FFI_TYPE_UINT32:
-+    case FFI_TYPE_SINT32:
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_UINT64:
-+    case FFI_TYPE_SINT64:
-+      return get_x_addr (context, n);
-+    default:
-+      FFI_ASSERT (0);
-+      return NULL;
-+    }
-+}
-+
-+/* Return the alignment width for each of the basic types.  */
-+
-+static size_t
-+get_basic_type_alignment (unsigned short type)
-+{
-+  switch (type)
-+    {
-+    case FFI_TYPE_FLOAT:
-+    case FFI_TYPE_DOUBLE:
-+      return sizeof (UINT64);
-+    case FFI_TYPE_LONGDOUBLE:
-+      return sizeof (long double);
-+    case FFI_TYPE_UINT8:
-+    case FFI_TYPE_SINT8:
-+    case FFI_TYPE_UINT16:
-+    case FFI_TYPE_SINT16:
-+    case FFI_TYPE_UINT32:
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_SINT32:
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_UINT64:
-+    case FFI_TYPE_SINT64:
-+      return sizeof (UINT64);
-+
-+    default:
-+      FFI_ASSERT (0);
-+      return 0;
-+    }
-+}
-+
-+/* Return the size in bytes for each of the basic types.  */
-+
-+static size_t
-+get_basic_type_size (unsigned short type)
-+{
-+  switch (type)
-+    {
-+    case FFI_TYPE_FLOAT:
-+      return sizeof (UINT32);
-+    case FFI_TYPE_DOUBLE:
-+      return sizeof (UINT64);
-+    case FFI_TYPE_LONGDOUBLE:
-+      return sizeof (long double);
-+    case FFI_TYPE_UINT8:
-+      return sizeof (UINT8);
-+    case FFI_TYPE_SINT8:
-+      return sizeof (SINT8);
-+    case FFI_TYPE_UINT16:
-+      return sizeof (UINT16);
-+    case FFI_TYPE_SINT16:
-+      return sizeof (SINT16);
-+    case FFI_TYPE_UINT32:
-+      return sizeof (UINT32);
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_SINT32:
-+      return sizeof (SINT32);
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_UINT64:
-+      return sizeof (UINT64);
-+    case FFI_TYPE_SINT64:
-+      return sizeof (SINT64);
-+
-+    default:
-+      FFI_ASSERT (0);
-+      return 0;
-+    }
-+}
-+
-+extern void
-+ffi_call_SYSV (unsigned (*)(struct call_context *context, unsigned char *,
-+			    extended_cif *),
-+               struct call_context *context,
-+               extended_cif *,
-+               unsigned,
-+               void (*fn)(void));
-+
-+extern void
-+ffi_closure_SYSV (ffi_closure *);
-+
-+/* Test for an FFI floating point representation.  */
-+
-+static unsigned
-+is_floating_type (unsigned short type)
-+{
-+  return (type == FFI_TYPE_FLOAT || type == FFI_TYPE_DOUBLE
-+	  || type == FFI_TYPE_LONGDOUBLE);
-+}
-+
-+/* Test for a homogeneous structure.  */
-+
-+static unsigned short
-+get_homogeneous_type (ffi_type *ty)
-+{
-+  if (ty->type == FFI_TYPE_STRUCT && ty->elements)
-+    {
-+      unsigned i;
-+      unsigned short candidate_type
-+	= get_homogeneous_type (ty->elements[0]);
-+      for (i =1; ty->elements[i]; i++)
-+	{
-+	  unsigned short iteration_type = 0;
-+	  /* If we have a nested struct, we must find its homogeneous type.
-+	     If that fits with our candidate type, we are still
-+	     homogeneous.  */
-+	  if (ty->elements[i]->type == FFI_TYPE_STRUCT
-+	      && ty->elements[i]->elements)
-+	    {
-+	      iteration_type = get_homogeneous_type (ty->elements[i]);
-+	    }
-+	  else
-+	    {
-+	      iteration_type = ty->elements[i]->type;
-+	    }
-+
-+	  /* If we are not homogeneous, return FFI_TYPE_STRUCT.  */
-+	  if (candidate_type != iteration_type)
-+	    return FFI_TYPE_STRUCT;
-+	}
-+      return candidate_type;
-+    }
-+
-+  /* Base case, we have no more levels of nesting, so we
-+     are a basic type, and so, trivially homogeneous in that type.  */
-+  return ty->type;
-+}
-+
-+/* Determine the number of elements within a STRUCT.
-+
-+   Note, we must handle nested structs.
-+
-+   If ty is not a STRUCT this function will return 0.  */
-+
-+static unsigned
-+element_count (ffi_type *ty)
-+{
-+  if (ty->type == FFI_TYPE_STRUCT && ty->elements)
-+    {
-+      unsigned n;
-+      unsigned elems = 0;
-+      for (n = 0; ty->elements[n]; n++)
-+	{
-+	  if (ty->elements[n]->type == FFI_TYPE_STRUCT
-+	      && ty->elements[n]->elements)
-+	    elems += element_count (ty->elements[n]);
-+	  else
-+	    elems++;
-+	}
-+      return elems;
-+    }
-+  return 0;
-+}
-+
-+/* Test for a homogeneous floating point aggregate.
-+
-+   A homogeneous floating point aggregate is a homogeneous aggregate of
-+   a half- single- or double- precision floating point type with one
-+   to four elements.  Note that this includes nested structs of the
-+   basic type.  */
-+
-+static int
-+is_hfa (ffi_type *ty)
-+{
-+  if (ty->type == FFI_TYPE_STRUCT
-+      && ty->elements[0]
-+      && is_floating_type (get_homogeneous_type (ty)))
-+    {
-+      unsigned n = element_count (ty);
-+      return n >= 1 && n <= 4;
-+    }
-+  return 0;
-+}
-+
-+/* Test if an ffi_type is a candidate for passing in a register.
-+
-+   This test does not check that sufficient registers of the
-+   appropriate class are actually available, merely that IFF
-+   sufficient registers are available then the argument will be passed
-+   in register(s).
-+
-+   Note that an ffi_type that is deemed to be a register candidate
-+   will always be returned in registers.
-+
-+   Returns 1 if a register candidate else 0.  */
-+
-+static int
-+is_register_candidate (ffi_type *ty)
-+{
-+  switch (ty->type)
-+    {
-+    case FFI_TYPE_VOID:
-+    case FFI_TYPE_FLOAT:
-+    case FFI_TYPE_DOUBLE:
-+    case FFI_TYPE_LONGDOUBLE:
-+    case FFI_TYPE_UINT8:
-+    case FFI_TYPE_UINT16:
-+    case FFI_TYPE_UINT32:
-+    case FFI_TYPE_UINT64:
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_SINT8:
-+    case FFI_TYPE_SINT16:
-+    case FFI_TYPE_SINT32:
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_SINT64:
-+      return 1;
-+
-+    case FFI_TYPE_STRUCT:
-+      if (is_hfa (ty))
-+        {
-+          return 1;
-+        }
-+      else if (ty->size > 16)
-+        {
-+          /* Too large. Will be replaced with a pointer to memory. The
-+             pointer MAY be passed in a register, but the value will
-+             not. This test specifically fails since the argument will
-+             never be passed by value in registers. */
-+          return 0;
-+        }
-+      else
-+        {
-+          /* Might be passed in registers depending on the number of
-+             registers required. */
-+          return (ty->size + 7) / 8 < N_X_ARG_REG;
-+        }
-+      break;
-+
-+    default:
-+      FFI_ASSERT (0);
-+      break;
-+    }
-+
-+  return 0;
-+}
-+
-+/* Test if an ffi_type argument or result is a candidate for a vector
-+   register.  */
-+
-+static int
-+is_v_register_candidate (ffi_type *ty)
-+{
-+  return is_floating_type (ty->type)
-+	   || (ty->type == FFI_TYPE_STRUCT && is_hfa (ty));
-+}
-+
-+/* Representation of the procedure call argument marshalling
-+   state.
-+
-+   The terse state variable names match the names used in the AARCH64
-+   PCS. */
-+
-+struct arg_state
-+{
-+  unsigned ngrn;                /* Next general-purpose register number. */
-+  unsigned nsrn;                /* Next vector register number. */
-+  unsigned nsaa;                /* Next stack offset. */
-+};
-+
-+/* Initialize a procedure call argument marshalling state.  */
-+static void
-+arg_init (struct arg_state *state, unsigned call_frame_size)
-+{
-+  state->ngrn = 0;
-+  state->nsrn = 0;
-+  state->nsaa = 0;
-+}
-+
-+/* Return the number of available consecutive core argument
-+   registers.  */
-+
-+static unsigned
-+available_x (struct arg_state *state)
-+{
-+  return N_X_ARG_REG - state->ngrn;
-+}
-+
-+/* Return the number of available consecutive vector argument
-+   registers.  */
-+
-+static unsigned
-+available_v (struct arg_state *state)
-+{
-+  return N_V_ARG_REG - state->nsrn;
-+}
-+
-+static void *
-+allocate_to_x (struct call_context *context, struct arg_state *state)
-+{
-+  FFI_ASSERT (state->ngrn < N_X_ARG_REG)
-+  return get_x_addr (context, (state->ngrn)++);
-+}
-+
-+static void *
-+allocate_to_s (struct call_context *context, struct arg_state *state)
-+{
-+  FFI_ASSERT (state->nsrn < N_V_ARG_REG)
-+  return get_s_addr (context, (state->nsrn)++);
-+}
-+
-+static void *
-+allocate_to_d (struct call_context *context, struct arg_state *state)
-+{
-+  FFI_ASSERT (state->nsrn < N_V_ARG_REG)
-+  return get_d_addr (context, (state->nsrn)++);
-+}
-+
-+static void *
-+allocate_to_v (struct call_context *context, struct arg_state *state)
-+{
-+  FFI_ASSERT (state->nsrn < N_V_ARG_REG)
-+  return get_v_addr (context, (state->nsrn)++);
-+}
-+
-+/* Allocate an aligned slot on the stack and return a pointer to it.  */
-+static void *
-+allocate_to_stack (struct arg_state *state, void *stack, unsigned alignment,
-+		   unsigned size)
-+{
-+  void *allocation;
-+
-+  /* Round up the NSAA to the larger of 8 or the natural
-+     alignment of the argument's type.  */
-+  state->nsaa = ALIGN (state->nsaa, alignment);
-+  state->nsaa = ALIGN (state->nsaa, alignment);
-+  state->nsaa = ALIGN (state->nsaa, 8);
-+
-+  allocation = stack + state->nsaa;
-+
-+  state->nsaa += size;
-+  return allocation;
-+}
-+
-+static void
-+copy_basic_type (void *dest, void *source, unsigned short type)
-+{
-+  /* This is neccessary to ensure that basic types are copied
-+     sign extended to 64-bits as libffi expects.  */
-+  switch (type)
-+    {
-+    case FFI_TYPE_FLOAT:
-+      *(float *) dest = *(float *) source;
-+      break;
-+    case FFI_TYPE_DOUBLE:
-+      *(double *) dest = *(double *) source;
-+      break;
-+    case FFI_TYPE_LONGDOUBLE:
-+      *(long double *) dest = *(long double *) source;
-+      break;
-+    case FFI_TYPE_UINT8:
-+      *(ffi_arg *) dest = *(UINT8 *) source;
-+      break;
-+    case FFI_TYPE_SINT8:
-+      *(ffi_sarg *) dest = *(SINT8 *) source;
-+      break;
-+    case FFI_TYPE_UINT16:
-+      *(ffi_arg *) dest = *(UINT16 *) source;
-+      break;
-+    case FFI_TYPE_SINT16:
-+      *(ffi_sarg *) dest = *(SINT16 *) source;
-+      break;
-+    case FFI_TYPE_UINT32:
-+      *(ffi_arg *) dest = *(UINT32 *) source;
-+      break;
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_SINT32:
-+      *(ffi_sarg *) dest = *(SINT32 *) source;
-+      break;
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_UINT64:
-+      *(ffi_arg *) dest = *(UINT64 *) source;
-+      break;
-+    case FFI_TYPE_SINT64:
-+      *(ffi_sarg *) dest = *(SINT64 *) source;
-+      break;
-+
-+    default:
-+      FFI_ASSERT (0);
-+    }
-+}
-+
-+static void
-+copy_hfa_to_reg_or_stack (void *memory,
-+			  ffi_type *ty,
-+			  struct call_context *context,
-+			  unsigned char *stack,
-+			  struct arg_state *state)
-+{
-+  unsigned elems = element_count (ty);
-+  if (available_v (state) < elems)
-+    {
-+      /* There are insufficient V registers. Further V register allocations
-+	 are prevented, the NSAA is adjusted (by allocate_to_stack ())
-+	 and the argument is copied to memory at the adjusted NSAA.  */
-+      state->nsrn = N_V_ARG_REG;
-+      memcpy (allocate_to_stack (state, stack, ty->alignment, ty->size),
-+	      memory,
-+	      ty->size);
-+    }
-+  else
-+    {
-+      int i;
-+      unsigned short type = get_homogeneous_type (ty);
-+      unsigned elems = element_count (ty);
-+      for (i = 0; i < elems; i++)
-+	{
-+	  void *reg = allocate_to_v (context, state);
-+	  copy_basic_type (reg, memory, type);
-+	  memory += get_basic_type_size (type);
-+	}
-+    }
-+}
-+
-+/* Either allocate an appropriate register for the argument type, or if
-+   none are available, allocate a stack slot and return a pointer
-+   to the allocated space.  */
-+
-+static void *
-+allocate_to_register_or_stack (struct call_context *context,
-+			       unsigned char *stack,
-+			       struct arg_state *state,
-+			       unsigned short type)
-+{
-+  size_t alignment = get_basic_type_alignment (type);
-+  size_t size = alignment;
-+  switch (type)
-+    {
-+    case FFI_TYPE_FLOAT:
-+      /* This is the only case for which the allocated stack size
-+	 should not match the alignment of the type.  */
-+      size = sizeof (UINT32);
-+      /* Fall through.  */
-+    case FFI_TYPE_DOUBLE:
-+      if (state->nsrn < N_V_ARG_REG)
-+	return allocate_to_d (context, state);
-+      state->nsrn = N_V_ARG_REG;
-+      break;
-+    case FFI_TYPE_LONGDOUBLE:
-+      if (state->nsrn < N_V_ARG_REG)
-+	return allocate_to_v (context, state);
-+      state->nsrn = N_V_ARG_REG;
-+      break;
-+    case FFI_TYPE_UINT8:
-+    case FFI_TYPE_SINT8:
-+    case FFI_TYPE_UINT16:
-+    case FFI_TYPE_SINT16:
-+    case FFI_TYPE_UINT32:
-+    case FFI_TYPE_SINT32:
-+    case FFI_TYPE_INT:
-+    case FFI_TYPE_POINTER:
-+    case FFI_TYPE_UINT64:
-+    case FFI_TYPE_SINT64:
-+      if (state->ngrn < N_X_ARG_REG)
-+	return allocate_to_x (context, state);
-+      state->ngrn = N_X_ARG_REG;
-+      break;
-+    default:
-+      FFI_ASSERT (0);
-+    }
-+
-+    return allocate_to_stack (state, stack, alignment, size);
-+}
-+
-+/* Copy a value to an appropriate register, or if none are
-+   available, to the stack.  */
-+
-+static void
-+copy_to_register_or_stack (struct call_context *context,
-+			   unsigned char *stack,
-+			   struct arg_state *state,
-+			   void *value,
-+			   unsigned short type)
-+{
-+  copy_basic_type (
-+	  allocate_to_register_or_stack (context, stack, state, type),
-+	  value,
-+	  type);
-+}
-+
-+/* Marshall the arguments from FFI representation to procedure call
-+   context and stack.  */
-+
-+static unsigned
-+aarch64_prep_args (struct call_context *context, unsigned char *stack,
-+		   extended_cif *ecif)
-+{
-+  int i;
-+  struct arg_state state;
-+
-+  arg_init (&state, ALIGN(ecif->cif->bytes, 16));
-+
-+  for (i = 0; i < ecif->cif->nargs; i++)
-+    {
-+      ffi_type *ty = ecif->cif->arg_types[i];
-+      switch (ty->type)
-+	{
-+	case FFI_TYPE_VOID:
-+	  FFI_ASSERT (0);
-+	  break;
-+
-+	/* If the argument is a basic type the argument is allocated to an
-+	   appropriate register, or if none are available, to the stack.  */
-+	case FFI_TYPE_FLOAT:
-+	case FFI_TYPE_DOUBLE:
-+	case FFI_TYPE_LONGDOUBLE:
-+	case FFI_TYPE_UINT8:
-+	case FFI_TYPE_SINT8:
-+	case FFI_TYPE_UINT16:
-+	case FFI_TYPE_SINT16:
-+	case FFI_TYPE_UINT32:
-+	case FFI_TYPE_INT:
-+	case FFI_TYPE_SINT32:
-+	case FFI_TYPE_POINTER:
-+	case FFI_TYPE_UINT64:
-+	case FFI_TYPE_SINT64:
-+	  copy_to_register_or_stack (context, stack, &state,
-+				     ecif->avalue[i], ty->type);
-+	  break;
-+
-+	case FFI_TYPE_STRUCT:
-+	  if (is_hfa (ty))
-+	    {
-+	      copy_hfa_to_reg_or_stack (ecif->avalue[i], ty, context,
-+					stack, &state);
-+	    }
-+	  else if (ty->size > 16)
-+	    {
-+	      /* If the argument is a composite type that is larger than 16
-+		 bytes, then the argument has been copied to memory, and
-+		 the argument is replaced by a pointer to the copy.  */
-+
-+	      copy_to_register_or_stack (context, stack, &state,
-+					 &(ecif->avalue[i]), FFI_TYPE_POINTER);
-+	    }
-+	  else if (available_x (&state) >= (ty->size + 7) / 8)
-+	    {
-+	      /* If the argument is a composite type and the size in
-+		 double-words is not more than the number of available
-+		 X registers, then the argument is copied into consecutive
-+		 X registers.  */
-+	      int j;
-+	      for (j = 0; j < (ty->size + 7) / 8; j++)
-+		{
-+		  memcpy (allocate_to_x (context, &state),
-+			  &(((UINT64 *) ecif->avalue[i])[j]),
-+			  sizeof (UINT64));
-+		}
-+	    }
-+	  else
-+	    {
-+	      /* Otherwise, there are insufficient X registers. Further X
-+		 register allocations are prevented, the NSAA is adjusted
-+		 (by allocate_to_stack ()) and the argument is copied to
-+		 memory at the adjusted NSAA.  */
-+	      state.ngrn = N_X_ARG_REG;
-+
-+	      memcpy (allocate_to_stack (&state, stack, ty->alignment,
-+					 ty->size), ecif->avalue + i, ty->size);
-+	    }
-+	  break;
-+
-+	default:
-+	  FFI_ASSERT (0);
-+	  break;
-+	}
-+    }
-+
-+  return ecif->cif->aarch64_flags;
-+}
-+
-+ffi_status
-+ffi_prep_cif_machdep (ffi_cif *cif)
-+{
-+  /* Round the stack up to a multiple of the stack alignment requirement. */
-+  cif->bytes =
-+    (cif->bytes + (AARCH64_STACK_ALIGN - 1)) & ~ (AARCH64_STACK_ALIGN - 1);
-+
-+  /* Initialize our flags. We are interested if this CIF will touch a
-+     vector register, if so we will enable context save and load to
-+     those registers, otherwise not. This is intended to be friendly
-+     to lazy float context switching in the kernel.  */
-+  cif->aarch64_flags = 0;
-+
-+  if (is_v_register_candidate (cif->rtype))
-+    {
-+      cif->aarch64_flags |= AARCH64_FFI_WITH_V;
-+    }
-+  else
-+    {
-+      int i;
-+      for (i = 0; i < cif->nargs; i++)
-+        if (is_v_register_candidate (cif->arg_types[i]))
-+          {
-+            cif->aarch64_flags |= AARCH64_FFI_WITH_V;
-+            break;
-+          }
-+    }
-+
-+  return FFI_OK;
-+}
-+
-+/* Call a function with the provided arguments and capture the return
-+   value.  */
-+void
-+ffi_call (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
-+{
-+  extended_cif ecif;
-+
-+  ecif.cif = cif;
-+  ecif.avalue = avalue;
-+  ecif.rvalue = rvalue;
-+
-+  switch (cif->abi)
-+    {
-+    case FFI_SYSV:
-+      {
-+        struct call_context context;
-+	unsigned stack_bytes;
-+
-+	/* Figure out the total amount of stack space we need, the
-+	   above call frame space needs to be 16 bytes aligned to
-+	   ensure correct alignment of the first object inserted in
-+	   that space hence the ALIGN applied to cif->bytes.*/
-+	stack_bytes = ALIGN(cif->bytes, 16);
-+
-+	memset (&context, 0, sizeof (context));
-+        if (is_register_candidate (cif->rtype))
-+          {
-+            ffi_call_SYSV (aarch64_prep_args, &context, &ecif, stack_bytes, fn);
-+            switch (cif->rtype->type)
-+              {
-+              case FFI_TYPE_VOID:
-+              case FFI_TYPE_FLOAT:
-+              case FFI_TYPE_DOUBLE:
-+              case FFI_TYPE_LONGDOUBLE:
-+              case FFI_TYPE_UINT8:
-+              case FFI_TYPE_SINT8:
-+              case FFI_TYPE_UINT16:
-+              case FFI_TYPE_SINT16:
-+              case FFI_TYPE_UINT32:
-+              case FFI_TYPE_SINT32:
-+              case FFI_TYPE_POINTER:
-+              case FFI_TYPE_UINT64:
-+              case FFI_TYPE_INT:
-+              case FFI_TYPE_SINT64:
-+		{
-+		  void *addr = get_basic_type_addr (cif->rtype->type,
-+						    &context, 0);
-+		  copy_basic_type (rvalue, addr, cif->rtype->type);
-+		  break;
-+		}
-+
-+              case FFI_TYPE_STRUCT:
-+                if (is_hfa (cif->rtype))
-+		  {
-+		    int j;
-+		    unsigned short type = get_homogeneous_type (cif->rtype);
-+		    unsigned elems = element_count (cif->rtype);
-+		    for (j = 0; j < elems; j++)
-+		      {
-+			void *reg = get_basic_type_addr (type, &context, j);
-+			copy_basic_type (rvalue, reg, type);
-+			rvalue += get_basic_type_size (type);
-+		      }
-+		  }
-+                else if ((cif->rtype->size + 7) / 8 < N_X_ARG_REG)
-+                  {
-+                    unsigned size = ALIGN (cif->rtype->size, sizeof (UINT64));
-+                    memcpy (rvalue, get_x_addr (&context, 0), size);
-+                  }
-+                else
-+                  {
-+                    FFI_ASSERT (0);
-+                  }
-+                break;
-+
-+              default:
-+                FFI_ASSERT (0);
-+                break;
-+              }
-+          }
-+        else
-+          {
-+            memcpy (get_x_addr (&context, 8), &rvalue, sizeof (UINT64));
-+            ffi_call_SYSV (aarch64_prep_args, &context, &ecif,
-+			   stack_bytes, fn);
-+          }
-+        break;
-+      }
-+
-+    default:
-+      FFI_ASSERT (0);
-+      break;
-+    }
-+}
-+
-+static unsigned char trampoline [] =
-+{ 0x70, 0x00, 0x00, 0x58,	/* ldr	x16, 1f	*/
-+  0x91, 0x00, 0x00, 0x10,	/* adr	x17, 2f	*/
-+  0x00, 0x02, 0x1f, 0xd6	/* br	x16	*/
-+};
-+
-+/* Build a trampoline.  */
-+
-+#define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX,FLAGS)			\
-+  ({unsigned char *__tramp = (unsigned char*)(TRAMP);			\
-+    UINT64  __fun = (UINT64)(FUN);					\
-+    UINT64  __ctx = (UINT64)(CTX);					\
-+    UINT64  __flags = (UINT64)(FLAGS);					\
-+    memcpy (__tramp, trampoline, sizeof (trampoline));			\
-+    memcpy (__tramp + 12, &__fun, sizeof (__fun));			\
-+    memcpy (__tramp + 20, &__ctx, sizeof (__ctx));			\
-+    memcpy (__tramp + 28, &__flags, sizeof (__flags));			\
-+    __clear_cache(__tramp, __tramp + FFI_TRAMPOLINE_SIZE);		\
-+  })
-+
-+ffi_status
-+ffi_prep_closure_loc (ffi_closure* closure,
-+                      ffi_cif* cif,
-+                      void (*fun)(ffi_cif*,void*,void**,void*),
-+                      void *user_data,
-+                      void *codeloc)
-+{
-+  if (cif->abi != FFI_SYSV)
-+    return FFI_BAD_ABI;
-+
-+  FFI_INIT_TRAMPOLINE (&closure->tramp[0], &ffi_closure_SYSV, codeloc,
-+		       cif->aarch64_flags);
-+
-+  closure->cif  = cif;
-+  closure->user_data = user_data;
-+  closure->fun  = fun;
-+
-+  return FFI_OK;
-+}
-+
-+/* Primary handler to setup and invoke a function within a closure.
-+
-+   A closure when invoked enters via the assembler wrapper
-+   ffi_closure_SYSV(). The wrapper allocates a call context on the
-+   stack, saves the interesting registers (from the perspective of
-+   the calling convention) into the context then passes control to
-+   ffi_closure_SYSV_inner() passing the saved context and a pointer to
-+   the stack at the point ffi_closure_SYSV() was invoked.
-+
-+   On the return path the assembler wrapper will reload call context
-+   regsiters.
-+
-+   ffi_closure_SYSV_inner() marshalls the call context into ffi value
-+   desriptors, invokes the wrapped function, then marshalls the return
-+   value back into the call context.  */
-+
-+void
-+ffi_closure_SYSV_inner (ffi_closure *closure, struct call_context *context,
-+			void *stack)
-+{
-+  ffi_cif *cif = closure->cif;
-+  void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
-+  void *rvalue = NULL;
-+  int i;
-+  struct arg_state state;
-+
-+  arg_init (&state, ALIGN(cif->bytes, 16));
-+
-+  for (i = 0; i < cif->nargs; i++)
-+    {
-+      ffi_type *ty = cif->arg_types[i];
-+
-+      switch (ty->type)
-+	{
-+	case FFI_TYPE_VOID:
-+	  FFI_ASSERT (0);
-+	  break;
-+
-+	case FFI_TYPE_UINT8:
-+	case FFI_TYPE_SINT8:
-+	case FFI_TYPE_UINT16:
-+	case FFI_TYPE_SINT16:
-+	case FFI_TYPE_UINT32:
-+	case FFI_TYPE_SINT32:
-+	case FFI_TYPE_INT:
-+	case FFI_TYPE_POINTER:
-+	case FFI_TYPE_UINT64:
-+	case FFI_TYPE_SINT64:
-+	case  FFI_TYPE_FLOAT:
-+	case  FFI_TYPE_DOUBLE:
-+	case  FFI_TYPE_LONGDOUBLE:
-+	  avalue[i] = allocate_to_register_or_stack (context, stack,
-+						     &state, ty->type);
-+	  break;
-+
-+	case FFI_TYPE_STRUCT:
-+	  if (is_hfa (ty))
-+	    {
-+	      unsigned n = element_count (ty);
-+	      if (available_v (&state) < n)
-+		{
-+		  state.nsrn = N_V_ARG_REG;
-+		  avalue[i] = allocate_to_stack (&state, stack, ty->alignment,
-+						 ty->size);
-+		}
-+	      else
-+		{
-+		  switch (get_homogeneous_type (ty))
-+		    {
-+		    case FFI_TYPE_FLOAT:
-+		      {
-+			/* Eeek! We need a pointer to the structure,
-+			   however the homogeneous float elements are
-+			   being passed in individual S registers,
-+			   therefore the structure is not represented as
-+			   a contiguous sequence of bytes in our saved
-+			   register context. We need to fake up a copy
-+			   of the structure layed out in memory
-+			   correctly. The fake can be tossed once the
-+			   closure function has returned hence alloca()
-+			   is sufficient. */
-+			int j;
-+			UINT32 *p = avalue[i] = alloca (ty->size);
-+			for (j = 0; j < element_count (ty); j++)
-+			  memcpy (&p[j],
-+				  allocate_to_s (context, &state),
-+				  sizeof (*p));
-+			break;
-+		      }
-+
-+		    case FFI_TYPE_DOUBLE:
-+		      {
-+			/* Eeek! We need a pointer to the structure,
-+			   however the homogeneous float elements are
-+			   being passed in individual S registers,
-+			   therefore the structure is not represented as
-+			   a contiguous sequence of bytes in our saved
-+			   register context. We need to fake up a copy
-+			   of the structure layed out in memory
-+			   correctly. The fake can be tossed once the
-+			   closure function has returned hence alloca()
-+			   is sufficient. */
-+			int j;
-+			UINT64 *p = avalue[i] = alloca (ty->size);
-+			for (j = 0; j < element_count (ty); j++)
-+			  memcpy (&p[j],
-+				  allocate_to_d (context, &state),
-+				  sizeof (*p));
-+			break;
-+		      }
-+
-+		    case FFI_TYPE_LONGDOUBLE:
-+			  memcpy (&avalue[i],
-+				  allocate_to_v (context, &state),
-+				  sizeof (*avalue));
-+		      break;
-+
-+		    default:
-+		      FFI_ASSERT (0);
-+		      break;
-+		    }
-+		}
-+	    }
-+	  else if (ty->size > 16)
-+	    {
-+	      /* Replace Composite type of size greater than 16 with a
-+		 pointer.  */
-+	      memcpy (&avalue[i],
-+		      allocate_to_register_or_stack (context, stack,
-+						     &state, FFI_TYPE_POINTER),
-+		      sizeof (avalue[i]));
-+	    }
-+	  else if (available_x (&state) >= (ty->size + 7) / 8)
-+	    {
-+	      avalue[i] = get_x_addr (context, state.ngrn);
-+	      state.ngrn += (ty->size + 7) / 8;
-+	    }
-+	  else
-+	    {
-+	      state.ngrn = N_X_ARG_REG;
-+
-+	      avalue[i] = allocate_to_stack (&state, stack, ty->alignment,
-+					     ty->size);
-+	    }
-+	  break;
-+
-+	default:
-+	  FFI_ASSERT (0);
-+	  break;
-+	}
-+    }
-+
-+  /* Figure out where the return value will be passed, either in
-+     registers or in a memory block allocated by the caller and passed
-+     in x8.  */
-+
-+  if (is_register_candidate (cif->rtype))
-+    {
-+      /* Register candidates are *always* returned in registers. */
-+
-+      /* Allocate a scratchpad for the return value, we will let the
-+         callee scrible the result into the scratch pad then move the
-+         contents into the appropriate return value location for the
-+         call convention.  */
-+      rvalue = alloca (cif->rtype->size);
-+      (closure->fun) (cif, rvalue, avalue, closure->user_data);
-+
-+      /* Copy the return value into the call context so that it is returned
-+         as expected to our caller.  */
-+      switch (cif->rtype->type)
-+        {
-+        case FFI_TYPE_VOID:
-+          break;
-+
-+        case FFI_TYPE_UINT8:
-+        case FFI_TYPE_UINT16:
-+        case FFI_TYPE_UINT32:
-+        case FFI_TYPE_POINTER:
-+        case FFI_TYPE_UINT64:
-+        case FFI_TYPE_SINT8:
-+        case FFI_TYPE_SINT16:
-+        case FFI_TYPE_INT:
-+        case FFI_TYPE_SINT32:
-+        case FFI_TYPE_SINT64:
-+        case FFI_TYPE_FLOAT:
-+        case FFI_TYPE_DOUBLE:
-+        case FFI_TYPE_LONGDOUBLE:
-+	  {
-+	    void *addr = get_basic_type_addr (cif->rtype->type, context, 0);
-+	    copy_basic_type (addr, rvalue, cif->rtype->type);
-+            break;
-+	  }
-+        case FFI_TYPE_STRUCT:
-+          if (is_hfa (cif->rtype))
-+	    {
-+	      int i;
-+	      unsigned short type = get_homogeneous_type (cif->rtype);
-+	      unsigned elems = element_count (cif->rtype);
-+	      for (i = 0; i < elems; i++)
-+		{
-+		  void *reg = get_basic_type_addr (type, context, i);
-+		  copy_basic_type (reg, rvalue, type);
-+		  rvalue += get_basic_type_size (type);
-+		}
-+	    }
-+          else if ((cif->rtype->size + 7) / 8 < N_X_ARG_REG)
-+            {
-+              unsigned size = ALIGN (cif->rtype->size, sizeof (UINT64)) ;
-+              memcpy (get_x_addr (context, 0), rvalue, size);
-+            }
-+          else
-+            {
-+              FFI_ASSERT (0);
-+            }
-+          break;
-+        default:
-+          FFI_ASSERT (0);
-+          break;
-+        }
-+    }
-+  else
-+    {
-+      memcpy (&rvalue, get_x_addr (context, 8), sizeof (UINT64));
-+      (closure->fun) (cif, rvalue, avalue, closure->user_data);
-+    }
-+}
-+
-diff --git a/src/aarch64/ffitarget.h b/src/aarch64/ffitarget.h
-new file mode 100644
-index 0000000..6f1a348
---- /dev/null
-+++ b/src/aarch64/ffitarget.h
-@@ -0,0 +1,59 @@
-+/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+``Software''), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
-+
-+#ifndef LIBFFI_TARGET_H
-+#define LIBFFI_TARGET_H
-+
-+#ifndef LIBFFI_H
-+#error "Please do not include ffitarget.h directly into your source.  Use ffi.h instead."
-+#endif
-+
-+#ifndef LIBFFI_ASM
-+typedef unsigned long ffi_arg;
-+typedef signed long ffi_sarg;
-+
-+typedef enum ffi_abi
-+  {
-+    FFI_FIRST_ABI = 0,
-+    FFI_SYSV,
-+    FFI_LAST_ABI,
-+    FFI_DEFAULT_ABI = FFI_SYSV
-+  } ffi_abi;
-+#endif
-+
-+/* ---- Definitions for closures ----------------------------------------- */
-+
-+#define FFI_CLOSURES 1
-+#define FFI_TRAMPOLINE_SIZE 36
-+#define FFI_NATIVE_RAW_API 0
-+
-+/* ---- Internal ---- */
-+
-+
-+#define FFI_EXTRA_CIF_FIELDS unsigned aarch64_flags
-+
-+#define AARCH64_FFI_WITH_V_BIT 0
-+
-+#define AARCH64_N_XREG 32
-+#define AARCH64_N_VREG 32
-+#define AARCH64_CALL_CONTEXT_SIZE (AARCH64_N_XREG * 8 + AARCH64_N_VREG * 16)
-+
-+#endif
-diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
-new file mode 100644
-index 0000000..b8cd421
---- /dev/null
-+++ b/src/aarch64/sysv.S
-@@ -0,0 +1,307 @@
-+/* Copyright (c) 2009, 2010, 2011, 2012 ARM Ltd.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+``Software''), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
-+
-+#define LIBFFI_ASM
-+#include <fficonfig.h>
-+#include <ffi.h>
-+
-+#define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-+#define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-+#define cfi_restore(reg)		.cfi_restore reg
-+#define cfi_def_cfa_register(reg)	.cfi_def_cfa_register reg
-+
-+        .text
-+        .globl ffi_call_SYSV
-+        .type ffi_call_SYSV, #function
-+
-+/* ffi_call_SYSV()
-+
-+   Create a stack frame, setup an argument context, call the callee
-+   and extract the result.
-+
-+   The maximum required argument stack size is provided,
-+   ffi_call_SYSV() allocates that stack space then calls the
-+   prepare_fn to populate register context and stack.  The
-+   argument passing registers are loaded from the register
-+   context and the callee called, on return the register passing
-+   register are saved back to the context.  Our caller will
-+   extract the return value from the final state of the saved
-+   register context.
-+
-+   Prototype:
-+
-+   extern unsigned
-+   ffi_call_SYSV (void (*)(struct call_context *context, unsigned char *,
-+			   extended_cif *),
-+                  struct call_context *context,
-+                  extended_cif *,
-+                  unsigned required_stack_size,
-+                  void (*fn)(void));
-+
-+   Therefore on entry we have:
-+
-+   x0 prepare_fn
-+   x1 &context
-+   x2 &ecif
-+   x3 bytes
-+   x4 fn
-+
-+   This function uses the following stack frame layout:
-+
-+   ==
-+                saved x30(lr)
-+   x29(fp)->    saved x29(fp)
-+                saved x24
-+                saved x23
-+                saved x22
-+   sp'    ->    saved x21
-+                ...
-+   sp     ->    (constructed callee stack arguments)
-+   ==
-+
-+   Voila! */
-+
-+#define ffi_call_SYSV_FS (8 * 4)
-+
-+        .cfi_startproc
-+ffi_call_SYSV:
-+        stp     x29, x30, [sp, #-16]!
-+	cfi_adjust_cfa_offset (16)
-+        cfi_rel_offset (x29, 0)
-+        cfi_rel_offset (x30, 8)
-+
-+        mov     x29, sp
-+	cfi_def_cfa_register (x29)
-+        sub     sp, sp, #ffi_call_SYSV_FS
-+
-+        stp     x21, x22, [sp, 0]
-+        cfi_rel_offset (x21, 0 - ffi_call_SYSV_FS)
-+        cfi_rel_offset (x22, 8 - ffi_call_SYSV_FS)
-+
-+        stp     x23, x24, [sp, 16]
-+        cfi_rel_offset (x23, 16 - ffi_call_SYSV_FS)
-+        cfi_rel_offset (x24, 24 - ffi_call_SYSV_FS)
-+
-+        mov     x21, x1
-+        mov     x22, x2
-+        mov     x24, x4
-+
-+        /* Allocate the stack space for the actual arguments, many
-+           arguments will be passed in registers, but we assume
-+           worst case and allocate sufficient stack for ALL of
-+           the arguments.  */
-+        sub     sp, sp, x3
-+
-+        /* unsigned (*prepare_fn) (struct call_context *context,
-+				   unsigned char *stack, extended_cif *ecif);
-+	 */
-+        mov     x23, x0
-+        mov     x0, x1
-+        mov     x1, sp
-+        /* x2 already in place */
-+        blr     x23
-+
-+        /* Preserve the flags returned.  */
-+        mov     x23, x0
-+
-+        /* Figure out if we should touch the vector registers.  */
-+        tbz     x23, #AARCH64_FFI_WITH_V_BIT, 1f
-+
-+        /* Load the vector argument passing registers.  */
-+        ldp     q0, q1, [x21, #8*32 +  0]
-+        ldp     q2, q3, [x21, #8*32 + 32]
-+        ldp     q4, q5, [x21, #8*32 + 64]
-+        ldp     q6, q7, [x21, #8*32 + 96]
-+1:
-+        /* Load the core argument passing registers.  */
-+        ldp     x0, x1, [x21,  #0]
-+        ldp     x2, x3, [x21, #16]
-+        ldp     x4, x5, [x21, #32]
-+        ldp     x6, x7, [x21, #48]
-+
-+        /* Don't forget x8 which may be holding the address of a return buffer.
-+	 */
-+        ldr     x8,     [x21, #8*8]
-+
-+        blr     x24
-+
-+        /* Save the core argument passing registers.  */
-+        stp     x0, x1, [x21,  #0]
-+        stp     x2, x3, [x21, #16]
-+        stp     x4, x5, [x21, #32]
-+        stp     x6, x7, [x21, #48]
-+
-+        /* Note nothing useful ever comes back in x8!  */
-+
-+        /* Figure out if we should touch the vector registers.  */
-+        tbz     x23, #AARCH64_FFI_WITH_V_BIT, 1f
-+
-+        /* Save the vector argument passing registers.  */
-+        stp     q0, q1, [x21, #8*32 + 0]
-+        stp     q2, q3, [x21, #8*32 + 32]
-+        stp     q4, q5, [x21, #8*32 + 64]
-+        stp     q6, q7, [x21, #8*32 + 96]
-+1:
-+        /* All done, unwind our stack frame.  */
-+        ldp     x21, x22, [x29,  # - ffi_call_SYSV_FS]
-+        cfi_restore (x21)
-+        cfi_restore (x22)
-+
-+        ldp     x23, x24, [x29,  # - ffi_call_SYSV_FS + 16]
-+        cfi_restore (x23)
-+        cfi_restore (x24)
-+
-+        mov     sp, x29
-+	cfi_def_cfa_register (sp)
-+
-+        ldp     x29, x30, [sp], #16
-+	cfi_adjust_cfa_offset (-16)
-+        cfi_restore (x29)
-+        cfi_restore (x30)
-+
-+        ret
-+
-+        .cfi_endproc
-+        .size ffi_call_SYSV, .-ffi_call_SYSV
-+
-+#define ffi_closure_SYSV_FS (8 * 2 + AARCH64_CALL_CONTEXT_SIZE)
-+
-+/* ffi_closure_SYSV
-+
-+   Closure invocation glue. This is the low level code invoked directly by
-+   the closure trampoline to setup and call a closure.
-+
-+   On entry x17 points to a struct trampoline_data, x16 has been clobbered
-+   all other registers are preserved.
-+
-+   We allocate a call context and save the argument passing registers,
-+   then invoked the generic C ffi_closure_SYSV_inner() function to do all
-+   the real work, on return we load the result passing registers back from
-+   the call context.
-+
-+   On entry
-+
-+   extern void
-+   ffi_closure_SYSV (struct trampoline_data *);
-+
-+   struct trampoline_data
-+   {
-+        UINT64 *ffi_closure;
-+        UINT64 flags;
-+   };
-+
-+   This function uses the following stack frame layout:
-+
-+   ==
-+                saved x30(lr)
-+   x29(fp)->    saved x29(fp)
-+                saved x22
-+                saved x21
-+                ...
-+   sp     ->    call_context
-+   ==
-+
-+   Voila!  */
-+
-+        .text
-+        .globl ffi_closure_SYSV
-+        .cfi_startproc
-+ffi_closure_SYSV:
-+        stp     x29, x30, [sp, #-16]!
-+	cfi_adjust_cfa_offset (16)
-+        cfi_rel_offset (x29, 0)
-+        cfi_rel_offset (x30, 8)
-+
-+        mov     x29, sp
-+
-+        sub     sp, sp, #ffi_closure_SYSV_FS
-+	cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
-+
-+        stp     x21, x22, [x29, #-16]
-+        cfi_rel_offset (x21, 0)
-+        cfi_rel_offset (x22, 8)
-+
-+        /* Load x21 with &call_context.  */
-+        mov     x21, sp
-+        /* Preserve our struct trampoline_data *  */
-+        mov     x22, x17
-+
-+        /* Save the rest of the argument passing registers.  */
-+        stp     x0, x1, [x21, #0]
-+        stp     x2, x3, [x21, #16]
-+        stp     x4, x5, [x21, #32]
-+        stp     x6, x7, [x21, #48]
-+        /* Don't forget we may have been given a result scratch pad address.
-+	 */
-+        str     x8,     [x21, #64]
-+
-+        /* Figure out if we should touch the vector registers.  */
-+        ldr     x0, [x22, #8]
-+        tbz     x0, #AARCH64_FFI_WITH_V_BIT, 1f
-+
-+        /* Save the argument passing vector registers.  */
-+        stp     q0, q1, [x21, #8*32 + 0]
-+        stp     q2, q3, [x21, #8*32 + 32]
-+        stp     q4, q5, [x21, #8*32 + 64]
-+        stp     q6, q7, [x21, #8*32 + 96]
-+1:
-+        /* Load &ffi_closure..  */
-+        ldr     x0, [x22, #0]
-+        mov     x1, x21
-+        /* Compute the location of the stack at the point that the
-+           trampoline was called.  */
-+        add     x2, x29, #16
-+
-+        bl      ffi_closure_SYSV_inner
-+
-+        /* Figure out if we should touch the vector registers.  */
-+        ldr     x0, [x22, #8]
-+        tbz     x0, #AARCH64_FFI_WITH_V_BIT, 1f
-+
-+        /* Load the result passing vector registers.  */
-+        ldp     q0, q1, [x21, #8*32 + 0]
-+        ldp     q2, q3, [x21, #8*32 + 32]
-+        ldp     q4, q5, [x21, #8*32 + 64]
-+        ldp     q6, q7, [x21, #8*32 + 96]
-+1:
-+        /* Load the result passing core registers.  */
-+        ldp     x0, x1, [x21,  #0]
-+        ldp     x2, x3, [x21, #16]
-+        ldp     x4, x5, [x21, #32]
-+        ldp     x6, x7, [x21, #48]
-+        /* Note nothing usefull is returned in x8.  */
-+
-+        /* We are done, unwind our frame.  */
-+        ldp     x21, x22, [x29,  #-16]
-+        cfi_restore (x21)
-+        cfi_restore (x22)
-+
-+        mov     sp, x29
-+	cfi_adjust_cfa_offset (-ffi_closure_SYSV_FS)
-+
-+        ldp     x29, x30, [sp], #16
-+	cfi_adjust_cfa_offset (-16)
-+        cfi_restore (x29)
-+        cfi_restore (x30)
-+
-+        ret
-+        .cfi_endproc
-+        .size ffi_closure_SYSV, .-ffi_closure_SYSV
-diff --git a/testsuite/lib/libffi.exp b/testsuite/lib/libffi.exp
-index 4a65ed1..8ee3f15 100644
---- a/testsuite/lib/libffi.exp
-+++ b/testsuite/lib/libffi.exp
-@@ -203,6 +203,10 @@ proc libffi_target_compile { source dest type options } {
- 
-     lappend options "libs= -lffi"
- 
-+    if { [string match "aarch64*-*-linux*" $target_triplet] } {
-+	lappend options "libs= -lpthread"
-+    }
-+
-     verbose "options: $options"
-     return [target_compile $source $dest $type $options]
- }
-diff --git a/testsuite/libffi.call/cls_struct_va1.c b/testsuite/libffi.call/cls_struct_va1.c
-new file mode 100644
-index 0000000..91772bd
---- /dev/null
-+++ b/testsuite/libffi.call/cls_struct_va1.c
-@@ -0,0 +1,114 @@
-+/* Area:		ffi_call, closure_call
-+   Purpose:		Test doubles passed in variable argument lists.
-+   Limitations:	none.
-+   PR:			none.
-+   Originator:	Blake Chaffin 6/6/2007	 */
-+
-+/* { dg-do run } */
-+/* { dg-output "" { xfail avr32*-*-* } } */
-+#include "ffitest.h"
-+
-+struct small_tag
-+{
-+  unsigned char a;
-+  unsigned char b;
-+};
-+
-+struct large_tag
-+{
-+  unsigned a;
-+  unsigned b;
-+  unsigned c;
-+  unsigned d;
-+  unsigned e;
-+};
-+
-+static void
-+test_fn (ffi_cif* cif __UNUSED__, void* resp,
-+	 void** args, void* userdata __UNUSED__)
-+{
-+  int n = *(int*)args[0];
-+  struct small_tag s1 = * (struct small_tag *) args[1];
-+  struct large_tag l1 = * (struct large_tag *) args[2];
-+  struct small_tag s2 = * (struct small_tag *) args[3];
-+
-+  printf ("%d %d %d %d %d %d %d %d %d %d\n", n, s1.a, s1.b,
-+	  l1.a, l1.b, l1.c, l1.d, l1.e,
-+	  s2.a, s2.b);
-+  * (int*) resp = 42;
-+}
-+
-+int
-+main (void)
-+{
-+  ffi_cif cif;
-+  void *code;
-+  ffi_closure *pcl = ffi_closure_alloc (sizeof (ffi_closure), &code);
-+  ffi_type* arg_types[5];
-+
-+  ffi_arg res = 0;
-+
-+  ffi_type s_type;
-+  ffi_type *s_type_elements[3];
-+
-+  ffi_type l_type;
-+  ffi_type *l_type_elements[6];
-+
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l1;
-+
-+  int si;
-+
-+  s_type.size = 0;
-+  s_type.alignment = 0;
-+  s_type.type = FFI_TYPE_STRUCT;
-+  s_type.elements = s_type_elements;
-+
-+  s_type_elements[0] = &ffi_type_uchar;
-+  s_type_elements[1] = &ffi_type_uchar;
-+  s_type_elements[2] = NULL;
-+
-+  l_type.size = 0;
-+  l_type.alignment = 0;
-+  l_type.type = FFI_TYPE_STRUCT;
-+  l_type.elements = l_type_elements;
-+
-+  l_type_elements[0] = &ffi_type_uint;
-+  l_type_elements[1] = &ffi_type_uint;
-+  l_type_elements[2] = &ffi_type_uint;
-+  l_type_elements[3] = &ffi_type_uint;
-+  l_type_elements[4] = &ffi_type_uint;
-+  l_type_elements[5] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint;
-+  arg_types[1] = &s_type;
-+  arg_types[2] = &l_type;
-+  arg_types[3] = &s_type;
-+  arg_types[4] = NULL;
-+
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 4, &ffi_type_sint,
-+			 arg_types) == FFI_OK);
-+
-+  si = 4;
-+  s1.a = 5;
-+  s1.b = 6;
-+
-+  s2.a = 20;
-+  s2.b = 21;
-+
-+  l1.a = 10;
-+  l1.b = 11;
-+  l1.c = 12;
-+  l1.d = 13;
-+  l1.e = 14;
-+
-+  CHECK(ffi_prep_closure_loc(pcl, &cif, test_fn, NULL, code) == FFI_OK);
-+
-+  res = ((int (*)(int, ...))(code))(si, s1, l1, s2);
-+  // { dg-output "4 5 6 10 11 12 13 14 20 21" }
-+  printf("res: %d\n", (int) res);
-+  // { dg-output "\nres: 42" }
-+
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/cls_uchar_va.c b/testsuite/libffi.call/cls_uchar_va.c
-new file mode 100644
-index 0000000..19cd4f3
---- /dev/null
-+++ b/testsuite/libffi.call/cls_uchar_va.c
-@@ -0,0 +1,44 @@
-+/* Area:	closure_call
-+   Purpose:	Test anonymous unsigned char argument.
-+   Limitations:	none.
-+   PR:		none.
-+   Originator:	ARM Ltd. */
-+
-+/* { dg-do run } */
-+#include "ffitest.h"
-+
-+typedef unsigned char T;
-+
-+static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
-+			 void* userdata __UNUSED__)
-+ {
-+   *(T *)resp = *(T *)args[0];
-+
-+   printf("%d: %d %d\n", *(T *)resp, *(T *)args[0], *(T *)args[1]);
-+ }
-+
-+typedef T (*cls_ret_T)(T, ...);
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+  void *code;
-+  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
-+  ffi_type * cl_arg_types[3];
-+  T res;
-+
-+  cl_arg_types[0] = &ffi_type_uchar;
-+  cl_arg_types[1] = &ffi_type_uchar;
-+  cl_arg_types[2] = NULL;
-+
-+  /* Initialize the cif */
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 2,
-+			 &ffi_type_uchar, cl_arg_types) == FFI_OK);
-+
-+  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_T_fn, NULL, code)  == FFI_OK);
-+  res = ((((cls_ret_T)code)(67, 4)));
-+  /* { dg-output "67: 67 4" } */
-+  printf("res: %d\n", res);
-+  /* { dg-output "\nres: 67" } */
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/cls_uint_va.c b/testsuite/libffi.call/cls_uint_va.c
-new file mode 100644
-index 0000000..150fddd
---- /dev/null
-+++ b/testsuite/libffi.call/cls_uint_va.c
-@@ -0,0 +1,45 @@
-+/* Area:	closure_call
-+   Purpose:	Test anonymous unsigned int argument.
-+   Limitations:	none.
-+   PR:		none.
-+   Originator:	ARM Ltd. */
-+
-+/* { dg-do run } */
-+
-+#include "ffitest.h"
-+
-+typedef unsigned int T;
-+
-+static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
-+			 void* userdata __UNUSED__)
-+ {
-+   *(T *)resp = *(T *)args[0];
-+
-+   printf("%d: %d %d\n", *(T *)resp, *(T *)args[0], *(T *)args[1]);
-+ }
-+
-+typedef T (*cls_ret_T)(T, ...);
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+  void *code;
-+  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
-+  ffi_type * cl_arg_types[3];
-+  T res;
-+
-+  cl_arg_types[0] = &ffi_type_uint;
-+  cl_arg_types[1] = &ffi_type_uint;
-+  cl_arg_types[2] = NULL;
-+
-+  /* Initialize the cif */
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 2,
-+			 &ffi_type_uint, cl_arg_types) == FFI_OK);
-+
-+  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_T_fn, NULL, code)  == FFI_OK);
-+  res = ((((cls_ret_T)code)(67, 4)));
-+  /* { dg-output "67: 67 4" } */
-+  printf("res: %d\n", res);
-+  /* { dg-output "\nres: 67" } */
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/cls_ulong_va.c b/testsuite/libffi.call/cls_ulong_va.c
-new file mode 100644
-index 0000000..0315082
---- /dev/null
-+++ b/testsuite/libffi.call/cls_ulong_va.c
-@@ -0,0 +1,45 @@
-+/* Area:	closure_call
-+   Purpose:	Test anonymous unsigned long argument.
-+   Limitations:	none.
-+   PR:		none.
-+   Originator:	ARM Ltd. */
-+
-+/* { dg-do run } */
-+
-+#include "ffitest.h"
-+
-+typedef unsigned long T;
-+
-+static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
-+			 void* userdata __UNUSED__)
-+ {
-+   *(T *)resp = *(T *)args[0];
-+
-+   printf("%ld: %ld %ld\n", *(T *)resp, *(T *)args[0], *(T *)args[1]);
-+ }
-+
-+typedef T (*cls_ret_T)(T, ...);
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+  void *code;
-+  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
-+  ffi_type * cl_arg_types[3];
-+  T res;
-+
-+  cl_arg_types[0] = &ffi_type_ulong;
-+  cl_arg_types[1] = &ffi_type_ulong;
-+  cl_arg_types[2] = NULL;
-+
-+  /* Initialize the cif */
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 2,
-+			 &ffi_type_ulong, cl_arg_types) == FFI_OK);
-+
-+  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_T_fn, NULL, code)  == FFI_OK);
-+  res = ((((cls_ret_T)code)(67, 4)));
-+  /* { dg-output "67: 67 4" } */
-+  printf("res: %ld\n", res);
-+  /* { dg-output "\nres: 67" } */
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/cls_ushort_va.c b/testsuite/libffi.call/cls_ushort_va.c
-new file mode 100644
-index 0000000..b2b5a3b
---- /dev/null
-+++ b/testsuite/libffi.call/cls_ushort_va.c
-@@ -0,0 +1,44 @@
-+/* Area:	closure_call
-+   Purpose:	Test anonymous unsigned short argument.
-+   Limitations:	none.
-+   PR:		none.
-+   Originator:	ARM Ltd. */
-+
-+/* { dg-do run } */
-+#include "ffitest.h"
-+
-+typedef unsigned short T;
-+
-+static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
-+			 void* userdata __UNUSED__)
-+ {
-+   *(T *)resp = *(T *)args[0];
-+
-+   printf("%d: %d %d\n", *(T *)resp, *(T *)args[0], *(T *)args[1]);
-+ }
-+
-+typedef T (*cls_ret_T)(T, ...);
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+  void *code;
-+  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
-+  ffi_type * cl_arg_types[3];
-+  T res;
-+
-+  cl_arg_types[0] = &ffi_type_ushort;
-+  cl_arg_types[1] = &ffi_type_ushort;
-+  cl_arg_types[2] = NULL;
-+
-+  /* Initialize the cif */
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 2,
-+			 &ffi_type_ushort, cl_arg_types) == FFI_OK);
-+
-+  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_T_fn, NULL, code)  == FFI_OK);
-+  res = ((((cls_ret_T)code)(67, 4)));
-+  /* { dg-output "67: 67 4" } */
-+  printf("res: %d\n", res);
-+  /* { dg-output "\nres: 67" } */
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/nested_struct11.c b/testsuite/libffi.call/nested_struct11.c
-new file mode 100644
-index 0000000..fce6948
---- /dev/null
-+++ b/testsuite/libffi.call/nested_struct11.c
-@@ -0,0 +1,121 @@
-+/* Area:	ffi_call, closure_call
-+   Purpose:	Check parameter passing with nested structs
-+		of a single type.  This tests the special cases
-+		for homogenous floating-point aggregates in the
-+		AArch64 PCS.
-+   Limitations:	none.
-+   PR:		none.
-+   Originator:  ARM Ltd.  */
-+
-+/* { dg-do run } */
-+#include "ffitest.h"
-+
-+typedef struct A {
-+  float a_x;
-+  float a_y;
-+} A;
-+
-+typedef struct B {
-+  float b_x;
-+  float b_y;
-+} B;
-+
-+typedef struct C {
-+  A a;
-+  B b;
-+} C;
-+
-+static C C_fn (int x, int y, int z, C source, int i, int j, int k)
-+{
-+  C result;
-+  result.a.a_x = source.a.a_x;
-+  result.a.a_y = source.a.a_y;
-+  result.b.b_x = source.b.b_x;
-+  result.b.b_y = source.b.b_y;
-+
-+  printf ("%d, %d, %d, %d, %d, %d\n", x, y, z, i, j, k);
-+
-+  printf ("%.1f, %.1f, %.1f, %.1f, "
-+	  "%.1f, %.1f, %.1f, %.1f\n",
-+	  source.a.a_x, source.a.a_y,
-+	  source.b.b_x, source.b.b_y,
-+	  result.a.a_x, result.a.a_y,
-+	  result.b.b_x, result.b.b_y);
-+
-+  return result;
-+}
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+
-+  ffi_type* struct_fields_source_a[3];
-+  ffi_type* struct_fields_source_b[3];
-+  ffi_type* struct_fields_source_c[3];
-+  ffi_type* arg_types[8];
-+
-+  ffi_type struct_type_a, struct_type_b, struct_type_c;
-+
-+  struct A source_fld_a = {1.0, 2.0};
-+  struct B source_fld_b = {4.0, 8.0};
-+  int k = 1;
-+
-+  struct C result;
-+  struct C source = {source_fld_a, source_fld_b};
-+
-+  struct_type_a.size = 0;
-+  struct_type_a.alignment = 0;
-+  struct_type_a.type = FFI_TYPE_STRUCT;
-+  struct_type_a.elements = struct_fields_source_a;
-+
-+  struct_type_b.size = 0;
-+  struct_type_b.alignment = 0;
-+  struct_type_b.type = FFI_TYPE_STRUCT;
-+  struct_type_b.elements = struct_fields_source_b;
-+
-+  struct_type_c.size = 0;
-+  struct_type_c.alignment = 0;
-+  struct_type_c.type = FFI_TYPE_STRUCT;
-+  struct_type_c.elements = struct_fields_source_c;
-+
-+  struct_fields_source_a[0] = &ffi_type_float;
-+  struct_fields_source_a[1] = &ffi_type_float;
-+  struct_fields_source_a[2] = NULL;
-+
-+  struct_fields_source_b[0] = &ffi_type_float;
-+  struct_fields_source_b[1] = &ffi_type_float;
-+  struct_fields_source_b[2] = NULL;
-+
-+  struct_fields_source_c[0] = &struct_type_a;
-+  struct_fields_source_c[1] = &struct_type_b;
-+  struct_fields_source_c[2] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint32;
-+  arg_types[1] = &ffi_type_sint32;
-+  arg_types[2] = &ffi_type_sint32;
-+  arg_types[3] = &struct_type_c;
-+  arg_types[4] = &ffi_type_sint32;
-+  arg_types[5] = &ffi_type_sint32;
-+  arg_types[6] = &ffi_type_sint32;
-+  arg_types[7] = NULL;
-+
-+  void *args[7];
-+  args[0] = &k;
-+  args[1] = &k;
-+  args[2] = &k;
-+  args[3] = &source;
-+  args[4] = &k;
-+  args[5] = &k;
-+  args[6] = &k;
-+  CHECK (ffi_prep_cif (&cif, FFI_DEFAULT_ABI, 7, &struct_type_c,
-+		       arg_types) == FFI_OK);
-+
-+  ffi_call (&cif, FFI_FN (C_fn), &result, args);
-+  /* { dg-output "1, 1, 1, 1, 1, 1\n" } */
-+  /* { dg-output "1.0, 2.0, 4.0, 8.0, 1.0, 2.0, 4.0, 8.0" } */
-+  CHECK (result.a.a_x == source.a.a_x);
-+  CHECK (result.a.a_y == source.a.a_y);
-+  CHECK (result.b.b_x == source.b.b_x);
-+  CHECK (result.b.b_y == source.b.b_y);
-+  exit (0);
-+}
-diff --git a/testsuite/libffi.call/uninitialized.c b/testsuite/libffi.call/uninitialized.c
-new file mode 100644
-index 0000000..f00d830
---- /dev/null
-+++ b/testsuite/libffi.call/uninitialized.c
-@@ -0,0 +1,61 @@
-+/* { dg-do run } */
-+#include "ffitest.h"
-+
-+typedef struct
-+{
-+  unsigned char uc;
-+  double d;
-+  unsigned int ui;
-+} test_structure_1;
-+
-+static test_structure_1 struct1(test_structure_1 ts)
-+{
-+  ts.uc++;
-+  ts.d--;
-+  ts.ui++;
-+
-+  return ts;
-+}
-+
-+int main (void)
-+{
-+  ffi_cif cif;
-+  ffi_type *args[MAX_ARGS];
-+  void *values[MAX_ARGS];
-+  ffi_type ts1_type;
-+  ffi_type *ts1_type_elements[4];
-+
-+  memset(&cif, 1, sizeof(cif));
-+  ts1_type.size = 0;
-+  ts1_type.alignment = 0;
-+  ts1_type.type = FFI_TYPE_STRUCT;
-+  ts1_type.elements = ts1_type_elements;
-+  ts1_type_elements[0] = &ffi_type_uchar;
-+  ts1_type_elements[1] = &ffi_type_double;
-+  ts1_type_elements[2] = &ffi_type_uint;
-+  ts1_type_elements[3] = NULL;
-+
-+  test_structure_1 ts1_arg;
-+  /* This is a hack to get a properly aligned result buffer */
-+  test_structure_1 *ts1_result =
-+    (test_structure_1 *) malloc (sizeof(test_structure_1));
-+
-+  args[0] = &ts1_type;
-+  values[0] = &ts1_arg;
-+
-+  /* Initialize the cif */
-+  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
-+		     &ts1_type, args) == FFI_OK);
-+
-+  ts1_arg.uc = '\x01';
-+  ts1_arg.d = 3.14159;
-+  ts1_arg.ui = 555;
-+
-+  ffi_call(&cif, FFI_FN(struct1), ts1_result, values);
-+
-+  CHECK(ts1_result->ui == 556);
-+  CHECK(ts1_result->d == 3.14159 - 1);
-+
-+  free (ts1_result);
-+  exit(0);
-+}
-diff --git a/testsuite/libffi.call/va_1.c b/testsuite/libffi.call/va_1.c
-new file mode 100644
-index 0000000..5c7cce9
---- /dev/null
-+++ b/testsuite/libffi.call/va_1.c
-@@ -0,0 +1,196 @@
-+/* Area:		ffi_call
-+   Purpose:		Test passing struct in variable argument lists.
-+   Limitations:	none.
-+   PR:			none.
-+   Originator:	        ARM Ltd. */
-+
-+/* { dg-do run } */
-+/* { dg-output "" { xfail avr32*-*-* x86_64-*-*-* } } */
-+
-+#include "ffitest.h"
-+#include <stdarg.h>
-+
-+struct small_tag
-+{
-+  unsigned char a;
-+  unsigned char b;
-+};
-+
-+struct large_tag
-+{
-+  unsigned a;
-+  unsigned b;
-+  unsigned c;
-+  unsigned d;
-+  unsigned e;
-+};
-+
-+static int
-+test_fn (int n, ...)
-+{
-+  va_list ap;
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l;
-+  unsigned char uc;
-+  signed char sc;
-+  unsigned short us;
-+  signed short ss;
-+  unsigned int ui;
-+  signed int si;
-+  unsigned long ul;
-+  signed long sl;
-+  float f;
-+  double d;
-+
-+  va_start (ap, n);
-+  s1 = va_arg (ap, struct small_tag);
-+  l = va_arg (ap, struct large_tag);
-+  s2 = va_arg (ap, struct small_tag);
-+
-+  uc = va_arg (ap, unsigned);
-+  sc = va_arg (ap, signed);
-+
-+  us = va_arg (ap, unsigned);
-+  ss = va_arg (ap, signed);
-+
-+  ui = va_arg (ap, unsigned int);
-+  si = va_arg (ap, signed int);
-+
-+  ul = va_arg (ap, unsigned long);
-+  sl = va_arg (ap, signed long);
-+
-+  f = va_arg (ap, double);	/* C standard promotes float->double
-+				   when anonymous */
-+  d = va_arg (ap, double);
-+
-+  printf ("%u %u %u %u %u %u %u %u %u uc=%u sc=%d %u %d %u %d %lu %ld %f %f\n",
-+	  s1.a, s1.b, l.a, l.b, l.c, l.d, l.e,
-+	  s2.a, s2.b,
-+	  uc, sc,
-+	  us, ss,
-+	  ui, si,
-+	  ul, sl,
-+	  f, d);
-+  va_end (ap);
-+  return n + 1;
-+}
-+
-+int
-+main (void)
-+{
-+  ffi_cif cif;
-+  void* args[15];
-+  ffi_type* arg_types[15];
-+
-+  ffi_type s_type;
-+  ffi_type *s_type_elements[3];
-+
-+  ffi_type l_type;
-+  ffi_type *l_type_elements[6];
-+
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l1;
-+
-+  int n;
-+  int res;
-+
-+  unsigned char uc;
-+  signed char sc;
-+  unsigned short us;
-+  signed short ss;
-+  unsigned int ui;
-+  signed int si;
-+  unsigned long ul;
-+  signed long sl;
-+  double d1;
-+  double f1;
-+
-+  s_type.size = 0;
-+  s_type.alignment = 0;
-+  s_type.type = FFI_TYPE_STRUCT;
-+  s_type.elements = s_type_elements;
-+
-+  s_type_elements[0] = &ffi_type_uchar;
-+  s_type_elements[1] = &ffi_type_uchar;
-+  s_type_elements[2] = NULL;
-+
-+  l_type.size = 0;
-+  l_type.alignment = 0;
-+  l_type.type = FFI_TYPE_STRUCT;
-+  l_type.elements = l_type_elements;
-+
-+  l_type_elements[0] = &ffi_type_uint;
-+  l_type_elements[1] = &ffi_type_uint;
-+  l_type_elements[2] = &ffi_type_uint;
-+  l_type_elements[3] = &ffi_type_uint;
-+  l_type_elements[4] = &ffi_type_uint;
-+  l_type_elements[5] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint;
-+  arg_types[1] = &s_type;
-+  arg_types[2] = &l_type;
-+  arg_types[3] = &s_type;
-+  arg_types[4] = &ffi_type_uint;
-+  arg_types[5] = &ffi_type_sint;
-+  arg_types[6] = &ffi_type_uint;
-+  arg_types[7] = &ffi_type_sint;
-+  arg_types[8] = &ffi_type_uint;
-+  arg_types[9] = &ffi_type_sint;
-+  arg_types[10] = &ffi_type_ulong;
-+  arg_types[11] = &ffi_type_slong;
-+  arg_types[12] = &ffi_type_double;
-+  arg_types[13] = &ffi_type_double;
-+  arg_types[14] = NULL;
-+
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 14, &ffi_type_sint, arg_types) == FFI_OK);
-+
-+  s1.a = 5;
-+  s1.b = 6;
-+
-+  l1.a = 10;
-+  l1.b = 11;
-+  l1.c = 12;
-+  l1.d = 13;
-+  l1.e = 14;
-+
-+  s2.a = 7;
-+  s2.b = 8;
-+
-+  n = 41;
-+
-+  uc = 9;
-+  sc = 10;
-+  us = 11;
-+  ss = 12;
-+  ui = 13;
-+  si = 14;
-+  ul = 15;
-+  sl = 16;
-+  f1 = 2.12;
-+  d1 = 3.13;
-+
-+  args[0] = &n;
-+  args[1] = &s1;
-+  args[2] = &l1;
-+  args[3] = &s2;
-+  args[4] = &uc;
-+  args[5] = &sc;
-+  args[6] = &us;
-+  args[7] = &ss;
-+  args[8] = &ui;
-+  args[9] = &si;
-+  args[10] = &ul;
-+  args[11] = &sl;
-+  args[12] = &f1;
-+  args[13] = &d1;
-+  args[14] = NULL;
-+
-+  ffi_call(&cif, FFI_FN(test_fn), &res, args);
-+  /* { dg-output "5 6 10 11 12 13 14 7 8 uc=9 sc=10 11 12 13 14 15 16 2.120000 3.130000" } */
-+  printf("res: %d\n", (int) res);
-+  /* { dg-output "\nres: 42" } */
-+
-+  return 0;
-+}
-diff --git a/testsuite/libffi.call/va_struct1.c b/testsuite/libffi.call/va_struct1.c
-new file mode 100644
-index 0000000..11d1f10
---- /dev/null
-+++ b/testsuite/libffi.call/va_struct1.c
-@@ -0,0 +1,121 @@
-+/* Area:		ffi_call
-+   Purpose:		Test passing struct in variable argument lists.
-+   Limitations:	none.
-+   PR:			none.
-+   Originator: ARM Ltd. */
-+
-+/* { dg-do run } */
-+/* { dg-output "" { xfail avr32*-*-* } } */
-+
-+#include "ffitest.h"
-+#include <stdarg.h>
-+
-+struct small_tag
-+{
-+  unsigned char a;
-+  unsigned char b;
-+};
-+
-+struct large_tag
-+{
-+  unsigned a;
-+  unsigned b;
-+  unsigned c;
-+  unsigned d;
-+  unsigned e;
-+};
-+
-+static int
-+test_fn (int n, ...)
-+{
-+  va_list ap;
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l;
-+
-+  va_start (ap, n);
-+  s1 = va_arg (ap, struct small_tag);
-+  l = va_arg (ap, struct large_tag);
-+  s2 = va_arg (ap, struct small_tag);
-+  printf ("%u %u %u %u %u %u %u %u %u\n", s1.a, s1.b, l.a, l.b, l.c, l.d, l.e,
-+	  s2.a, s2.b);
-+  va_end (ap);
-+  return n + 1;
-+}
-+
-+int
-+main (void)
-+{
-+  ffi_cif cif;
-+  void* args[5];
-+  ffi_type* arg_types[5];
-+
-+  ffi_type s_type;
-+  ffi_type *s_type_elements[3];
-+
-+  ffi_type l_type;
-+  ffi_type *l_type_elements[6];
-+
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l1;
-+
-+  int n;
-+  int res;
-+
-+  s_type.size = 0;
-+  s_type.alignment = 0;
-+  s_type.type = FFI_TYPE_STRUCT;
-+  s_type.elements = s_type_elements;
-+
-+  s_type_elements[0] = &ffi_type_uchar;
-+  s_type_elements[1] = &ffi_type_uchar;
-+  s_type_elements[2] = NULL;
-+
-+  l_type.size = 0;
-+  l_type.alignment = 0;
-+  l_type.type = FFI_TYPE_STRUCT;
-+  l_type.elements = l_type_elements;
-+
-+  l_type_elements[0] = &ffi_type_uint;
-+  l_type_elements[1] = &ffi_type_uint;
-+  l_type_elements[2] = &ffi_type_uint;
-+  l_type_elements[3] = &ffi_type_uint;
-+  l_type_elements[4] = &ffi_type_uint;
-+  l_type_elements[5] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint;
-+  arg_types[1] = &s_type;
-+  arg_types[2] = &l_type;
-+  arg_types[3] = &s_type;
-+  arg_types[4] = NULL;
-+
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 4, &ffi_type_sint, arg_types) == FFI_OK);
-+
-+  s1.a = 5;
-+  s1.b = 6;
-+
-+  l1.a = 10;
-+  l1.b = 11;
-+  l1.c = 12;
-+  l1.d = 13;
-+  l1.e = 14;
-+
-+  s2.a = 7;
-+  s2.b = 8;
-+
-+  n = 41;
-+
-+  args[0] = &n;
-+  args[1] = &s1;
-+  args[2] = &l1;
-+  args[3] = &s2;
-+  args[4] = NULL;
-+
-+  ffi_call(&cif, FFI_FN(test_fn), &res, args);
-+  /* { dg-output "5 6 10 11 12 13 14 7 8" } */
-+  printf("res: %d\n", (int) res);
-+  /* { dg-output "\nres: 42" } */
-+
-+  return 0;
-+}
-diff --git a/testsuite/libffi.call/va_struct2.c b/testsuite/libffi.call/va_struct2.c
-new file mode 100644
-index 0000000..56f5b9c
---- /dev/null
-+++ b/testsuite/libffi.call/va_struct2.c
-@@ -0,0 +1,123 @@
-+/* Area:		ffi_call
-+   Purpose:		Test passing struct in variable argument lists.
-+   Limitations:	none.
-+   PR:			none.
-+   Originator: ARM Ltd. */
-+
-+/* { dg-do run } */
-+/* { dg-output "" { xfail avr32*-*-* } } */
-+
-+#include "ffitest.h"
-+#include <stdarg.h>
-+
-+struct small_tag
-+{
-+  unsigned char a;
-+  unsigned char b;
-+};
-+
-+struct large_tag
-+{
-+  unsigned a;
-+  unsigned b;
-+  unsigned c;
-+  unsigned d;
-+  unsigned e;
-+};
-+
-+static struct small_tag
-+test_fn (int n, ...)
-+{
-+  va_list ap;
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l;
-+
-+  va_start (ap, n);
-+  s1 = va_arg (ap, struct small_tag);
-+  l = va_arg (ap, struct large_tag);
-+  s2 = va_arg (ap, struct small_tag);
-+  printf ("%u %u %u %u %u %u %u %u %u\n", s1.a, s1.b, l.a, l.b, l.c, l.d, l.e,
-+	  s2.a, s2.b);
-+  va_end (ap);
-+  s1.a += s2.a;
-+  s1.b += s2.b;
-+  return s1;
-+}
-+
-+int
-+main (void)
-+{
-+  ffi_cif cif;
-+  void* args[5];
-+  ffi_type* arg_types[5];
-+
-+  ffi_type s_type;
-+  ffi_type *s_type_elements[3];
-+
-+  ffi_type l_type;
-+  ffi_type *l_type_elements[6];
-+
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l1;
-+
-+  int n;
-+  struct small_tag res;
-+
-+  s_type.size = 0;
-+  s_type.alignment = 0;
-+  s_type.type = FFI_TYPE_STRUCT;
-+  s_type.elements = s_type_elements;
-+
-+  s_type_elements[0] = &ffi_type_uchar;
-+  s_type_elements[1] = &ffi_type_uchar;
-+  s_type_elements[2] = NULL;
-+
-+  l_type.size = 0;
-+  l_type.alignment = 0;
-+  l_type.type = FFI_TYPE_STRUCT;
-+  l_type.elements = l_type_elements;
-+
-+  l_type_elements[0] = &ffi_type_uint;
-+  l_type_elements[1] = &ffi_type_uint;
-+  l_type_elements[2] = &ffi_type_uint;
-+  l_type_elements[3] = &ffi_type_uint;
-+  l_type_elements[4] = &ffi_type_uint;
-+  l_type_elements[5] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint;
-+  arg_types[1] = &s_type;
-+  arg_types[2] = &l_type;
-+  arg_types[3] = &s_type;
-+  arg_types[4] = NULL;
-+
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 4, &s_type, arg_types) == FFI_OK);
-+
-+  s1.a = 5;
-+  s1.b = 6;
-+
-+  l1.a = 10;
-+  l1.b = 11;
-+  l1.c = 12;
-+  l1.d = 13;
-+  l1.e = 14;
-+
-+  s2.a = 7;
-+  s2.b = 8;
-+
-+  n = 41;
-+
-+  args[0] = &n;
-+  args[1] = &s1;
-+  args[2] = &l1;
-+  args[3] = &s2;
-+  args[4] = NULL;
-+
-+  ffi_call(&cif, FFI_FN(test_fn), &res, args);
-+  /* { dg-output "5 6 10 11 12 13 14 7 8" } */
-+  printf("res: %d %d\n", res.a, res.b);
-+  /* { dg-output "\nres: 12 14" } */
-+
-+  return 0;
-+}
-diff --git a/testsuite/libffi.call/va_struct3.c b/testsuite/libffi.call/va_struct3.c
-new file mode 100644
-index 0000000..9a27e7f
---- /dev/null
-+++ b/testsuite/libffi.call/va_struct3.c
-@@ -0,0 +1,125 @@
-+/* Area:		ffi_call
-+   Purpose:		Test passing struct in variable argument lists.
-+   Limitations:	none.
-+   PR:			none.
-+   Originator:	ARM Ltd. */
-+
-+/* { dg-do run } */
-+/* { dg-output "" { xfail avr32*-*-* } } */
-+
-+#include "ffitest.h"
-+#include <stdarg.h>
-+
-+struct small_tag
-+{
-+  unsigned char a;
-+  unsigned char b;
-+};
-+
-+struct large_tag
-+{
-+  unsigned a;
-+  unsigned b;
-+  unsigned c;
-+  unsigned d;
-+  unsigned e;
-+};
-+
-+static struct large_tag
-+test_fn (int n, ...)
-+{
-+  va_list ap;
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l;
-+
-+  va_start (ap, n);
-+  s1 = va_arg (ap, struct small_tag);
-+  l = va_arg (ap, struct large_tag);
-+  s2 = va_arg (ap, struct small_tag);
-+  printf ("%u %u %u %u %u %u %u %u %u\n", s1.a, s1.b, l.a, l.b, l.c, l.d, l.e,
-+	  s2.a, s2.b);
-+  va_end (ap);
-+  l.a += s1.a;
-+  l.b += s1.b;
-+  l.c += s2.a;
-+  l.d += s2.b;
-+  return l;
-+}
-+
-+int
-+main (void)
-+{
-+  ffi_cif cif;
-+  void* args[5];
-+  ffi_type* arg_types[5];
-+
-+  ffi_type s_type;
-+  ffi_type *s_type_elements[3];
-+
-+  ffi_type l_type;
-+  ffi_type *l_type_elements[6];
-+
-+  struct small_tag s1;
-+  struct small_tag s2;
-+  struct large_tag l1;
-+
-+  int n;
-+  struct large_tag res;
-+
-+  s_type.size = 0;
-+  s_type.alignment = 0;
-+  s_type.type = FFI_TYPE_STRUCT;
-+  s_type.elements = s_type_elements;
-+
-+  s_type_elements[0] = &ffi_type_uchar;
-+  s_type_elements[1] = &ffi_type_uchar;
-+  s_type_elements[2] = NULL;
-+
-+  l_type.size = 0;
-+  l_type.alignment = 0;
-+  l_type.type = FFI_TYPE_STRUCT;
-+  l_type.elements = l_type_elements;
-+
-+  l_type_elements[0] = &ffi_type_uint;
-+  l_type_elements[1] = &ffi_type_uint;
-+  l_type_elements[2] = &ffi_type_uint;
-+  l_type_elements[3] = &ffi_type_uint;
-+  l_type_elements[4] = &ffi_type_uint;
-+  l_type_elements[5] = NULL;
-+
-+  arg_types[0] = &ffi_type_sint;
-+  arg_types[1] = &s_type;
-+  arg_types[2] = &l_type;
-+  arg_types[3] = &s_type;
-+  arg_types[4] = NULL;
-+
-+  CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 4, &l_type, arg_types) == FFI_OK);
-+
-+  s1.a = 5;
-+  s1.b = 6;
-+
-+  l1.a = 10;
-+  l1.b = 11;
-+  l1.c = 12;
-+  l1.d = 13;
-+  l1.e = 14;
-+
-+  s2.a = 7;
-+  s2.b = 8;
-+
-+  n = 41;
-+
-+  args[0] = &n;
-+  args[1] = &s1;
-+  args[2] = &l1;
-+  args[3] = &s2;
-+  args[4] = NULL;
-+
-+  ffi_call(&cif, FFI_FN(test_fn), &res, args);
-+  /* { dg-output "5 6 10 11 12 13 14 7 8" } */
-+  printf("res: %d %d %d %d %d\n", res.a, res.b, res.c, res.d, res.e);
-+  /* { dg-output "\nres: 15 17 19 21 14" } */
-+
-+  return 0;
-+}
--- 
-1.7.10.4
-
diff --git a/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch b/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
new file mode 100644
index 0000000..0a49ab5
--- /dev/null
+++ b/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
@@ -0,0 +1,18 @@
+
+Upstream-Status: Inaproppriate
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: libffi-3.0.13/Makefile.am
+===================================================================
+--- libffi-3.0.13.orig/Makefile.am
++++ libffi-3.0.13/Makefile.am
+@@ -98,7 +98,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
+ 
+ MAKEOVERRIDES=
+ 
+-toolexeclib_LTLIBRARIES = libffi.la
++lib_LTLIBRARIES = libffi.la
+ noinst_LTLIBRARIES = libffi_convenience.la
+ 
+ libffi_la_SOURCES = src/prep_cif.c src/types.c \
diff --git a/meta/recipes-gnome/libffi/libffi_3.0.11.bb b/meta/recipes-gnome/libffi/libffi_3.0.13.bb
similarity index 76%
rename from meta/recipes-gnome/libffi/libffi_3.0.11.bb
rename to meta/recipes-gnome/libffi/libffi_3.0.13.bb
index f2a8cc8..db0841e 100644
--- a/meta/recipes-gnome/libffi/libffi_3.0.11.bb
+++ b/meta/recipes-gnome/libffi/libffi_3.0.13.bb
@@ -9,16 +9,11 @@ A layer must exist above `libffi' that handles type conversions for values passe
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e54c573c49435ccbbd3f6dc9e49a065e"
 
-PR = "r1"
-
 SRC_URI = "ftp://sourceware.org/pub/libffi/${BPN}-${PV}.tar.gz \
-           file://0001-libffi-update-for-3.0.11.patch \
-           file://add-aarch64-support.patch \
-           file://aarch64-adding-build-support.patch \
-"
+           file://fix-libffi.la-location.patch"
 
-SRC_URI[md5sum] = "f69b9693227d976835b4857b1ba7d0e3"
-SRC_URI[sha256sum] = "70bfb01356360089aa97d3e71e3edf05d195599fd822e922e50d46a0055a6283"
+SRC_URI[md5sum] = "45f3b6dbc9ee7c7dfbbbc5feba571529"
+SRC_URI[sha256sum] = "1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c"
 
 EXTRA_OECONF += "--disable-builddir"
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 10/18] nspr: Update to 4.9.6
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (8 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 09/18] libffi: Update to 3.0.13 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 11/18] libgcrypt: Update to 1.5.1 Saul Wold
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-support/nspr/{nspr_4.9.5.bb => nspr_4.9.6.bb} | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
 rename meta/recipes-support/nspr/{nspr_4.9.5.bb => nspr_4.9.6.bb} (95%)

diff --git a/meta/recipes-support/nspr/nspr_4.9.5.bb b/meta/recipes-support/nspr/nspr_4.9.6.bb
similarity index 95%
rename from meta/recipes-support/nspr/nspr_4.9.5.bb
rename to meta/recipes-support/nspr/nspr_4.9.6.bb
index d18b12e..0dc688d 100644
--- a/meta/recipes-support/nspr/nspr_4.9.5.bb
+++ b/meta/recipes-support/nspr/nspr_4.9.6.bb
@@ -11,15 +11,14 @@ SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${PV}/src/nspr-$
            file://remove-rpath-from-tests.patch \
            file://fix-build-on-x86_64.patch \
            file://trickly-fix-build-on-x86_64.patch \
-           file://fix-build-on-aarch64.patch \
           "
 
 SRC_URI += "file://nspr.pc.in"
 
-RDEPENDS_${PN}-dev += "perl"
+SRC_URI[md5sum] = "62b1e9d376d503d972f90c3c0031d879"
+SRC_URI[sha256sum] = "7693fddd3c5cc15d53a50df53ab5dcdaa2eb58f5003302690559471744d6c6f9"
 
-SRC_URI[md5sum] = "b6ccfa8fcbbeb17ebeb19a3edff612bd"
-SRC_URI[sha256sum] = "616ab65c849155c9ed0e5f502530a241cc9108e278275aa448b417ae632c7604"
+RDEPENDS_${PN}-dev += "perl"
 
 S = "${WORKDIR}/nspr-${PV}/mozilla/nsprpub"
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 11/18] libgcrypt: Update to 1.5.1
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (9 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 10/18] nspr: Update to 4.9.6 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 12/18] pkgconfig: Move patches in prep for 0.28 update Saul Wold
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Remove automake patch as it is now supported by upstream

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../libgcrypt-1.5.0/obsolete_automake_macros.patch        | 15 ---------------
 meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb         |  9 ---------
 meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb         |  4 ++++
 3 files changed, 4 insertions(+), 24 deletions(-)
 delete mode 100644 meta/recipes-support/libgcrypt/libgcrypt-1.5.0/obsolete_automake_macros.patch
 delete mode 100644 meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb
 create mode 100644 meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb

diff --git a/meta/recipes-support/libgcrypt/libgcrypt-1.5.0/obsolete_automake_macros.patch b/meta/recipes-support/libgcrypt/libgcrypt-1.5.0/obsolete_automake_macros.patch
deleted file mode 100644
index 0dbfded..0000000
--- a/meta/recipes-support/libgcrypt/libgcrypt-1.5.0/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Submitted [https://bugs.g10code.com/gnupg/issue1459]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd libgcrypt-1.5.0/configure.ac libgcrypt-1.5.0/configure.ac
---- libgcrypt-1.5.0/configure.ac	2011-06-29 11:53:22.000000000 +0300
-+++ libgcrypt-1.5.0/configure.ac	2013-01-03 07:12:26.854793677 +0200
-@@ -59,7 +59,7 @@
-
- AC_CONFIG_SRCDIR([src/libgcrypt.vers])
- AM_INIT_AUTOMAKE([])
--AM_CONFIG_HEADER(config.h)
-+AC_CONFIG_HEADERS(config.h)
- AC_CONFIG_MACRO_DIR([m4])
- AC_CONFIG_LIBOBJ_DIR([compat])
- AC_CANONICAL_HOST
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb
deleted file mode 100644
index 058c2d5..0000000
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.5.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require libgcrypt.inc
-
-PR = "r2"
-
-SRC_URI += "file://obsolete_automake_macros.patch"
-
-SRC_URI[md5sum] = "78f8f8bec4580f75b25816f7896d0389"
-SRC_URI[sha256sum] = "cc98b1f64c9ae3b0185099cef4ac6c436a849095edf87f34157f0bb10e187990"
-
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb
new file mode 100644
index 0000000..fea0ab7
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.5.1.bb
@@ -0,0 +1,4 @@
+require libgcrypt.inc
+
+SRC_URI[md5sum] = "9963b67d84978727f5795e7ff92385de"
+SRC_URI[sha256sum] = "d7f5cb694286b24d91836c728dfcac9e8eead80a02c5e2ac78d8b84983154455"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 12/18] pkgconfig: Move patches in prep for 0.28 update
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (10 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 11/18] libgcrypt: Update to 1.5.1 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 13/18] libxkbcommon: Update to 0.3.0 Saul Wold
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-devtools/pkgconfig/pkgconfig.inc     | 8 +-------
 meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb | 7 +++++++
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig.inc b/meta/recipes-devtools/pkgconfig/pkgconfig.inc
index 87d7165..52b9ad1 100644
--- a/meta/recipes-devtools/pkgconfig/pkgconfig.inc
+++ b/meta/recipes-devtools/pkgconfig/pkgconfig.inc
@@ -12,13 +12,7 @@ DEPENDS = "glib-2.0 popt"
 DEPENDS_class-native = ""
 DEPENDS_class-nativesdk = ""
 
-SRC_URI = "http://pkgconfig.freedesktop.org/releases/pkg-config-${PV}.tar.gz \
-           file://autofoo.patch \
-           file://glibconfig-sysdefs.h \
-           file://pkg-config-native.in \
-           file://disable-legacy.patch \
-           file://obsolete_automake_macros.patch \
-          "
+SRC_URI = "http://pkgconfig.freedesktop.org/releases/pkg-config-${PV}.tar.gz"
 
 S = "${WORKDIR}/pkg-config-${PV}/"
 
diff --git a/meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb b/meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb
index a269973..a55d017 100644
--- a/meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb
+++ b/meta/recipes-devtools/pkgconfig/pkgconfig_0.25.bb
@@ -2,5 +2,12 @@ require pkgconfig.inc
 
 PR = "r7"
 
+SRC_URI += "file://autofoo.patch \
+            file://glibconfig-sysdefs.h \
+            file://pkg-config-native.in \
+            file://disable-legacy.patch \
+            file://obsolete_automake_macros.patch \
+           "
+
 SRC_URI[md5sum] = "a3270bab3f4b69b7dc6dbdacbcae9745"
 SRC_URI[sha256sum] = "3ba691ee2431f32ccb8efa131e59bf23e37f122dc66791309023ca6dcefcd10e"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 13/18] libxkbcommon: Update to 0.3.0
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (11 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 12/18] pkgconfig: Move patches in prep for 0.28 update Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 14/18] glew: fix generation of glew.pc needed by mesa-demos Saul Wold
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../xorg-lib/{libxkbcommon_0.2.0.bb => libxkbcommon_0.3.0.bb} | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
 rename meta/recipes-graphics/xorg-lib/{libxkbcommon_0.2.0.bb => libxkbcommon_0.3.0.bb} (67%)

diff --git a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.2.0.bb b/meta/recipes-graphics/xorg-lib/libxkbcommon_0.3.0.bb
similarity index 67%
rename from meta/recipes-graphics/xorg-lib/libxkbcommon_0.2.0.bb
rename to meta/recipes-graphics/xorg-lib/libxkbcommon_0.3.0.bb
index e8d16df..6e6dbfa 100644
--- a/meta/recipes-graphics/xorg-lib/libxkbcommon_0.2.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libxkbcommon_0.3.0.bb
@@ -2,18 +2,15 @@ SUMMARY = "Generic XKB keymap library"
 DESCRIPTION = "libxkbcommon is a keymap compiler and support library which \
 processes a reduced subset of keymaps as defined by the XKB specification."
 HOMEPAGE = "http://www.xkbcommon.org"
-
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c0b824e72a22f9d2c40b9c93b1f0ddc"
 LICENSE = "MIT & MIT-style"
 
 DEPENDS = "util-macros flex-native bison-native"
 
-SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "2be3d4a255d02c7d46fc6a9486f21f6a"
-SRC_URI[sha256sum] = "74eb0a121ca3998015fd687591426bb15c524645a72cf602831b2e729172fb42"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=9c0b824e72a22f9d2c40b9c93b1f0ddc"
+SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
 
-PR = "r1"
+SRC_URI[md5sum] = "22a046100738f99b4cc0297aa210f4e4"
+SRC_URI[sha256sum] = "866c0df88f806dff8fc859b6f082cf9f8b6c3b549f0a367541e12b1ca28a5d65"
 
 inherit autotools pkgconfig
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 14/18] glew: fix generation of glew.pc needed by mesa-demos
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (12 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 13/18] libxkbcommon: Update to 0.3.0 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 15/18] mesa-demos: Update to 8.1.0 Saul Wold
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../glew/files/fix-glew.pc-install.patch           | 44 ++++++++++++++++++++++
 meta/recipes-graphics/glew/glew_1.9.0.bb           |  1 +
 2 files changed, 45 insertions(+)
 create mode 100644 meta/recipes-graphics/glew/files/fix-glew.pc-install.patch

diff --git a/meta/recipes-graphics/glew/files/fix-glew.pc-install.patch b/meta/recipes-graphics/glew/files/fix-glew.pc-install.patch
new file mode 100644
index 0000000..5b6a94e
--- /dev/null
+++ b/meta/recipes-graphics/glew/files/fix-glew.pc-install.patch
@@ -0,0 +1,44 @@
+
+We maintain the autotools configure.ac and Makefile.am, to correctly
+provide the glew.pc, the following patch is needed.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: glew-1.9.0/Makefile.am
+===================================================================
+--- glew-1.9.0.orig/Makefile.am
++++ glew-1.9.0/Makefile.am
+@@ -3,3 +3,5 @@ ACLOCAL_AMFLAGS = -I m4 --install
+ 
+ SUBDIRS = include src
+ 
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = glew.pc
+Index: glew-1.9.0/configure.ac
+===================================================================
+--- glew-1.9.0.orig/configure.ac
++++ glew-1.9.0/configure.ac
+@@ -66,5 +66,6 @@ AC_SUBST([LIBGLEW_SO_VERSION], [1:5:7])
+ 
+ AC_CONFIG_FILES([Makefile
+                  include/Makefile
+-                 src/Makefile])
++                 src/Makefile
++                 glew.pc])
+ AC_OUTPUT
+Index: glew-1.9.0/glew.pc.in
+===================================================================
+--- glew-1.9.0.orig/glew.pc.in
++++ glew-1.9.0/glew.pc.in
+@@ -5,6 +5,6 @@ includedir=@includedir@
+ 
+ Name: glew
+ Description: The OpenGL Extension Wrangler library
+-Version: @version@
+-Cflags: -I${includedir} @cflags@
+-Libs: -L${libdir} -l@libname@
++Version: @VERSION@
++Cflags: -I${includedir} @CFLAGS@
++Libs: -L${libdir} -lGLEW
diff --git a/meta/recipes-graphics/glew/glew_1.9.0.bb b/meta/recipes-graphics/glew/glew_1.9.0.bb
index 599d64b..f1ba4e4 100644
--- a/meta/recipes-graphics/glew/glew_1.9.0.bb
+++ b/meta/recipes-graphics/glew/glew_1.9.0.bb
@@ -12,6 +12,7 @@ PR = "r1"
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
            file://autotools.patch \
            file://glew_fix_for_automake-1.12.patch \
+           file://fix-glew.pc-install.patch \
           "
 
 SRC_URI[md5sum] = "69ce911decef6249d24742497e6ad06a"
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 15/18] mesa-demos: Update to 8.1.0
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (13 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 14/18] glew: fix generation of glew.pc needed by mesa-demos Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 16/18] glib-2.0: Update to 2.36 Saul Wold
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Removed patches that now appear in the upstream.

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 ...glgears-Make-EGL_KHR_image-usage-portable.patch | 95 ----------------------
 .../mesa-demos/dso_linking_change_build_fix.patch  | 24 ------
 .../mesa/mesa-demos/gles2-info.patch               | 21 -----
 .../{mesa-demos_8.0.1.bb => mesa-demos_8.1.0.bb}   | 11 +--
 4 files changed, 3 insertions(+), 148 deletions(-)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/dso_linking_change_build_fix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-demos_8.0.1.bb => mesa-demos_8.1.0.bb} (69%)

diff --git a/meta/recipes-graphics/mesa/mesa-demos/0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch b/meta/recipes-graphics/mesa/mesa-demos/0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch
deleted file mode 100644
index 43d4fb1..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 43c2122af1caa750531f29bf734c03d1f50801d1 Mon Sep 17 00:00:00 2001
-Message-Id: <43c2122af1caa750531f29bf734c03d1f50801d1.1365283761.git.tom.zanussi@linux.intel.com>
-From: Frank Binns <frank.binns@imgtec.com>
-Date: Fri, 29 Jun 2012 14:06:27 +0100
-Subject: [PATCH] xeglgears: Make EGL_KHR_image usage portable
-
-EGL extension functions don't have to be exported which means
-xeglgears was failing to link against implementations that
-support EGL_KHR_image but were not exporting its related functions.
-
-This has been fixed by using eglGetProcAddress to get a function
-pointer instead of using the functions prototype. This is portable.
-
-Signed-off-by: Frank Binns <frank.binns@imgtec.com>
-
-Integrated-by: Tom Zanussi <tom.zanussi@linux.intel.com>
-
-Upstream-Status: Backport
----
- src/egl/opengl/xeglgears.c | 37 +++++++++++++++++++++++++++++++------
- 1 file changed, 31 insertions(+), 6 deletions(-)
-
-diff --git a/src/egl/opengl/xeglgears.c b/src/egl/opengl/xeglgears.c
-index 513c587..866b89a 100644
---- a/src/egl/opengl/xeglgears.c
-+++ b/src/egl/opengl/xeglgears.c
-@@ -51,6 +51,10 @@
- static PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES_func;
- #endif
- 
-+#ifdef EGL_KHR_image
-+static PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR_func;
-+#endif
-+
- 
- #define BENCHMARK
- 
-@@ -405,6 +409,17 @@ egl_manager_new(EGLNativeDisplayType xdpy, const EGLint *attrib_list,
-       eglGetProcAddress("glEGLImageTargetTexture2DOES");
- #endif
- 
-+#ifdef EGL_KHR_image
-+   eglCreateImageKHR_func = (PFNEGLCREATEIMAGEKHRPROC)
-+      eglGetProcAddress("eglCreateImageKHR");
-+   if (eglCreateImageKHR_func == NULL) {
-+      printf("failed to get eglCreateImageKHR\n");
-+      eglTerminate(eman->dpy);
-+      free(eman);
-+      return NULL;
-+   }
-+#endif
-+
-    return eman;
- }
- 
-@@ -850,10 +865,16 @@ main(int argc, char *argv[])
-    case GEARS_PIXMAP:
-    case GEARS_PIXMAP_TEXTURE:
-       ret = egl_manager_create_pixmap(eman, eman->xwin, EGL_TRUE, NULL);
-+
-+#ifdef EGL_KHR_image
-       if (surface_type == GEARS_PIXMAP_TEXTURE)
--	 eman->image = eglCreateImageKHR (eman->dpy, eman->ctx,
--					  EGL_NATIVE_PIXMAP_KHR,
--					  (EGLClientBuffer) eman->xpix, NULL);
-+	 eman->image = eglCreateImageKHR_func(eman->dpy, eman->ctx,
-+					      EGL_NATIVE_PIXMAP_KHR,
-+					      (EGLClientBuffer) eman->xpix, NULL);
-+#else
-+      fprintf(stderr, "EGL_KHR_image not found at compile time.\n");
-+#endif
-+
-       if (ret)
-          ret = eglMakeCurrent(eman->dpy, eman->pix, eman->pix, eman->ctx);
-       break;
-@@ -892,9 +913,13 @@ main(int argc, char *argv[])
- 				   GL_RENDERBUFFER_EXT,
- 				   color_rb);
- 
--      eman->image = eglCreateImageKHR(eman->dpy, eman->ctx,
--				      EGL_GL_RENDERBUFFER_KHR,
--				      (EGLClientBuffer) color_rb, NULL);
-+#ifdef EGL_KHR_image
-+      eman->image = eglCreateImageKHR_func(eman->dpy, eman->ctx,
-+					   EGL_GL_RENDERBUFFER_KHR,
-+					   (EGLClientBuffer) color_rb, NULL);
-+#else
-+      fprintf(stderr, "EGL_KHR_image not found at compile time.\n");
-+#endif
- 
-       glGenRenderbuffers(1, &depth_rb);
-       glBindRenderbuffer(GL_RENDERBUFFER_EXT, depth_rb);
--- 
-1.7.11.4
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos/dso_linking_change_build_fix.patch b/meta/recipes-graphics/mesa/mesa-demos/dso_linking_change_build_fix.patch
deleted file mode 100644
index 9b5e952..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/dso_linking_change_build_fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-after gcc linking has changed, all the libraries must be explicitely specified 
-This patch avoids these linking errors:
-
-|   CCLD   xeglgears
-| /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.5.1/ld: xeglthreads.o: undefined reference to symbol 'pthread_join@@GLIBC_2.4'
-| /build_disk/poky_build/build0/tmp/sysroots/x86_64-linux/usr/libexec/armv5te-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.5.1/ld: note: 'pthread_join@@GLIBC_2.4' is defined in DSO /build_disk/poky_build/build0/tmp/sysroots/qemuarm/lib/libpthread.so.0 so try adding it to the linker command line
-| /build_disk/poky_build/build0/tmp/sysroots/qemuarm/lib/libpthread.so.0: could not read symbols: Invalid operation
-| collect2: ld returned 1 exit status
-
-
-Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2011/02/03
-
-Upstream-Status: Pending
-
-Index: mesa-demos-8.0.1/src/egl/opengl/Makefile.am
-===================================================================
---- mesa-demos-8.0.1.orig/src/egl/opengl/Makefile.am	2010-07-07 10:57:15.000000000 -0700
-+++ mesa-demos-8.0.1/src/egl/opengl/Makefile.am	2011-02-03 14:30:13.928486381 -0800
-@@ -67,3 +67,4 @@
- 
- eglgears_x11_LDADD = ../eglut/libeglut_x11.la
- egltri_x11_LDADD = ../eglut/libeglut_x11.la
-+xeglthreads_LDADD = -lpthread
diff --git a/meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch b/meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
deleted file mode 100644
index 849c974..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Fix to enable gles2 to build.
-
-Ross Burton <ross.burton@intel.com>
-
-Upstream-Status: Pending
-
-Index: mesa-demos-8.0.1/src/egl/opengles2/es2_info.c
-===================================================================
---- mesa-demos-8.0.1.orig/src/egl/opengles2/es2_info.c	2010-07-07 18:57:15.000000000 +0100
-+++ mesa-demos-8.0.1/src/egl/opengles2/es2_info.c	2012-08-01 13:14:59.000104115 +0100
-@@ -18,8 +18,8 @@
- #include <X11/Xlib.h>
- #include <X11/Xutil.h>
- #include <X11/keysym.h>
--#include <GLES/gl.h>
--#include <GLES/glext.h>
-+#include <GLES2/gl2.h>
-+#include <GLES2/gl2ext.h>
- #include <EGL/egl.h>
- 
- 
diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb b/meta/recipes-graphics/mesa/mesa-demos_8.1.0.bb
similarity index 69%
rename from meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb
rename to meta/recipes-graphics/mesa/mesa-demos_8.1.0.bb
index 94db7f7..055f73d 100644
--- a/meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb
+++ b/meta/recipes-graphics/mesa/mesa-demos_8.1.0.bb
@@ -11,18 +11,13 @@ LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=9142
 
 DEPENDS = "virtual/libx11 virtual/libgl glew"
 
-PR = "r4"
-
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
-	file://dso_linking_change_build_fix.patch \
-	file://gles2-info.patch \
         file://glut.patch \
         file://egl-mesa-screen-surface-build-fix.patch \
-        file://egl-mesa-screen-surface-query.patch \
-        file://0001-xeglgears-Make-EGL_KHR_image-usage-portable.patch"
+        file://egl-mesa-screen-surface-query.patch"
 
-SRC_URI[md5sum] = "320c2a4b6edc6faba35d9cb1e2a30bf4"
-SRC_URI[sha256sum] = "4bc7f2b20d17e3eebfec288f2367a435cd2db71fc5ac9ece2c14827e290d77d1"
+SRC_URI[md5sum] = "9df33ba69a26bbfbc7c8148602e59542"
+SRC_URI[sha256sum] = "9703fa0646b32a1e68d2abf5628f936f77bf97c69ffcaac90de380820a87a828"
 
 inherit autotools pkgconfig
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 16/18] glib-2.0: Update to 2.36
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (14 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 15/18] mesa-demos: Update to 8.1.0 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 17/18] glib-networking: " Saul Wold
  2013-04-24 21:37 ` [PATCH 18/18] build-appliance: Add version info Saul Wold
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Remove automake patch that is now correctly supported upstream
Codegen files have moved to glib-2.0, so correct packaging and
removal.

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../glib-2.0/glib-2.0/obsolete_automake_macros.patch        | 13 -------------
 .../glib-2.0/{glib-2.0_2.34.3.bb => glib-2.0_2.36.0.bb}     | 12 ++++++------
 meta/recipes-core/glib-2.0/glib.inc                         |  2 +-
 3 files changed, 7 insertions(+), 20 deletions(-)
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/obsolete_automake_macros.patch
 rename meta/recipes-core/glib-2.0/{glib-2.0_2.34.3.bb => glib-2.0_2.36.0.bb} (85%)

diff --git a/meta/recipes-core/glib-2.0/glib-2.0/obsolete_automake_macros.patch b/meta/recipes-core/glib-2.0/glib-2.0/obsolete_automake_macros.patch
deleted file mode 100644
index 2fc4e75..0000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Upstream-Status: Accepted [https://bugzilla.gnome.org/show_bug.cgi?id=691011]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd glib-2.34.3/configure.ac glib-2.34.3/configure.ac
---- glib-2.34.3/configure.ac	2012-11-26 19:10:04.000000000 +0200
-+++ glib-2.34.3/configure.ac	2013-01-02 15:49:27.832183712 +0200
-@@ -291,7 +291,6 @@
- AM_CONDITIONAL(HAVE_CXX, [test "$CXX" != ""])
- AC_LANG_RESTORE
-
--AM_PROG_CC_STDC
- AM_PROG_CC_C_O
- AC_PROG_INSTALL
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.34.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.36.0.bb
similarity index 85%
rename from meta/recipes-core/glib-2.0/glib-2.0_2.34.3.bb
rename to meta/recipes-core/glib-2.0/glib-2.0_2.36.0.bb
index 7795524..a042972 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.34.3.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.36.0.bb
@@ -1,6 +1,5 @@
 require glib.inc
 
-PR = "r2"
 PE = "1"
 
 DEPENDS += "libffi python-argparse-native zlib"
@@ -12,15 +11,16 @@ SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]
 SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
            file://configure-libtool.patch \
            file://glib-2.0_fix_for_x32.patch \
-           file://obsolete_automake_macros.patch \
            file://fix-conflicting-rand.patch \
            file://Makefile-ptest.patch \
            file://run-ptest \
           "
-SRC_URI[md5sum] = "a4ca31e258273c3761e3de2edd607661"
-SRC_URI[sha256sum] = "855fcbf87cb93065b488358e351774d8a39177281023bae58c286f41612658a7"
 
 SRC_URI_append_class-native = " file://glib-gettextize-dir.patch"
+
+SRC_URI[md5sum] = "2047dff287473450593edecb18f79c17"
+SRC_URI[sha256sum] = "455a8abe8692c5174bcc7ffa15b96a7521a2f2f9fb47594405927c35cb9bb227"
+
 BBCLASSEXTEND = "native nativesdk"
 
 RDEPENDS_${PN}-ptest += "\
@@ -50,8 +50,8 @@ do_configure_prepend() {
 
 do_install_append() {
   # remove some unpackaged files
-  rm -f ${D}${libdir}/gdbus-2.0/codegen/*.pyc
-  rm -f ${D}${libdir}/gdbus-2.0/codegen/*.pyo
+  rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
+  rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
   # and empty dirs
   rm -rf ${D}${libdir}/gio
 
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index 42c34c3..35edc4e 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -38,7 +38,7 @@ FILES_${PN}-dev += "${libdir}/glib-2.0/include \
                     ${libdir}/gio/modules/*.la"
 FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb \
                     ${libdir}/gio/modules/.debug"
-FILES_${PN}-codegen = "${libdir}/gdbus-2.0/codegen/*.py"
+FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py"
 FILES_${PN}-bash-completion = "${sysconfdir}/bash_completion.d \
                                ${datadir}/bash-completion"
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 17/18] glib-networking: Update to 2.36
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (15 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 16/18] glib-2.0: Update to 2.36 Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  2013-04-24 21:37 ` [PATCH 18/18] build-appliance: Add version info Saul Wold
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

COPYING file: Address and Formating changes only

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../{glib-networking_2.28.7.bb => glib-networking_2.36.0.bb}   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
 rename meta/recipes-core/glib-networking/{glib-networking_2.28.7.bb => glib-networking_2.36.0.bb} (71%)

diff --git a/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb b/meta/recipes-core/glib-networking/glib-networking_2.36.0.bb
similarity index 71%
rename from meta/recipes-core/glib-networking/glib-networking_2.28.7.bb
rename to meta/recipes-core/glib-networking/glib-networking_2.36.0.bb
index 17f0102..2cc69ef 100644
--- a/meta/recipes-core/glib-networking/glib-networking_2.28.7.bb
+++ b/meta/recipes-core/glib-networking/glib-networking_2.36.0.bb
@@ -3,17 +3,15 @@ HOMEPAGE = "http://git.gnome.org/browse/glib-networking/"
 BUGTRACKER = "http://bugzilla.gnome.org"
 
 LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
 
 SECTION = "libs"
 DEPENDS = "glib-2.0 gnutls intltool-native"
 
-PR = "r3"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/2.36/${BPN}-${PV}.tar.xz"
 
-SRC_URI = "${GNOME_MIRROR}/${BPN}/2.28/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "c10e51571d03c10111a37bcd21fbf777"
-SRC_URI[sha256sum] = "98bedfbd530c4b1b53c91025fe82290bafd289d249e4eb549c3b90d23a76021c"
+SRC_URI[md5sum] = "062dafdb939510e7b38eea3d3b367be0"
+SRC_URI[sha256sum] = "190d66fbaeb023ba4f43c315f23c5372c43be6cbe857596e00990211514650d9"
 
 EXTRA_OECONF = "--without-ca-certificates --without-gnome-proxy --without-libproxy"
 
-- 
1.8.0.2




^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 18/18] build-appliance: Add version info
  2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
                   ` (16 preceding siblings ...)
  2013-04-24 21:37 ` [PATCH 17/18] glib-networking: " Saul Wold
@ 2013-04-24 21:37 ` Saul Wold
  17 siblings, 0 replies; 19+ messages in thread
From: Saul Wold @ 2013-04-24 21:37 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../images/{build-appliance-image.bb => build-appliance-image_8.0.bb}     | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename meta/recipes-core/images/{build-appliance-image.bb => build-appliance-image_8.0.bb} (100%)

diff --git a/meta/recipes-core/images/build-appliance-image.bb b/meta/recipes-core/images/build-appliance-image_8.0.bb
similarity index 100%
rename from meta/recipes-core/images/build-appliance-image.bb
rename to meta/recipes-core/images/build-appliance-image_8.0.bb
-- 
1.8.0.2




^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-04-24 21:56 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-24 21:36 [PATCH 00/18] Package Updates Saul Wold
2013-04-24 21:36 ` [PATCH 01/18] less: Update to 458 Saul Wold
2013-04-24 21:36 ` [PATCH 02/18] lsbinitscripts: Update to 9.46 Saul Wold
2013-04-24 21:36 ` [PATCH 03/18] sysstat: Update to 10.1.5 Saul Wold
2013-04-24 21:36 ` [PATCH 04/18] sqlite: Update to 3071602 Saul Wold
2013-04-24 21:36 ` [PATCH 05/18] dhcp: Update to 4.2.5-P1 Saul Wold
2013-04-24 21:36 ` [PATCH 06/18] resolvconf: Update to 1.71 Saul Wold
2013-04-24 21:37 ` [PATCH 07/18] dpkg: Update to 1.16.10 Saul Wold
2013-04-24 21:37 ` [PATCH 08/18] file: Update to 5.14 Saul Wold
2013-04-24 21:37 ` [PATCH 09/18] libffi: Update to 3.0.13 Saul Wold
2013-04-24 21:37 ` [PATCH 10/18] nspr: Update to 4.9.6 Saul Wold
2013-04-24 21:37 ` [PATCH 11/18] libgcrypt: Update to 1.5.1 Saul Wold
2013-04-24 21:37 ` [PATCH 12/18] pkgconfig: Move patches in prep for 0.28 update Saul Wold
2013-04-24 21:37 ` [PATCH 13/18] libxkbcommon: Update to 0.3.0 Saul Wold
2013-04-24 21:37 ` [PATCH 14/18] glew: fix generation of glew.pc needed by mesa-demos Saul Wold
2013-04-24 21:37 ` [PATCH 15/18] mesa-demos: Update to 8.1.0 Saul Wold
2013-04-24 21:37 ` [PATCH 16/18] glib-2.0: Update to 2.36 Saul Wold
2013-04-24 21:37 ` [PATCH 17/18] glib-networking: " Saul Wold
2013-04-24 21:37 ` [PATCH 18/18] build-appliance: Add version info Saul Wold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox