All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/58] Consolidated Updates and Bug Fixes
@ 2011-04-16  6:53 Saul Wold
  2011-04-16  6:53 ` [PATCH 01/58] gstreamer: upgrade to vesion 0.10.32 Saul Wold
                   ` (58 more replies)
  0 siblings, 59 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Saul Wold <sgw@linux.intel.com>

Richard, 

Folks have been busy while we were away at ELC!

There are package updates, patch classifications, and bug fixes 
including some CVEs that need to be back ported to 1.0.1

I still don't have access to openembedded-core-contrib, so please 
find these in the poky-contrib area.

Clutter-1.6 has a dependency on json-glib, which Joshua will be fixing
next week, it's not an issue for most builds right now.

I did rejects some patches due to issue with build or patch classificiations.

Hope we can get these in for next week.

Thanks
	Sau!



Pull URL: git://git.yoctoproject.org/poky-contrib.git
  Branch: distro/oe-core
  Browse: http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=distro/oe-core

Thanks,
    Saul Wold <sgw@linux.intel.com>
---


Dexuan Cui (13):
  oprofileui: upgrade to latest git version
  libxt: update from 1.0.9 to the latest version 1.1.1
  libxi: upgrade from 1.4.0 to the latest version 1.4.2
  fixesproto: upgrade from 4.1.2 to the latest version 5.0
  xproto: upgrade from 7.0.20 to the latest version 7.0.21
  gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5
  xextproto: upgrade from 7.1.2 to the latest version 7.2.0
  libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1
  cronie: upgrade from 1.4.6 to the latest version 1.4.7
  preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto,
    xextproto and libpciaccess
  distro_tracking_fields.inc: update the info for the following recipes
  gnu-config-native: add dependency on perl-native
  libnewt: fix parallel-make issue

Dongxiao Xu (13):
  gstreamer: upgrade to vesion 0.10.32
  gst-plugins-base: upgrade to version 0.10.32
  gst-plugins-good: upgrade to version 0.10.28
  gst-plugins-bad: upgrade to version 0.10.21
  gst-plugins-ugly: upgrade to version 0.10.17
  ofono: upgrade to version 0.45
  alsa-lib: upgrade to version 1.0.24.1
  telepathy-glib: upgrade to version 0.14.3
  telepathy-idle: upgrade to version 0.1.8
  telepathy-mission-control: upgrade to version 5.7.9
  gssdp: upgrade to version 0.10.0
  gupnp: upgrade to version 0.16.0
  distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib,
    etc

Gary Thomas (1):
  setuptools: Make options for setup.py more flexible

Jingdong Lu (2):
  gcc: Add "--enable-clocale=gnu" option for LSB.
  poky-lsb: Add "largefile" feature for LSB distro.

Joshua Lock (1):
  clutter-1.6: fix tarball md5sum and add json-glib to dependencies

Kang Kai (1):
  jpeg: add link libjpeg.so.62 for LSB library test

Paul Eggleton (2):
  netbase: automatically bring up eth0
  netbase: add /etc/network/interfaces file for qemumips & qemuppc

Qing He (4):
  libexif: upgrade to 0.6.20
  libxml2: upgrade to version 2.7.8
  openssl: upgrade to version 0.9.8r
  rsync: upgrade to version 3.0.8

Saul Wold (1):
  slang: Update to 2.2.4

Scott Rifenbark (4):
  documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools.
  documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly
    builds
  documentation/adt-manual/adt-eclipse.xml: Fixed URL with
    pokylinux.org
  documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux'
    with 'yoctoproject'

Xiaofeng Yan (1):
  task-poky-lsb.bb:Add locale resoures which is needed by LSB Test
    Suite

Yu Ke (9):
  xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0
  xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0
  evieext: upgrade from 1.1.0 to 1.1.1
  xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0
  xkbcomp: upgrade from 1.2.0 to 1.2.1
  libdrm: upgrade from 2.4.23 to 2.4.25
  mesa: upgrade to 7.10.2
  xf86-input-mouse: upgrade from 1.6 to 1.7
  pango: upgrade from 1.28.3 to 1.28.4

Zhai Edwin (6):
  libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1)
  x11perf: Upgrade to 1.5.3 (from 1.5.2)
  libcanberry: Upgrade to 0.28 (from 0.26)
  xz: Upgrade to 5.0.2 (from 5.0.0)
  polkit-gnome: Upgrade to 0.101 (from 0.99)
  qemu: Fix the qemu GL application start failure.

 documentation/adt-manual/adt-eclipse.xml           |    4 +-
 documentation/adt-manual/adt-prepare.xml           |    2 +-
 documentation/kernel-manual/kernel-how-to.xml      |    4 +-
 meta/classes/setuptools.bbclass                    |    3 +-
 .../conf/distro/include/distro_tracking_fields.inc |  189 +-
 .../conf/distro/include/poky-default-revisions.inc |    2 +-
 .../distro/include/preferred-xorg-versions.inc     |   34 +-
 meta/conf/distro/poky-lsb.conf                     |    2 +-
 .../{files => gssdp-0.10.0}/introspection.patch    |    5 +-
 .../gupnp/{gssdp_0.9.0.bb => gssdp_0.10.0.bb}      |    4 +-
 .../gupnp/{gupnp_0.14.0.bb => gupnp_0.16.0.bb}     |    7 +-
 meta/recipes-connectivity/ofono/ofono_0.37.bb      |    9 -
 meta/recipes-connectivity/ofono/ofono_0.45.bb      |    9 +
 .../configure-targets.patch                        |    1 +
 .../debian/ca.patch                                |    0
 .../debian/config-hurd.patch                       |    0
 .../debian/debian-targets.patch                    |    0
 .../debian/engines-path.patch                      |    0
 .../debian/kfreebsd-pipe.patch                     |    0
 .../debian/make-targets.patch                      |    0
 .../debian/man-dir.patch                           |    0
 .../debian/man-section.patch                       |    0
 .../debian/no-rpath.patch                          |    0
 .../debian/no-symbolic.patch                       |    0
 .../debian/perl-path.diff                          |    0
 .../debian/pic.patch                               |    0
 .../debian/pkg-config.patch                        |    0
 .../debian/rc4-amd64.patch                         |    0
 .../debian/rehash-crt.patch                        |    0
 .../debian/rehash_pod.patch                        |    0
 .../debian/series                                  |    0
 .../debian/shared-lib-ext.patch                    |    0
 .../debian/stddef.patch                            |    0
 .../debian/version-script.patch                    |    0
 .../parallel-make-fix.patch                        |    2 +
 .../shared-libs.patch                              |    2 +
 meta/recipes-connectivity/openssl/openssl.inc      |    2 +-
 .../{openssl_0.9.8p.bb => openssl_0.9.8r.bb}       |    6 +-
 ...thy-glib_0.13.6.bb => telepathy-glib_0.14.3.bb} |    4 +-
 ...pathy-idle_0.1.7.bb => telepathy-idle_0.1.8.bb} |    4 +-
 ...5.7.1.bb => telepathy-mission-control_5.7.9.bb} |    4 +-
 meta/recipes-core/jpeg/jpeg_8b.bb                  |   13 +-
 .../recipes-core/libxml/libxml2/libxml-64bit.patch |    2 +
 meta/recipes-core/libxml/libxml2_2.7.7.bb          |    6 -
 meta/recipes-core/libxml/libxml2_2.7.8.bb          |    6 +
 meta/recipes-core/netbase/netbase-4.45/interfaces  |    1 +
 .../netbase/netbase-4.45/qemumips/interfaces       |    8 +
 .../netbase/netbase-4.45/qemuppc/interfaces        |    8 +
 meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb     |    3 +-
 .../gnu-config/config-guess-uclibc.patch           |    2 +
 .../gnu-config/gnu-config_20080123.bb              |    6 +-
 .../qemu/qemu-0.14.0/qemugl-fix.patch              |   73 +
 meta/recipes-devtools/qemu/qemu_0.14.0.bb          |    1 +
 .../rsync/{rsync_3.0.7.bb => rsync_3.0.8.bb}       |    6 +-
 .../cronie/{cronie_1.4.6.bb => cronie_1.4.7.bb}    |    4 +-
 .../newt/files/fix_SHAREDDIR.patch                 |   29 +
 .../newt/files/include-without-python.patch        |    2 +
 .../newt/files/remove_slang_include.patch          |   13 +
 meta/recipes-extended/newt/libnewt_0.52.12.bb      |    8 +-
 ...{polkit-gnome_0.99.bb => polkit-gnome_0.101.bb} |    4 +-
 meta/recipes-extended/slang/slang/fix-uclibc.patch |   11 -
 .../slang/{slang_2.2.2.bb => slang_2.2.4.bb}       |   18 +-
 meta/recipes-extended/tasks/task-poky-lsb.bb       |   10 +-
 .../xz/{xz_5.0.0.bb => xz_5.0.2.bb}                |    4 +-
 ...c-utils_0.20.4.bb => gnome-doc-utils_0.20.5.bb} |    4 +-
 meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb |    5 +-
 .../drm/libdrm-2.4.23/installtests.patch           |   43 -
 .../drm/libdrm-2.4.25/installtests.patch           |   49 +
 .../drm/{libdrm_2.4.23.bb => libdrm_2.4.25.bb}     |    5 +-
 .../mesa/files/talloc-removal.patch                |15571 --------------------
 .../mesa/{mesa-dri_7.10.bb => mesa-dri_7.10.2.bb}  |    7 +-
 .../{mesa-xlib_7.10.bb => mesa-xlib_7.10.2.bb}     |    7 +-
 .../{pango-1.28.3 => pango-1.28.4}/no-tests.patch  |    4 +
 .../pango/{pango_1.28.3.bb => pango_1.28.4.bb}     |    4 +-
 .../{x11perf_1.5.2.bb => x11perf_1.5.3.bb}         |    4 +-
 .../xorg-app/xkbcomp/cross-compile-fix.patch       |   35 -
 .../{xkbcomp_1.2.0.bb => xkbcomp_1.2.1.bb}         |    5 +-
 ...board_1.5.0.bb => xf86-input-keyboard_1.6.0.bb} |    4 +-
 .../xorg-driver/xf86-input-mouse/unbreak.patch     |    2 +
 ...ut-mouse_1.6.0.bb => xf86-input-mouse_1.7.0.bb} |    4 +-
 ...tics_1.3.0.bb => xf86-input-synaptics_1.4.0.bb} |    4 +-
 ...use_12.6.10.bb => xf86-input-vmmouse_12.7.0.bb} |    4 +-
 ...bpciaccess_0.12.0.bb => libpciaccess_0.12.1.bb} |    6 +-
 .../xorg-lib/{libxi_1.4.0.bb => libxi_1.4.2.bb}    |    5 +-
 .../xorg-lib/{libxt_1.0.9.bb => libxt_1.1.1.bb}    |    6 +-
 .../{evieext_1.1.0.bb => evieext_1.1.1.bb}         |    8 +-
 .../{fixesproto_4.1.2.bb => fixesproto_5.0.bb}     |    8 +-
 .../{xextproto_7.1.2.bb => xextproto_7.2.0.bb}     |    6 +-
 .../{xproto_7.0.20.bb => xproto_7.0.21.bb}         |    6 +-
 .../oprofileui/dso_linking_change_build_fix.patch  |    2 +
 meta/recipes-kernel/oprofile/oprofileui_git.bb     |    2 +-
 .../fix-tstamp-declaration.patch                   |    2 +
 .../unbreak_plugindir.patch                        |    2 +
 .../{alsa-lib_1.0.23.bb => alsa-lib_1.0.24.1.bb}   |    4 +-
 ...s-bad_0.10.20.bb => gst-plugins-bad_0.10.21.bb} |    6 +-
 .../gst-plugins-base-tremor.patch                  |    2 +
 ...base_0.10.31.bb => gst-plugins-base_0.10.32.bb} |    6 +-
 ...good_0.10.26.bb => gst-plugins-good_0.10.28.bb} |    6 +-
 ...ugly_0.10.16.bb => gst-plugins-ugly_0.10.17.bb} |    3 +
 .../check_fix.patch                                |    2 +
 .../gst-inspect-check-error.patch                  |    2 +
 .../gstregistrybinary.c                            |    0
 .../gstregistrybinary.h                            |    0
 .../{gstreamer_0.10.31.bb => gstreamer_0.10.32.bb} |    4 +-
 .../{libcanberra_0.26.bb => libcanberra_0.28.bb}   |    4 +-
 .../{libexif_0.6.16.bb => libexif_0.6.20.bb}       |    6 +-
 ...libsoup-2.4_2.32.1.bb => libsoup-2.4_2.32.2.bb} |    4 +-
 107 files changed, 488 insertions(+), 15912 deletions(-)
 rename meta/recipes-connectivity/gupnp/{files => gssdp-0.10.0}/introspection.patch (97%)
 rename meta/recipes-connectivity/gupnp/{gssdp_0.9.0.bb => gssdp_0.10.0.bb} (83%)
 rename meta/recipes-connectivity/gupnp/{gupnp_0.14.0.bb => gupnp_0.16.0.bb} (85%)
 delete mode 100644 meta/recipes-connectivity/ofono/ofono_0.37.bb
 create mode 100644 meta/recipes-connectivity/ofono/ofono_0.45.bb
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/configure-targets.patch (97%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/ca.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/config-hurd.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/debian-targets.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/engines-path.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/kfreebsd-pipe.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/make-targets.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/man-dir.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/man-section.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/no-rpath.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/no-symbolic.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/perl-path.diff (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/pic.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/pkg-config.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rc4-amd64.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rehash-crt.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rehash_pod.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/series (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/shared-lib-ext.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/stddef.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/version-script.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/parallel-make-fix.patch (95%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/shared-libs.patch (97%)
 rename meta/recipes-connectivity/openssl/{openssl_0.9.8p.bb => openssl_0.9.8r.bb} (86%)
 rename meta/recipes-connectivity/telepathy/{telepathy-glib_0.13.6.bb => telepathy-glib_0.14.3.bb} (80%)
 rename meta/recipes-connectivity/telepathy/{telepathy-idle_0.1.7.bb => telepathy-idle_0.1.8.bb} (81%)
 rename meta/recipes-connectivity/telepathy/{telepathy-mission-control_5.7.1.bb => telepathy-mission-control_5.7.9.bb} (92%)
 delete mode 100644 meta/recipes-core/libxml/libxml2_2.7.7.bb
 create mode 100644 meta/recipes-core/libxml/libxml2_2.7.8.bb
 create mode 100644 meta/recipes-core/netbase/netbase-4.45/qemumips/interfaces
 create mode 100644 meta/recipes-core/netbase/netbase-4.45/qemuppc/interfaces
 create mode 100644 meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
 rename meta/recipes-devtools/rsync/{rsync_3.0.7.bb => rsync_3.0.8.bb} (71%)
 rename meta/recipes-extended/cronie/{cronie_1.4.6.bb => cronie_1.4.7.bb} (93%)
 create mode 100644 meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
 create mode 100644 meta/recipes-extended/newt/files/remove_slang_include.patch
 rename meta/recipes-extended/polkit/{polkit-gnome_0.99.bb => polkit-gnome_0.101.bb} (86%)
 delete mode 100644 meta/recipes-extended/slang/slang/fix-uclibc.patch
 rename meta/recipes-extended/slang/{slang_2.2.2.bb => slang_2.2.4.bb} (61%)
 rename meta/recipes-extended/xz/{xz_5.0.0.bb => xz_5.0.2.bb} (82%)
 rename meta/recipes-gnome/gnome/{gnome-doc-utils_0.20.4.bb => gnome-doc-utils_0.20.5.bb} (53%)
 delete mode 100644 meta/recipes-graphics/drm/libdrm-2.4.23/installtests.patch
 create mode 100644 meta/recipes-graphics/drm/libdrm-2.4.25/installtests.patch
 rename meta/recipes-graphics/drm/{libdrm_2.4.23.bb => libdrm_2.4.25.bb} (54%)
 delete mode 100644 meta/recipes-graphics/mesa/files/talloc-removal.patch
 rename meta/recipes-graphics/mesa/{mesa-dri_7.10.bb => mesa-dri_7.10.2.bb} (85%)
 rename meta/recipes-graphics/mesa/{mesa-xlib_7.10.bb => mesa-xlib_7.10.2.bb} (68%)
 rename meta/recipes-graphics/pango/{pango-1.28.3 => pango-1.28.4}/no-tests.patch (72%)
 rename meta/recipes-graphics/pango/{pango_1.28.3.bb => pango_1.28.4.bb} (50%)
 rename meta/recipes-graphics/xorg-app/{x11perf_1.5.2.bb => x11perf_1.5.3.bb} (76%)
 delete mode 100644 meta/recipes-graphics/xorg-app/xkbcomp/cross-compile-fix.patch
 rename meta/recipes-graphics/xorg-app/{xkbcomp_1.2.0.bb => xkbcomp_1.2.1.bb} (72%)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-keyboard_1.5.0.bb => xf86-input-keyboard_1.6.0.bb} (74%)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-mouse_1.6.0.bb => xf86-input-mouse_1.7.0.bb} (76%)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-synaptics_1.3.0.bb => xf86-input-synaptics_1.4.0.bb} (83%)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-vmmouse_12.6.10.bb => xf86-input-vmmouse_12.7.0.bb} (64%)
 rename meta/recipes-graphics/xorg-lib/{libpciaccess_0.12.0.bb => libpciaccess_0.12.1.bb} (56%)
 rename meta/recipes-graphics/xorg-lib/{libxi_1.4.0.bb => libxi_1.4.2.bb} (76%)
 rename meta/recipes-graphics/xorg-lib/{libxt_1.0.9.bb => libxt_1.1.1.bb} (85%)
 rename meta/recipes-graphics/xorg-proto/{evieext_1.1.0.bb => evieext_1.1.1.bb} (54%)
 rename meta/recipes-graphics/xorg-proto/{fixesproto_4.1.2.bb => fixesproto_5.0.bb} (56%)
 rename meta/recipes-graphics/xorg-proto/{xextproto_7.1.2.bb => xextproto_7.2.0.bb} (76%)
 rename meta/recipes-graphics/xorg-proto/{xproto_7.0.20.bb => xproto_7.0.21.bb} (57%)
 rename meta/recipes-multimedia/alsa/{alsa-lib-1.0.23 => alsa-lib-1.0.24.1}/fix-tstamp-declaration.patch (95%)
 rename meta/recipes-multimedia/alsa/{alsa-lib-1.0.23 => alsa-lib-1.0.24.1}/unbreak_plugindir.patch (91%)
 rename meta/recipes-multimedia/alsa/{alsa-lib_1.0.23.bb => alsa-lib_1.0.24.1.bb} (91%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-bad_0.10.20.bb => gst-plugins-bad_0.10.21.bb} (86%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-base-0.10.31 => gst-plugins-base-0.10.32}/gst-plugins-base-tremor.patch (94%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-base_0.10.31.bb => gst-plugins-base_0.10.32.bb} (86%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-good_0.10.26.bb => gst-plugins-good_0.10.28.bb} (82%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-ugly_0.10.16.bb => gst-plugins-ugly_0.10.17.bb} (85%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/check_fix.patch (93%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gst-inspect-check-error.patch (96%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gstregistrybinary.c (100%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gstregistrybinary.h (100%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer_0.10.31.bb => gstreamer_0.10.32.bb} (91%)
 rename meta/recipes-multimedia/pulseaudio/{libcanberra_0.26.bb => libcanberra_0.28.bb} (85%)
 rename meta/recipes-support/libexif/{libexif_0.6.16.bb => libexif_0.6.20.bb} (61%)
 rename meta/recipes-support/libsoup/{libsoup-2.4_2.32.1.bb => libsoup-2.4_2.32.2.bb} (76%)




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

* [PATCH 01/58] gstreamer: upgrade to vesion 0.10.32
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 02/58] gst-plugins-base: upgrade to version 0.10.32 Saul Wold
                   ` (57 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../check_fix.patch                                |    2 ++
 .../gst-inspect-check-error.patch                  |    2 ++
 .../gstregistrybinary.c                            |    0
 .../gstregistrybinary.h                            |    0
 .../{gstreamer_0.10.31.bb => gstreamer_0.10.32.bb} |    4 ++--
 5 files changed, 6 insertions(+), 2 deletions(-)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/check_fix.patch (93%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gst-inspect-check-error.patch (96%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gstregistrybinary.c (100%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer-0.10.31 => gstreamer-0.10.32}/gstregistrybinary.h (100%)
 rename meta/recipes-multimedia/gstreamer/{gstreamer_0.10.31.bb => gstreamer_0.10.32.bb} (91%)

diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/check_fix.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/check_fix.patch
similarity index 93%
rename from meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/check_fix.patch
rename to meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/check_fix.patch
index 72c3f64..5d8bb13 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/check_fix.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/check_fix.patch
@@ -1,6 +1,8 @@
 # gstreamer: Fix a problem with configure if check has already been built
 # Richard Purdie <rpurdie@linux.intel.com>
 
+Upstream-Status: Inappropriate [configuration]
+
 diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac
 --- gstreamer-0.10.29-orig/configure.ac	2010-06-26 12:49:27.774930773 +0800
 +++ gstreamer-0.10.29/configure.ac	2010-06-26 12:51:12.899200233 +0800
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gst-inspect-check-error.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gst-inspect-check-error.patch
similarity index 96%
rename from meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gst-inspect-check-error.patch
rename to meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gst-inspect-check-error.patch
index 4ca1dbe..30be85f 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gst-inspect-check-error.patch
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gst-inspect-check-error.patch
@@ -1,6 +1,8 @@
 # Fix crash with gst-inspect
 # Chris Lord <chris@openedhand.com>
 
+Upstream-Status: Pending
+
 --- gstreamer-0.10.9/tools/gst-inspect.c.old	2006-09-12 11:56:53.000000000 +0100
 +++ gstreamer-0.10.9/tools/gst-inspect.c	2006-09-12 11:57:27.000000000 +0100
 @@ -1123,7 +1123,7 @@
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gstregistrybinary.c b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gstregistrybinary.c
similarity index 100%
rename from meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gstregistrybinary.c
rename to meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gstregistrybinary.c
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gstregistrybinary.h b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gstregistrybinary.h
similarity index 100%
rename from meta/recipes-multimedia/gstreamer/gstreamer-0.10.31/gstregistrybinary.h
rename to meta/recipes-multimedia/gstreamer/gstreamer-0.10.32/gstregistrybinary.h
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.31.bb b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.32.bb
similarity index 91%
rename from meta/recipes-multimedia/gstreamer/gstreamer_0.10.31.bb
rename to meta/recipes-multimedia/gstreamer/gstreamer_0.10.32.bb
index dc1d07c..901ade5 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.31.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.32.bb
@@ -16,8 +16,8 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz
            file://check_fix.patch \
            file://gst-inspect-check-error.patch"
 
-SRC_URI[md5sum] = "a21fb08bdb578d972c7c14e77da8fbb6"
-SRC_URI[sha256sum] = "7f737e6d047c1ebeb4e1e0725fc377c5d9f12ee89186de7960be3cbba709ab84"
+SRC_URI[md5sum] = "442bc3d37b8511a73379143e7531d726"
+SRC_URI[sha256sum] = "3bf4e46a186ee9a1f5e212aaf651d67cffb4f5f05345a7c99ae71d5d992be133"
 
 inherit autotools pkgconfig gettext
 
-- 
1.7.1.1




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

* [PATCH 02/58] gst-plugins-base: upgrade to version 0.10.32
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
  2011-04-16  6:53 ` [PATCH 01/58] gstreamer: upgrade to vesion 0.10.32 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 03/58] gst-plugins-good: upgrade to version 0.10.28 Saul Wold
                   ` (56 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../gst-plugins-base-tremor.patch                  |    2 ++
 ...base_0.10.31.bb => gst-plugins-base_0.10.32.bb} |    6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-base-0.10.31 => gst-plugins-base-0.10.32}/gst-plugins-base-tremor.patch (94%)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-base_0.10.31.bb => gst-plugins-base_0.10.32.bb} (86%)

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.31/gst-plugins-base-tremor.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.32/gst-plugins-base-tremor.patch
similarity index 94%
rename from meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.31/gst-plugins-base-tremor.patch
rename to meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.32/gst-plugins-base-tremor.patch
index a6494fd..224bf1a 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.31/gst-plugins-base-tremor.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.32/gst-plugins-base-tremor.patch
@@ -1,6 +1,8 @@
 Remove -DTREMOR option since Tremor has dropped its internal
 libogg2, and gst-plugins-base has dependency on that.
 
+Upstream-Status: Inappropriate [configuration]
+
 Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
 
 diff -ruN gst-plugins-base-0.10.30-orig/ext/vorbis/Makefile.am gst-plugins-base-0.10.30/ext/vorbis/Makefile.am
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.31.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
similarity index 86%
rename from meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.31.bb
rename to meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
index 8bf243e..2d09c6c 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.31.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
@@ -12,10 +12,10 @@ RDEPENDS_${PN} += "gnome-vfs-plugin-file gnome-vfs-plugin-http gnome-vfs-plugin-
 
 SRC_URI += " file://gst-plugins-base-tremor.patch"
 
-SRC_URI[md5sum] = "9baa0d87e81c88b2477a3554ab629c46"
-SRC_URI[sha256sum] = "abb006c78222cfb69d31e983268d1d5219e9d4e0da24c6c4cd687968af7a33bd"
+SRC_URI[md5sum] = "2920af2b3162f3d9fbaa7fabc8ed4d38"
+SRC_URI[sha256sum] = "e9aabfac83f6480896da0686e9c911989f896fbad634821b7771ed84a446172b"
 
-PR = "r1"
+PR = "r0"
 
 inherit gettext
 
-- 
1.7.1.1




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

* [PATCH 03/58] gst-plugins-good: upgrade to version 0.10.28
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
  2011-04-16  6:53 ` [PATCH 01/58] gstreamer: upgrade to vesion 0.10.32 Saul Wold
  2011-04-16  6:53 ` [PATCH 02/58] gst-plugins-base: upgrade to version 0.10.32 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 04/58] gst-plugins-bad: upgrade to version 0.10.21 Saul Wold
                   ` (55 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...good_0.10.26.bb => gst-plugins-good_0.10.28.bb} |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-good_0.10.26.bb => gst-plugins-good_0.10.28.bb} (82%)

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.26.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
similarity index 82%
rename from meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.26.bb
rename to meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
index cab728d..b9648e3 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.26.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
 
 DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
 	    speex libsoup-2.4"
-PR = "r2"
+PR = "r0"
 
 inherit gettext
 
@@ -18,5 +18,5 @@ do_configure_prepend() {
 	rm ${S}/m4/lib-link.m4 || true
 }
 
-SRC_URI[md5sum] = "e1ed191adbf81edff04f348f8ce8e198"
-SRC_URI[sha256sum] = "ceb3bbea5ce18463b8fe470d34786bc846469e800305c436d799af9fe22bdcc4"
+SRC_URI[md5sum] = "6ef1588921f59d85c44ee2e49a3c97a0"
+SRC_URI[sha256sum] = "adfbce68b9fbadb7a7aeda2227af6afe1928ef025af4158726617b9d6834b028"
-- 
1.7.1.1




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

* [PATCH 04/58] gst-plugins-bad: upgrade to version 0.10.21
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (2 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 03/58] gst-plugins-good: upgrade to version 0.10.28 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 05/58] gst-plugins-ugly: upgrade to version 0.10.17 Saul Wold
                   ` (54 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...s-bad_0.10.20.bb => gst-plugins-bad_0.10.21.bb} |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-bad_0.10.20.bb => gst-plugins-bad_0.10.21.bb} (86%)

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.20.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
similarity index 86%
rename from meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.20.bb
rename to meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
index 239072d..2b8a89c 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.20.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
 
 DEPENDS += "gst-plugins-base libmusicbrainz tremor librsvg"
 
-PR = "r1"
+PR = "r0"
 
 inherit gettext
 
@@ -23,5 +23,5 @@ do_configure_prepend() {
 	rm ${S}/m4/lib-link.m4 || true
 }
 
-SRC_URI[md5sum] = "7c84766f6d24f41ba90c3f6141012ab8"
-SRC_URI[sha256sum] = "1031dff866df976a957f34039addbab4c0753406299a275f4cf1780e1dbe2a90"
+SRC_URI[md5sum] = "f501336ab1d18d2565f47c36ce653a82"
+SRC_URI[sha256sum] = "422badacbda37ac33cb446c6751dabcd0b223c308dbb01024a34ded682fa47e3"
-- 
1.7.1.1




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

* [PATCH 05/58] gst-plugins-ugly: upgrade to version 0.10.17
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (3 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 04/58] gst-plugins-bad: upgrade to version 0.10.21 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 06/58] ofono: upgrade to version 0.45 Saul Wold
                   ` (53 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...ugly_0.10.16.bb => gst-plugins-ugly_0.10.17.bb} |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
 rename meta/recipes-multimedia/gstreamer/{gst-plugins-ugly_0.10.16.bb => gst-plugins-ugly_0.10.17.bb} (85%)

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.16.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
similarity index 85%
rename from meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.16.bb
rename to meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
index 7dda685..76e00a5 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.16.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
@@ -17,3 +17,6 @@ do_configure_prepend() {
 	# This m4 file contains nastiness which conflicts with libtool 2.2.2
 	rm ${S}/m4/lib-link.m4 || true
 }
+
+SRC_URI[md5sum] = "504ed6508c3a8f035a2002ed69d68506"
+SRC_URI[sha256sum] = "0cbd4aa8dceafea21ddd547dfde686a8836f68ba547afa5575a52b64cfa0b369"
-- 
1.7.1.1




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

* [PATCH 06/58] ofono: upgrade to version 0.45
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (4 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 05/58] gst-plugins-ugly: upgrade to version 0.10.17 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 07/58] alsa-lib: upgrade to version 1.0.24.1 Saul Wold
                   ` (52 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 meta/recipes-connectivity/ofono/ofono_0.37.bb |    9 ---------
 meta/recipes-connectivity/ofono/ofono_0.45.bb |    9 +++++++++
 2 files changed, 9 insertions(+), 9 deletions(-)
 delete mode 100644 meta/recipes-connectivity/ofono/ofono_0.37.bb
 create mode 100644 meta/recipes-connectivity/ofono/ofono_0.45.bb

diff --git a/meta/recipes-connectivity/ofono/ofono_0.37.bb b/meta/recipes-connectivity/ofono/ofono_0.37.bb
deleted file mode 100644
index aea4e98..0000000
--- a/meta/recipes-connectivity/ofono/ofono_0.37.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require ofono.inc
-
-PR = "r0"
-
-SRC_URI  = "${KERNELORG_MIRROR}/linux/network/ofono/${P}.tar.bz2 \
-	          file://ofono"
-
-SRC_URI[md5sum] = "fa9a6f91506db2ac5bf313ff0bde65f3"
-SRC_URI[sha256sum] = "0ac71d8a846d564ef6940c47bcc410b76df750aadf7903cb56876d991275f6db"
diff --git a/meta/recipes-connectivity/ofono/ofono_0.45.bb b/meta/recipes-connectivity/ofono/ofono_0.45.bb
new file mode 100644
index 0000000..4a8950f
--- /dev/null
+++ b/meta/recipes-connectivity/ofono/ofono_0.45.bb
@@ -0,0 +1,9 @@
+require ofono.inc
+
+PR = "r0"
+
+SRC_URI  = "${KERNELORG_MIRROR}/linux/network/ofono/${P}.tar.bz2 \
+	          file://ofono"
+
+SRC_URI[md5sum] = "31dabb077e7592ba36913bd9d0c76b94"
+SRC_URI[sha256sum] = "5541e832fb72c6c647b663e5ee55384a33efaee5a34c4544e3a16af94892f47e"
-- 
1.7.1.1




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

* [PATCH 07/58] alsa-lib: upgrade to version 1.0.24.1
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (5 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 06/58] ofono: upgrade to version 0.45 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 08/58] telepathy-glib: upgrade to version 0.14.3 Saul Wold
                   ` (51 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../fix-tstamp-declaration.patch                   |    2 ++
 .../unbreak_plugindir.patch                        |    2 ++
 .../{alsa-lib_1.0.23.bb => alsa-lib_1.0.24.1.bb}   |    4 ++--
 3 files changed, 6 insertions(+), 2 deletions(-)
 rename meta/recipes-multimedia/alsa/{alsa-lib-1.0.23 => alsa-lib-1.0.24.1}/fix-tstamp-declaration.patch (95%)
 rename meta/recipes-multimedia/alsa/{alsa-lib-1.0.23 => alsa-lib-1.0.24.1}/unbreak_plugindir.patch (91%)
 rename meta/recipes-multimedia/alsa/{alsa-lib_1.0.23.bb => alsa-lib_1.0.24.1.bb} (91%)

diff --git a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch b/meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/fix-tstamp-declaration.patch
similarity index 95%
rename from meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch
rename to meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/fix-tstamp-declaration.patch
index 9016b34..32b84b7 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch
+++ b/meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/fix-tstamp-declaration.patch
@@ -4,6 +4,8 @@
 #
 # Acquired from OpenEmbedded
 
+Upstream-Status: Pending
+
 Index: alsa-lib-1.0.13/include/global.h
 ===================================================================
 --- alsa-lib-1.0.13.orig/include/global.h
diff --git a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch b/meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/unbreak_plugindir.patch
similarity index 91%
rename from meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch
rename to meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/unbreak_plugindir.patch
index 7d13166..1f3edd0 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch
+++ b/meta/recipes-multimedia/alsa/alsa-lib-1.0.24.1/unbreak_plugindir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [configuration]
+
 diff -Nur alsa-lib-1.0.14.orig/configure.in alsa-lib-1.0.14/configure.in
 --- alsa-lib-1.0.14.orig/configure.in	2007-05-31 03:05:13.000000000 -0500
 +++ alsa-lib-1.0.14/configure.in	2007-08-18 13:05:49.000000000 -0500
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb
similarity index 91%
rename from meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb
rename to meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb
index 936f299..53f4d29 100644
--- a/meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb
@@ -19,8 +19,8 @@ PR = "r0"
 SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
            file://fix-tstamp-declaration.patch;patch=1"
 
-SRC_URI[md5sum] = "f48b50421d8a69d2d806d9c47e534f0d"
-SRC_URI[sha256sum] = "b4238ecaba5e4a1383af06180611a57ef29f9bf47bc177136dba1bb5b70ff423"
+SRC_URI[md5sum] = "7cc05f25e1d5b65da8fb3fdcd540f226"
+SRC_URI[sha256sum] = "a32f7c21015b6c71f9a80ff70a2b6a50e4ff4d5c77c744ff0793dea7ba7a2517"
 
 inherit autotools pkgconfig
 
-- 
1.7.1.1




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

* [PATCH 08/58] telepathy-glib: upgrade to version 0.14.3
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (6 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 07/58] alsa-lib: upgrade to version 1.0.24.1 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 09/58] telepathy-idle: upgrade to version 0.1.8 Saul Wold
                   ` (50 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...thy-glib_0.13.6.bb => telepathy-glib_0.14.3.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-connectivity/telepathy/{telepathy-glib_0.13.6.bb => telepathy-glib_0.14.3.bb} (80%)

diff --git a/meta/recipes-connectivity/telepathy/telepathy-glib_0.13.6.bb b/meta/recipes-connectivity/telepathy/telepathy-glib_0.14.3.bb
similarity index 80%
rename from meta/recipes-connectivity/telepathy/telepathy-glib_0.13.6.bb
rename to meta/recipes-connectivity/telepathy/telepathy-glib_0.14.3.bb
index 476ed7f..9351be4 100644
--- a/meta/recipes-connectivity/telepathy/telepathy-glib_0.13.6.bb
+++ b/meta/recipes-connectivity/telepathy/telepathy-glib_0.14.3.bb
@@ -7,8 +7,8 @@ PR = "r0"
 
 SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${P}.tar.gz"
 
-SRC_URI[md5sum] = "db997b1575e9186887caf211c0b94dd9"
-SRC_URI[sha256sum] = "76a38a64d1b7fbaa6e1aaf6a9f8b898840c551aea5d9121bdcb35fdbb66c5877"
+SRC_URI[md5sum] = "fe9a4f781651593fd4afddb343ff50bf"
+SRC_URI[sha256sum] = "62e759084355ac0fce61feb561a7535a6707b223f0d1e4305fd47c83fa5494d0"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e"
 
-- 
1.7.1.1




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

* [PATCH 09/58] telepathy-idle: upgrade to version 0.1.8
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (7 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 08/58] telepathy-glib: upgrade to version 0.14.3 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 10/58] telepathy-mission-control: upgrade to version 5.7.9 Saul Wold
                   ` (49 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...pathy-idle_0.1.7.bb => telepathy-idle_0.1.8.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-connectivity/telepathy/{telepathy-idle_0.1.7.bb => telepathy-idle_0.1.8.bb} (81%)

diff --git a/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.7.bb b/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.8.bb
similarity index 81%
rename from meta/recipes-connectivity/telepathy/telepathy-idle_0.1.7.bb
rename to meta/recipes-connectivity/telepathy/telepathy-idle_0.1.8.bb
index 0ee3ca8..5bd4e28 100644
--- a/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.7.bb
+++ b/meta/recipes-connectivity/telepathy/telepathy-idle_0.1.8.bb
@@ -9,8 +9,8 @@ PR = "r0"
 
 SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${P}.tar.gz"
 
-SRC_URI[md5sum] = "5ee3aa5c6e1112922b11711e6a209331"
-SRC_URI[sha256sum] = "b65df4f8ebdf1039e1f1e406f53cc7b6106fab6c4d8e784e360709f8d85df0c3"
+SRC_URI[md5sum] = "82f5eafa07df5e1abc785061143bbfd2"
+SRC_URI[sha256sum] = "384119cc64022626b6f51aaaef605abf248602d8fae25baff82762a097f20fe9"
 
 inherit autotools pkgconfig
 
-- 
1.7.1.1




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

* [PATCH 10/58] telepathy-mission-control: upgrade to version 5.7.9
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (8 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 09/58] telepathy-idle: upgrade to version 0.1.8 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 11/58] gssdp: upgrade to version 0.10.0 Saul Wold
                   ` (48 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 ...5.7.1.bb => telepathy-mission-control_5.7.9.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-connectivity/telepathy/{telepathy-mission-control_5.7.1.bb => telepathy-mission-control_5.7.9.bb} (92%)

diff --git a/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.1.bb b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.9.bb
similarity index 92%
rename from meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.1.bb
rename to meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.9.bb
index f5c2745..7805db6 100644
--- a/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.1.bb
+++ b/meta/recipes-connectivity/telepathy/telepathy-mission-control_5.7.9.bb
@@ -40,5 +40,5 @@ FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*"
 FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*"
 FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*"
 
-SRC_URI[md5sum] = "9688a3f75c080eaa2dbf6b4d75876dc9"
-SRC_URI[sha256sum] = "c58f07ee801b023bc5d5a8ec0fce49058a0372b6727e6516fb56d100dacd07fe"
+SRC_URI[md5sum] = "df7e63d857676fab9ec2261cffe5eb4a"
+SRC_URI[sha256sum] = "bc430238d2fb6663d8376702a43251000a75b741ab55af88006cbdb37d8cc086"
-- 
1.7.1.1




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

* [PATCH 11/58] gssdp: upgrade to version 0.10.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (9 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 10/58] telepathy-mission-control: upgrade to version 5.7.9 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 12/58] gupnp: upgrade to version 0.16.0 Saul Wold
                   ` (47 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../{files => gssdp-0.10.0}/introspection.patch    |    5 ++++-
 .../gupnp/{gssdp_0.9.0.bb => gssdp_0.10.0.bb}      |    4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)
 rename meta/recipes-connectivity/gupnp/{files => gssdp-0.10.0}/introspection.patch (97%)
 rename meta/recipes-connectivity/gupnp/{gssdp_0.9.0.bb => gssdp_0.10.0.bb} (83%)

diff --git a/meta/recipes-connectivity/gupnp/files/introspection.patch b/meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch
similarity index 97%
rename from meta/recipes-connectivity/gupnp/files/introspection.patch
rename to meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch
index 15de41f..39c1502 100644
--- a/meta/recipes-connectivity/gupnp/files/introspection.patch
+++ b/meta/recipes-connectivity/gupnp/gssdp-0.10.0/introspection.patch
@@ -1,5 +1,8 @@
 Copied from gobject-introspection/m4/introspection.m4
-By Dongxiao Xu <dongxiao.xu@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-By: Dongxiao Xu <dongxiao.xu@intel.com>
 
 diff -ruN gssdp-0.9.0-orig/m4/introspection.m4 gssdp-0.9.0/m4/introspection.m4
 --- gssdp-0.9.0-orig/m4/introspection.m4	1970-01-01 08:00:00.000000000 +0800
diff --git a/meta/recipes-connectivity/gupnp/gssdp_0.9.0.bb b/meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb
similarity index 83%
rename from meta/recipes-connectivity/gupnp/gssdp_0.9.0.bb
rename to meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb
index 3c8c698..310d8a9 100644
--- a/meta/recipes-connectivity/gupnp/gssdp_0.9.0.bb
+++ b/meta/recipes-connectivity/gupnp/gssdp_0.10.0.bb
@@ -20,7 +20,7 @@ EXTRA_OECONF = "--disable-introspection"
 
 PR = "r0"
 
-SRC_URI[md5sum] = "8605138eac1e7fb8ec8cf502a928ea81"
-SRC_URI[sha256sum] = "6e4de2ecc90d2ac8b3694af1954984d04de25fb01dd2f2748d7221add8ead9e0" 
+SRC_URI[md5sum] = "aec6a56ac1d4f8a4837da83f2d152556"
+SRC_URI[sha256sum] = "94de92bb4f7906ed2f047b0146a3b21d53d09908fe1f0149484f61c6afc598ea" 
 
 
-- 
1.7.1.1




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

* [PATCH 12/58] gupnp: upgrade to version 0.16.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (10 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 11/58] gssdp: upgrade to version 0.10.0 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 13/58] distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib, etc Saul Wold
                   ` (46 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Remove introspection.patch since it is already in upsteram.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../gupnp/{gupnp_0.14.0.bb => gupnp_0.16.0.bb}     |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
 rename meta/recipes-connectivity/gupnp/{gupnp_0.14.0.bb => gupnp_0.16.0.bb} (85%)

diff --git a/meta/recipes-connectivity/gupnp/gupnp_0.14.0.bb b/meta/recipes-connectivity/gupnp/gupnp_0.16.0.bb
similarity index 85%
rename from meta/recipes-connectivity/gupnp/gupnp_0.14.0.bb
rename to meta/recipes-connectivity/gupnp/gupnp_0.16.0.bb
index 43a3645..07b6b90 100644
--- a/meta/recipes-connectivity/gupnp/gupnp_0.14.0.bb
+++ b/meta/recipes-connectivity/gupnp/gupnp_0.16.0.bb
@@ -5,11 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
                     file://libgupnp/gupnp.h;beginline=1;endline=20;md5=28c49b17d623afc3335efc2e511879e1"
 DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2 gnome-icon-theme"
 
-SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz \
-           file://introspection.patch"
+SRC_URI = "http://gupnp.org/sites/all/files/sources/${BPN}-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "8598922256faa5adb28657d0c10a3e3e"
-SRC_URI[sha256sum] = "6ac13efe46c6f1e5d05e48e1041bf37dfa702839ce5fbb01e0f314f3904b6a16"
+SRC_URI[md5sum] = "61b240c1a9fdf8ca82c5c3adde0d6757"
+SRC_URI[sha256sum] = "1b77201866b7632fb68bc2a3bdea22ef8ead34ba850b3ee367797432cfc0f04a"
 
 PR = "r0"
 
-- 
1.7.1.1




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

* [PATCH 13/58] distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib, etc
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (11 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 12/58] gupnp: upgrade to version 0.16.0 Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 14/58] documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools Saul Wold
                   ` (45 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dongxiao Xu <dongxiao.xu@intel.com>

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
---
 .../conf/distro/include/distro_tracking_fields.inc |  106 ++++++++++----------
 1 files changed, 52 insertions(+), 54 deletions(-)

diff --git a/meta/conf/distro/include/distro_tracking_fields.inc b/meta/conf/distro/include/distro_tracking_fields.inc
index 8469e96..a507ce2 100644
--- a/meta/conf/distro/include/distro_tracking_fields.inc
+++ b/meta/conf/distro/include/distro_tracking_fields.inc
@@ -1162,12 +1162,11 @@ RECIPE_MAINTAINER_pn-eee-acpi-scripts = "Edwin Zhai <edwin.zhai@intel.com>"
 DISTRO_PN_ALIAS_pn-eee-acpi-scripts = "Debian=eeepc-acpi-scripts Ubuntu=eeepc-acpi-scripts"
 
 RECIPE_STATUS_pn-gssdp = "green"
-RECIPE_LATEST_VERSION_pn-gssdp = "0.9.2"
+RECIPE_LATEST_VERSION_pn-gssdp = "0.10.0"
 RECIPE_NO_OF_PATCHES_pn-gssdp="0"
-RECIPE_LATEST_RELEASE_DATE_pn-gssdp="2010/11/12"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gssdp="2 month"
-RECIPE_LAST_UPDATE_pn-gssdp = "Nov 25, 2010"
-RECIPE_MANUAL_CHECK_DATE_pn-gssdp = "Jan 30, 2011"
+RECIPE_LATEST_RELEASE_DATE_pn-gssdp="2011/04/07"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gssdp="3 month"
+RECIPE_LAST_UPDATE_pn-gssdp = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gssdp = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-insserv = "green"
@@ -2085,12 +2084,11 @@ RECIPE_LAST_UPDATE_pn-empathy = "Aug 19, 2009"
 RECIPE_MAINTAINER_pn-empathy = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gupnp = "green"
-RECIPE_LATEST_VERSION_pn-gupnp = "0.15.1"
+RECIPE_LATEST_VERSION_pn-gupnp = "0.16.0"
 RECIPE_NO_OF_PATCHES_pn-gupnp= "1"
-RECIPE_LATEST_RELEASE_DATE_pn-gupnp= "2010/09/16"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gupnp= "1 month"
-RECIPE_LAST_UPDATE_pn-gupnp = "Dec 7, 2010"
-RECIPE_MANUAL_CHECK_DATE_pn-gupnp = "Jan 30, 2011"
+RECIPE_LATEST_RELEASE_DATE_pn-gupnp= "2011/04/08"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gupnp= "3 month"
+RECIPE_LAST_UPDATE_pn-gupnp = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gupnp= "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gupnp-av = "green"
@@ -2137,11 +2135,11 @@ RECIPE_LAST_UPDATE_pn-libopensync-plugin-syncml = "Jul 31, 2009"
 RECIPE_MAINTAINER_pn-libopensync-plugin-syncml = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-ofono = "green"
-RECIPE_LATEST_VERSION_pn-ofono = "0.37"
+RECIPE_LATEST_VERSION_pn-ofono = "0.45"
 RECIPE_NO_OF_PATCHES_pn-ofono="0"
-RECIPE_LATEST_RELEASE_DATE_pn-ofono="2010/12/24"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-ofono="1 month"
-RECIPE_LAST_UPDATE_pn-ofono = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-ofono="2011/03/15"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-ofono="15 days"
+RECIPE_LAST_UPDATE_pn-ofono = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-ofono = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-libtelepathy = "red"
@@ -2161,18 +2159,18 @@ RECIPE_MAINTAINER_pn-telepathy-gabble = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-telepathy-glib = "green"
 RECIPE_NO_OF_PATCHES_pn-telepathy-glib ="0"
-RECIPE_LATEST_RELEASE_DATE_pn-telepathy-glib = "2010/11/17"
-RECIPE_LATEST_VERSION_pn-telepathy-glib = "0.13.6"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-glib = "12 days"
-RECIPE_LAST_UPDATE_pn-telepathy-glib = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-telepathy-glib = "2011/03/31"
+RECIPE_LATEST_VERSION_pn-telepathy-glib = "0.14.3"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-glib = "10 days"
+RECIPE_LAST_UPDATE_pn-telepathy-glib = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-telepathy-glib = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-telepathy-idle = "green"
 RECIPE_NO_OF_PATCHES_pn-telepathy-idle ="0"
-RECIPE_LATEST_RELEASE_DATE_pn-telepathy-glib ="2010/12/07"
-RECIPE_LATEST_VERSION_pn-telepathy-idle = "0.1.7"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-idle = "10 months"
-RECIPE_LAST_UPDATE_pn-telepathy-idle = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-telepathy-glib ="2011/02/11"
+RECIPE_LATEST_VERSION_pn-telepathy-idle = "0.1.8"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-idle = "3 months"
+RECIPE_LAST_UPDATE_pn-telepathy-idle = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-telepathy-idle = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-telepathy-python = "green"
@@ -2232,11 +2230,11 @@ RECIPE_LAST_UPDATE_pn-libsyncml = "Jul 31, 2009"
 RECIPE_MAINTAINER_pn-libsyncml = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-telepathy-mission-control = "green"
-RECIPE_LATEST_VERSION_pn-telepathy-mission-control = "5.7.1"
+RECIPE_LATEST_VERSION_pn-telepathy-mission-control = "5.7.9"
 RECIPE_NO_OF_PATCHES_pn-telepathy-mission-control ="0"
-RECIPE_LATEST_RELEASE_DATE_pn-telepathy-mission-control ="2010/12/07"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-mission-control ="20 days"
-RECIPE_LAST_UPDATE_pn-telepathy-mission-control = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-telepathy-mission-control ="2011/04/05"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-telepathy-mission-control ="2 months"
+RECIPE_LAST_UPDATE_pn-telepathy-mission-control = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-telepathy-mission-control = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-libetpan = "red"
@@ -2496,63 +2494,63 @@ RECIPE_LAST_UPDATE_pn-libogg = "Dec 30, 2010"
 RECIPE_MAINTAINER_pn-libogg = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gstreamer="green"
-RECIPE_LATEST_VERSION_pn-gstreamer="0.10.31"
+RECIPE_LATEST_VERSION_pn-gstreamer="0.10.32"
 RECIPE_NO_OF_PATCHES_pn-gstreamer="2"
-RECIPE_LATEST_RELEASE_DATE_pn-gstreamer="2010/11/30"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gstreamer="4 month"
-RECIPE_LAST_UPDATE_pn-gstreamer = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-gstreamer="2011/01/32"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gstreamer="2 month"
+RECIPE_LAST_UPDATE_pn-gstreamer = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gstreamer = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gst-plugins-base="green"
 DISTRO_PN_ALIAS_pn-gst-plugins-base = "Meego=gst-plugins-base Fedora=gstreamer-plugins-base OpenSuSE=gstreamer-plugins-base Ubuntu=gst-plugins-base0.10 Mandriva=gstreamer0.10-plugins-base Debian=gst-plugins-base0.10"
-RECIPE_LATEST_VERSION_pn-gst-plugins-base="0.10.31"
+RECIPE_LATEST_VERSION_pn-gst-plugins-base="0.10.32"
 RECIPE_NO_OF_PATCHES_pn-gst-plugins-base="0"
-RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-base="2010/11/30"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-base="4 months"
-RECIPE_LAST_UPDATE_pn-gst-plugins-base = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-base="2011/01/21"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-base="2 months"
+RECIPE_LAST_UPDATE_pn-gst-plugins-base = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gst-plugins-base = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gst-plugins-good="green"
 DISTRO_PN_ALIAS_pn-gst-plugins-good = "Meego=gst-plugins-good Fedora=gstreamer-plugins-good OpenSuSE=gstreamer-plugins-good Ubuntu=gst-plugins-good0.10 Mandriva=gstreamer0.10-plugins-good Debian=gst-plugins-good0.10"
-RECIPE_LATEST_VERSION_pn-gst-plugins-good="0.10.26"
+RECIPE_LATEST_VERSION_pn-gst-plugins-good="0.10.28"
 RECIPE_NO_OF_PATCHES_pn-gst-plugins-good="0"
-RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-good="2010/12/01"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-good="3 month"
-RECIPE_LAST_UPDATE_pn-gst-plugins-good = "Dec 30, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-good="2011/03/08"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-good="2 month"
+RECIPE_LAST_UPDATE_pn-gst-plugins-good = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gst-plugins-good = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gst-plugins-ugly="green"
 DISTRO_PN_ALIAS_pn-gst-plugins-ugly = "OpenSuSE=gstreamer-plugins-ugly Mandriva=gstreamer0.10-plugins-ugly Debian=gst-plugins-ugly0.10"
-RECIPE_LATEST_VERSION_pn-gst-plugins-ugly="0.10.16"
+RECIPE_LATEST_VERSION_pn-gst-plugins-ugly="0.10.17"
 RECIPE_NO_OF_PATCHES_pn-gst-plugins-ugly="0"
-RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-ugly="2010/09/02"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-ugly="3 months"
-RECIPE_LAST_UPDATE_pn-gst-plugins-ugly = "Nov 12, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-ugly="2011/01/21"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-ugly="4 months"
+RECIPE_LAST_UPDATE_pn-gst-plugins-ugly = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gst-plugins-ugly = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-gst-plugins-bad="green"
 DISTRO_PN_ALIAS_pn-gst-plugins-bad = "Fedora=gstreamer-plugins-bad-free OpenSuSE=gstreamer-plugins-bad Debian=gst-plugins-bad0.10"
-RECIPE_LATEST_VERSION_pn-gst-plugins-bad="0.10.20"
+RECIPE_LATEST_VERSION_pn-gst-plugins-bad="0.10.21"
 RECIPE_NO_OF_PATCHES_pn-gst-plugins-bad="0"
-RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-bad="2010/09/02"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-bad="3 months"
-RECIPE_LAST_UPDATE_pn-gst-plugins-bad = "Nov 12, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-gst-plugins-bad="2011/01/21"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gst-plugins-bad="4 months"
+RECIPE_LAST_UPDATE_pn-gst-plugins-bad = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-gst-plugins-bad = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-alsa-utils="green"
-RECIPE_LATEST_VERSION_pn-alsa-utils="1.0.23"
+RECIPE_LATEST_VERSION_pn-alsa-utils="1.0.24.2"
 RECIPE_NO_OF_PATCHES_pn-alsa-utils="1"
-RECIPE_LATEST_RELEASE_DATE_pn-alsa-utils="2010/04/16"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-alsa-utils="4 months"
-RECIPE_LAST_UPDATE_pn-alsa-utils = "Jun 26, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-alsa-utils="2011/01/31"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-alsa-utils="9 months"
+RECIPE_LAST_UPDATE_pn-alsa-utils = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-alsa-utils = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-alsa-lib="green"
-RECIPE_LATEST_VERSION_pn-alsa-lib="1.0.23"
+RECIPE_LATEST_VERSION_pn-alsa-lib="1.0.24.1"
 RECIPE_NO_OF_PATCHES_pn-alsa-lib="1"
-RECIPE_LATEST_RELEASE_DATE_pn-alsa-lib="2010/04/16"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-alsa-lib="4 months"
-RECIPE_LAST_UPDATE_pn-alsa-lib = "Jun 26, 2010"
+RECIPE_LATEST_RELEASE_DATE_pn-alsa-lib="2011/01/31"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-alsa-lib="9 months"
+RECIPE_LAST_UPDATE_pn-alsa-lib = "Apr 15, 2011"
 RECIPE_MAINTAINER_pn-alsa-lib = "Dongxiao Xu <dongxiao.xu@intel.com>"
 
 RECIPE_STATUS_pn-tremor="green"
-- 
1.7.1.1




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

* [PATCH 14/58] documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools.
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (12 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 13/58] distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib, etc Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 15/58] libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1) Saul Wold
                   ` (44 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1373 bytes --]

From: Scott Rifenbark <scott.m.rifenbark@intel.com>

The link to autotools was incorrect.  It had 'www' in the URL
when it should not have.  it is now
'http://download.eclipse.org/technology/linuxtools/update/'

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
---
 documentation/adt-manual/adt-eclipse.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/documentation/adt-manual/adt-eclipse.xml b/documentation/adt-manual/adt-eclipse.xml
index 3e1596d..a81929b 100644
--- a/documentation/adt-manual/adt-eclipse.xml
+++ b/documentation/adt-manual/adt-eclipse.xml
@@ -99,7 +99,7 @@
                 “Remote System Explorer Extended SDK”, “Remote System Explorer User Actions”, 
                 “RSE Core”, “RSE Terminals UI”, and “Target Management Terminal”.</para></listitem>
                 <listitem><para><emphasis>Autotools</emphasis> – 
-                <ulink url='http://www.download.eclipse.org/technology/linuxtools/update/'></ulink>:
+                <ulink url='http://download.eclipse.org/technology/linuxtools/update/'></ulink>:
                 Expand the items under “Linux Tools” and select “Autotools support for 
                 CDT (Incubation)”.</para></listitem>
                 <listitem><para><emphasis>Yocto Plug-in</emphasis> – 
-- 
1.7.1.1




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

* [PATCH 15/58] libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1)
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (13 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 14/58] documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 16/58] x11perf: Upgrade to 1.5.3 (from 1.5.2) Saul Wold
                   ` (43 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 ...libsoup-2.4_2.32.1.bb => libsoup-2.4_2.32.2.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-support/libsoup/{libsoup-2.4_2.32.1.bb => libsoup-2.4_2.32.2.bb} (76%)

diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.32.1.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.32.2.bb
similarity index 76%
rename from meta/recipes-support/libsoup/libsoup-2.4_2.32.1.bb
rename to meta/recipes-support/libsoup/libsoup-2.4_2.32.2.bb
index 72d7852..59b9150 100644
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.32.1.bb
+++ b/meta/recipes-support/libsoup/libsoup-2.4_2.32.2.bb
@@ -12,8 +12,8 @@ DEPENDS = "glib-2.0 gnutls libxml2 libproxy sqlite3 libgnome-keyring"
 
 SRC_URI = "${GNOME_MIRROR}/libsoup/2.32/libsoup-${PV}.tar.bz2"
 
-SRC_URI[md5sum] = "894ca0077ec2d923286a69766d0b0b74"
-SRC_URI[sha256sum] = "8779da1b4d85f443f04ea8301f52c4a1943c10e4dc8d20dbcdb3652921de6b8e"
+SRC_URI[md5sum] = "03f37350a2a31046ebabb8470e75abcc"
+SRC_URI[sha256sum] = "96e6973c8b7459523c0f44e7aec69528ff2fbd388e8ddc415f91bcc42f50777f"
 S = "${WORKDIR}/libsoup-${PV}"
 
 inherit autotools pkgconfig
-- 
1.7.1.1




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

* [PATCH 16/58] x11perf: Upgrade to 1.5.3 (from 1.5.2)
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (14 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 15/58] libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1) Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 17/58] libcanberry: Upgrade to 0.28 (from 0.26) Saul Wold
                   ` (42 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 .../{x11perf_1.5.2.bb => x11perf_1.5.3.bb}         |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-app/{x11perf_1.5.2.bb => x11perf_1.5.3.bb} (76%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index b164b77..4b7c1a9 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -96,7 +96,7 @@ PREFERRED_VERSION_util-macros ?= "1.11.0"
 PREFERRED_VERSION_util-macros-native ?= "1.11.0"
 PREFERRED_VERSION_videoproto ?= "2.3.1"
 PREFERRED_VERSION_windowswmproto ?= "1.0.4"
-PREFERRED_VERSION_x11perf ?= "1.5.2"
+PREFERRED_VERSION_x11perf ?= "1.5.3"
 PREFERRED_VERSION_xauth ?= "1.0.5"
 PREFERRED_VERSION_xcmiscproto ?= "1.2.1"
 PREFERRED_VERSION_xcmiscproto-native ?= "1.2.1"
diff --git a/meta/recipes-graphics/xorg-app/x11perf_1.5.2.bb b/meta/recipes-graphics/xorg-app/x11perf_1.5.3.bb
similarity index 76%
rename from meta/recipes-graphics/xorg-app/x11perf_1.5.2.bb
rename to meta/recipes-graphics/xorg-app/x11perf_1.5.3.bb
index e10fcf0..8faffe0 100644
--- a/meta/recipes-graphics/xorg-app/x11perf_1.5.2.bb
+++ b/meta/recipes-graphics/xorg-app/x11perf_1.5.3.bb
@@ -14,5 +14,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \
 PR = "r0"
 PE = "1"
 
-SRC_URI[md5sum] = "3459958a7fdccf02fa43b70fda9cd87f"
-SRC_URI[sha256sum] = "a1fd752abd3496568614c2f2209d21452bdd5b8c9a5c14a5705725bd8c298e12"
+SRC_URI[md5sum] = "c3ac3667a6f5c3cead9847fbf4b5f36e"
+SRC_URI[sha256sum] = "394d7355afe7f3b054ce6f30db78794c6305c6593d48b7fb86a9c89d9d9e21bd"
-- 
1.7.1.1




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

* [PATCH 17/58] libcanberry: Upgrade to 0.28 (from 0.26)
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (15 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 16/58] x11perf: Upgrade to 1.5.3 (from 1.5.2) Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 18/58] xz: Upgrade to 5.0.2 (from 5.0.0) Saul Wold
                   ` (41 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 .../{libcanberra_0.26.bb => libcanberra_0.28.bb}   |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-multimedia/pulseaudio/{libcanberra_0.26.bb => libcanberra_0.28.bb} (85%)

diff --git a/meta/recipes-multimedia/pulseaudio/libcanberra_0.26.bb b/meta/recipes-multimedia/pulseaudio/libcanberra_0.28.bb
similarity index 85%
rename from meta/recipes-multimedia/pulseaudio/libcanberra_0.26.bb
rename to meta/recipes-multimedia/pulseaudio/libcanberra_0.28.bb
index 0daeb0e..1922f72 100644
--- a/meta/recipes-multimedia/pulseaudio/libcanberra_0.26.bb
+++ b/meta/recipes-multimedia/pulseaudio/libcanberra_0.28.bb
@@ -11,8 +11,8 @@ inherit gconf autotools
 
 SRC_URI = "http://0pointer.de/lennart/projects/libcanberra/libcanberra-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "ee2c66ada7c851a4e7b6eb1682285a24"
-SRC_URI[sha256sum] = "4b5d8d2c2835133620adbc53745dd107b6e58b9a2963059e8f457143fee00982"
+SRC_URI[md5sum] = "c198b4811598c4c161ff505e4531b02c"
+SRC_URI[sha256sum] = "eb1f8b2cabad7f07b6e44d606a91d73e1efca4b46daf92bd553e7222bc68868c"
 
 EXTRA_OECONF = " --disable-oss --disable-ltdl-install" 
 
-- 
1.7.1.1




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

* [PATCH 18/58] xz: Upgrade to 5.0.2 (from 5.0.0)
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (16 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 17/58] libcanberry: Upgrade to 0.28 (from 0.26) Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:53 ` [PATCH 19/58] polkit-gnome: Upgrade to 0.101 (from 0.99) Saul Wold
                   ` (40 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 .../xz/{xz_5.0.0.bb => xz_5.0.2.bb}                |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-extended/xz/{xz_5.0.0.bb => xz_5.0.2.bb} (82%)

diff --git a/meta/recipes-extended/xz/xz_5.0.0.bb b/meta/recipes-extended/xz/xz_5.0.2.bb
similarity index 82%
rename from meta/recipes-extended/xz/xz_5.0.0.bb
rename to meta/recipes-extended/xz/xz_5.0.2.bb
index 629ea9a..549c116 100644
--- a/meta/recipes-extended/xz/xz_5.0.0.bb
+++ b/meta/recipes-extended/xz/xz_5.0.2.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c475b6c7dca236740ace4bba553e8e1c \
 
 SRC_URI = "http://tukaani.org/xz/xz-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "f3c0706d100ad2b6d63327584d026c50"
-SRC_URI[sha256sum] = "eba9211990a642fc2c35ea02618b710c7fa898d78ccca48b546a07bdde03c44d"
+SRC_URI[md5sum] = "03d139cc14294fd45504989b914335ff"
+SRC_URI[sha256sum] = "57e979baaa40147dde1bbb284e3618f8f18b6532c932648bd57b5aee674b98a7"
 
 PR = "r0"
 
-- 
1.7.1.1




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

* [PATCH 19/58] polkit-gnome: Upgrade to 0.101 (from 0.99)
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (17 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 18/58] xz: Upgrade to 5.0.2 (from 5.0.0) Saul Wold
@ 2011-04-16  6:53 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 20/58] oprofileui: upgrade to latest git version Saul Wold
                   ` (39 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:53 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
---
 ...{polkit-gnome_0.99.bb => polkit-gnome_0.101.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-extended/polkit/{polkit-gnome_0.99.bb => polkit-gnome_0.101.bb} (86%)

diff --git a/meta/recipes-extended/polkit/polkit-gnome_0.99.bb b/meta/recipes-extended/polkit/polkit-gnome_0.101.bb
similarity index 86%
rename from meta/recipes-extended/polkit/polkit-gnome_0.99.bb
rename to meta/recipes-extended/polkit/polkit-gnome_0.101.bb
index f4fb337..e619090 100644
--- a/meta/recipes-extended/polkit/polkit-gnome_0.99.bb
+++ b/meta/recipes-extended/polkit/polkit-gnome_0.101.bb
@@ -23,5 +23,5 @@ inherit autotools pkgconfig
 FILES_${PN} += " ${datadir}/dbus-1 \
                  ${datadir}/PolicyKit \
                "
-SRC_URI[md5sum] = "f1a2565083266bc8c05c60aa7d8a0f6a"
-SRC_URI[sha256sum] = "73c4d04aa89d9a9687f3650327c0ec1cba704e9d5b7fc193958fa81d621208ba"
+SRC_URI[md5sum] = "da6aaff473ed80f8958fd6f67a59defe"
+SRC_URI[sha256sum] = "f1452e37b6681a0ade2c0cbb3734e6f78c421b958ab4d4eb6a2cd3b9f50db8d0"
-- 
1.7.1.1




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

* [PATCH 20/58] oprofileui: upgrade to latest git version
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (18 preceding siblings ...)
  2011-04-16  6:53 ` [PATCH 19/58] polkit-gnome: Upgrade to 0.101 (from 0.99) Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 21/58] libxt: update from 1.0.9 to the latest version 1.1.1 Saul Wold
                   ` (38 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../conf/distro/include/poky-default-revisions.inc |    2 +-
 .../oprofileui/dso_linking_change_build_fix.patch  |    2 ++
 meta/recipes-kernel/oprofile/oprofileui_git.bb     |    2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/meta/conf/distro/include/poky-default-revisions.inc b/meta/conf/distro/include/poky-default-revisions.inc
index 9a3ae7e..5e7ab66 100644
--- a/meta/conf/distro/include/poky-default-revisions.inc
+++ b/meta/conf/distro/include/poky-default-revisions.inc
@@ -146,7 +146,7 @@ SRCREV_pn-opkg-nogpg-native ??= "${OPKGSRCREV}"
 SRCREV_pn-opkg-nogpg-nativesdk ??= "${OPKGSRCREV}"
 SRCREV_pn-opkg-utils-native ??= "4747"
 SRCREV_pn-opkg-utils ??= "4747"
-SRCREV_pn-oprofileui ??= "2387488fb520725ca9cff888bc1ed25788276b13"
+SRCREV_pn-oprofileui ??= "0c3c32fa754c1d0b70e65767ea7048914f776396"
 SRCREV_pn-tcf-agent ??= "1078"
 SRCREV_pn-osc-native ??= "9096"
 SRCREV_pn-owl-video ??= "394"
diff --git a/meta/recipes-kernel/oprofile/oprofileui/dso_linking_change_build_fix.patch b/meta/recipes-kernel/oprofile/oprofileui/dso_linking_change_build_fix.patch
index 4b44c69..39ceb22 100644
--- a/meta/recipes-kernel/oprofile/oprofileui/dso_linking_change_build_fix.patch
+++ b/meta/recipes-kernel/oprofile/oprofileui/dso_linking_change_build_fix.patch
@@ -7,6 +7,8 @@ With dso linking change in gcc, all the libraries are needed to be explicitely s
 | collect2: ld returned 1 exit status^M
 | make[2]: *** [oprofile-viewer] Error 1^M
 
+Upstream-Status: Inappropriate [configuration]
+
 Nitin A Kamble <nitin.a.kamble@intel.com>
 Date: 2011/01/11
 
diff --git a/meta/recipes-kernel/oprofile/oprofileui_git.bb b/meta/recipes-kernel/oprofile/oprofileui_git.bb
index c83d43c..44adcb7 100644
--- a/meta/recipes-kernel/oprofile/oprofileui_git.bb
+++ b/meta/recipes-kernel/oprofile/oprofileui_git.bb
@@ -1,7 +1,7 @@
 require oprofileui.inc
 
 PV = "0.0+git${SRCPV}"
-PR = "r3"
+PR = "r4"
 
 S = "${WORKDIR}/git"
 
-- 
1.7.1.1




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

* [PATCH 21/58] libxt: update from 1.0.9 to the latest version 1.1.1
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (19 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 20/58] oprofileui: upgrade to latest git version Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 22/58] libxi: upgrade from 1.4.0 to the latest version 1.4.2 Saul Wold
                   ` (37 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Update LIC_FILES_CHKSUM due to the only change to COPYING.
-Copyright (c) 1993, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 1993, 2011, Oracle and/or its affiliates. All rights reserved.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../xorg-lib/{libxt_1.0.9.bb => libxt_1.1.1.bb}    |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-lib/{libxt_1.0.9.bb => libxt_1.1.1.bb} (85%)

diff --git a/meta/recipes-graphics/xorg-lib/libxt_1.0.9.bb b/meta/recipes-graphics/xorg-lib/libxt_1.1.1.bb
similarity index 85%
rename from meta/recipes-graphics/xorg-lib/libxt_1.0.9.bb
rename to meta/recipes-graphics/xorg-lib/libxt_1.1.1.bb
index 63119ae..f06739f 100644
--- a/meta/recipes-graphics/xorg-lib/libxt_1.0.9.bb
+++ b/meta/recipes-graphics/xorg-lib/libxt_1.1.1.bb
@@ -13,7 +13,7 @@ independent of any particular user interface policy or style."
 require xorg-lib-common.inc
 
 LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=917881a51be1013bee30d7f3f5ba9f55"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3239170e81427c5948287df07691f03f"
 
 
 DEPENDS += "libsm virtual/libx11 kbproto libxdmcp"
@@ -39,5 +39,5 @@ do_compile() {
 	oe_runmake
 }
 
-SRC_URI[md5sum] = "8a414f8f2327aaa616ca2dcac1f5d8c3"
-SRC_URI[sha256sum] = "eab91b594b801f7f07a20f936dda70a629028858cbcf541becf94f2786ae6b01"
+SRC_URI[md5sum] = "eb22c0a1f172b06b97a3f5ae89768412"
+SRC_URI[sha256sum] = "a2a1c29c684e3c9082cdb920b5aea802b179d19107b9ab2170fda07575559da7"
-- 
1.7.1.1




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

* [PATCH 22/58] libxi: upgrade from 1.4.0 to the latest version 1.4.2
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (20 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 21/58] libxt: update from 1.0.9 to the latest version 1.1.1 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 23/58] fixesproto: upgrade from 4.1.2 to the latest version 5.0 Saul Wold
                   ` (36 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Add --enable-specs=no to disable spec generation to work around the issue:
SEVERE: Error with opening URL 'http://docbook.sourceforge.net/release/images/draft.png': No route to host
Apr 11, 2011 4:06:18 PM org.apache.fop.fo.properties.CommonBorderPaddingBackground <init>
SEVERE: Background image not available: http://docbook.sourceforge.net/release/images/draft.png

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../xorg-lib/{libxi_1.4.0.bb => libxi_1.4.2.bb}    |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-lib/{libxi_1.4.0.bb => libxi_1.4.2.bb} (76%)

diff --git a/meta/recipes-graphics/xorg-lib/libxi_1.4.0.bb b/meta/recipes-graphics/xorg-lib/libxi_1.4.2.bb
similarity index 76%
rename from meta/recipes-graphics/xorg-lib/libxi_1.4.0.bb
rename to meta/recipes-graphics/xorg-lib/libxi_1.4.2.bb
index c7fb9d5..50ff426 100644
--- a/meta/recipes-graphics/xorg-lib/libxi_1.4.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libxi_1.4.2.bb
@@ -16,6 +16,7 @@ PE = "1"
 
 XORG_PN = "libXi"
 
+EXTRA_OECONF_append = " --enable-specs=no"
 
-SRC_URI[md5sum] = "4ccdfe866f94c99b9190d16ffcfb3bdc"
-SRC_URI[sha256sum] = "42efe95a08c7bd28bc913bf8c34ed026abcc62504307626fc5150ca360b93283"
+SRC_URI[md5sum] = "3d14f7bfc4a4335cf0144de9b67a5444"
+SRC_URI[sha256sum] = "272b8041efc0a0203fb0ba33481ddec989539aed862181b58c8c3e410e325691"
-- 
1.7.1.1




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

* [PATCH 23/58] fixesproto: upgrade from 4.1.2 to the latest version 5.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (21 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 22/58] libxi: upgrade from 1.4.0 to the latest version 1.4.2 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 24/58] xproto: upgrade from 7.0.20 to the latest version 7.0.21 Saul Wold
                   ` (35 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Update LIC_FILES_CHKSUM as both the files added a new line
+Copyright 2010 Red Hat, Inc.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../{fixesproto_4.1.2.bb => fixesproto_5.0.bb}     |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
 rename meta/recipes-graphics/xorg-proto/{fixesproto_4.1.2.bb => fixesproto_5.0.bb} (56%)

diff --git a/meta/recipes-graphics/xorg-proto/fixesproto_4.1.2.bb b/meta/recipes-graphics/xorg-proto/fixesproto_5.0.bb
similarity index 56%
rename from meta/recipes-graphics/xorg-proto/fixesproto_4.1.2.bb
rename to meta/recipes-graphics/xorg-proto/fixesproto_5.0.bb
index 853ffa8..d65922b 100644
--- a/meta/recipes-graphics/xorg-proto/fixesproto_4.1.2.bb
+++ b/meta/recipes-graphics/xorg-proto/fixesproto_5.0.bb
@@ -9,8 +9,8 @@ system."
 
 
 LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bd0f26ecf86d0f24922125195d5b70a \
-                    file://xfixesproto.h;endline=43;md5=27614675897bb1cdc611ba7de506cddc"
+LIC_FILES_CHKSUM = "file://COPYING;md5=262a7a87da56e66dd639bf7334a110c6 \
+                    file://xfixesproto.h;endline=43;md5=c3a9ee6db3532ed0d44dea266cfc97f4"
 
 CONFLICTS = "fixesext"
 PR = "r0"
@@ -18,5 +18,5 @@ PE = "1"
 
 BBCLASSEXTEND = "nativesdk"
 
-SRC_URI[md5sum] = "bdb58ecc313b509247036d5c11fa99df"
-SRC_URI[sha256sum] = "de4cbfccb533c190073445eb2a891d997e89f6fb58204f68ae82871de044f857"
+SRC_URI[md5sum] = "e7431ab84d37b2678af71e29355e101d"
+SRC_URI[sha256sum] = "ba2f3f31246bdd3f2a0acf8bd3b09ba99cab965c7fb2c2c92b7dc72870e424ce"
-- 
1.7.1.1




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

* [PATCH 24/58] xproto: upgrade from 7.0.20 to the latest version 7.0.21
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (22 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 23/58] fixesproto: upgrade from 4.1.2 to the latest version 5.0 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 25/58] gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5 Saul Wold
                   ` (34 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Update LIC_FILES_CHKSUM as the new COPYING added "Copyright years" and added
a new section of MIT-style license.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../{xproto_7.0.20.bb => xproto_7.0.21.bb}         |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-proto/{xproto_7.0.20.bb => xproto_7.0.21.bb} (57%)

diff --git a/meta/recipes-graphics/xorg-proto/xproto_7.0.20.bb b/meta/recipes-graphics/xorg-proto/xproto_7.0.21.bb
similarity index 57%
rename from meta/recipes-graphics/xorg-proto/xproto_7.0.20.bb
rename to meta/recipes-graphics/xorg-proto/xproto_7.0.21.bb
index dea1667..17b3793 100644
--- a/meta/recipes-graphics/xorg-proto/xproto_7.0.20.bb
+++ b/meta/recipes-graphics/xorg-proto/xproto_7.0.21.bb
@@ -6,7 +6,7 @@ DESCRIPTION = "This package provides the basic headers for the X Window \
 System."
 
 LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=93ae8952e7d02d855516fbf2efb9a0d2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b9e051107d5628966739a0b2e9b32676"
 
 PR = "r0"
 PE = "1"
@@ -14,6 +14,6 @@ PE = "1"
 EXTRA_OECONF_append = " --enable-specs=no"
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[md5sum] = "65633168e5315c19defb4652cd3d83c1"
-SRC_URI[sha256sum] = "3fe87fe47d9b795e60ba3715d71f90f9929d57e9048f1d2a6ebb558e5aee9e2a"
+SRC_URI[md5sum] = "c5a93a69b701cf81925fab02b35b0d0e"
+SRC_URI[sha256sum] = "38ee2f032c3a9e30504593f8b5e6c1161a6629daba93748a71c6f70c16f65548"
 
-- 
1.7.1.1




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

* [PATCH 25/58] gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (23 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 24/58] xproto: upgrade from 7.0.20 to the latest version 7.0.21 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 26/58] xextproto: upgrade from 7.1.2 to the latest version 7.2.0 Saul Wold
                   ` (33 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 ...c-utils_0.20.4.bb => gnome-doc-utils_0.20.5.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-gnome/gnome/{gnome-doc-utils_0.20.4.bb => gnome-doc-utils_0.20.5.bb} (53%)

diff --git a/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.4.bb b/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.5.bb
similarity index 53%
rename from meta/recipes-gnome/gnome/gnome-doc-utils_0.20.4.bb
rename to meta/recipes-gnome/gnome/gnome-doc-utils_0.20.5.bb
index a8cbcf0..94b5aec 100644
--- a/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.4.bb
+++ b/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.5.bb
@@ -3,5 +3,5 @@ LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
 		    file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343"
 PR = "r0"
 
-SRC_URI[archive.md5sum] = "6872b68dd081fc033e07d5877b4c0645"
-SRC_URI[archive.sha256sum] = "97c6465ffb15969a9fe1761f16f30c1028977fb24ecda89a0b479170f6412e4d"
+SRC_URI[archive.md5sum] = "3aa1f651834714090cdbf898ec090a98"
+SRC_URI[archive.sha256sum] = "08d99b8ab813fadd3407873e4a30282debce92e22eb1b45430a8bb9c120e2130"
-- 
1.7.1.1




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

* [PATCH 26/58] xextproto: upgrade from 7.1.2 to the latest version 7.2.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (24 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 25/58] gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 27/58] libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1 Saul Wold
                   ` (32 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Add  --enable-specs=no.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../{xextproto_7.1.2.bb => xextproto_7.2.0.bb}     |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-proto/{xextproto_7.1.2.bb => xextproto_7.2.0.bb} (76%)

diff --git a/meta/recipes-graphics/xorg-proto/xextproto_7.1.2.bb b/meta/recipes-graphics/xorg-proto/xextproto_7.2.0.bb
similarity index 76%
rename from meta/recipes-graphics/xorg-proto/xextproto_7.1.2.bb
rename to meta/recipes-graphics/xorg-proto/xextproto_7.2.0.bb
index b079736..09eb59a 100644
--- a/meta/recipes-graphics/xorg-proto/xextproto_7.1.2.bb
+++ b/meta/recipes-graphics/xorg-proto/xextproto_7.2.0.bb
@@ -17,7 +17,9 @@ PE = "1"
 
 inherit gettext
 
+EXTRA_OECONF_append = " --enable-specs=no"
+
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[md5sum] = "263ae968b223c23b2986603d84e5c30e"
-SRC_URI[sha256sum] = "f6f829e112c8eca7c2f10b2193e8d927b9b7722283d647cfd2aea09758159199"
+SRC_URI[md5sum] = "220732210ceffb01bf1caf970e3b1bfb"
+SRC_URI[sha256sum] = "d2bc4208c6b1883ebe00bc5c0048e5d825038cda56775f74bb4aa89afdc576d5"
-- 
1.7.1.1




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

* [PATCH 27/58] libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (25 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 26/58] xextproto: upgrade from 7.1.2 to the latest version 7.2.0 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 28/58] cronie: upgrade from 1.4.6 to the latest version 1.4.7 Saul Wold
                   ` (31 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Upgrade LIC_FILES_CHKSUM due to the only change in the new COPYING:
-Copyright 2007, 2008, 2009 Sun Microsystems, Inc.
+Copyright (c) 2007, 2008, 2009, Oracle and/or its affiliates.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 ...bpciaccess_0.12.0.bb => libpciaccess_0.12.1.bb} |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-lib/{libpciaccess_0.12.0.bb => libpciaccess_0.12.1.bb} (56%)

diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.0.bb b/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.1.bb
similarity index 56%
rename from meta/recipes-graphics/xorg-lib/libpciaccess_0.12.0.bb
rename to meta/recipes-graphics/xorg-lib/libpciaccess_0.12.1.bb
index d7417a2..b3091fd 100644
--- a/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.0.bb
+++ b/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.1.bb
@@ -6,11 +6,11 @@ PCI bus and devices in a platform-independant way."
 require xorg-lib-common.inc
 
 LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aa44c26bc646c6c9d9619c73b94a6e31"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2c765efe1e0722c1badff5e54429b102"
 
 PR = "r0"
 
 DEPENDS += "xproto virtual/libx11"
 
-SRC_URI[md5sum] = "285e07976274572e1f1e68edee09b70a"
-SRC_URI[sha256sum] = "f6b3c00e1c0aab0729563115d3d798e14c9210b4e10fccb484efe1c5eae85657"
+SRC_URI[md5sum] = "d6363ee9f4df79f6fc47cba7c67b0d35"
+SRC_URI[sha256sum] = "cc47d7f0e48cf4eed972916b536fdc97788d7521915e3ae1cc92d540776d7344"
-- 
1.7.1.1




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

* [PATCH 28/58] cronie: upgrade from 1.4.6 to the latest version 1.4.7
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (26 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 27/58] libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 29/58] preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto, xextproto and libpciaccess Saul Wold
                   ` (30 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../cronie/{cronie_1.4.6.bb => cronie_1.4.7.bb}    |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-extended/cronie/{cronie_1.4.6.bb => cronie_1.4.7.bb} (93%)

diff --git a/meta/recipes-extended/cronie/cronie_1.4.6.bb b/meta/recipes-extended/cronie/cronie_1.4.7.bb
similarity index 93%
rename from meta/recipes-extended/cronie/cronie_1.4.6.bb
rename to meta/recipes-extended/cronie/cronie_1.4.7.bb
index 09714c7..7d6093a 100644
--- a/meta/recipes-extended/cronie/cronie_1.4.6.bb
+++ b/meta/recipes-extended/cronie/cronie_1.4.7.bb
@@ -20,8 +20,8 @@ SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
            file://crond.init \
            file://crontab"
 
-SRC_URI[md5sum] = "968e3d3e7c8e1d0588d533883482d3fa"
-SRC_URI[sha256sum] = "4435484c28a4452ee37db27182675660cdebf16d8956771b28c8a6f2e9c8048b"
+SRC_URI[md5sum] = "dfc26c47756d0c40ee27ae3c7ee98e0d"
+SRC_URI[sha256sum] = "83bae15ae5504454ba74f4142f5db3aa22be594327fea19d2534f65803137fbd"
 
 inherit autotools update-rc.d
 
-- 
1.7.1.1




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

* [PATCH 29/58] preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto, xextproto and libpciaccess
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (27 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 28/58] cronie: upgrade from 1.4.6 to the latest version 1.4.7 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 30/58] distro_tracking_fields.inc: update the info for the following recipes Saul Wold
                   ` (29 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 4b7c1a9..5324a68 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -10,7 +10,7 @@ PREFERRED_VERSION_compositeproto ?= "0.4.2"
 PREFERRED_VERSION_damageproto ?= "1.2.1"
 PREFERRED_VERSION_dmxproto ?= "2.3.1"
 PREFERRED_VERSION_evieext ?= "1.1.0"
-PREFERRED_VERSION_fixesproto ?= "4.1.2"
+PREFERRED_VERSION_fixesproto ?= "5.0"
 PREFERRED_VERSION_fontcacheproto ?= "0.1.3"
 PREFERRED_VERSION_fontcacheproto-native ?= "0.1.3"
 PREFERRED_VERSION_fontsproto ?= "2.1.1"
@@ -56,7 +56,7 @@ PREFERRED_VERSION_libxfont ?= "1.4.3"
 PREFERRED_VERSION_libxfont-native ?= "1.4.3"
 PREFERRED_VERSION_libxfontcache ?= "1.0.5"
 PREFERRED_VERSION_libxft ?= "2.2.0"
-PREFERRED_VERSION_libxi ?= "1.4.0"
+PREFERRED_VERSION_libxi ?= "1.4.2"
 PREFERRED_VERSION_libxinerama ?= "1.1.1"
 PREFERRED_VERSION_libxkbfile ?= "1.0.7"
 PREFERRED_VERSION_libxkbui ?= "1.0.2"
@@ -71,7 +71,7 @@ PREFERRED_VERSION_libxrender ?= "0.9.6"
 PREFERRED_VERSION_libxrender-nativesdk ?= "0.9.6"
 PREFERRED_VERSION_libxres ?= "1.0.5"
 PREFERRED_VERSION_libxscrnsaver ?= "1.2.1"
-PREFERRED_VERSION_libxt ?= "1.0.9"
+PREFERRED_VERSION_libxt ?= "1.1.1"
 PREFERRED_VERSION_libxtrap ?= "1.0.0"
 PREFERRED_VERSION_libxtst ?= "1.2.0"
 PREFERRED_VERSION_libxv ?= "1.0.6"
@@ -103,9 +103,9 @@ PREFERRED_VERSION_xcmiscproto-native ?= "1.2.1"
 PREFERRED_VERSION_xcmiscproto-nativesdk ?= "1.2.1"
 PREFERRED_VERSION_xdpyinfo ?= "1.2.0"
 PREFERRED_VERSION_xev ?= "1.0.3"
-PREFERRED_VERSION_xextproto ?= "7.1.2"
-PREFERRED_VERSION_xextproto-native ?= "7.1.2"
-PREFERRED_VERSION_xextproto-nativesdk ?= "7.1.2"
+PREFERRED_VERSION_xextproto ?= "7.2.0"
+PREFERRED_VERSION_xextproto-native ?= "7.2.0"
+PREFERRED_VERSION_xextproto-nativesdk ?= "7.2.0"
 PREFERRED_VERSION_xf86bigfontproto ?= "1.2.0"
 PREFERRED_VERSION_xf86bigfontproto-native ?= "1.2.0"
 PREFERRED_VERSION_xf86bigfontproto-nativesdk ?= "1.2.0"
@@ -121,9 +121,9 @@ PREFERRED_VERSION_xineramaproto ?= "1.2.1"
 PREFERRED_VERSION_xmodmap ?= "1.0.5"
 PREFERRED_VERSION_xorg-cf-files ?= "1.0.3"
 PREFERRED_VERSION_xprop ?= "1.2.0"
-PREFERRED_VERSION_xproto ?= "7.0.20"
-PREFERRED_VERSION_xproto-native ?= "7.0.20"
-PREFERRED_VERSION_xproto-nativesdk ?= "7.0.20"
+PREFERRED_VERSION_xproto ?= "7.0.21"
+PREFERRED_VERSION_xproto-native ?= "7.0.21"
+PREFERRED_VERSION_xproto-nativesdk ?= "7.0.21"
 PREFERRED_VERSION_xproxymanagementprotocol ?= "1.0.3"
 PREFERRED_VERSION_xrandr ?= "1.3.4"
 PREFERRED_VERSION_xrdb ?= "1.0.5"
@@ -140,7 +140,7 @@ PREFERRED_VERSION_libdrm ?= "2.4.23"
 PREFERRED_VERSION_xcb-proto ?= "1.6"
 PREFERRED_VERSION_libxcb ?= "1.7"
 PREFERRED_VERSION_libxcb-nativesdk ?= "1.7"
-PREFERRED_VERSION_libpciaccess ?= "0.12.0"
+PREFERRED_VERSION_libpciaccess ?= "0.12.1"
 PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
 PREFERRED_VERSION_xf86-input-mouse ?= "1.6.0"
 PREFERRED_VERSION_xf86-input-keyboard ?= "1.5.0"
-- 
1.7.1.1




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

* [PATCH 30/58] distro_tracking_fields.inc: update the info for the following recipes
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (28 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 29/58] preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto, xextproto and libpciaccess Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 31/58] xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0 Saul Wold
                   ` (28 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

oprofileui
tcf-agent
libxt
libxi
fixesproto
xproto
gnome-doc-utils
pixman
xextproto
libpciaccess
cronie

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../conf/distro/include/distro_tracking_fields.inc |   83 ++++++++++----------
 1 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/meta/conf/distro/include/distro_tracking_fields.inc b/meta/conf/distro/include/distro_tracking_fields.inc
index a507ce2..ac6feec 100644
--- a/meta/conf/distro/include/distro_tracking_fields.inc
+++ b/meta/conf/distro/include/distro_tracking_fields.inc
@@ -1943,13 +1943,13 @@ RECIPE_MAINTAINER_pn-cpio = "Scott Garman <scott.a.garman@intel.com>"
 
 RECIPE_STATUS_pn-cronie = "green"
 RECIPE_DEPENDENCY_CHECK_pn-cronie = "not done"
-RECIPE_LATEST_VERSION_pn-cronie = "1.4.4"
-RECIPE_MANUAL_CHECK_DATE_pn-cronie = "Jan 28, 2011"
+RECIPE_LATEST_VERSION_pn-cronie = "1.4.7"
+RECIPE_MANUAL_CHECK_DATE_pn-cronie = "Apr 11, 2011"
 RECIPE_INTEL_SECTION_pn-cronie = "base"
 RECIPE_NO_OF_PATCHES_pn-cronie = "0"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-cronie = "3 months"
-RECIPE_LATEST_RELEASE_DATE_pn-cronie = "02/2010"
-RECIPE_LAST_UPDATE_pn-cronie = "Nov 24, 2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-cronie = "5 months"
+RECIPE_LATEST_RELEASE_DATE_pn-cronie = "Mar 17, 2011"
+RECIPE_LAST_UPDATE_pn-cronie = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-cronie = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-grep = "green" 
@@ -2685,14 +2685,14 @@ RECIPE_MAINTAINER_pn-libsamplerate0 = "Dongxiao Xu <dongxiao.xu@intel.com>"
 RECIPE_STATUS_pn-oprofileui = "green"
 DISTRO_PN_ALIAS_pn-oprofileui = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
 RECIPE_DEPENDENCY_CHECK_pn-oprofileui = "not done"
-RECIPE_LATEST_VERSION_pn-oprofileui = "0.0+git0+e2d998d8a55dc1e49d1588841f83eff8e6809753"
+RECIPE_LATEST_VERSION_pn-oprofileui = "0.0+git0+0c3c32fa754c1d0b70e65767ea7048914f776396"
 RECIPE_NO_OF_PATCHES_pn-oprofileui = "1"
 RECIPE_PATCH_pn-oprofileui+dso_linking_change_build_fix = "fix the build by explicitely passing -lm to linker"
 RECIPE_INTEL_SECTION_pn-oprofileui = "sdk-tools"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-oprofileui = "5 months"
-RECIPE_LATEST_RELEASE_DATE_pn-oprofileui = "Dec 10, 2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-oprofileui = "20 days"
+RECIPE_LATEST_RELEASE_DATE_pn-oprofileui = "Apr 4, 2011"
 RECIPE_COMMENTS_pn-oprofileui = ""
-RECIPE_LAST_UPDATE_pn-oprofileui = "Mar 9, 2011"
+RECIPE_LAST_UPDATE_pn-oprofileui = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-oprofileui = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-oprofile = "green"
@@ -2739,6 +2739,8 @@ RECIPE_STATUS_pn-tcf-agent = "green"
 DISTRO_PN_ALIAS_pn-tcf-agent = "WindRiver upstream=http://www.eclipse.org/dsdp/tm/"
 RECIPE_DEPENDENCY_CHECK_pn-tcf-agent = "not done"
 RECIPE_LATEST_VERSION_pn-tcf-agent = "0.3.0+svnr1078"
+RECIPE_MANUAL_CHECK_DATE_pn-tcf-agent = "Apr 11, 2011"
+RECIPE_NO_UPDATE_REASON_pn-tcf-agent = "Do not upgrade to version: (998)? because upstraem hasn't defined a formal release tag."
 RECIPE_NO_OF_PATCHES_pn-tcf-agent = "2"
 RECIPE_PATCH_pn-tcf-agent+terminals_agent = "we might get the patch from git://git.pokylinux.org/eclipse-poky.git in future"
 RECIPE_PATCH_pn-tcf-agent+fix_tcf-agent.init = "a proper script /etc/init.d/tcf-agent"
@@ -3737,13 +3739,13 @@ RECIPE_MAINTAINER_pn-dmxproto = "Dexuan Cui <dexuan.cui@intel.com>"
 RECIPE_STATUS_pn-fixesproto = "green"
 DISTRO_PN_ALIAS_pn-fixesproto = "Meego=xorg-x11-proto-fixesproto"
 RECIPE_DEPENDENCY_CHECK_pn-fixesproto = "not done"
-RECIPE_LATEST_VERSION_pn-fixesproto = "4.1.2"
+RECIPE_LATEST_VERSION_pn-fixesproto = "5.0"
 RECIPE_NO_OF_PATCHES_pn-fixesproto = "0"
 RECIPE_INTEL_SECTION_pn-fixesproto = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-fixesproto = "1 year"
-RECIPE_LATEST_RELEASE_DATE_pn-fixesproto = "Oct 29, 2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-fixesproto = "1+ years"
+RECIPE_LATEST_RELEASE_DATE_pn-fixesproto = "Mar 8, 2011"
 RECIPE_COMMENTS_pn-fixesproto = ""
-RECIPE_LAST_UPDATE_pn-fixesproto = "Nov 16, 2010"
+RECIPE_LAST_UPDATE_pn-fixesproto = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-fixesproto = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-fontcacheproto = "green"
@@ -3819,13 +3821,13 @@ RECIPE_MAINTAINER_pn-libdmx = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-libxi = "green"
 RECIPE_DEPENDENCY_CHECK_pn-libxi = "not done"
-RECIPE_LATEST_VERSION_pn-libxi = "1.3"
+RECIPE_LATEST_VERSION_pn-libxi = "1.4.2"
 RECIPE_NO_OF_PATCHES_pn-libxi = "0"
 RECIPE_INTEL_SECTION_pn-libxi = "x11/libs"
 RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-libxi = "2 months"
-RECIPE_LATEST_RELEASE_DATE_pn-libxi = "10/2009"
+RECIPE_LATEST_RELEASE_DATE_pn-libxi = "Mar 18, 2011"
 RECIPE_COMMENTS_pn-libxi = ""
-RECIPE_LAST_UPDATE_pn-libxi = "Nov 24, 2010"
+RECIPE_LAST_UPDATE_pn-libxi = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-libxi = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-libxinerama = "green"
@@ -4067,13 +4069,13 @@ RECIPE_MAINTAINER_pn-xcb-proto = "Dexuan Cui <dexuan.cui@intel.com>"
 RECIPE_STATUS_pn-xextproto = "green"
 DISTRO_PN_ALIAS_pn-xextproto = "Meego=xorg-x11-proto-xextproto"
 RECIPE_DEPENDENCY_CHECK_pn-xextproto = "not done"
-RECIPE_LATEST_VERSION_pn-xextproto = "7.1.2"
+RECIPE_LATEST_VERSION_pn-xextproto = "7.2.0"
 RECIPE_NO_OF_PATCHES_pn-xextproto = "0"
 RECIPE_INTEL_SECTION_pn-xextproto = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-xextproto = "1 year"
-RECIPE_LATEST_RELEASE_DATE_pn-xextproto = "Aug 10, 2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-xextproto = "6+ months"
+RECIPE_LATEST_RELEASE_DATE_pn-xextproto = "Feb 27, 2011"
 RECIPE_COMMENTS_pn-xextproto = ""
-RECIPE_LAST_UPDATE_pn-xextproto = "Nov 16, 2010"
+RECIPE_LAST_UPDATE_pn-xextproto = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-xextproto = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-xf86vidmodeproto = "green"
@@ -4091,13 +4093,13 @@ RECIPE_MAINTAINER_pn-xf86vidmodeproto = "Dexuan Cui <dexuan.cui@intel.com>"
 RECIPE_STATUS_pn-xproto = "green"
 DISTRO_PN_ALIAS_pn-xproto = "Meego=xorg-x11-proto-xproto Fedora=xorg-x11-proto-devel Ubuntu=x11proto-core-dev Debian=x11proto-core-dev Opensuse=xorg-x11-proto-devel Mandriva=x11-proto-devel"
 RECIPE_DEPENDENCY_CHECK_pn-xproto = "not done"
-RECIPE_LATEST_VERSION_pn-xproto = "7.0.20"
+RECIPE_LATEST_VERSION_pn-xproto = "7.0.21"
 RECIPE_NO_OF_PATCHES_pn-xproto = "0"
 RECIPE_INTEL_SECTION_pn-xproto = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-xproto = "1 month"
-RECIPE_LATEST_RELEASE_DATE_pn-xproto = "Dec 7, 2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-xproto = "3+ months"
+RECIPE_LATEST_RELEASE_DATE_pn-xproto = "Mar 22, 2011"
 RECIPE_COMMENTS_pn-xproto = ""
-RECIPE_LAST_UPDATE_pn-xproto = "Jan 5, 2011"
+RECIPE_LAST_UPDATE_pn-xproto = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-xproto = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-liberation-fonts = "green"
@@ -4239,13 +4241,13 @@ RECIPE_MAINTAINER_pn-libxres = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-libxt = "green"
 RECIPE_DEPENDENCY_CHECK_pn-libxt = "not done"
-RECIPE_LATEST_VERSION_pn-libxt = "1.0.8"
+RECIPE_LATEST_VERSION_pn-libxt = "1.1.1"
 RECIPE_NO_OF_PATCHES_pn-libxt = "0"
 RECIPE_INTEL_SECTION_pn-libxt = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-libxt = "5 months"
-RECIPE_LATEST_RELEASE_DATE_pn-libxt = "03/2010"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-libxt = "6 days"
+RECIPE_LATEST_RELEASE_DATE_pn-libxt = "Mar 10, 2011"
 RECIPE_COMMENTS_pn-libxt = ""
-RECIPE_LAST_UPDATE_pn-libxt = "Nov 24, 2010"
+RECIPE_LAST_UPDATE_pn-libxt = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-libxt = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-libxv = "green"
@@ -4372,12 +4374,12 @@ RECIPE_MAINTAINER_pn-libxkbfile = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-pixman = "green"
 RECIPE_DEPENDENCY_CHECK_pn-pixman = "not done"
-RECIPE_LATEST_VERSION_pn-pixman = "0.21.4"
-RECIPE_NO_UPDATE_REASON_pn-pixman = "Do not upgrade to version: 0.21.4 because it's a development snapshot. pixman's stable releases have even minor version numbers."
+RECIPE_LATEST_VERSION_pn-pixman = "0.21.6"
+RECIPE_NO_UPDATE_REASON_pn-pixman = "Do not upgrade to version: 0.21.6 because it's a development snapshot. pixman's stable releases have even minor version numbers."
 RECIPE_NO_OF_PATCHES_pn-pixman = "0"
 RECIPE_INTEL_SECTION_pn-pixman = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-pixman = "2 months"
-RECIPE_LATEST_RELEASE_DATE_pn-pixman = "Jan 19, 2011"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-pixman = "1+ month"
+RECIPE_LATEST_RELEASE_DATE_pn-pixman = "Feb 22, 2011"
 RECIPE_COMMENTS_pn-pixman = ""
 RECIPE_LAST_UPDATE_pn-pixman = "Jan 31, 2011"
 RECIPE_MAINTAINER_pn-pixman = "Dexuan Cui <dexuan.cui@intel.com>"
@@ -4406,13 +4408,13 @@ RECIPE_MAINTAINER_pn-libxmu = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-libpciaccess = "green"
 RECIPE_DEPENDENCY_CHECK_pn-libpciaccess = "not done"
-RECIPE_LATEST_VERSION_pn-libpciaccess = "0.11.0"
+RECIPE_LATEST_VERSION_pn-libpciaccess = "0.12.1"
 RECIPE_NO_OF_PATCHES_pn-libpciaccess = "0"
 RECIPE_INTEL_SECTION_pn-libpciaccess = "x11/libs"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-libpciaccess = "1+ years"
-RECIPE_LATEST_RELEASE_DATE_pn-libpciaccess = "12/2009"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-libpciaccess = "6+ months"
+RECIPE_LATEST_RELEASE_DATE_pn-libpciaccess = "Feb 2, 2011"
 RECIPE_COMMENTS_pn-libpciaccess = ""
-RECIPE_LAST_UPDATE_pn-libpciaccess = "Nov 24, 2010"
+RECIPE_LAST_UPDATE_pn-libpciaccess = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-libpciaccess = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-xkeyboard-config = "green"
@@ -4547,13 +4549,13 @@ RECIPE_MAINTAINER_pn-galago-daemon = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-gnome-doc-utils = "green"
 RECIPE_DEPENDENCY_CHECK_pn-gnome-doc-utils = "not done"
-RECIPE_LATEST_VERSION_pn-gnome-doc-utils = "0.20.4"
+RECIPE_LATEST_VERSION_pn-gnome-doc-utils = "0.20.5"
 RECIPE_NO_OF_PATCHES_pn-gnome-doc-utils = "0"
 RECIPE_INTEL_SECTION_pn-gnome-doc-utils = "utils"
-RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gnome-doc-utils = "less than 1 month"
-RECIPE_LATEST_RELEASE_DATE_pn-gnome-doc-utils = "Jan 10, 2011"
+RECIPE_TIME_BETWEEN_LAST_TWO_RELEASES_pn-gnome-doc-utils = "2+ months"
+RECIPE_LATEST_RELEASE_DATE_pn-gnome-doc-utils = "Mar 22, 2011"
 RECIPE_COMMENTS_pn-gnome-doc-utils = ""
-RECIPE_LAST_UPDATE_pn-gnome-doc-utils = "Jan 28, 2011"
+RECIPE_LAST_UPDATE_pn-gnome-doc-utils = "Apr 11, 2011"
 RECIPE_MAINTAINER_pn-gnome-doc-utils = "Dexuan Cui <dexuan.cui@intel.com>"
 
 RECIPE_STATUS_pn-gnome-settings-daemon = "red"
@@ -5423,7 +5425,6 @@ DISTRO_PN_ALIAS_pn-screenshot = "OpenedHand"
 DISTRO_PN_ALIAS_pn-web-webkit = "OpenedHand"
 DISTRO_PN_ALIAS_pn-xcursor-transparent-theme = "OpenedHand"
 DISTRO_PN_ALIAS_pn-qemugl = "OpenedHand"
-DISTRO_PN_ALIAS_pn-oprofileui = "OpenedHand"
 DISTRO_PN_ALIAS_pn-gaku = "OpenedHand"
 DISTRO_PN_ALIAS_pn-xvideo-tests = "OpenedHand"
 
-- 
1.7.1.1




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

* [PATCH 31/58] xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (29 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 30/58] distro_tracking_fields.inc: update the info for the following recipes Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 32/58] xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0 Saul Wold
                   ` (27 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 ...tics_1.3.0.bb => xf86-input-synaptics_1.4.0.bb} |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-synaptics_1.3.0.bb => xf86-input-synaptics_1.4.0.bb} (83%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 5324a68..8e7b9b4 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -144,7 +144,7 @@ PREFERRED_VERSION_libpciaccess ?= "0.12.1"
 PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
 PREFERRED_VERSION_xf86-input-mouse ?= "1.6.0"
 PREFERRED_VERSION_xf86-input-keyboard ?= "1.5.0"
-PREFERRED_VERSION_xf86-input-synaptics ?= "1.3.0"
+PREFERRED_VERSION_xf86-input-synaptics ?= "1.4.0"
 PREFERRED_VERSION_xf86-video-intel ?= "2.14.0"
 
 
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.3.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.4.0.bb
similarity index 83%
rename from meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.3.0.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.4.0.bb
index b0953bb..39cd35f 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.3.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.4.0.bb
@@ -18,5 +18,5 @@ DEPENDS += "libxi"
 #
 EXTRA_OEMAKE += " sdkdir=${STAGING_INCDIR}/xorg "
 
-SRC_URI[md5sum] = "b4e58eba1bdca13f0929a4b03b262135"
-SRC_URI[sha256sum] = "30a33250c4f3d2daa8a61cab847dc7befd3248db0fca139d17fd7b890b5a8fd7"
+SRC_URI[md5sum] = "cbe487f9d22237d1e39c7d0b5812ab7e"
+SRC_URI[sha256sum] = "5874d979f028636dbddf14fffb84b496b006e63d5ea8dfa120820e58642812c2"
-- 
1.7.1.1




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

* [PATCH 32/58] xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (30 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 31/58] xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 33/58] evieext: upgrade from 1.1.0 to 1.1.1 Saul Wold
                   ` (26 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 ...use_12.6.10.bb => xf86-input-vmmouse_12.7.0.bb} |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-vmmouse_12.6.10.bb => xf86-input-vmmouse_12.7.0.bb} (64%)

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.10.bb b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.7.0.bb
similarity index 64%
rename from meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.10.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.7.0.bb
index 6288507..9535a8f 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.6.10.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_12.7.0.bb
@@ -7,7 +7,7 @@ RDEPENDS_${PN} += "xf86-input-mouse"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=622841c068a9d7625fbfe7acffb1a8fc"
 
-SRC_URI[md5sum] = "49c6e77851e9f7bc5cb7d85f061992f8"
-SRC_URI[sha256sum] = "a6369d5a860627f2a38842d5563045b263a459e534f6ae08df48f330f9a40910"
+SRC_URI[md5sum] = "dc77181330f983c7d0ec1ea1592c2ca7"
+SRC_URI[sha256sum] = "00e5d527a0d97e6b2a6e8c519e1339427e66fa0a43af026858655c7c62bd9e35"
 
 COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-- 
1.7.1.1




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

* [PATCH 33/58] evieext: upgrade from 1.1.0 to 1.1.1
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (31 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 32/58] xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 34/58] xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0 Saul Wold
                   ` (25 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

- also change license checksum, the license is still MIT-X, but corp name
  is changed from SUN to Oracle

[sgw: merged perferred-xorg-versions.inc]
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 .../{evieext_1.1.0.bb => evieext_1.1.1.bb}         |    8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)
 rename meta/recipes-graphics/xorg-proto/{evieext_1.1.0.bb => evieext_1.1.1.bb} (54%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 8e7b9b4..07eb35d 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -9,7 +9,7 @@ PREFERRED_VERSION_bigreqsproto-nativesdk ?= "1.1.1"
 PREFERRED_VERSION_compositeproto ?= "0.4.2"
 PREFERRED_VERSION_damageproto ?= "1.2.1"
 PREFERRED_VERSION_dmxproto ?= "2.3.1"
-PREFERRED_VERSION_evieext ?= "1.1.0"
+PREFERRED_VERSION_evieext ?= "1.1.1"
 PREFERRED_VERSION_fixesproto ?= "5.0"
 PREFERRED_VERSION_fontcacheproto ?= "0.1.3"
 PREFERRED_VERSION_fontcacheproto-native ?= "0.1.3"
diff --git a/meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb b/meta/recipes-graphics/xorg-proto/evieext_1.1.1.bb
similarity index 54%
rename from meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb
rename to meta/recipes-graphics/xorg-proto/evieext_1.1.1.bb
index 5800af1..271398d 100644
--- a/meta/recipes-graphics/xorg-proto/evieext_1.1.0.bb
+++ b/meta/recipes-graphics/xorg-proto/evieext_1.1.1.bb
@@ -6,10 +6,10 @@ DESCRIPTION = "This package provides the wire protocol for the X Event \
 Interception Extension.  This extension allows the interception of \
 keyboard and mouse events."
 
-PR = "r1"
+PR = "r0"
 PE = "1"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=6cf85dc8217152304ac976db1e240ebe"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4db9fc6a58e873c6392eec53082d89b5"
 
-SRC_URI[md5sum] = "5c74f61d6f77b2e6a083b2b31000be42"
-SRC_URI[sha256sum] = "47881a52a8d9da1e41e4f028ed32a8b44f738afbead819c0a07253fdc1641885"
+SRC_URI[md5sum] = "98bd86a13686f65f0873070fdee6efc7"
+SRC_URI[sha256sum] = "1cf74114436d99f56577a90b6438a32ba31b8128c9e63842bb179aba592733fe"
-- 
1.7.1.1




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

* [PATCH 34/58] xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (32 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 33/58] evieext: upgrade from 1.1.0 to 1.1.1 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 35/58] xkbcomp: upgrade from 1.2.0 to 1.2.1 Saul Wold
                   ` (24 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 ...board_1.5.0.bb => xf86-input-keyboard_1.6.0.bb} |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-keyboard_1.5.0.bb => xf86-input-keyboard_1.6.0.bb} (74%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 07eb35d..fb21c2c 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -143,7 +143,7 @@ PREFERRED_VERSION_libxcb-nativesdk ?= "1.7"
 PREFERRED_VERSION_libpciaccess ?= "0.12.1"
 PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
 PREFERRED_VERSION_xf86-input-mouse ?= "1.6.0"
-PREFERRED_VERSION_xf86-input-keyboard ?= "1.5.0"
+PREFERRED_VERSION_xf86-input-keyboard ?= "1.6.0"
 PREFERRED_VERSION_xf86-input-synaptics ?= "1.4.0"
 PREFERRED_VERSION_xf86-video-intel ?= "2.14.0"
 
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.5.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb
similarity index 74%
rename from meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.5.0.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb
index aa8be67..9b1441d 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.5.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-keyboard_1.6.0.bb
@@ -11,5 +11,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=ea2099d24ac9e316a6d4b9f20b3d4e10"
 
 PR = "r0"
 
-SRC_URI[md5sum] = "b74d7162db5ce7899c17927c6cfa9522"
-SRC_URI[sha256sum] = "2303510e905465ebee91f22cdd75706a15afb108258bc220c7500f213de19cb0"
+SRC_URI[md5sum] = "e2abe9f13e526a73cb68a7d257546eba"
+SRC_URI[sha256sum] = "c46c790fec905d696573b7a374b10ab8b4389112a8f69993fe011006c99e858e"
-- 
1.7.1.1




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

* [PATCH 35/58] xkbcomp: upgrade from 1.2.0 to 1.2.1
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (33 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 34/58] xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 36/58] clutter-1.6: fix tarball md5sum and add json-glib to dependencies Saul Wold
                   ` (23 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

- Also remove the cross compiling patch, since it is already included
 in 1.2.1 release

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../xorg-app/xkbcomp/cross-compile-fix.patch       |   35 --------------------
 .../{xkbcomp_1.2.0.bb => xkbcomp_1.2.1.bb}         |    5 +--
 2 files changed, 2 insertions(+), 38 deletions(-)
 delete mode 100644 meta/recipes-graphics/xorg-app/xkbcomp/cross-compile-fix.patch
 rename meta/recipes-graphics/xorg-app/{xkbcomp_1.2.0.bb => xkbcomp_1.2.1.bb} (72%)

diff --git a/meta/recipes-graphics/xorg-app/xkbcomp/cross-compile-fix.patch b/meta/recipes-graphics/xorg-app/xkbcomp/cross-compile-fix.patch
deleted file mode 100644
index ca65345..0000000
--- a/meta/recipes-graphics/xorg-app/xkbcomp/cross-compile-fix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit cc55d8f5ab021861308b071aab9c03016be15187
-Author: Gaetan Nadon <memsize@videotron.ca>
-Date:   Sun Oct 31 20:35:24 2010 -0400
-
-    config: replace AC_CHECK_FILE with test -f as it fails to cross-compile
-    
-    Testing for the presence of xkbparse.c is legitimate as this is a build
-    file, but the Autoconf macro assumes it is testing on the host system
-    and fails.
-    
-    Tested-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
-
-diff --git a/configure.ac b/configure.ac
-index c69230b..8e6bd6e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -34,11 +34,14 @@ XORG_DEFAULT_OPTIONS
- 
- AM_CONFIG_HEADER(config.h)
- 
-+# If both the C file and YACC are missing, the package cannot be build.
- AC_PROG_YACC
- AC_PATH_PROG([YACC_INST], $YACC)
--AC_CHECK_FILE([$srcdir/xkbparse.c], [],
--              [test -z "$YACC_INST" && AC_MSG_ERROR([yacc not found - unable to compile xkbparse.y])])
--
-+if test ! -f "$srcdir/xkbparse.c"; then
-+   if test -z "$YACC_INST"; then
-+      AC_MSG_ERROR([yacc not found - unable to compile xkbparse.y])
-+   fi
-+fi
- 
- AC_CHECK_FUNCS([strdup strcasecmp])
- 
diff --git a/meta/recipes-graphics/xorg-app/xkbcomp_1.2.0.bb b/meta/recipes-graphics/xorg-app/xkbcomp_1.2.1.bb
similarity index 72%
rename from meta/recipes-graphics/xorg-app/xkbcomp_1.2.0.bb
rename to meta/recipes-graphics/xorg-app/xkbcomp_1.2.1.bb
index f574690..0cf334a 100644
--- a/meta/recipes-graphics/xorg-app/xkbcomp_1.2.0.bb
+++ b/meta/recipes-graphics/xorg-app/xkbcomp_1.2.1.bb
@@ -11,9 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=08436e4f4476964e2e2dd7e7e41e076a"
 
 DEPENDS += "libxkbfile"
 
-SRC_URI += "file://cross-compile-fix.patch"
+SRC_URI[md5sum] = "885b4d8a7c8c7afb3312d31934cb3549"
+SRC_URI[sha256sum] = "b7612527914402d091424a93bc16f0d4d8778b4a874171f3f3dc681c690e65eb"
 
 BBCLASSEXTEND = "native"
 
-SRC_URI[md5sum] = "0f55995cd8da9b2d88553e1a2e17cd0a"
-SRC_URI[sha256sum] = "2c64aa414755e764ca548ae5c93e95f7b5bbd5e01bca16bf226fd32bfae77ea4"
-- 
1.7.1.1




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

* [PATCH 36/58] clutter-1.6: fix tarball md5sum and add json-glib to dependencies
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (34 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 35/58] xkbcomp: upgrade from 1.2.0 to 1.2.1 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 37/58] gnu-config-native: add dependency on perl-native Saul Wold
                   ` (22 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Joshua Lock <josh@linux.intel.com>

* As of Clutter 1.5.2 the project no longer ships an internal version of
json-glib so we must explicitly add it to the DEPENDS.
* Fix the SRC_URI[md5sum]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb b/meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb
index 04935e3..ffcc42d 100644
--- a/meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb
+++ b/meta/recipes-graphics/clutter/clutter-1.6_1.6.8.bb
@@ -2,6 +2,9 @@ require recipes-graphics/clutter/clutter.inc
 
 PR = "r0"
 
+# Internal json-glib was removed in Clutter 1.5.2
+STDDEPENDS += "json-glib"
+
 PACKAGES =+ "${PN}-examples"
 FILES_${PN}-examples = "${bindir}/test-* ${pkgdatadir}/redhand.png"
 
@@ -14,8 +17,6 @@ S = "${WORKDIR}/clutter-1.6.8"
 
 BASE_CONF += "--disable-introspection"
 
-EXTRA_OECONF += "--with-json=check"
-
 do_configure_prepend () {
 	# Disable DOLT
 	sed -i -e 's/^DOLT//' ${S}/configure.ac
-- 
1.7.1.1




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

* [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (35 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 36/58] clutter-1.6: fix tarball md5sum and add json-glib to dependencies Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-18  4:53   ` Richard Purdie
  2011-04-16  6:54 ` [PATCH 38/58] libnewt: fix parallel-make issue Saul Wold
                   ` (21 subsequent siblings)
  58 siblings, 1 reply; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Fixes [YOCTO #968]

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 .../gnu-config/config-guess-uclibc.patch           |    2 ++
 .../gnu-config/gnu-config_20080123.bb              |    6 ++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
index f820cef..f862c83 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
+++ b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
 Patch courtesy gentoo-portage/sys-devel/gnuconfig/files/automake-1.8.5-config-guess-uclibc.patch.
 
 updated to 20050516 by Marcin 'Hrw' Juszkiewicz (by hand)
diff --git a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
index e0a8155..897984d 100644
--- a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
+++ b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
@@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU config.guess / config.sub into a direc
 SECTION = "devel"
 LICENSE = "GPLv1+"
 LIC_FILES_CHKSUM = "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
-DEPENDS = ""
+
+DEPENDS_virtclass-native = "perl-native"
+
 INHIBIT_DEFAULT_DEPS = "1"
 
 FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}"
 PV = "0.1+cvs${FIXEDSRCDATE}"
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "cvs://anonymous@cvs.sv.gnu.org/cvsroot/config;module=config;method=pserver;date=${FIXEDSRCDATE} \
 	   file://config-guess-uclibc.patch \
-- 
1.7.1.1




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

* [PATCH 38/58] libnewt: fix parallel-make issue
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (36 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 37/58] gnu-config-native: add dependency on perl-native Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 39/58] libdrm: upgrade from 2.4.23 to 2.4.25 Saul Wold
                   ` (20 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Dexuan Cui <dexuan.cui@intel.com>

Add patch to remove hardcoded /usr/include/slang

Fixes [YOCTO #947]

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../newt/files/fix_SHAREDDIR.patch                 |   29 ++++++++++++++++++++
 .../newt/files/include-without-python.patch        |    2 +
 .../newt/files/remove_slang_include.patch          |   13 +++++++++
 meta/recipes-extended/newt/libnewt_0.52.12.bb      |    8 ++++-
 4 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
 create mode 100644 meta/recipes-extended/newt/files/remove_slang_include.patch

diff --git a/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch b/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
new file mode 100644
index 0000000..7795260
--- /dev/null
+++ b/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Pending
+
+Author: dexuan.cui@intel.com
+Date: Fri Apr 15 16:17:39 CST 2011
+
+The patch fixes a parallel-make issue: when generating $(SHAREDDIR)/%.o, we should
+ensure the directory ${SHAREDDIR} exists.
+
+We need to push the patch to upstream.
+
+Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -114,12 +114,12 @@
+ 
+ sharedlib: $(LIBNEWTSH)
+ 
+-$(LIBNEWTSH): $(SHAREDDIR) $(SHAREDOBJS)
++$(LIBNEWTSH): $(SHAREDOBJS)
+ 	$(CC) -shared -o $(LIBNEWTSH) $(SHLIBFLAGS) $(SHAREDOBJS) $(LDFLAGS) $(LIBS)
+ 	ln -fs $(LIBNEWTSONAME) libnewt.so
+ 	ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME)
+ 
+-$(SHAREDDIR)/%.o : %.c
++$(SHAREDDIR)/%.o : %.c $(SHAREDDIR)
+ 	$(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
+ 
+ install: $(LIBNEWT) install-sh whiptail
diff --git a/meta/recipes-extended/newt/files/include-without-python.patch b/meta/recipes-extended/newt/files/include-without-python.patch
index 277ee33..263e9de 100644
--- a/meta/recipes-extended/newt/files/include-without-python.patch
+++ b/meta/recipes-extended/newt/files/include-without-python.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
 From 3d13bbbb769050fac4cc6c904c174edc27e4f03d Mon Sep 17 00:00:00 2001
 From: Otavio Salvador <otavio@ossystems.com.br>
 Date: Thu, 20 Jan 2011 14:14:51 -0200
diff --git a/meta/recipes-extended/newt/files/remove_slang_include.patch b/meta/recipes-extended/newt/files/remove_slang_include.patch
new file mode 100644
index 0000000..dbdeef0
--- /dev/null
+++ b/meta/recipes-extended/newt/files/remove_slang_include.patch
@@ -0,0 +1,13 @@
+Index: git/Makefile.in
+===================================================================
+--- git.orig/Makefile.in
++++ git/Makefile.in
+@@ -5,7 +5,7 @@ CC = @CC@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+ LDFLAGS = @LDFLAGS@
+-CPPFLAGS = -D_GNU_SOURCE -I/usr/include/slang @CPPFLAGS@ 
++CPPFLAGS = -D_GNU_SOURCE @CPPFLAGS@ 
+ GNU_LD = @GNU_LD@
+ 
+ VERSION = @VERSION@
diff --git a/meta/recipes-extended/newt/libnewt_0.52.12.bb b/meta/recipes-extended/newt/libnewt_0.52.12.bb
index eefd6bd..e2ad559 100644
--- a/meta/recipes-extended/newt/libnewt_0.52.12.bb
+++ b/meta/recipes-extended/newt/libnewt_0.52.12.bb
@@ -17,11 +17,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 # slang needs to be >= 2.2
 DEPENDS = "slang popt"
 
-PR = "r0"
+PR = "r2"
 
 SRCREV = "c3c7be75f6ef1adfc2be5f99c1e8ef3f0ab58c38"
+
 SRC_URI = "git://git.fedorahosted.org/git/newt;protocol=git \
-           file://include-without-python.patch"
+           file://include-without-python.patch \
+           file://remove_slang_include.patch \
+           file://fix_SHAREDDIR.patch"
+
 S = "${WORKDIR}/git"
 
 EXTRA_OECONF = "--without-python --without-tcl"
-- 
1.7.1.1




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

* [PATCH 39/58] libdrm: upgrade from 2.4.23 to 2.4.25
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (37 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 38/58] libnewt: fix parallel-make issue Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:54 ` [PATCH 40/58] mesa: upgrade to 7.10.2 Saul Wold
                   ` (19 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 .../drm/libdrm-2.4.23/installtests.patch           |   43 -----------------
 .../drm/libdrm-2.4.25/installtests.patch           |   49 ++++++++++++++++++++
 .../drm/{libdrm_2.4.23.bb => libdrm_2.4.25.bb}     |    5 +-
 4 files changed, 53 insertions(+), 46 deletions(-)
 delete mode 100644 meta/recipes-graphics/drm/libdrm-2.4.23/installtests.patch
 create mode 100644 meta/recipes-graphics/drm/libdrm-2.4.25/installtests.patch
 rename meta/recipes-graphics/drm/{libdrm_2.4.23.bb => libdrm_2.4.25.bb} (54%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index fb21c2c..46fd104 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -136,7 +136,7 @@ PREFERRED_VERSION_xtrans-nativesdk ?= "1.2.6"
 PREFERRED_VERSION_xvinfo ?= "1.1.1"
 PREFERRED_VERSION_xwininfo ?= "1.1.1"
 PREFERRED_VERSION_mesa-dri ?= "7.10"
-PREFERRED_VERSION_libdrm ?= "2.4.23"
+PREFERRED_VERSION_libdrm ?= "2.4.25"
 PREFERRED_VERSION_xcb-proto ?= "1.6"
 PREFERRED_VERSION_libxcb ?= "1.7"
 PREFERRED_VERSION_libxcb-nativesdk ?= "1.7"
diff --git a/meta/recipes-graphics/drm/libdrm-2.4.23/installtests.patch b/meta/recipes-graphics/drm/libdrm-2.4.23/installtests.patch
deleted file mode 100644
index 9d6a168..0000000
--- a/meta/recipes-graphics/drm/libdrm-2.4.23/installtests.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: libdrm-2.4.7/tests/Makefile.am
-===================================================================
---- libdrm-2.4.7.orig/tests/Makefile.am	2009-04-09 20:16:35.000000000 +0100
-+++ libdrm-2.4.7/tests/Makefile.am	2009-04-17 12:35:14.000000000 +0100
-@@ -6,10 +6,11 @@
-
- LDADD = $(top_builddir)/libdrm.la
-
--check_PROGRAMS = \
-+bin_PROGRAMS = \
- 	dristat \
- 	drmstat
-
-+check_PROGRAMS =
- SUBDIRS =
-
- if HAVE_LIBKMS
-Index: libdrm-2.4.7/tests/modeprint/Makefile.am
-===================================================================
---- libdrm-2.4.7.orig/tests/modeprint/Makefile.am	2009-02-17 19:52:37.000000000 +0000
-+++ libdrm-2.4.7/tests/modeprint/Makefile.am	2009-04-17 12:35:32.000000000 +0100
-@@ -3,7 +3,7 @@
- 	-I$(top_srcdir)/libdrm/intel/ \
- 	-I$(top_srcdir)/libdrm
-
--noinst_PROGRAMS = \
-+bin_PROGRAMS = \
- 	modeprint
-
- modeprint_SOURCES = \
-Index: libdrm-2.4.7/tests/modetest/Makefile.am
-===================================================================
---- libdrm-2.4.7.orig/tests/modetest/Makefile.am	2009-02-17 19:52:37.000000000 +0000
-+++ libdrm-2.4.7/tests/modetest/Makefile.am	2009-04-17 12:35:42.000000000 +0100
-@@ -4,7 +4,7 @@
- 	-I$(top_srcdir)/libdrm \
- 	$(CAIRO_CFLAGS)
-
--noinst_PROGRAMS = \
-+bin_PROGRAMS = \
- 	modetest
-
- modetest_SOURCES = \
diff --git a/meta/recipes-graphics/drm/libdrm-2.4.25/installtests.patch b/meta/recipes-graphics/drm/libdrm-2.4.25/installtests.patch
new file mode 100644
index 0000000..2704ee6
--- /dev/null
+++ b/meta/recipes-graphics/drm/libdrm-2.4.25/installtests.patch
@@ -0,0 +1,49 @@
+tests: also install tests app
+
+Upstream-Status: Pending
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index bf1987f..d909e19 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -6,10 +6,11 @@ AM_CPPFLAGS = \
+ 
+ LDADD = $(top_builddir)/libdrm.la
+ 
+-check_PROGRAMS = \
++bin_PROGRAMS = \
+ 	dristat \
+ 	drmstat
+ 
++check_PROGRAMS =
+ SUBDIRS = modeprint
+ 
+ if HAVE_LIBKMS
+diff --git a/tests/modeprint/Makefile.am b/tests/modeprint/Makefile.am
+index c4862ac..7db76ea 100644
+--- a/tests/modeprint/Makefile.am
++++ b/tests/modeprint/Makefile.am
+@@ -2,7 +2,7 @@ AM_CFLAGS = \
+ 	-I$(top_srcdir)/include/drm \
+ 	-I$(top_srcdir)
+ 
+-noinst_PROGRAMS = \
++bin_PROGRAMS = \
+ 	modeprint
+ 
+ modeprint_SOURCES = \
+diff --git a/tests/modetest/Makefile.am b/tests/modetest/Makefile.am
+index 2191242..1d2c1b0 100644
+--- a/tests/modetest/Makefile.am
++++ b/tests/modetest/Makefile.am
+@@ -4,7 +4,7 @@ AM_CFLAGS = \
+ 	-I$(top_srcdir) \
+ 	$(CAIRO_CFLAGS)
+ 
+-noinst_PROGRAMS = \
++bin_PROGRAMS = \
+ 	modetest
+ 
+ modetest_SOURCES = \
diff --git a/meta/recipes-graphics/drm/libdrm_2.4.23.bb b/meta/recipes-graphics/drm/libdrm_2.4.25.bb
similarity index 54%
rename from meta/recipes-graphics/drm/libdrm_2.4.23.bb
rename to meta/recipes-graphics/drm/libdrm_2.4.25.bb
index 1546cea..177e444 100644
--- a/meta/recipes-graphics/drm/libdrm_2.4.23.bb
+++ b/meta/recipes-graphics/drm/libdrm_2.4.25.bb
@@ -3,7 +3,8 @@ require libdrm.inc
 LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
 
 SRC_URI += "file://installtests.patch"
-SRC_URI[md5sum] = "7577ff36ec364d88fae466d4f7fc5fc6"
-SRC_URI[sha256sum] = "c0f06d68c3edba7a1ad937f5481a8c287efd4cd368cee66cd9e678b06a911c18"
+
+SRC_URI[md5sum] = "f53dc4c72109b17908e4113c3b8addfe"
+SRC_URI[sha256sum] = "51f99a815a18876977991bbc6f190607791d25a6e47a3269880ce7679dbd0e9f"
 
 PR = "r0"
-- 
1.7.1.1




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

* [PATCH 40/58] mesa: upgrade to 7.10.2
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (38 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 39/58] libdrm: upgrade from 2.4.23 to 2.4.25 Saul Wold
@ 2011-04-16  6:54 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 41/58] xf86-input-mouse: upgrade from 1.6 to 1.7 Saul Wold
                   ` (18 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:54 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 613995 bytes --]

From: Yu Ke <ke.yu@intel.com>

- also remove the talloc-removal.patch because it is already
  included in this version

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 .../mesa/files/talloc-removal.patch                |15571 --------------------
 .../mesa/{mesa-dri_7.10.bb => mesa-dri_7.10.2.bb}  |    7 +-
 .../{mesa-xlib_7.10.bb => mesa-xlib_7.10.2.bb}     |    7 +-
 4 files changed, 7 insertions(+), 15580 deletions(-)
 delete mode 100644 meta/recipes-graphics/mesa/files/talloc-removal.patch
 rename meta/recipes-graphics/mesa/{mesa-dri_7.10.bb => mesa-dri_7.10.2.bb} (85%)
 rename meta/recipes-graphics/mesa/{mesa-xlib_7.10.bb => mesa-xlib_7.10.2.bb} (68%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 46fd104..109491f 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -135,7 +135,7 @@ PREFERRED_VERSION_xtrans-native ?= "1.2.6"
 PREFERRED_VERSION_xtrans-nativesdk ?= "1.2.6"
 PREFERRED_VERSION_xvinfo ?= "1.1.1"
 PREFERRED_VERSION_xwininfo ?= "1.1.1"
-PREFERRED_VERSION_mesa-dri ?= "7.10"
+PREFERRED_VERSION_mesa-dri ?= "7.10.2"
 PREFERRED_VERSION_libdrm ?= "2.4.25"
 PREFERRED_VERSION_xcb-proto ?= "1.6"
 PREFERRED_VERSION_libxcb ?= "1.7"
diff --git a/meta/recipes-graphics/mesa/files/talloc-removal.patch b/meta/recipes-graphics/mesa/files/talloc-removal.patch
deleted file mode 100644
index 3038f6a..0000000
--- a/meta/recipes-graphics/mesa/files/talloc-removal.patch
+++ /dev/null
@@ -1,15571 +0,0 @@
-mesa: sync with mesa 7.10.1 devel branch to replace GPLv3 talloc with BSD-license ralloc
-
-mesa 7.10.1 devel branch already has the patch to replace talloc with ralloc, so this patch is the diff of mesa-7.10(7a3f869a4) and mesa 7.10.1 ralloc commit (546aade2)
-
-Pick-from-upstream-by: Yu Ke <ke.yu@intel.com>
-
-diff --git a/Makefile b/Makefile
-index d62ec43..32a5f2f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -180,7 +180,7 @@ ultrix-gcc:
- 
- # Rules for making release tarballs
- 
--VERSION=7.10
-+VERSION=7.10.1-devel
- DIRECTORY = Mesa-$(VERSION)
- LIB_NAME = MesaLib-$(VERSION)
- GLUT_NAME = MesaGLUT-$(VERSION)
-diff --git a/configs/autoconf.in b/configs/autoconf.in
-index e2d70c6..1538d9a 100644
---- a/configs/autoconf.in
-+++ b/configs/autoconf.in
-@@ -34,9 +34,6 @@ LLVM_LIBS = @LLVM_LIBS@
- GLW_CFLAGS = @GLW_CFLAGS@
- GLUT_CFLAGS = @GLUT_CFLAGS@
- 
--TALLOC_LIBS = @TALLOC_LIBS@
--TALLOC_CFLAGS = @TALLOC_CFLAGS@
--
- # dlopen
- DLOPEN_LIBS = @DLOPEN_LIBS@
- 
-diff --git a/configs/default b/configs/default
-index 0301345..2301a68 100644
---- a/configs/default
-+++ b/configs/default
-@@ -82,9 +82,6 @@ GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)*
- GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
- VG_LIB_GLOB = $(VG_LIB_NAME)*
- 
--TALLOC_LIBS = `pkg-config --libs talloc`
--TALLOC_CFLAGS = `pkg-config --cflags talloc`
--
- # Optional assembly language optimization files for libGL
- MESA_ASM_SOURCES = 
- 
-@@ -119,7 +116,7 @@ EGL_CLIENT_APIS = $(GL_LIB)
- 
- # Library dependencies
- #EXTRA_LIB_PATH ?=
--GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread $(TALLOC_LIBS)
-+GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
- EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread
- OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
- GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
-diff --git a/configs/linux-dri b/configs/linux-dri
-index 64fc407..1c94ed0 100644
---- a/configs/linux-dri
-+++ b/configs/linux-dri
-@@ -45,7 +45,7 @@ EXTRA_LIB_PATH=-L/usr/X11R6/lib
- 
- LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
- LIBDRM_LIB = $(shell pkg-config --libs libdrm)
--DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -ltalloc $(LIBDRM_LIB)
-+DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
- GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
- 		-lm -lpthread -ldl $(LIBDRM_LIB)
- 
-diff --git a/configs/linux-llvm b/configs/linux-llvm
-index 22de066..e699953 100644
---- a/configs/linux-llvm
-+++ b/configs/linux-llvm
-@@ -41,4 +41,4 @@ else
- endif
- 
- LD = g++
--GL_LIB_DEPS = $(LLVM_LDFLAGS) $(LLVM_LIBS) $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -ltalloc -lstdc++ -ludis86
-+GL_LIB_DEPS = $(LLVM_LDFLAGS) $(LLVM_LIBS) $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -lstdc++ -ludis86
-diff --git a/configure.ac b/configure.ac
-index b451f7c..6662b8a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -572,10 +572,6 @@ xno)
-     ;;
- esac
- 
--PKG_CHECK_MODULES([TALLOC], [talloc])
--AC_SUBST([TALLOC_LIBS])
--AC_SUBST([TALLOC_CFLAGS])
--
- dnl
- dnl Driver specific build directories
- dnl
-@@ -714,8 +710,8 @@ xlib)
-         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
-         GL_PC_CFLAGS="$X11_INCLUDES"
-     fi
--    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
--    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
-+    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
-+    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
- 
-     # if static, move the external libraries to the programs
-     # and empty the libraries for libGL
-@@ -964,7 +960,7 @@ if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
-     fi
- 
-     # put all the necessary libs together
--    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
-+    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
- fi
- AC_SUBST([DRI_DIRS])
- AC_SUBST([EXPAT_INCLUDES])
-@@ -1040,12 +1036,12 @@ case "$DRIVER_DIRS" in
- *osmesa*)
-     # only link libraries with osmesa if shared
-     if test "$enable_static" = no; then
--        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
-+        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
-     else
-         OSMESA_LIB_DEPS=""
-     fi
-     OSMESA_MESA_DEPS=""
--    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
-+    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
-     ;;
- esac
- AC_SUBST([OSMESA_LIB_DEPS])
-diff --git a/docs/news.html b/docs/news.html
-index 72d38ee..ce0cd0c 100644
---- a/docs/news.html
-+++ b/docs/news.html
-@@ -11,6 +11,19 @@
- <H1>News</H1>
- 
- 
-+<h2>January 7, 2011</h2>
-+
-+<p>
-+<a href="relnotes-7.10.html">Mesa 7.10</a> (final) is released.  This is a new
-+development release.
-+</p>
-+
-+<p>
-+Also, <a href="relnotes-7.9.1.html">Mesa 7.9.1</a> (final) is released.
-+This is a bug fix release.
-+</p>
-+
-+
- <h2>October 4, 2010</h2>
- 
- <p>
-diff --git a/docs/relnotes-7.10.1.html b/docs/relnotes-7.10.1.html
-new file mode 100644
-index 0000000..1cd8d85
---- /dev/null
-+++ b/docs/relnotes-7.10.1.html
-@@ -0,0 +1,84 @@
-+<HTML>
-+
-+<head>
-+<TITLE>Mesa Release Notes</TITLE>
-+<link rel="stylesheet" type="text/css" href="mesa.css">
-+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-+</head>
-+
-+<BODY>
-+
-+<body bgcolor="#eeeeee">
-+
-+<H1>Mesa 7.10.1 Release Notes / TBD</H1>
-+
-+<p>
-+Mesa 7.10.1 is a bug fix release which fixes bugs found since the 7.10 release.
-+</p>
-+<p>
-+Mesa 7.10.1 implements the OpenGL 2.1 API, but the version reported by
-+glGetString(GL_VERSION) depends on the particular driver being used.
-+Some drivers don't support all the features required in OpenGL 2.1.
-+</p>
-+<p>
-+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
-+for DRI hardware acceleration.
-+</p>
-+
-+
-+<h2>MD5 checksums</h2>
-+<pre>
-+TBD
-+</pre>
-+
-+
-+<h2>New features</h2>
-+<p>None.</p>
-+
-+<h2>Bug fixes</h2>
-+<p>This list is likely incomplete.</p>
-+<ul>
-+<li>Fix an off-by-one bug in a vsplit assertion.</li>
-+<li>Fix incorrect handling of <tt>layout</tt> qualifier
-+with <tt>in</tt>, <tt>out</tt>, <tt>attribute</tt>, and <tt>varying</tt>.</li>
-+
-+<li>Fix an i965 shader bug where the negative absolute value was generated instead of the absolute value of a negation.</li>
-+
-+<li>Fix numerous issues handling precision qualifiers in GLSL ES.</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29164">Bug 29164</a> - [GLSL 1.20] invariant variable shouldn't be used before declaration</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30156">Bug 30156</a> - [i965] After updating to Mesa 7.9, Civilization IV starts to show garbage</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31923">Bug 31923</a> - [GLSL 1.20] allowing inconsistent centroid declaration between two vertex shaders</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31925">Bug 31925</a> - [GLSL 1.20] "#pragma STDGL invariant(all)" fail</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32695">Bug 32695</a> - [glsl] SIGSEGV glcpp/glcpp-parse.y:833</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32831">Bug 32831</a> - [glsl] division by zero crashes GLSL compiler</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32910">Bug 32910</a> - Keywords 'in' and 'out' not handled properly for GLSL 1.20 shaders</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33219">Bug 33219</a> -[GLSL bisected] implicit sized array triggers segfault in ir_to_mesa_visitor::copy_propagate</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33308">Bug 33308</a> -[glsl] ast_to_hir.cpp:3016: virtual ir_rvalue* ast_jump_statement::hir(exec_list*, _mesa_glsl_parse_state*): Assertion `ret != __null' failed.</li>
-+
-+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33316">Bug 33316</a> - uniform array will be allocate one line more and initialize it when it was freed will abort</li>
-+
-+<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
-+
-+</ul>
-+
-+
-+<h2>Changes</h2>
-+<p>The full set of changes can be viewed by using the following GIT command:</p>
-+
-+<pre>
-+  git log mesa-7.10..origin/7.10
-+</pre>
-+
-+</p>
-+
-+</body>
-+</html>
-diff --git a/docs/relnotes-7.10.html b/docs/relnotes-7.10.html
-index 2abbc4a..3f4f229 100644
---- a/docs/relnotes-7.10.html
-+++ b/docs/relnotes-7.10.html
-@@ -1,8 +1,10 @@
- <HTML>
- 
-+<head>
- <TITLE>Mesa Release Notes</TITLE>
--
--<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
-+<link rel="stylesheet" type="text/css" href="mesa.css">
-+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-+</head>
- 
- <BODY>
- 
-@@ -28,7 +30,12 @@ for DRI hardware acceleration.
- 
- <h2>MD5 checksums</h2>
- <pre>
--tbd
-+0a70c15c135561824bdcae92bf232e43  MesaLib-7.10.tar.gz
-+33fb94eccc02cbb4d8d1365615e38e46  MesaLib-7.10.tar.bz2
-+5cafdc0eda0f9bf370b95c98df3338fa  MesaLib-7.10.zip
-+bc644be551ed585fc4f66c16b64a91c9  MesaGLUT-7.10.tar.gz
-+5c2677a155672352d62b177e4f0f92e8  MesaGLUT-7.10.tar.bz2
-+2ce5001f74496d1ba719ef74d910a5cf  MesaGLUT-7.10.zip
- </pre>
- 
- 
-diff --git a/docs/relnotes-7.9.1.html b/docs/relnotes-7.9.1.html
-index a46eb16..bef4ef1 100644
---- a/docs/relnotes-7.9.1.html
-+++ b/docs/relnotes-7.9.1.html
-@@ -1,8 +1,10 @@
- <HTML>
- 
-+<head>
- <TITLE>Mesa Release Notes</TITLE>
--
--<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
-+<link rel="stylesheet" type="text/css" href="mesa.css">
-+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-+</head>
- 
- <BODY>
- 
-diff --git a/docs/relnotes.html b/docs/relnotes.html
-index 4487af9..036d3f8 100644
---- a/docs/relnotes.html
-+++ b/docs/relnotes.html
-@@ -13,6 +13,8 @@ The release notes summarize what's new or changed in each Mesa release.
- </p>
- 
- <UL>
-+<LI><A HREF="relnotes-7.10.html">7.10 release notes</A>
-+<LI><A HREF="relnotes-7.9.1html">7.9.1 release notes</A>
- <LI><A HREF="relnotes-7.9.html">7.9 release notes</A>
- <LI><A HREF="relnotes-7.8.3.html">7.8.3 release notes</A>
- <LI><A HREF="relnotes-7.8.2.html">7.8.2 release notes</A>
-diff --git a/include/GL/gl_mangle.h b/include/GL/gl_mangle.h
-index 43d2e89..3684803 100644
---- a/include/GL/gl_mangle.h
-+++ b/include/GL/gl_mangle.h
-@@ -31,6 +31,7 @@
- 
- #define glAccum		MANGLE(Accum)
- #define glActiveProgramEXT		MANGLE(ActiveProgramEXT)
-+#define glActiveShaderProgram		MANGLE(ActiveShaderProgram)
- #define glActiveStencilFaceEXT		MANGLE(ActiveStencilFaceEXT)
- #define glActiveTextureARB		MANGLE(ActiveTextureARB)
- #define glActiveTexture		MANGLE(ActiveTexture)
-@@ -56,6 +57,7 @@
- #define glBeginOcclusionQueryNV		MANGLE(BeginOcclusionQueryNV)
- #define glBeginPerfMonitorAMD		MANGLE(BeginPerfMonitorAMD)
- #define glBeginQueryARB		MANGLE(BeginQueryARB)
-+#define glBeginQueryIndexed		MANGLE(BeginQueryIndexed)
- #define glBeginQuery		MANGLE(BeginQuery)
- #define glBeginTransformFeedbackEXT		MANGLE(BeginTransformFeedbackEXT)
- #define glBeginTransformFeedback		MANGLE(BeginTransformFeedback)
-@@ -75,22 +77,27 @@
- #define glBindBufferRange		MANGLE(BindBufferRange)
- #define glBindBufferRangeNV		MANGLE(BindBufferRangeNV)
- #define glBindFragDataLocationEXT		MANGLE(BindFragDataLocationEXT)
-+#define glBindFragDataLocationIndexed		MANGLE(BindFragDataLocationIndexed)
- #define glBindFragDataLocation		MANGLE(BindFragDataLocation)
- #define glBindFragmentShaderATI		MANGLE(BindFragmentShaderATI)
- #define glBindFramebufferEXT		MANGLE(BindFramebufferEXT)
- #define glBindFramebuffer		MANGLE(BindFramebuffer)
-+#define glBindImageTextureEXT		MANGLE(BindImageTextureEXT)
- #define glBindLightParameterEXT		MANGLE(BindLightParameterEXT)
- #define glBindMaterialParameterEXT		MANGLE(BindMaterialParameterEXT)
- #define glBindMultiTextureEXT		MANGLE(BindMultiTextureEXT)
- #define glBindParameterEXT		MANGLE(BindParameterEXT)
- #define glBindProgramARB		MANGLE(BindProgramARB)
- #define glBindProgramNV		MANGLE(BindProgramNV)
-+#define glBindProgramPipeline		MANGLE(BindProgramPipeline)
- #define glBindRenderbufferEXT		MANGLE(BindRenderbufferEXT)
- #define glBindRenderbuffer		MANGLE(BindRenderbuffer)
-+#define glBindSampler		MANGLE(BindSampler)
- #define glBindTexGenParameterEXT		MANGLE(BindTexGenParameterEXT)
- #define glBindTextureEXT		MANGLE(BindTextureEXT)
- #define glBindTexture		MANGLE(BindTexture)
- #define glBindTextureUnitParameterEXT		MANGLE(BindTextureUnitParameterEXT)
-+#define glBindTransformFeedback		MANGLE(BindTransformFeedback)
- #define glBindTransformFeedbackNV		MANGLE(BindTransformFeedbackNV)
- #define glBindVertexArrayAPPLE		MANGLE(BindVertexArrayAPPLE)
- #define glBindVertexArray		MANGLE(BindVertexArray)
-@@ -112,18 +119,22 @@
- #define glBlendColorEXT		MANGLE(BlendColorEXT)
- #define glBlendColor		MANGLE(BlendColor)
- #define glBlendEquationEXT		MANGLE(BlendEquationEXT)
-+#define glBlendEquationiARB		MANGLE(BlendEquationiARB)
- #define glBlendEquationi		MANGLE(BlendEquationi)
- #define glBlendEquationIndexedAMD		MANGLE(BlendEquationIndexedAMD)
- #define glBlendEquation		MANGLE(BlendEquation)
- #define glBlendEquationSeparateATI		MANGLE(BlendEquationSeparateATI)
- #define glBlendEquationSeparateEXT		MANGLE(BlendEquationSeparateEXT)
-+#define glBlendEquationSeparateiARB		MANGLE(BlendEquationSeparateiARB)
- #define glBlendEquationSeparatei		MANGLE(BlendEquationSeparatei)
- #define glBlendEquationSeparateIndexedAMD		MANGLE(BlendEquationSeparateIndexedAMD)
- #define glBlendEquationSeparate		MANGLE(BlendEquationSeparate)
-+#define glBlendFunciARB		MANGLE(BlendFunciARB)
- #define glBlendFunci		MANGLE(BlendFunci)
- #define glBlendFuncIndexedAMD		MANGLE(BlendFuncIndexedAMD)
- #define glBlendFunc		MANGLE(BlendFunc)
- #define glBlendFuncSeparateEXT		MANGLE(BlendFuncSeparateEXT)
-+#define glBlendFuncSeparateiARB		MANGLE(BlendFuncSeparateiARB)
- #define glBlendFuncSeparatei		MANGLE(BlendFuncSeparatei)
- #define glBlendFuncSeparateIndexedAMD		MANGLE(BlendFuncSeparateIndexedAMD)
- #define glBlendFuncSeparateINGR		MANGLE(BlendFuncSeparateINGR)
-@@ -153,6 +164,7 @@
- #define glClearColor		MANGLE(ClearColor)
- #define glClearDebugLogMESA		MANGLE(ClearDebugLogMESA)
- #define glClearDepthdNV		MANGLE(ClearDepthdNV)
-+#define glClearDepthf		MANGLE(ClearDepthf)
- #define glClearDepth		MANGLE(ClearDepth)
- #define glClearIndex		MANGLE(ClearIndex)
- #define glClear		MANGLE(Clear)
-@@ -215,6 +227,10 @@
- #define glColorMaskIndexedEXT		MANGLE(ColorMaskIndexedEXT)
- #define glColorMask		MANGLE(ColorMask)
- #define glColorMaterial		MANGLE(ColorMaterial)
-+#define glColorP3ui		MANGLE(ColorP3ui)
-+#define glColorP3uiv		MANGLE(ColorP3uiv)
-+#define glColorP4ui		MANGLE(ColorP4ui)
-+#define glColorP4uiv		MANGLE(ColorP4uiv)
- #define glColorPointerEXT		MANGLE(ColorPointerEXT)
- #define glColorPointerListIBM		MANGLE(ColorPointerListIBM)
- #define glColorPointer		MANGLE(ColorPointer)
-@@ -236,6 +252,7 @@
- #define glCombinerParameterivNV		MANGLE(CombinerParameterivNV)
- #define glCombinerStageParameterfvNV		MANGLE(CombinerStageParameterfvNV)
- #define glCompileShaderARB		MANGLE(CompileShaderARB)
-+#define glCompileShaderIncludeARB		MANGLE(CompileShaderIncludeARB)
- #define glCompileShader		MANGLE(CompileShader)
- #define glCompressedMultiTexImage1DEXT		MANGLE(CompressedMultiTexImage1DEXT)
- #define glCompressedMultiTexImage2DEXT		MANGLE(CompressedMultiTexImage2DEXT)
-@@ -310,10 +327,18 @@
- #define glCreateShader		MANGLE(CreateShader)
- #define glCreateShaderObjectARB		MANGLE(CreateShaderObjectARB)
- #define glCreateShaderProgramEXT		MANGLE(CreateShaderProgramEXT)
-+#define glCreateShaderProgramv		MANGLE(CreateShaderProgramv)
-+#define glCreateSyncFromCLeventARB		MANGLE(CreateSyncFromCLeventARB)
- #define glCullFace		MANGLE(CullFace)
- #define glCullParameterdvEXT		MANGLE(CullParameterdvEXT)
- #define glCullParameterfvEXT		MANGLE(CullParameterfvEXT)
- #define glCurrentPaletteMatrixARB		MANGLE(CurrentPaletteMatrixARB)
-+#define glDebugMessageCallbackAMD		MANGLE(DebugMessageCallbackAMD)
-+#define glDebugMessageCallbackARB		MANGLE(DebugMessageCallbackARB)
-+#define glDebugMessageControlARB		MANGLE(DebugMessageControlARB)
-+#define glDebugMessageEnableAMD		MANGLE(DebugMessageEnableAMD)
-+#define glDebugMessageInsertAMD		MANGLE(DebugMessageInsertAMD)
-+#define glDebugMessageInsertARB		MANGLE(DebugMessageInsertARB)
- #define glDeformationMap3dSGIX		MANGLE(DeformationMap3dSGIX)
- #define glDeformationMap3fSGIX		MANGLE(DeformationMap3fSGIX)
- #define glDeformSGIX		MANGLE(DeformSGIX)
-@@ -326,20 +351,25 @@
- #define glDeleteFramebuffersEXT		MANGLE(DeleteFramebuffersEXT)
- #define glDeleteFramebuffers		MANGLE(DeleteFramebuffers)
- #define glDeleteLists		MANGLE(DeleteLists)
-+#define glDeleteNamedStringARB		MANGLE(DeleteNamedStringARB)
-+#define glDeleteNamesAMD		MANGLE(DeleteNamesAMD)
- #define glDeleteObjectARB		MANGLE(DeleteObjectARB)
- #define glDeleteOcclusionQueriesNV		MANGLE(DeleteOcclusionQueriesNV)
- #define glDeletePerfMonitorsAMD		MANGLE(DeletePerfMonitorsAMD)
- #define glDeleteProgram		MANGLE(DeleteProgram)
-+#define glDeleteProgramPipelines		MANGLE(DeleteProgramPipelines)
- #define glDeleteProgramsARB		MANGLE(DeleteProgramsARB)
- #define glDeleteProgramsNV		MANGLE(DeleteProgramsNV)
- #define glDeleteQueriesARB		MANGLE(DeleteQueriesARB)
- #define glDeleteQueries		MANGLE(DeleteQueries)
- #define glDeleteRenderbuffersEXT		MANGLE(DeleteRenderbuffersEXT)
- #define glDeleteRenderbuffers		MANGLE(DeleteRenderbuffers)
-+#define glDeleteSamplers		MANGLE(DeleteSamplers)
- #define glDeleteShader		MANGLE(DeleteShader)
- #define glDeleteSync		MANGLE(DeleteSync)
- #define glDeleteTexturesEXT		MANGLE(DeleteTexturesEXT)
- #define glDeleteTextures		MANGLE(DeleteTextures)
-+#define glDeleteTransformFeedbacks		MANGLE(DeleteTransformFeedbacks)
- #define glDeleteTransformFeedbacksNV		MANGLE(DeleteTransformFeedbacksNV)
- #define glDeleteVertexArraysAPPLE		MANGLE(DeleteVertexArraysAPPLE)
- #define glDeleteVertexArrays		MANGLE(DeleteVertexArrays)
-@@ -348,7 +378,10 @@
- #define glDepthBoundsEXT		MANGLE(DepthBoundsEXT)
- #define glDepthFunc		MANGLE(DepthFunc)
- #define glDepthMask		MANGLE(DepthMask)
-+#define glDepthRangeArrayv		MANGLE(DepthRangeArrayv)
- #define glDepthRangedNV		MANGLE(DepthRangedNV)
-+#define glDepthRangef		MANGLE(DepthRangef)
-+#define glDepthRangeIndexed		MANGLE(DepthRangeIndexed)
- #define glDepthRange		MANGLE(DepthRange)
- #define glDetachObjectARB		MANGLE(DetachObjectARB)
- #define glDetachShader		MANGLE(DetachShader)
-@@ -363,6 +396,7 @@
- #define glDisableVertexAttribArrayARB		MANGLE(DisableVertexAttribArrayARB)
- #define glDisableVertexAttribArray		MANGLE(DisableVertexAttribArray)
- #define glDrawArraysEXT		MANGLE(DrawArraysEXT)
-+#define glDrawArraysIndirect		MANGLE(DrawArraysIndirect)
- #define glDrawArraysInstancedARB		MANGLE(DrawArraysInstancedARB)
- #define glDrawArraysInstancedEXT		MANGLE(DrawArraysInstancedEXT)
- #define glDrawArraysInstanced		MANGLE(DrawArraysInstanced)
-@@ -374,6 +408,7 @@
- #define glDrawElementArrayAPPLE		MANGLE(DrawElementArrayAPPLE)
- #define glDrawElementArrayATI		MANGLE(DrawElementArrayATI)
- #define glDrawElementsBaseVertex		MANGLE(DrawElementsBaseVertex)
-+#define glDrawElementsIndirect		MANGLE(DrawElementsIndirect)
- #define glDrawElementsInstancedARB		MANGLE(DrawElementsInstancedARB)
- #define glDrawElementsInstancedBaseVertex		MANGLE(DrawElementsInstancedBaseVertex)
- #define glDrawElementsInstancedEXT		MANGLE(DrawElementsInstancedEXT)
-@@ -386,7 +421,9 @@
- #define glDrawRangeElementsBaseVertex		MANGLE(DrawRangeElementsBaseVertex)
- #define glDrawRangeElementsEXT		MANGLE(DrawRangeElementsEXT)
- #define glDrawRangeElements		MANGLE(DrawRangeElements)
-+#define glDrawTransformFeedback		MANGLE(DrawTransformFeedback)
- #define glDrawTransformFeedbackNV		MANGLE(DrawTransformFeedbackNV)
-+#define glDrawTransformFeedbackStream		MANGLE(DrawTransformFeedbackStream)
- #define glEdgeFlagFormatNV		MANGLE(EdgeFlagFormatNV)
- #define glEdgeFlag		MANGLE(EdgeFlag)
- #define glEdgeFlagPointerEXT		MANGLE(EdgeFlagPointerEXT)
-@@ -414,6 +451,7 @@
- #define glEndOcclusionQueryNV		MANGLE(EndOcclusionQueryNV)
- #define glEndPerfMonitorAMD		MANGLE(EndPerfMonitorAMD)
- #define glEndQueryARB		MANGLE(EndQueryARB)
-+#define glEndQueryIndexed		MANGLE(EndQueryIndexed)
- #define glEndQuery		MANGLE(EndQuery)
- #define glEndTransformFeedbackEXT		MANGLE(EndTransformFeedbackEXT)
- #define glEndTransformFeedback		MANGLE(EndTransformFeedback)
-@@ -447,6 +485,7 @@
- #define glFlush		MANGLE(Flush)
- #define glFlushMappedBufferRangeAPPLE		MANGLE(FlushMappedBufferRangeAPPLE)
- #define glFlushMappedBufferRange		MANGLE(FlushMappedBufferRange)
-+#define glFlushMappedNamedBufferRangeEXT		MANGLE(FlushMappedNamedBufferRangeEXT)
- #define glFlushPixelDataRangeNV		MANGLE(FlushPixelDataRangeNV)
- #define glFlushRasterSGIX		MANGLE(FlushRasterSGIX)
- #define glFlushVertexArrayRangeAPPLE		MANGLE(FlushVertexArrayRangeAPPLE)
-@@ -498,7 +537,6 @@
- #define glFramebufferTextureEXT		MANGLE(FramebufferTextureEXT)
- #define glFramebufferTextureFaceARB		MANGLE(FramebufferTextureFaceARB)
- #define glFramebufferTextureFaceEXT		MANGLE(FramebufferTextureFaceEXT)
--#define glFramebufferTextureFace		MANGLE(FramebufferTextureFace)
- #define glFramebufferTextureLayerARB		MANGLE(FramebufferTextureLayerARB)
- #define glFramebufferTextureLayerEXT		MANGLE(FramebufferTextureLayerEXT)
- #define glFramebufferTextureLayer		MANGLE(FramebufferTextureLayer)
-@@ -521,23 +559,30 @@
- #define glGenFramebuffersEXT		MANGLE(GenFramebuffersEXT)
- #define glGenFramebuffers		MANGLE(GenFramebuffers)
- #define glGenLists		MANGLE(GenLists)
-+#define glGenNamesAMD		MANGLE(GenNamesAMD)
- #define glGenOcclusionQueriesNV		MANGLE(GenOcclusionQueriesNV)
- #define glGenPerfMonitorsAMD		MANGLE(GenPerfMonitorsAMD)
-+#define glGenProgramPipelines		MANGLE(GenProgramPipelines)
- #define glGenProgramsARB		MANGLE(GenProgramsARB)
- #define glGenProgramsNV		MANGLE(GenProgramsNV)
- #define glGenQueriesARB		MANGLE(GenQueriesARB)
- #define glGenQueries		MANGLE(GenQueries)
- #define glGenRenderbuffersEXT		MANGLE(GenRenderbuffersEXT)
- #define glGenRenderbuffers		MANGLE(GenRenderbuffers)
-+#define glGenSamplers		MANGLE(GenSamplers)
- #define glGenSymbolsEXT		MANGLE(GenSymbolsEXT)
- #define glGenTexturesEXT		MANGLE(GenTexturesEXT)
- #define glGenTextures		MANGLE(GenTextures)
-+#define glGenTransformFeedbacks		MANGLE(GenTransformFeedbacks)
- #define glGenTransformFeedbacksNV		MANGLE(GenTransformFeedbacksNV)
- #define glGenVertexArraysAPPLE		MANGLE(GenVertexArraysAPPLE)
- #define glGenVertexArrays		MANGLE(GenVertexArrays)
- #define glGenVertexShadersEXT		MANGLE(GenVertexShadersEXT)
- #define glGetActiveAttribARB		MANGLE(GetActiveAttribARB)
- #define glGetActiveAttrib		MANGLE(GetActiveAttrib)
-+#define glGetActiveSubroutineName		MANGLE(GetActiveSubroutineName)
-+#define glGetActiveSubroutineUniformiv		MANGLE(GetActiveSubroutineUniformiv)
-+#define glGetActiveSubroutineUniformName		MANGLE(GetActiveSubroutineUniformName)
- #define glGetActiveUniformARB		MANGLE(GetActiveUniformARB)
- #define glGetActiveUniformBlockiv		MANGLE(GetActiveUniformBlockiv)
- #define glGetActiveUniformBlockName		MANGLE(GetActiveUniformBlockName)
-@@ -589,16 +634,21 @@
- #define glGetConvolutionParameteriv		MANGLE(GetConvolutionParameteriv)
- #define glGetDebugLogLengthMESA		MANGLE(GetDebugLogLengthMESA)
- #define glGetDebugLogMESA		MANGLE(GetDebugLogMESA)
-+#define glGetDebugMessageLogAMD		MANGLE(GetDebugMessageLogAMD)
-+#define glGetDebugMessageLogARB		MANGLE(GetDebugMessageLogARB)
- #define glGetDetailTexFuncSGIS		MANGLE(GetDetailTexFuncSGIS)
- #define glGetDoubleIndexedvEXT		MANGLE(GetDoubleIndexedvEXT)
-+#define glGetDoublei_v		MANGLE(GetDoublei_v)
- #define glGetDoublev		MANGLE(GetDoublev)
- #define glGetError		MANGLE(GetError)
- #define glGetFenceivNV		MANGLE(GetFenceivNV)
- #define glGetFinalCombinerInputParameterfvNV		MANGLE(GetFinalCombinerInputParameterfvNV)
- #define glGetFinalCombinerInputParameterivNV		MANGLE(GetFinalCombinerInputParameterivNV)
- #define glGetFloatIndexedvEXT		MANGLE(GetFloatIndexedvEXT)
-+#define glGetFloati_v		MANGLE(GetFloati_v)
- #define glGetFloatv		MANGLE(GetFloatv)
- #define glGetFogFuncSGIS		MANGLE(GetFogFuncSGIS)
-+#define glGetFragDataIndex		MANGLE(GetFragDataIndex)
- #define glGetFragDataLocationEXT		MANGLE(GetFragDataLocationEXT)
- #define glGetFragDataLocation		MANGLE(GetFragDataLocation)
- #define glGetFragmentLightfvSGIX		MANGLE(GetFragmentLightfvSGIX)
-@@ -608,6 +658,7 @@
- #define glGetFramebufferAttachmentParameterivEXT		MANGLE(GetFramebufferAttachmentParameterivEXT)
- #define glGetFramebufferAttachmentParameteriv		MANGLE(GetFramebufferAttachmentParameteriv)
- #define glGetFramebufferParameterivEXT		MANGLE(GetFramebufferParameterivEXT)
-+#define glGetGraphicsResetStatusARB		MANGLE(GetGraphicsResetStatusARB)
- #define glGetHandleARB		MANGLE(GetHandleARB)
- #define glGetHistogramEXT		MANGLE(GetHistogramEXT)
- #define glGetHistogram		MANGLE(GetHistogram)
-@@ -678,6 +729,26 @@
- #define glGetNamedProgramLocalParameterIuivEXT		MANGLE(GetNamedProgramLocalParameterIuivEXT)
- #define glGetNamedProgramStringEXT		MANGLE(GetNamedProgramStringEXT)
- #define glGetNamedRenderbufferParameterivEXT		MANGLE(GetNamedRenderbufferParameterivEXT)
-+#define glGetNamedStringARB		MANGLE(GetNamedStringARB)
-+#define glGetNamedStringivARB		MANGLE(GetNamedStringivARB)
-+#define glGetnColorTableARB		MANGLE(GetnColorTableARB)
-+#define glGetnCompressedTexImageARB		MANGLE(GetnCompressedTexImageARB)
-+#define glGetnConvolutionFilterARB		MANGLE(GetnConvolutionFilterARB)
-+#define glGetnHistogramARB		MANGLE(GetnHistogramARB)
-+#define glGetnMapdvARB		MANGLE(GetnMapdvARB)
-+#define glGetnMapfvARB		MANGLE(GetnMapfvARB)
-+#define glGetnMapivARB		MANGLE(GetnMapivARB)
-+#define glGetnMinmaxARB		MANGLE(GetnMinmaxARB)
-+#define glGetnPixelMapfvARB		MANGLE(GetnPixelMapfvARB)
-+#define glGetnPixelMapuivARB		MANGLE(GetnPixelMapuivARB)
-+#define glGetnPixelMapusvARB		MANGLE(GetnPixelMapusvARB)
-+#define glGetnPolygonStippleARB		MANGLE(GetnPolygonStippleARB)
-+#define glGetnSeparableFilterARB		MANGLE(GetnSeparableFilterARB)
-+#define glGetnTexImageARB		MANGLE(GetnTexImageARB)
-+#define glGetnUniformdvARB		MANGLE(GetnUniformdvARB)
-+#define glGetnUniformfvARB		MANGLE(GetnUniformfvARB)
-+#define glGetnUniformivARB		MANGLE(GetnUniformivARB)
-+#define glGetnUniformuivARB		MANGLE(GetnUniformuivARB)
- #define glGetObjectBufferfvATI		MANGLE(GetObjectBufferfvATI)
- #define glGetObjectBufferivATI		MANGLE(GetObjectBufferivATI)
- #define glGetObjectParameterfvARB		MANGLE(GetObjectParameterfvARB)
-@@ -700,6 +771,7 @@
- #define glGetPointervEXT		MANGLE(GetPointervEXT)
- #define glGetPointerv		MANGLE(GetPointerv)
- #define glGetPolygonStipple		MANGLE(GetPolygonStipple)
-+#define glGetProgramBinary		MANGLE(GetProgramBinary)
- #define glGetProgramEnvParameterdvARB		MANGLE(GetProgramEnvParameterdvARB)
- #define glGetProgramEnvParameterfvARB		MANGLE(GetProgramEnvParameterfvARB)
- #define glGetProgramEnvParameterIivNV		MANGLE(GetProgramEnvParameterIivNV)
-@@ -716,28 +788,42 @@
- #define glGetProgramNamedParameterfvNV		MANGLE(GetProgramNamedParameterfvNV)
- #define glGetProgramParameterdvNV		MANGLE(GetProgramParameterdvNV)
- #define glGetProgramParameterfvNV		MANGLE(GetProgramParameterfvNV)
-+#define glGetProgramPipelineInfoLog		MANGLE(GetProgramPipelineInfoLog)
-+#define glGetProgramPipelineiv		MANGLE(GetProgramPipelineiv)
- #define glGetProgramRegisterfvMESA		MANGLE(GetProgramRegisterfvMESA)
-+#define glGetProgramStageiv		MANGLE(GetProgramStageiv)
- #define glGetProgramStringARB		MANGLE(GetProgramStringARB)
- #define glGetProgramStringNV		MANGLE(GetProgramStringNV)
-+#define glGetProgramSubroutineParameteruivNV		MANGLE(GetProgramSubroutineParameteruivNV)
-+#define glGetQueryIndexediv		MANGLE(GetQueryIndexediv)
- #define glGetQueryivARB		MANGLE(GetQueryivARB)
- #define glGetQueryiv		MANGLE(GetQueryiv)
- #define glGetQueryObjecti64vEXT		MANGLE(GetQueryObjecti64vEXT)
-+#define glGetQueryObjecti64v		MANGLE(GetQueryObjecti64v)
- #define glGetQueryObjectivARB		MANGLE(GetQueryObjectivARB)
- #define glGetQueryObjectiv		MANGLE(GetQueryObjectiv)
- #define glGetQueryObjectui64vEXT		MANGLE(GetQueryObjectui64vEXT)
-+#define glGetQueryObjectui64v		MANGLE(GetQueryObjectui64v)
- #define glGetQueryObjectuivARB		MANGLE(GetQueryObjectuivARB)
- #define glGetQueryObjectuiv		MANGLE(GetQueryObjectuiv)
- #define glGetRenderbufferParameterivEXT		MANGLE(GetRenderbufferParameterivEXT)
- #define glGetRenderbufferParameteriv		MANGLE(GetRenderbufferParameteriv)
-+#define glGetSamplerParameterfv		MANGLE(GetSamplerParameterfv)
-+#define glGetSamplerParameterIiv		MANGLE(GetSamplerParameterIiv)
-+#define glGetSamplerParameterIuiv		MANGLE(GetSamplerParameterIuiv)
-+#define glGetSamplerParameteriv		MANGLE(GetSamplerParameteriv)
- #define glGetSeparableFilterEXT		MANGLE(GetSeparableFilterEXT)
- #define glGetSeparableFilter		MANGLE(GetSeparableFilter)
- #define glGetShaderInfoLog		MANGLE(GetShaderInfoLog)
- #define glGetShaderiv		MANGLE(GetShaderiv)
-+#define glGetShaderPrecisionFormat		MANGLE(GetShaderPrecisionFormat)
- #define glGetShaderSourceARB		MANGLE(GetShaderSourceARB)
- #define glGetShaderSource		MANGLE(GetShaderSource)
- #define glGetSharpenTexFuncSGIS		MANGLE(GetSharpenTexFuncSGIS)
- #define glGetStringi		MANGLE(GetStringi)
- #define glGetString		MANGLE(GetString)
-+#define glGetSubroutineIndex		MANGLE(GetSubroutineIndex)
-+#define glGetSubroutineUniformLocation		MANGLE(GetSubroutineUniformLocation)
- #define glGetSynciv		MANGLE(GetSynciv)
- #define glGetTexBumpParameterfvATI		MANGLE(GetTexBumpParameterfvATI)
- #define glGetTexBumpParameterivATI		MANGLE(GetTexBumpParameterivATI)
-@@ -770,14 +856,17 @@
- #define glGetTransformFeedbackVaryingNV		MANGLE(GetTransformFeedbackVaryingNV)
- #define glGetUniformBlockIndex		MANGLE(GetUniformBlockIndex)
- #define glGetUniformBufferSizeEXT		MANGLE(GetUniformBufferSizeEXT)
-+#define glGetUniformdv		MANGLE(GetUniformdv)
- #define glGetUniformfvARB		MANGLE(GetUniformfvARB)
- #define glGetUniformfv		MANGLE(GetUniformfv)
-+#define glGetUniformi64vNV		MANGLE(GetUniformi64vNV)
- #define glGetUniformIndices		MANGLE(GetUniformIndices)
- #define glGetUniformivARB		MANGLE(GetUniformivARB)
- #define glGetUniformiv		MANGLE(GetUniformiv)
- #define glGetUniformLocationARB		MANGLE(GetUniformLocationARB)
- #define glGetUniformLocation		MANGLE(GetUniformLocation)
- #define glGetUniformOffsetEXT		MANGLE(GetUniformOffsetEXT)
-+#define glGetUniformSubroutineuiv		MANGLE(GetUniformSubroutineuiv)
- #define glGetUniformui64vNV		MANGLE(GetUniformui64vNV)
- #define glGetUniformuivEXT		MANGLE(GetUniformuivEXT)
- #define glGetUniformuiv		MANGLE(GetUniformuiv)
-@@ -803,6 +892,10 @@
- #define glGetVertexAttribivARB		MANGLE(GetVertexAttribivARB)
- #define glGetVertexAttribiv		MANGLE(GetVertexAttribiv)
- #define glGetVertexAttribivNV		MANGLE(GetVertexAttribivNV)
-+#define glGetVertexAttribLdvEXT		MANGLE(GetVertexAttribLdvEXT)
-+#define glGetVertexAttribLdv		MANGLE(GetVertexAttribLdv)
-+#define glGetVertexAttribLi64vNV		MANGLE(GetVertexAttribLi64vNV)
-+#define glGetVertexAttribLui64vNV		MANGLE(GetVertexAttribLui64vNV)
- #define glGetVertexAttribPointervARB		MANGLE(GetVertexAttribPointervARB)
- #define glGetVertexAttribPointerv		MANGLE(GetVertexAttribPointerv)
- #define glGetVertexAttribPointervNV		MANGLE(GetVertexAttribPointervNV)
-@@ -864,20 +957,25 @@
- #define glIsFramebufferEXT		MANGLE(IsFramebufferEXT)
- #define glIsFramebuffer		MANGLE(IsFramebuffer)
- #define glIsList		MANGLE(IsList)
-+#define glIsNameAMD		MANGLE(IsNameAMD)
- #define glIsNamedBufferResidentNV		MANGLE(IsNamedBufferResidentNV)
-+#define glIsNamedStringARB		MANGLE(IsNamedStringARB)
- #define glIsObjectBufferATI		MANGLE(IsObjectBufferATI)
- #define glIsOcclusionQueryNV		MANGLE(IsOcclusionQueryNV)
- #define glIsProgramARB		MANGLE(IsProgramARB)
- #define glIsProgram		MANGLE(IsProgram)
- #define glIsProgramNV		MANGLE(IsProgramNV)
-+#define glIsProgramPipeline		MANGLE(IsProgramPipeline)
- #define glIsQueryARB		MANGLE(IsQueryARB)
- #define glIsQuery		MANGLE(IsQuery)
- #define glIsRenderbufferEXT		MANGLE(IsRenderbufferEXT)
- #define glIsRenderbuffer		MANGLE(IsRenderbuffer)
-+#define glIsSampler		MANGLE(IsSampler)
- #define glIsShader		MANGLE(IsShader)
- #define glIsSync		MANGLE(IsSync)
- #define glIsTextureEXT		MANGLE(IsTextureEXT)
- #define glIsTexture		MANGLE(IsTexture)
-+#define glIsTransformFeedback		MANGLE(IsTransformFeedback)
- #define glIsTransformFeedbackNV		MANGLE(IsTransformFeedbackNV)
- #define glIsVariantEnabledEXT		MANGLE(IsVariantEnabledEXT)
- #define glIsVertexArrayAPPLE		MANGLE(IsVertexArrayAPPLE)
-@@ -915,6 +1013,8 @@
- #define glLogicOp		MANGLE(LogicOp)
- #define glMakeBufferNonResidentNV		MANGLE(MakeBufferNonResidentNV)
- #define glMakeBufferResidentNV		MANGLE(MakeBufferResidentNV)
-+#define glMakeNamedBufferNonResidentNV		MANGLE(MakeNamedBufferNonResidentNV)
-+#define glMakeNamedBufferResidentNV		MANGLE(MakeNamedBufferResidentNV)
- #define glMap1d		MANGLE(Map1d)
- #define glMap1f		MANGLE(Map1f)
- #define glMap2d		MANGLE(Map2d)
-@@ -928,6 +1028,7 @@
- #define glMapGrid2d		MANGLE(MapGrid2d)
- #define glMapGrid2f		MANGLE(MapGrid2f)
- #define glMapNamedBufferEXT		MANGLE(MapNamedBufferEXT)
-+#define glMapNamedBufferRangeEXT		MANGLE(MapNamedBufferRangeEXT)
- #define glMapObjectBufferATI		MANGLE(MapObjectBufferATI)
- #define glMapParameterfvNV		MANGLE(MapParameterfvNV)
- #define glMapParameterivNV		MANGLE(MapParameterivNV)
-@@ -963,8 +1064,10 @@
- #define glMatrixScalefEXT		MANGLE(MatrixScalefEXT)
- #define glMatrixTranslatedEXT		MANGLE(MatrixTranslatedEXT)
- #define glMatrixTranslatefEXT		MANGLE(MatrixTranslatefEXT)
-+#define glMemoryBarrierEXT		MANGLE(MemoryBarrierEXT)
- #define glMinmaxEXT		MANGLE(MinmaxEXT)
- #define glMinmax		MANGLE(Minmax)
-+#define glMinSampleShadingARB		MANGLE(MinSampleShadingARB)
- #define glMinSampleShading		MANGLE(MinSampleShading)
- #define glMultiDrawArraysEXT		MANGLE(MultiDrawArraysEXT)
- #define glMultiDrawArrays		MANGLE(MultiDrawArrays)
-@@ -1048,6 +1151,14 @@
- #define glMultiTexCoord4s		MANGLE(MultiTexCoord4s)
- #define glMultiTexCoord4svARB		MANGLE(MultiTexCoord4svARB)
- #define glMultiTexCoord4sv		MANGLE(MultiTexCoord4sv)
-+#define glMultiTexCoordP1ui		MANGLE(MultiTexCoordP1ui)
-+#define glMultiTexCoordP1uiv		MANGLE(MultiTexCoordP1uiv)
-+#define glMultiTexCoordP2ui		MANGLE(MultiTexCoordP2ui)
-+#define glMultiTexCoordP2uiv		MANGLE(MultiTexCoordP2uiv)
-+#define glMultiTexCoordP3ui		MANGLE(MultiTexCoordP3ui)
-+#define glMultiTexCoordP3uiv		MANGLE(MultiTexCoordP3uiv)
-+#define glMultiTexCoordP4ui		MANGLE(MultiTexCoordP4ui)
-+#define glMultiTexCoordP4uiv		MANGLE(MultiTexCoordP4uiv)
- #define glMultiTexCoordPointerEXT		MANGLE(MultiTexCoordPointerEXT)
- #define glMultiTexEnvfEXT		MANGLE(MultiTexEnvfEXT)
- #define glMultiTexEnvfvEXT		MANGLE(MultiTexEnvfvEXT)
-@@ -1080,6 +1191,7 @@
- #define glMultTransposeMatrixf		MANGLE(MultTransposeMatrixf)
- #define glNamedBufferDataEXT		MANGLE(NamedBufferDataEXT)
- #define glNamedBufferSubDataEXT		MANGLE(NamedBufferSubDataEXT)
-+#define glNamedCopyBufferSubDataEXT		MANGLE(NamedCopyBufferSubDataEXT)
- #define glNamedFramebufferRenderbufferEXT		MANGLE(NamedFramebufferRenderbufferEXT)
- #define glNamedFramebufferTexture1DEXT		MANGLE(NamedFramebufferTexture1DEXT)
- #define glNamedFramebufferTexture2DEXT		MANGLE(NamedFramebufferTexture2DEXT)
-@@ -1087,8 +1199,6 @@
- #define glNamedFramebufferTextureEXT		MANGLE(NamedFramebufferTextureEXT)
- #define glNamedFramebufferTextureFaceEXT		MANGLE(NamedFramebufferTextureFaceEXT)
- #define glNamedFramebufferTextureLayerEXT		MANGLE(NamedFramebufferTextureLayerEXT)
--#define glNamedMakeBufferNonResidentNV		MANGLE(NamedMakeBufferNonResidentNV)
--#define glNamedMakeBufferResidentNV		MANGLE(NamedMakeBufferResidentNV)
- #define glNamedProgramLocalParameter4dEXT		MANGLE(NamedProgramLocalParameter4dEXT)
- #define glNamedProgramLocalParameter4dvEXT		MANGLE(NamedProgramLocalParameter4dvEXT)
- #define glNamedProgramLocalParameter4fEXT		MANGLE(NamedProgramLocalParameter4fEXT)
-@@ -1104,6 +1214,7 @@
- #define glNamedRenderbufferStorageEXT		MANGLE(NamedRenderbufferStorageEXT)
- #define glNamedRenderbufferStorageMultisampleCoverageEXT		MANGLE(NamedRenderbufferStorageMultisampleCoverageEXT)
- #define glNamedRenderbufferStorageMultisampleEXT		MANGLE(NamedRenderbufferStorageMultisampleEXT)
-+#define glNamedStringARB		MANGLE(NamedStringARB)
- #define glNewList		MANGLE(NewList)
- #define glNewObjectBufferATI		MANGLE(NewObjectBufferATI)
- #define glNormal3b		MANGLE(Normal3b)
-@@ -1121,6 +1232,8 @@
- #define glNormal3s		MANGLE(Normal3s)
- #define glNormal3sv		MANGLE(Normal3sv)
- #define glNormalFormatNV		MANGLE(NormalFormatNV)
-+#define glNormalP3ui		MANGLE(NormalP3ui)
-+#define glNormalP3uiv		MANGLE(NormalP3uiv)
- #define glNormalPointerEXT		MANGLE(NormalPointerEXT)
- #define glNormalPointerListIBM		MANGLE(NormalPointerListIBM)
- #define glNormalPointer		MANGLE(NormalPointer)
-@@ -1140,6 +1253,9 @@
- #define glOrtho		MANGLE(Ortho)
- #define glPassTexCoordATI		MANGLE(PassTexCoordATI)
- #define glPassThrough		MANGLE(PassThrough)
-+#define glPatchParameterfv		MANGLE(PatchParameterfv)
-+#define glPatchParameteri		MANGLE(PatchParameteri)
-+#define glPauseTransformFeedback		MANGLE(PauseTransformFeedback)
- #define glPauseTransformFeedbackNV		MANGLE(PauseTransformFeedbackNV)
- #define glPixelDataRangeNV		MANGLE(PixelDataRangeNV)
- #define glPixelMapfv		MANGLE(PixelMapfv)
-@@ -1191,6 +1307,7 @@
- #define glPrimitiveRestartNV		MANGLE(PrimitiveRestartNV)
- #define glPrioritizeTexturesEXT		MANGLE(PrioritizeTexturesEXT)
- #define glPrioritizeTextures		MANGLE(PrioritizeTextures)
-+#define glProgramBinary		MANGLE(ProgramBinary)
- #define glProgramBufferParametersfvNV		MANGLE(ProgramBufferParametersfvNV)
- #define glProgramBufferParametersIivNV		MANGLE(ProgramBufferParametersIivNV)
- #define glProgramBufferParametersIuivNV		MANGLE(ProgramBufferParametersIuivNV)
-@@ -1231,39 +1348,123 @@
- #define glProgramParameters4dvNV		MANGLE(ProgramParameters4dvNV)
- #define glProgramParameters4fvNV		MANGLE(ProgramParameters4fvNV)
- #define glProgramStringARB		MANGLE(ProgramStringARB)
-+#define glProgramSubroutineParametersuivNV		MANGLE(ProgramSubroutineParametersuivNV)
-+#define glProgramUniform1dEXT		MANGLE(ProgramUniform1dEXT)
-+#define glProgramUniform1d		MANGLE(ProgramUniform1d)
-+#define glProgramUniform1dvEXT		MANGLE(ProgramUniform1dvEXT)
-+#define glProgramUniform1dv		MANGLE(ProgramUniform1dv)
- #define glProgramUniform1fEXT		MANGLE(ProgramUniform1fEXT)
-+#define glProgramUniform1f		MANGLE(ProgramUniform1f)
- #define glProgramUniform1fvEXT		MANGLE(ProgramUniform1fvEXT)
-+#define glProgramUniform1fv		MANGLE(ProgramUniform1fv)
-+#define glProgramUniform1i64NV		MANGLE(ProgramUniform1i64NV)
-+#define glProgramUniform1i64vNV		MANGLE(ProgramUniform1i64vNV)
- #define glProgramUniform1iEXT		MANGLE(ProgramUniform1iEXT)
-+#define glProgramUniform1i		MANGLE(ProgramUniform1i)
- #define glProgramUniform1ivEXT		MANGLE(ProgramUniform1ivEXT)
-+#define glProgramUniform1iv		MANGLE(ProgramUniform1iv)
-+#define glProgramUniform1ui64NV		MANGLE(ProgramUniform1ui64NV)
-+#define glProgramUniform1ui64vNV		MANGLE(ProgramUniform1ui64vNV)
- #define glProgramUniform1uiEXT		MANGLE(ProgramUniform1uiEXT)
-+#define glProgramUniform1ui		MANGLE(ProgramUniform1ui)
- #define glProgramUniform1uivEXT		MANGLE(ProgramUniform1uivEXT)
-+#define glProgramUniform1uiv		MANGLE(ProgramUniform1uiv)
-+#define glProgramUniform2dEXT		MANGLE(ProgramUniform2dEXT)
-+#define glProgramUniform2d		MANGLE(ProgramUniform2d)
-+#define glProgramUniform2dvEXT		MANGLE(ProgramUniform2dvEXT)
-+#define glProgramUniform2dv		MANGLE(ProgramUniform2dv)
- #define glProgramUniform2fEXT		MANGLE(ProgramUniform2fEXT)
-+#define glProgramUniform2f		MANGLE(ProgramUniform2f)
- #define glProgramUniform2fvEXT		MANGLE(ProgramUniform2fvEXT)
-+#define glProgramUniform2fv		MANGLE(ProgramUniform2fv)
-+#define glProgramUniform2i64NV		MANGLE(ProgramUniform2i64NV)
-+#define glProgramUniform2i64vNV		MANGLE(ProgramUniform2i64vNV)
- #define glProgramUniform2iEXT		MANGLE(ProgramUniform2iEXT)
-+#define glProgramUniform2i		MANGLE(ProgramUniform2i)
- #define glProgramUniform2ivEXT		MANGLE(ProgramUniform2ivEXT)
-+#define glProgramUniform2iv		MANGLE(ProgramUniform2iv)
-+#define glProgramUniform2ui64NV		MANGLE(ProgramUniform2ui64NV)
-+#define glProgramUniform2ui64vNV		MANGLE(ProgramUniform2ui64vNV)
- #define glProgramUniform2uiEXT		MANGLE(ProgramUniform2uiEXT)
-+#define glProgramUniform2ui		MANGLE(ProgramUniform2ui)
- #define glProgramUniform2uivEXT		MANGLE(ProgramUniform2uivEXT)
-+#define glProgramUniform2uiv		MANGLE(ProgramUniform2uiv)
-+#define glProgramUniform3dEXT		MANGLE(ProgramUniform3dEXT)
-+#define glProgramUniform3d		MANGLE(ProgramUniform3d)
-+#define glProgramUniform3dvEXT		MANGLE(ProgramUniform3dvEXT)
-+#define glProgramUniform3dv		MANGLE(ProgramUniform3dv)
- #define glProgramUniform3fEXT		MANGLE(ProgramUniform3fEXT)
-+#define glProgramUniform3f		MANGLE(ProgramUniform3f)
- #define glProgramUniform3fvEXT		MANGLE(ProgramUniform3fvEXT)
-+#define glProgramUniform3fv		MANGLE(ProgramUniform3fv)
-+#define glProgramUniform3i64NV		MANGLE(ProgramUniform3i64NV)
-+#define glProgramUniform3i64vNV		MANGLE(ProgramUniform3i64vNV)
- #define glProgramUniform3iEXT		MANGLE(ProgramUniform3iEXT)
-+#define glProgramUniform3i		MANGLE(ProgramUniform3i)
- #define glProgramUniform3ivEXT		MANGLE(ProgramUniform3ivEXT)
-+#define glProgramUniform3iv		MANGLE(ProgramUniform3iv)
-+#define glProgramUniform3ui64NV		MANGLE(ProgramUniform3ui64NV)
-+#define glProgramUniform3ui64vNV		MANGLE(ProgramUniform3ui64vNV)
- #define glProgramUniform3uiEXT		MANGLE(ProgramUniform3uiEXT)
-+#define glProgramUniform3ui		MANGLE(ProgramUniform3ui)
- #define glProgramUniform3uivEXT		MANGLE(ProgramUniform3uivEXT)
-+#define glProgramUniform3uiv		MANGLE(ProgramUniform3uiv)
-+#define glProgramUniform4dEXT		MANGLE(ProgramUniform4dEXT)
-+#define glProgramUniform4d		MANGLE(ProgramUniform4d)
-+#define glProgramUniform4dvEXT		MANGLE(ProgramUniform4dvEXT)
-+#define glProgramUniform4dv		MANGLE(ProgramUniform4dv)
- #define glProgramUniform4fEXT		MANGLE(ProgramUniform4fEXT)
-+#define glProgramUniform4f		MANGLE(ProgramUniform4f)
- #define glProgramUniform4fvEXT		MANGLE(ProgramUniform4fvEXT)
-+#define glProgramUniform4fv		MANGLE(ProgramUniform4fv)
-+#define glProgramUniform4i64NV		MANGLE(ProgramUniform4i64NV)
-+#define glProgramUniform4i64vNV		MANGLE(ProgramUniform4i64vNV)
- #define glProgramUniform4iEXT		MANGLE(ProgramUniform4iEXT)
-+#define glProgramUniform4i		MANGLE(ProgramUniform4i)
- #define glProgramUniform4ivEXT		MANGLE(ProgramUniform4ivEXT)
-+#define glProgramUniform4iv		MANGLE(ProgramUniform4iv)
-+#define glProgramUniform4ui64NV		MANGLE(ProgramUniform4ui64NV)
-+#define glProgramUniform4ui64vNV		MANGLE(ProgramUniform4ui64vNV)
- #define glProgramUniform4uiEXT		MANGLE(ProgramUniform4uiEXT)
-+#define glProgramUniform4ui		MANGLE(ProgramUniform4ui)
- #define glProgramUniform4uivEXT		MANGLE(ProgramUniform4uivEXT)
-+#define glProgramUniform4uiv		MANGLE(ProgramUniform4uiv)
-+#define glProgramUniformMatrix2dvEXT		MANGLE(ProgramUniformMatrix2dvEXT)
-+#define glProgramUniformMatrix2dv		MANGLE(ProgramUniformMatrix2dv)
- #define glProgramUniformMatrix2fvEXT		MANGLE(ProgramUniformMatrix2fvEXT)
-+#define glProgramUniformMatrix2fv		MANGLE(ProgramUniformMatrix2fv)
-+#define glProgramUniformMatrix2x3dvEXT		MANGLE(ProgramUniformMatrix2x3dvEXT)
-+#define glProgramUniformMatrix2x3dv		MANGLE(ProgramUniformMatrix2x3dv)
- #define glProgramUniformMatrix2x3fvEXT		MANGLE(ProgramUniformMatrix2x3fvEXT)
-+#define glProgramUniformMatrix2x3fv		MANGLE(ProgramUniformMatrix2x3fv)
-+#define glProgramUniformMatrix2x4dvEXT		MANGLE(ProgramUniformMatrix2x4dvEXT)
-+#define glProgramUniformMatrix2x4dv		MANGLE(ProgramUniformMatrix2x4dv)
- #define glProgramUniformMatrix2x4fvEXT		MANGLE(ProgramUniformMatrix2x4fvEXT)
-+#define glProgramUniformMatrix2x4fv		MANGLE(ProgramUniformMatrix2x4fv)
-+#define glProgramUniformMatrix3dvEXT		MANGLE(ProgramUniformMatrix3dvEXT)
-+#define glProgramUniformMatrix3dv		MANGLE(ProgramUniformMatrix3dv)
- #define glProgramUniformMatrix3fvEXT		MANGLE(ProgramUniformMatrix3fvEXT)
-+#define glProgramUniformMatrix3fv		MANGLE(ProgramUniformMatrix3fv)
-+#define glProgramUniformMatrix3x2dvEXT		MANGLE(ProgramUniformMatrix3x2dvEXT)
-+#define glProgramUniformMatrix3x2dv		MANGLE(ProgramUniformMatrix3x2dv)
- #define glProgramUniformMatrix3x2fvEXT		MANGLE(ProgramUniformMatrix3x2fvEXT)
-+#define glProgramUniformMatrix3x2fv		MANGLE(ProgramUniformMatrix3x2fv)
-+#define glProgramUniformMatrix3x4dvEXT		MANGLE(ProgramUniformMatrix3x4dvEXT)
-+#define glProgramUniformMatrix3x4dv		MANGLE(ProgramUniformMatrix3x4dv)
- #define glProgramUniformMatrix3x4fvEXT		MANGLE(ProgramUniformMatrix3x4fvEXT)
-+#define glProgramUniformMatrix3x4fv		MANGLE(ProgramUniformMatrix3x4fv)
-+#define glProgramUniformMatrix4dvEXT		MANGLE(ProgramUniformMatrix4dvEXT)
-+#define glProgramUniformMatrix4dv		MANGLE(ProgramUniformMatrix4dv)
- #define glProgramUniformMatrix4fvEXT		MANGLE(ProgramUniformMatrix4fvEXT)
-+#define glProgramUniformMatrix4fv		MANGLE(ProgramUniformMatrix4fv)
-+#define glProgramUniformMatrix4x2dvEXT		MANGLE(ProgramUniformMatrix4x2dvEXT)
-+#define glProgramUniformMatrix4x2dv		MANGLE(ProgramUniformMatrix4x2dv)
- #define glProgramUniformMatrix4x2fvEXT		MANGLE(ProgramUniformMatrix4x2fvEXT)
-+#define glProgramUniformMatrix4x2fv		MANGLE(ProgramUniformMatrix4x2fv)
-+#define glProgramUniformMatrix4x3dvEXT		MANGLE(ProgramUniformMatrix4x3dvEXT)
-+#define glProgramUniformMatrix4x3dv		MANGLE(ProgramUniformMatrix4x3dv)
- #define glProgramUniformMatrix4x3fvEXT		MANGLE(ProgramUniformMatrix4x3fvEXT)
-+#define glProgramUniformMatrix4x3fv		MANGLE(ProgramUniformMatrix4x3fv)
- #define glProgramUniformui64NV		MANGLE(ProgramUniformui64NV)
- #define glProgramUniformui64vNV		MANGLE(ProgramUniformui64vNV)
- #define glProgramVertexLimitNV		MANGLE(ProgramVertexLimitNV)
-@@ -1274,6 +1475,7 @@
- #define glPushClientAttrib		MANGLE(PushClientAttrib)
- #define glPushMatrix		MANGLE(PushMatrix)
- #define glPushName		MANGLE(PushName)
-+#define glQueryCounter		MANGLE(QueryCounter)
- #define glRasterPos2d		MANGLE(RasterPos2d)
- #define glRasterPos2dv		MANGLE(RasterPos2dv)
- #define glRasterPos2f		MANGLE(RasterPos2f)
-@@ -1300,6 +1502,7 @@
- #define glRasterPos4sv		MANGLE(RasterPos4sv)
- #define glReadBuffer		MANGLE(ReadBuffer)
- #define glReadInstrumentsSGIX		MANGLE(ReadInstrumentsSGIX)
-+#define glReadnPixelsARB		MANGLE(ReadnPixelsARB)
- #define glReadPixels		MANGLE(ReadPixels)
- #define glRectd		MANGLE(Rectd)
- #define glRectdv		MANGLE(Rectdv)
-@@ -1310,6 +1513,7 @@
- #define glRects		MANGLE(Rects)
- #define glRectsv		MANGLE(Rectsv)
- #define glReferencePlaneSGIX		MANGLE(ReferencePlaneSGIX)
-+#define glReleaseShaderCompiler		MANGLE(ReleaseShaderCompiler)
- #define glRenderbufferStorageEXT		MANGLE(RenderbufferStorageEXT)
- #define glRenderbufferStorage		MANGLE(RenderbufferStorage)
- #define glRenderbufferStorageMultisampleCoverageNV		MANGLE(RenderbufferStorageMultisampleCoverageNV)
-@@ -1345,6 +1549,7 @@
- #define glResetMinmaxEXT		MANGLE(ResetMinmaxEXT)
- #define glResetMinmax		MANGLE(ResetMinmax)
- #define glResizeBuffersMESA		MANGLE(ResizeBuffersMESA)
-+#define glResumeTransformFeedback		MANGLE(ResumeTransformFeedback)
- #define glResumeTransformFeedbackNV		MANGLE(ResumeTransformFeedbackNV)
- #define glRotated		MANGLE(Rotated)
- #define glRotatef		MANGLE(Rotatef)
-@@ -1357,8 +1562,17 @@
- #define glSampleMaskSGIS		MANGLE(SampleMaskSGIS)
- #define glSamplePatternEXT		MANGLE(SamplePatternEXT)
- #define glSamplePatternSGIS		MANGLE(SamplePatternSGIS)
-+#define glSamplerParameterf		MANGLE(SamplerParameterf)
-+#define glSamplerParameterfv		MANGLE(SamplerParameterfv)
-+#define glSamplerParameterIiv		MANGLE(SamplerParameterIiv)
-+#define glSamplerParameteri		MANGLE(SamplerParameteri)
-+#define glSamplerParameterIuiv		MANGLE(SamplerParameterIuiv)
-+#define glSamplerParameteriv		MANGLE(SamplerParameteriv)
- #define glScaled		MANGLE(Scaled)
- #define glScalef		MANGLE(Scalef)
-+#define glScissorArrayv		MANGLE(ScissorArrayv)
-+#define glScissorIndexed		MANGLE(ScissorIndexed)
-+#define glScissorIndexedv		MANGLE(ScissorIndexedv)
- #define glScissor		MANGLE(Scissor)
- #define glSecondaryColor3bEXT		MANGLE(SecondaryColor3bEXT)
- #define glSecondaryColor3b		MANGLE(SecondaryColor3b)
-@@ -1395,6 +1609,8 @@
- #define glSecondaryColor3usvEXT		MANGLE(SecondaryColor3usvEXT)
- #define glSecondaryColor3usv		MANGLE(SecondaryColor3usv)
- #define glSecondaryColorFormatNV		MANGLE(SecondaryColorFormatNV)
-+#define glSecondaryColorP3ui		MANGLE(SecondaryColorP3ui)
-+#define glSecondaryColorP3uiv		MANGLE(SecondaryColorP3uiv)
- #define glSecondaryColorPointerEXT		MANGLE(SecondaryColorPointerEXT)
- #define glSecondaryColorPointerListIBM		MANGLE(SecondaryColorPointerListIBM)
- #define glSecondaryColorPointer		MANGLE(SecondaryColorPointer)
-@@ -1408,6 +1624,7 @@
- #define glSetInvariantEXT		MANGLE(SetInvariantEXT)
- #define glSetLocalConstantEXT		MANGLE(SetLocalConstantEXT)
- #define glShadeModel		MANGLE(ShadeModel)
-+#define glShaderBinary		MANGLE(ShaderBinary)
- #define glShaderOp1EXT		MANGLE(ShaderOp1EXT)
- #define glShaderOp2EXT		MANGLE(ShaderOp2EXT)
- #define glShaderOp3EXT		MANGLE(ShaderOp3EXT)
-@@ -1509,6 +1726,14 @@
- #define glTexCoord4s		MANGLE(TexCoord4s)
- #define glTexCoord4sv		MANGLE(TexCoord4sv)
- #define glTexCoordFormatNV		MANGLE(TexCoordFormatNV)
-+#define glTexCoordP1ui		MANGLE(TexCoordP1ui)
-+#define glTexCoordP1uiv		MANGLE(TexCoordP1uiv)
-+#define glTexCoordP2ui		MANGLE(TexCoordP2ui)
-+#define glTexCoordP2uiv		MANGLE(TexCoordP2uiv)
-+#define glTexCoordP3ui		MANGLE(TexCoordP3ui)
-+#define glTexCoordP3uiv		MANGLE(TexCoordP3uiv)
-+#define glTexCoordP4ui		MANGLE(TexCoordP4ui)
-+#define glTexCoordP4uiv		MANGLE(TexCoordP4uiv)
- #define glTexCoordPointerEXT		MANGLE(TexCoordPointerEXT)
- #define glTexCoordPointerListIBM		MANGLE(TexCoordPointerListIBM)
- #define glTexCoordPointer		MANGLE(TexCoordPointer)
-@@ -1569,73 +1794,108 @@
- #define glTextureSubImage3DEXT		MANGLE(TextureSubImage3DEXT)
- #define glTrackMatrixNV		MANGLE(TrackMatrixNV)
- #define glTransformFeedbackAttribsNV		MANGLE(TransformFeedbackAttribsNV)
-+#define glTransformFeedbackStreamAttribsNV		MANGLE(TransformFeedbackStreamAttribsNV)
- #define glTransformFeedbackVaryingsEXT		MANGLE(TransformFeedbackVaryingsEXT)
- #define glTransformFeedbackVaryings		MANGLE(TransformFeedbackVaryings)
- #define glTransformFeedbackVaryingsNV		MANGLE(TransformFeedbackVaryingsNV)
- #define glTranslated		MANGLE(Translated)
- #define glTranslatef		MANGLE(Translatef)
-+#define glUniform1d		MANGLE(Uniform1d)
-+#define glUniform1dv		MANGLE(Uniform1dv)
- #define glUniform1fARB		MANGLE(Uniform1fARB)
- #define glUniform1f		MANGLE(Uniform1f)
- #define glUniform1fvARB		MANGLE(Uniform1fvARB)
- #define glUniform1fv		MANGLE(Uniform1fv)
-+#define glUniform1i64NV		MANGLE(Uniform1i64NV)
-+#define glUniform1i64vNV		MANGLE(Uniform1i64vNV)
- #define glUniform1iARB		MANGLE(Uniform1iARB)
- #define glUniform1i		MANGLE(Uniform1i)
- #define glUniform1ivARB		MANGLE(Uniform1ivARB)
- #define glUniform1iv		MANGLE(Uniform1iv)
-+#define glUniform1ui64NV		MANGLE(Uniform1ui64NV)
-+#define glUniform1ui64vNV		MANGLE(Uniform1ui64vNV)
- #define glUniform1uiEXT		MANGLE(Uniform1uiEXT)
- #define glUniform1ui		MANGLE(Uniform1ui)
- #define glUniform1uivEXT		MANGLE(Uniform1uivEXT)
- #define glUniform1uiv		MANGLE(Uniform1uiv)
-+#define glUniform2d		MANGLE(Uniform2d)
-+#define glUniform2dv		MANGLE(Uniform2dv)
- #define glUniform2fARB		MANGLE(Uniform2fARB)
- #define glUniform2f		MANGLE(Uniform2f)
- #define glUniform2fvARB		MANGLE(Uniform2fvARB)
- #define glUniform2fv		MANGLE(Uniform2fv)
-+#define glUniform2i64NV		MANGLE(Uniform2i64NV)
-+#define glUniform2i64vNV		MANGLE(Uniform2i64vNV)
- #define glUniform2iARB		MANGLE(Uniform2iARB)
- #define glUniform2i		MANGLE(Uniform2i)
- #define glUniform2ivARB		MANGLE(Uniform2ivARB)
- #define glUniform2iv		MANGLE(Uniform2iv)
-+#define glUniform2ui64NV		MANGLE(Uniform2ui64NV)
-+#define glUniform2ui64vNV		MANGLE(Uniform2ui64vNV)
- #define glUniform2uiEXT		MANGLE(Uniform2uiEXT)
- #define glUniform2ui		MANGLE(Uniform2ui)
- #define glUniform2uivEXT		MANGLE(Uniform2uivEXT)
- #define glUniform2uiv		MANGLE(Uniform2uiv)
-+#define glUniform3d		MANGLE(Uniform3d)
-+#define glUniform3dv		MANGLE(Uniform3dv)
- #define glUniform3fARB		MANGLE(Uniform3fARB)
- #define glUniform3f		MANGLE(Uniform3f)
- #define glUniform3fvARB		MANGLE(Uniform3fvARB)
- #define glUniform3fv		MANGLE(Uniform3fv)
-+#define glUniform3i64NV		MANGLE(Uniform3i64NV)
-+#define glUniform3i64vNV		MANGLE(Uniform3i64vNV)
- #define glUniform3iARB		MANGLE(Uniform3iARB)
- #define glUniform3i		MANGLE(Uniform3i)
- #define glUniform3ivARB		MANGLE(Uniform3ivARB)
- #define glUniform3iv		MANGLE(Uniform3iv)
-+#define glUniform3ui64NV		MANGLE(Uniform3ui64NV)
-+#define glUniform3ui64vNV		MANGLE(Uniform3ui64vNV)
- #define glUniform3uiEXT		MANGLE(Uniform3uiEXT)
- #define glUniform3ui		MANGLE(Uniform3ui)
- #define glUniform3uivEXT		MANGLE(Uniform3uivEXT)
- #define glUniform3uiv		MANGLE(Uniform3uiv)
-+#define glUniform4d		MANGLE(Uniform4d)
-+#define glUniform4dv		MANGLE(Uniform4dv)
- #define glUniform4fARB		MANGLE(Uniform4fARB)
- #define glUniform4f		MANGLE(Uniform4f)
- #define glUniform4fvARB		MANGLE(Uniform4fvARB)
- #define glUniform4fv		MANGLE(Uniform4fv)
-+#define glUniform4i64NV		MANGLE(Uniform4i64NV)
-+#define glUniform4i64vNV		MANGLE(Uniform4i64vNV)
- #define glUniform4iARB		MANGLE(Uniform4iARB)
- #define glUniform4i		MANGLE(Uniform4i)
- #define glUniform4ivARB		MANGLE(Uniform4ivARB)
- #define glUniform4iv		MANGLE(Uniform4iv)
-+#define glUniform4ui64NV		MANGLE(Uniform4ui64NV)
-+#define glUniform4ui64vNV		MANGLE(Uniform4ui64vNV)
- #define glUniform4uiEXT		MANGLE(Uniform4uiEXT)
- #define glUniform4ui		MANGLE(Uniform4ui)
- #define glUniform4uivEXT		MANGLE(Uniform4uivEXT)
- #define glUniform4uiv		MANGLE(Uniform4uiv)
- #define glUniformBlockBinding		MANGLE(UniformBlockBinding)
- #define glUniformBufferEXT		MANGLE(UniformBufferEXT)
-+#define glUniformMatrix2dv		MANGLE(UniformMatrix2dv)
- #define glUniformMatrix2fvARB		MANGLE(UniformMatrix2fvARB)
- #define glUniformMatrix2fv		MANGLE(UniformMatrix2fv)
-+#define glUniformMatrix2x3dv		MANGLE(UniformMatrix2x3dv)
- #define glUniformMatrix2x3fv		MANGLE(UniformMatrix2x3fv)
-+#define glUniformMatrix2x4dv		MANGLE(UniformMatrix2x4dv)
- #define glUniformMatrix2x4fv		MANGLE(UniformMatrix2x4fv)
-+#define glUniformMatrix3dv		MANGLE(UniformMatrix3dv)
- #define glUniformMatrix3fvARB		MANGLE(UniformMatrix3fvARB)
- #define glUniformMatrix3fv		MANGLE(UniformMatrix3fv)
-+#define glUniformMatrix3x2dv		MANGLE(UniformMatrix3x2dv)
- #define glUniformMatrix3x2fv		MANGLE(UniformMatrix3x2fv)
-+#define glUniformMatrix3x4dv		MANGLE(UniformMatrix3x4dv)
- #define glUniformMatrix3x4fv		MANGLE(UniformMatrix3x4fv)
-+#define glUniformMatrix4dv		MANGLE(UniformMatrix4dv)
- #define glUniformMatrix4fvARB		MANGLE(UniformMatrix4fvARB)
- #define glUniformMatrix4fv		MANGLE(UniformMatrix4fv)
-+#define glUniformMatrix4x2dv		MANGLE(UniformMatrix4x2dv)
- #define glUniformMatrix4x2fv		MANGLE(UniformMatrix4x2fv)
-+#define glUniformMatrix4x3dv		MANGLE(UniformMatrix4x3dv)
- #define glUniformMatrix4x3fv		MANGLE(UniformMatrix4x3fv)
-+#define glUniformSubroutinesuiv		MANGLE(UniformSubroutinesuiv)
- #define glUniformui64NV		MANGLE(Uniformui64NV)
- #define glUniformui64vNV		MANGLE(Uniformui64vNV)
- #define glUnlockArraysEXT		MANGLE(UnlockArraysEXT)
-@@ -1646,9 +1906,11 @@
- #define glUpdateObjectBufferATI		MANGLE(UpdateObjectBufferATI)
- #define glUseProgram		MANGLE(UseProgram)
- #define glUseProgramObjectARB		MANGLE(UseProgramObjectARB)
-+#define glUseProgramStages		MANGLE(UseProgramStages)
- #define glUseShaderProgramEXT		MANGLE(UseShaderProgramEXT)
- #define glValidateProgramARB		MANGLE(ValidateProgramARB)
- #define glValidateProgram		MANGLE(ValidateProgram)
-+#define glValidateProgramPipeline		MANGLE(ValidateProgramPipeline)
- #define glVariantArrayObjectATI		MANGLE(VariantArrayObjectATI)
- #define glVariantbvEXT		MANGLE(VariantbvEXT)
- #define glVariantdvEXT		MANGLE(VariantdvEXT)
-@@ -1659,6 +1921,16 @@
- #define glVariantubvEXT		MANGLE(VariantubvEXT)
- #define glVariantuivEXT		MANGLE(VariantuivEXT)
- #define glVariantusvEXT		MANGLE(VariantusvEXT)
-+#define glVDPAUFiniNV		MANGLE(VDPAUFiniNV)
-+#define glVDPAUGetSurfaceivNV		MANGLE(VDPAUGetSurfaceivNV)
-+#define glVDPAUInitNV		MANGLE(VDPAUInitNV)
-+#define glVDPAUIsSurfaceNV		MANGLE(VDPAUIsSurfaceNV)
-+#define glVDPAUMapSurfacesNV		MANGLE(VDPAUMapSurfacesNV)
-+#define glVDPAURegisterOutputSurfaceNV		MANGLE(VDPAURegisterOutputSurfaceNV)
-+#define glVDPAURegisterVideoSurfaceNV		MANGLE(VDPAURegisterVideoSurfaceNV)
-+#define glVDPAUSurfaceAccessNV		MANGLE(VDPAUSurfaceAccessNV)
-+#define glVDPAUUnmapSurfacesNV		MANGLE(VDPAUUnmapSurfacesNV)
-+#define glVDPAUUnregisterSurfaceNV		MANGLE(VDPAUUnregisterSurfaceNV)
- #define glVertex2d		MANGLE(Vertex2d)
- #define glVertex2dv		MANGLE(Vertex2dv)
- #define glVertex2f		MANGLE(Vertex2f)
-@@ -1692,6 +1964,7 @@
- #define glVertexArrayParameteriAPPLE		MANGLE(VertexArrayParameteriAPPLE)
- #define glVertexArrayRangeAPPLE		MANGLE(VertexArrayRangeAPPLE)
- #define glVertexArrayRangeNV		MANGLE(VertexArrayRangeNV)
-+#define glVertexArrayVertexAttribLOffsetEXT		MANGLE(VertexArrayVertexAttribLOffsetEXT)
- #define glVertexAttrib1dARB		MANGLE(VertexAttrib1dARB)
- #define glVertexAttrib1d		MANGLE(VertexAttrib1d)
- #define glVertexAttrib1dNV		MANGLE(VertexAttrib1dNV)
-@@ -1800,6 +2073,7 @@
- #define glVertexAttrib4usv		MANGLE(VertexAttrib4usv)
- #define glVertexAttribArrayObjectATI		MANGLE(VertexAttribArrayObjectATI)
- #define glVertexAttribDivisorARB		MANGLE(VertexAttribDivisorARB)
-+#define glVertexAttribDivisor		MANGLE(VertexAttribDivisor)
- #define glVertexAttribFormatNV		MANGLE(VertexAttribFormatNV)
- #define glVertexAttribI1iEXT		MANGLE(VertexAttribI1iEXT)
- #define glVertexAttribI1i		MANGLE(VertexAttribI1i)
-@@ -1844,6 +2118,49 @@
- #define glVertexAttribIFormatNV		MANGLE(VertexAttribIFormatNV)
- #define glVertexAttribIPointerEXT		MANGLE(VertexAttribIPointerEXT)
- #define glVertexAttribIPointer		MANGLE(VertexAttribIPointer)
-+#define glVertexAttribL1dEXT		MANGLE(VertexAttribL1dEXT)
-+#define glVertexAttribL1d		MANGLE(VertexAttribL1d)
-+#define glVertexAttribL1dvEXT		MANGLE(VertexAttribL1dvEXT)
-+#define glVertexAttribL1dv		MANGLE(VertexAttribL1dv)
-+#define glVertexAttribL1i64NV		MANGLE(VertexAttribL1i64NV)
-+#define glVertexAttribL1i64vNV		MANGLE(VertexAttribL1i64vNV)
-+#define glVertexAttribL1ui64NV		MANGLE(VertexAttribL1ui64NV)
-+#define glVertexAttribL1ui64vNV		MANGLE(VertexAttribL1ui64vNV)
-+#define glVertexAttribL2dEXT		MANGLE(VertexAttribL2dEXT)
-+#define glVertexAttribL2d		MANGLE(VertexAttribL2d)
-+#define glVertexAttribL2dvEXT		MANGLE(VertexAttribL2dvEXT)
-+#define glVertexAttribL2dv		MANGLE(VertexAttribL2dv)
-+#define glVertexAttribL2i64NV		MANGLE(VertexAttribL2i64NV)
-+#define glVertexAttribL2i64vNV		MANGLE(VertexAttribL2i64vNV)
-+#define glVertexAttribL2ui64NV		MANGLE(VertexAttribL2ui64NV)
-+#define glVertexAttribL2ui64vNV		MANGLE(VertexAttribL2ui64vNV)
-+#define glVertexAttribL3dEXT		MANGLE(VertexAttribL3dEXT)
-+#define glVertexAttribL3d		MANGLE(VertexAttribL3d)
-+#define glVertexAttribL3dvEXT		MANGLE(VertexAttribL3dvEXT)
-+#define glVertexAttribL3dv		MANGLE(VertexAttribL3dv)
-+#define glVertexAttribL3i64NV		MANGLE(VertexAttribL3i64NV)
-+#define glVertexAttribL3i64vNV		MANGLE(VertexAttribL3i64vNV)
-+#define glVertexAttribL3ui64NV		MANGLE(VertexAttribL3ui64NV)
-+#define glVertexAttribL3ui64vNV		MANGLE(VertexAttribL3ui64vNV)
-+#define glVertexAttribL4dEXT		MANGLE(VertexAttribL4dEXT)
-+#define glVertexAttribL4d		MANGLE(VertexAttribL4d)
-+#define glVertexAttribL4dvEXT		MANGLE(VertexAttribL4dvEXT)
-+#define glVertexAttribL4dv		MANGLE(VertexAttribL4dv)
-+#define glVertexAttribL4i64NV		MANGLE(VertexAttribL4i64NV)
-+#define glVertexAttribL4i64vNV		MANGLE(VertexAttribL4i64vNV)
-+#define glVertexAttribL4ui64NV		MANGLE(VertexAttribL4ui64NV)
-+#define glVertexAttribL4ui64vNV		MANGLE(VertexAttribL4ui64vNV)
-+#define glVertexAttribLFormatNV		MANGLE(VertexAttribLFormatNV)
-+#define glVertexAttribLPointerEXT		MANGLE(VertexAttribLPointerEXT)
-+#define glVertexAttribLPointer		MANGLE(VertexAttribLPointer)
-+#define glVertexAttribP1ui		MANGLE(VertexAttribP1ui)
-+#define glVertexAttribP1uiv		MANGLE(VertexAttribP1uiv)
-+#define glVertexAttribP2ui		MANGLE(VertexAttribP2ui)
-+#define glVertexAttribP2uiv		MANGLE(VertexAttribP2uiv)
-+#define glVertexAttribP3ui		MANGLE(VertexAttribP3ui)
-+#define glVertexAttribP3uiv		MANGLE(VertexAttribP3uiv)
-+#define glVertexAttribP4ui		MANGLE(VertexAttribP4ui)
-+#define glVertexAttribP4uiv		MANGLE(VertexAttribP4uiv)
- #define glVertexAttribPointerARB		MANGLE(VertexAttribPointerARB)
- #define glVertexAttribPointer		MANGLE(VertexAttribPointer)
- #define glVertexAttribPointerNV		MANGLE(VertexAttribPointerNV)
-@@ -1868,6 +2185,12 @@
- #define glVertexBlendEnvfATI		MANGLE(VertexBlendEnvfATI)
- #define glVertexBlendEnviATI		MANGLE(VertexBlendEnviATI)
- #define glVertexFormatNV		MANGLE(VertexFormatNV)
-+#define glVertexP2ui		MANGLE(VertexP2ui)
-+#define glVertexP2uiv		MANGLE(VertexP2uiv)
-+#define glVertexP3ui		MANGLE(VertexP3ui)
-+#define glVertexP3uiv		MANGLE(VertexP3uiv)
-+#define glVertexP4ui		MANGLE(VertexP4ui)
-+#define glVertexP4uiv		MANGLE(VertexP4uiv)
- #define glVertexPointerEXT		MANGLE(VertexPointerEXT)
- #define glVertexPointerListIBM		MANGLE(VertexPointerListIBM)
- #define glVertexPointer		MANGLE(VertexPointer)
-@@ -1913,6 +2236,9 @@
- #define glVideoCaptureStreamParameterdvNV		MANGLE(VideoCaptureStreamParameterdvNV)
- #define glVideoCaptureStreamParameterfvNV		MANGLE(VideoCaptureStreamParameterfvNV)
- #define glVideoCaptureStreamParameterivNV		MANGLE(VideoCaptureStreamParameterivNV)
-+#define glViewportArrayv		MANGLE(ViewportArrayv)
-+#define glViewportIndexedf		MANGLE(ViewportIndexedf)
-+#define glViewportIndexedfv		MANGLE(ViewportIndexedfv)
- #define glViewport		MANGLE(Viewport)
- #define glWaitSync		MANGLE(WaitSync)
- #define glWeightbvARB		MANGLE(WeightbvARB)
-diff --git a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
-index 3f66f96..75dba8c 100644
---- a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
-+++ b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
-@@ -258,9 +258,10 @@ vsplit_segment_fan_linear(struct vsplit_frontend *vsplit, unsigned flags,
-    boolean use_spoken = ((flags & DRAW_SPLIT_BEFORE) != 0);
-    unsigned nr = 0, i;
- 
--   assert(icount + !!use_spoken <= vsplit->segment_size);
-+   assert(icount <= vsplit->segment_size);
- 
-    if (use_spoken) {
-+      /* replace istart by i0 */
-       vsplit->fetch_elts[nr++] = i0;
-       for (i = 1 ; i < icount; i++)
-          vsplit->fetch_elts[nr++] = istart + i;
-diff --git a/src/gallium/targets/SConscript.dri b/src/gallium/targets/SConscript.dri
-index bc3671a..101863a 100644
---- a/src/gallium/targets/SConscript.dri
-+++ b/src/gallium/targets/SConscript.dri
-@@ -72,7 +72,6 @@ COMMON_DRI_DRM_OBJECTS = [
- 
- drienv.AppendUnique(LIBS = [
-     'expat',
--    'talloc',
- ])
- 
- Export([
-diff --git a/src/gallium/targets/libgl-gdi/SConscript b/src/gallium/targets/libgl-gdi/SConscript
-index 6fa0851..ec7dbad 100644
---- a/src/gallium/targets/libgl-gdi/SConscript
-+++ b/src/gallium/targets/libgl-gdi/SConscript
-@@ -15,7 +15,6 @@ env.Append(LIBS = [
-     'user32',
-     'kernel32',
-     'ws2_32',
--    talloc,
- ])
- 
- sources = ['libgl_gdi.c']
-diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript
-index d932736..7f0f245 100644
---- a/src/gallium/targets/libgl-xlib/SConscript
-+++ b/src/gallium/targets/libgl-xlib/SConscript
-@@ -23,7 +23,6 @@ env.Prepend(LIBS = [
-     mesa,
-     glsl,
-     gallium,
--    'talloc'
- ])
- 
- sources = [
-diff --git a/src/glsl/Makefile b/src/glsl/Makefile
-index 86a577e..7e9471e 100644
---- a/src/glsl/Makefile
-+++ b/src/glsl/Makefile
-@@ -17,6 +17,7 @@ GLCPP_SOURCES = \
- 
- C_SOURCES = \
- 	strtod.c \
-+	ralloc.c \
- 	$(LIBGLCPP_SOURCES)
- 
- CXX_SOURCES = \
-@@ -83,8 +84,7 @@ CXX_SOURCES = \
- 	s_expression.cpp
- 
- LIBS = \
--	$(TOP)/src/glsl/libglsl.a \
--	$(TALLOC_LIBS)
-+	$(TOP)/src/glsl/libglsl.a
- 
- APPS = glsl_compiler glcpp/glcpp
- 
-@@ -113,7 +113,6 @@ OBJECTS = \
- 	$(CXX_SOURCES:.cpp=.o)
- 
- INCLUDES = \
--	$(TALLOC_CFLAGS) \
- 	-I. \
- 	-I../mesa \
- 	-I../mapi \
-diff --git a/src/glsl/SConscript b/src/glsl/SConscript
-index f179721..c1adfe8 100644
---- a/src/glsl/SConscript
-+++ b/src/glsl/SConscript
-@@ -7,11 +7,9 @@ env = env.Clone()
- env.Prepend(CPPPATH = [
-     '#src/mapi',
-     '#src/mesa',
-+    '#src/glsl',
- ])
- 
--if env['platform'] == 'windows':
--    env.Prepend(CPPPATH = ['#src/talloc'])
--
- sources = [
-     'glcpp/glcpp-lex.c',
-     'glcpp/glcpp-parse.c',
-@@ -75,6 +73,7 @@ sources = [
-     'opt_structure_splitting.cpp',
-     'opt_swizzle_swizzle.cpp',
-     'opt_tree_grafting.cpp',
-+    'ralloc.c',
-     's_expression.cpp',
-     'strtod.c',
- ]
-@@ -96,7 +95,7 @@ if env['platform'] == 'windows':
-         'user32',
-     ])
- 
--env.Prepend(LIBS = [glsl, talloc])
-+env.Prepend(LIBS = [glsl])
- 
- env.Program(
-     target = 'glsl2',
-diff --git a/src/glsl/ast.h b/src/glsl/ast.h
-index a77b522..da11f5a 100644
---- a/src/glsl/ast.h
-+++ b/src/glsl/ast.h
-@@ -49,23 +49,23 @@ struct YYLTYPE;
-  */
- class ast_node {
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_zero_size(ctx, size);
-+      node = rzalloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. */
-+    * ralloc_free in that case. */
-    static void operator delete(void *table)
-    {
--      talloc_free(table);
-+      ralloc_free(table);
-    }
- 
-    /**
-@@ -318,7 +318,8 @@ public:
- 
- 
- enum {
--   ast_precision_high = 0, /**< Default precision. */
-+   ast_precision_none = 0, /**< Absence of precision qualifier. */
-+   ast_precision_high,
-    ast_precision_medium,
-    ast_precision_low
- };
-@@ -440,7 +441,8 @@ public:
-    /** Construct a type specifier from a type name */
-    ast_type_specifier(const char *name) 
-       : type_specifier(ast_type_name), type_name(name), structure(NULL),
--	is_array(false), array_size(NULL), precision(ast_precision_high)
-+	is_array(false), array_size(NULL), precision(ast_precision_none),
-+	is_precision_statement(false)
-    {
-       /* empty */
-    }
-@@ -448,7 +450,8 @@ public:
-    /** Construct a type specifier from a structure definition */
-    ast_type_specifier(ast_struct_specifier *s)
-       : type_specifier(ast_struct), type_name(s->name), structure(s),
--	is_array(false), array_size(NULL), precision(ast_precision_high)
-+	is_array(false), array_size(NULL), precision(ast_precision_none),
-+	is_precision_statement(false)
-    {
-       /* empty */
-    }
-@@ -470,6 +473,8 @@ public:
-    ast_expression *array_size;
- 
-    unsigned precision:2;
-+
-+   bool is_precision_statement;
- };
- 
- 
-diff --git a/src/glsl/ast_function.cpp b/src/glsl/ast_function.cpp
-index 6ecf779..07c994f 100644
---- a/src/glsl/ast_function.cpp
-+++ b/src/glsl/ast_function.cpp
-@@ -66,7 +66,7 @@ process_parameters(exec_list *instructions, exec_list *actual_parameters,
-  *                    formal or actual parameter list.  Only the type is used.
-  *
-  * \return
-- * A talloced string representing the prototype of the function.
-+ * A ralloced string representing the prototype of the function.
-  */
- char *
- prototype_string(const glsl_type *return_type, const char *name,
-@@ -75,19 +75,19 @@ prototype_string(const glsl_type *return_type, const char *name,
-    char *str = NULL;
- 
-    if (return_type != NULL)
--      str = talloc_asprintf(str, "%s ", return_type->name);
-+      str = ralloc_asprintf(NULL, "%s ", return_type->name);
- 
--   str = talloc_asprintf_append(str, "%s(", name);
-+   ralloc_asprintf_append(&str, "%s(", name);
- 
-    const char *comma = "";
-    foreach_list(node, parameters) {
-       const ir_instruction *const param = (ir_instruction *) node;
- 
--      str = talloc_asprintf_append(str, "%s%s", comma, param->type->name);
-+      ralloc_asprintf_append(&str, "%s%s", comma, param->type->name);
-       comma = ", ";
-    }
- 
--   str = talloc_strdup_append(str, ")");
-+   ralloc_strcat(&str, ")");
-    return str;
- }
- 
-@@ -173,7 +173,7 @@ match_function_by_name(exec_list *instructions, const char *name,
- 	 ir_dereference_variable *deref;
- 
- 	 var = new(ctx) ir_variable(sig->return_type,
--				    talloc_asprintf(ctx, "%s_retval",
-+				    ralloc_asprintf(ctx, "%s_retval",
- 						    sig->function_name()),
- 				    ir_var_temporary);
- 	 instructions->push_tail(var);
-@@ -195,7 +195,7 @@ match_function_by_name(exec_list *instructions, const char *name,
- 
-       _mesa_glsl_error(loc, state, "no matching function for call to `%s'",
- 		       str);
--      talloc_free(str);
-+      ralloc_free(str);
- 
-       const char *prefix = "candidates are: ";
- 
-@@ -211,7 +211,7 @@ match_function_by_name(exec_list *instructions, const char *name,
- 
- 	    str = prototype_string(sig->return_type, f->name, &sig->parameters);
- 	    _mesa_glsl_error(loc, state, "%s%s\n", prefix, str);
--	    talloc_free(str);
-+	    ralloc_free(str);
- 
- 	    prefix = "                ";
- 	 }
-@@ -232,7 +232,7 @@ match_function_by_name(exec_list *instructions, const char *name,
- static ir_rvalue *
- convert_component(ir_rvalue *src, const glsl_type *desired_type)
- {
--   void *ctx = talloc_parent(src);
-+   void *ctx = ralloc_parent(src);
-    const unsigned a = desired_type->base_type;
-    const unsigned b = src->type->base_type;
-    ir_expression *result = NULL;
-@@ -295,7 +295,7 @@ convert_component(ir_rvalue *src, const glsl_type *desired_type)
- static ir_rvalue *
- dereference_component(ir_rvalue *src, unsigned component)
- {
--   void *ctx = talloc_parent(src);
-+   void *ctx = ralloc_parent(src);
-    assert(component < src->type->components());
- 
-    /* If the source is a constant, just create a new constant instead of a
-diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
-index 0423add..e66016d 100644
---- a/src/glsl/ast_to_hir.cpp
-+++ b/src/glsl/ast_to_hir.cpp
-@@ -715,7 +715,7 @@ do_assignment(exec_list *instructions, struct _mesa_glsl_parse_state *state,
- static ir_rvalue *
- get_lvalue_copy(exec_list *instructions, ir_rvalue *lvalue)
- {
--   void *ctx = talloc_parent(lvalue);
-+   void *ctx = ralloc_parent(lvalue);
-    ir_variable *var;
- 
-    var = new(ctx) ir_variable(lvalue->type, "_post_incdec_tmp",
-@@ -1626,6 +1626,7 @@ ast_expression::hir(exec_list *instructions,
-       result = new(ctx) ir_dereference_variable(var);
- 
-       if (var != NULL) {
-+	 var->used = true;
- 	 type = result->type;
-       } else {
- 	 _mesa_glsl_error(& loc, state, "`%s' undeclared",
-@@ -1800,10 +1801,17 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
- 				 struct _mesa_glsl_parse_state *state,
- 				 YYLTYPE *loc)
- {
--   if (qual->flags.q.invariant)
--      var->invariant = 1;
-+   if (qual->flags.q.invariant) {
-+      if (var->used) {
-+	 _mesa_glsl_error(loc, state,
-+			  "variable `%s' may not be redeclared "
-+			  "`invariant' after being used",
-+			  var->name);
-+      } else {
-+	 var->invariant = 1;
-+      }
-+   }
- 
--   /* FINISHME: Mark 'in' variables at global scope as read-only. */
-    if (qual->flags.q.constant || qual->flags.q.attribute
-        || qual->flags.q.uniform
-        || (qual->flags.q.varying && (state->target == fragment_shader)))
-@@ -1855,6 +1863,23 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
-    else if (qual->flags.q.uniform)
-       var->mode = ir_var_uniform;
- 
-+   if (state->all_invariant && (state->current_function == NULL)) {
-+      switch (state->target) {
-+      case vertex_shader:
-+	 if (var->mode == ir_var_out)
-+	    var->invariant = true;
-+	 break;
-+      case geometry_shader:
-+	 if ((var->mode == ir_var_in) || (var->mode == ir_var_out))
-+	    var->invariant = true;
-+	 break;
-+      case fragment_shader:
-+	 if (var->mode == ir_var_in)
-+	    var->invariant = true;
-+	 break;
-+      }
-+   }
-+
-    if (qual->flags.q.flat)
-       var->interpolation = ir_var_flat;
-    else if (qual->flags.q.noperspective)
-@@ -1934,6 +1959,52 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
-       }
-    }
- 
-+   /* Does the declaration use the 'layout' keyword?
-+    */
-+   const bool uses_layout = qual->flags.q.pixel_center_integer
-+      || qual->flags.q.origin_upper_left
-+      || qual->flags.q.explicit_location;
-+
-+   /* Does the declaration use the deprecated 'attribute' or 'varying'
-+    * keywords?
-+    */
-+   const bool uses_deprecated_qualifier = qual->flags.q.attribute
-+      || qual->flags.q.varying;
-+
-+   /* Is the 'layout' keyword used with parameters that allow relaxed checking.
-+    * Many implementations of GL_ARB_fragment_coord_conventions_enable and some
-+    * implementations (only Mesa?) GL_ARB_explicit_attrib_location_enable
-+    * allowed the layout qualifier to be used with 'varying' and 'attribute'.
-+    * These extensions and all following extensions that add the 'layout'
-+    * keyword have been modified to require the use of 'in' or 'out'.
-+    *
-+    * The following extension do not allow the deprecated keywords:
-+    *
-+    *    GL_AMD_conservative_depth
-+    *    GL_ARB_gpu_shader5
-+    *    GL_ARB_separate_shader_objects
-+    *    GL_ARB_tesselation_shader
-+    *    GL_ARB_transform_feedback3
-+    *    GL_ARB_uniform_buffer_object
-+    *
-+    * It is unknown whether GL_EXT_shader_image_load_store or GL_NV_gpu_shader5
-+    * allow layout with the deprecated keywords.
-+    */
-+   const bool relaxed_layout_qualifier_checking =
-+      state->ARB_fragment_coord_conventions_enable;
-+
-+   if (uses_layout && uses_deprecated_qualifier) {
-+      if (relaxed_layout_qualifier_checking) {
-+	 _mesa_glsl_warning(loc, state,
-+			    "`layout' qualifier may not be used with "
-+			    "`attribute' or `varying'");
-+      } else {
-+	 _mesa_glsl_error(loc, state,
-+			  "`layout' qualifier may not be used with "
-+			  "`attribute' or `varying'");
-+      }
-+   }
-+
-    if (var->type->is_array() && state->language_version != 110) {
-       var->array_lvalue = true;
-    }
-@@ -1991,6 +2062,11 @@ ast_declarator_list::hir(exec_list *instructions,
- 	    _mesa_glsl_error(& loc, state,
- 			     "`%s' cannot be marked invariant, fragment shader "
- 			     "inputs only\n", decl->identifier);
-+	 } else if (earlier->used) {
-+	    _mesa_glsl_error(& loc, state,
-+			     "variable `%s' may not be redeclared "
-+			     "`invariant' after being used",
-+			     earlier->name);
- 	 } else {
- 	    earlier->invariant = true;
- 	 }
-@@ -2060,20 +2136,23 @@ ast_declarator_list::hir(exec_list *instructions,
-        *
-        *     Local variables can only use the qualifier const."
-        *
--       * This is relaxed in GLSL 1.30.
-+       * This is relaxed in GLSL 1.30.  It is also relaxed by any extension
-+       * that adds the 'layout' keyword.
-        */
--      if (state->language_version < 120) {
-+      if ((state->language_version < 130)
-+	  && !state->ARB_explicit_attrib_location_enable
-+	  && !state->ARB_fragment_coord_conventions_enable) {
- 	 if (this->type->qualifier.flags.q.out) {
- 	    _mesa_glsl_error(& loc, state,
- 			     "`out' qualifier in declaration of `%s' "
--			     "only valid for function parameters in GLSL 1.10.",
--			     decl->identifier);
-+			     "only valid for function parameters in %s.",
-+			     decl->identifier, state->version_string);
- 	 }
- 	 if (this->type->qualifier.flags.q.in) {
- 	    _mesa_glsl_error(& loc, state,
- 			     "`in' qualifier in declaration of `%s' "
--			     "only valid for function parameters in GLSL 1.10.",
--			     decl->identifier);
-+			     "only valid for function parameters in %s.",
-+			     decl->identifier, state->version_string);
- 	 }
- 	 /* FINISHME: Test for other invalid qualifiers. */
-       }
-@@ -2129,6 +2208,8 @@ ast_declarator_list::hir(exec_list *instructions,
- 			     mode, var->name, extra);
- 	 }
-       } else if (var->mode == ir_var_in) {
-+         var->read_only = true;
-+
- 	 if (state->target == vertex_shader) {
- 	    bool error_emitted = false;
- 
-@@ -2181,6 +2262,38 @@ ast_declarator_list::hir(exec_list *instructions,
- 	 }
-       }
- 
-+      /* Precision qualifiers exists only in GLSL versions 1.00 and >= 1.30.
-+       */
-+      if (this->type->specifier->precision != ast_precision_none
-+          && state->language_version != 100
-+          && state->language_version < 130) {
-+
-+         _mesa_glsl_error(&loc, state,
-+                          "precision qualifiers are supported only in GLSL ES "
-+                          "1.00, and GLSL 1.30 and later");
-+      }
-+
-+
-+      /* Precision qualifiers only apply to floating point and integer types.
-+       *
-+       * From section 4.5.2 of the GLSL 1.30 spec:
-+       *    "Any floating point or any integer declaration can have the type
-+       *    preceded by one of these precision qualifiers [...] Literal
-+       *    constants do not have precision qualifiers. Neither do Boolean
-+       *    variables.
-+       */
-+      if (this->type->specifier->precision != ast_precision_none
-+          && !var->type->is_float()
-+          && !var->type->is_integer()
-+          && !(var->type->is_array()
-+               && (var->type->fields.array->is_float()
-+                   || var->type->fields.array->is_integer()))) {
-+
-+         _mesa_glsl_error(&loc, state,
-+                          "precision qualifiers apply only to floating point "
-+                          "and integer types");
-+      }
-+
-       /* Process the initializer and add its instructions to a temporary
-        * list.  This list will be added to the instruction stream (below) after
-        * the declaration is added.  This is done because in some cases (such as
-@@ -2307,7 +2420,8 @@ ast_declarator_list::hir(exec_list *instructions,
-        */
-       if (this->type->qualifier.flags.q.constant && decl->initializer == NULL) {
- 	 _mesa_glsl_error(& loc, state,
--			  "const declaration of `%s' must be initialized");
-+			  "const declaration of `%s' must be initialized",
-+			  decl->identifier);
-       }
- 
-       /* Check if this declaration is actually a re-declaration, either to
-@@ -2778,27 +2892,26 @@ ast_jump_statement::hir(exec_list *instructions,
-       assert(state->current_function);
- 
-       if (opt_return_value) {
--	 if (state->current_function->return_type->base_type ==
--	     GLSL_TYPE_VOID) {
--	    YYLTYPE loc = this->get_location();
--
--	    _mesa_glsl_error(& loc, state,
--			     "`return` with a value, in function `%s' "
--			     "returning void",
--			     state->current_function->function_name());
--	 }
--
- 	 ir_rvalue *const ret = opt_return_value->hir(instructions, state);
--	 assert(ret != NULL);
-+
-+	 /* The value of the return type can be NULL if the shader says
-+	  * 'return foo();' and foo() is a function that returns void.
-+	  *
-+	  * NOTE: The GLSL spec doesn't say that this is an error.  The type
-+	  * of the return value is void.  If the return type of the function is
-+	  * also void, then this should compile without error.  Seriously.
-+	  */
-+	 const glsl_type *const ret_type =
-+	    (ret == NULL) ? glsl_type::void_type : ret->type;
- 
- 	 /* Implicit conversions are not allowed for return values. */
--	 if (state->current_function->return_type != ret->type) {
-+	 if (state->current_function->return_type != ret_type) {
- 	    YYLTYPE loc = this->get_location();
- 
- 	    _mesa_glsl_error(& loc, state,
- 			     "`return' with wrong type %s, in function `%s' "
- 			     "returning %s",
--			     ret->type->name,
-+			     ret_type->name,
- 			     state->current_function->function_name(),
- 			     state->current_function->return_type->name);
- 	 }
-@@ -3015,6 +3128,58 @@ ir_rvalue *
- ast_type_specifier::hir(exec_list *instructions,
- 			  struct _mesa_glsl_parse_state *state)
- {
-+   if (!this->is_precision_statement && this->structure == NULL)
-+      return NULL;
-+
-+   YYLTYPE loc = this->get_location();
-+
-+   if (this->precision != ast_precision_none
-+       && state->language_version != 100
-+       && state->language_version < 130) {
-+      _mesa_glsl_error(&loc, state,
-+                       "precision qualifiers exist only in "
-+                       "GLSL ES 1.00, and GLSL 1.30 and later");
-+      return NULL;
-+   }
-+   if (this->precision != ast_precision_none
-+       && this->structure != NULL) {
-+      _mesa_glsl_error(&loc, state,
-+                       "precision qualifiers do not apply to structures");
-+      return NULL;
-+   }
-+
-+   /* If this is a precision statement, check that the type to which it is
-+    * applied is either float or int.
-+    *
-+    * From section 4.5.3 of the GLSL 1.30 spec:
-+    *    "The precision statement
-+    *       precision precision-qualifier type;
-+    *    can be used to establish a default precision qualifier. The type
-+    *    field can be either int or float [...].  Any other types or
-+    *    qualifiers will result in an error.
-+    */
-+   if (this->is_precision_statement) {
-+      assert(this->precision != ast_precision_none);
-+      assert(this->structure == NULL); /* The check for structures was
-+                                        * performed above. */
-+      if (this->is_array) {
-+         _mesa_glsl_error(&loc, state,
-+                          "default precision statements do not apply to "
-+                          "arrays");
-+         return NULL;
-+      }
-+      if (this->type_specifier != ast_float
-+          && this->type_specifier != ast_int) {
-+         _mesa_glsl_error(&loc, state,
-+                          "default precision statements apply only to types "
-+                          "float and int");
-+         return NULL;
-+      }
-+
-+      /* FINISHME: Translate precision statements into IR. */
-+      return NULL;
-+   }
-+
-    if (this->structure != NULL)
-       return this->structure->hir(instructions, state);
- 
-@@ -3045,7 +3210,7 @@ ast_struct_specifier::hir(exec_list *instructions,
-     * the types to HIR.  This ensures that structure definitions embedded in
-     * other structure definitions are processed.
-     */
--   glsl_struct_field *const fields = talloc_array(state, glsl_struct_field,
-+   glsl_struct_field *const fields = ralloc_array(state, glsl_struct_field,
- 						  decl_count);
- 
-    unsigned i = 0;
-diff --git a/src/glsl/ast_type.cpp b/src/glsl/ast_type.cpp
-index b7488cf..47d4f9f 100644
---- a/src/glsl/ast_type.cpp
-+++ b/src/glsl/ast_type.cpp
-@@ -49,7 +49,8 @@ ast_type_specifier::print(void) const
- 
- ast_type_specifier::ast_type_specifier(int specifier)
-       : type_specifier(ast_types(specifier)), type_name(NULL), structure(NULL),
--	is_array(false), array_size(NULL), precision(ast_precision_high)
-+	is_array(false), array_size(NULL), precision(ast_precision_none),
-+	is_precision_statement(false)
- {
-    static const char *const names[] = {
-       "void",
-diff --git a/src/glsl/builtin_function.cpp b/src/glsl/builtin_function.cpp
-index 1c6d59d..c6d1fc8 100644
---- a/src/glsl/builtin_function.cpp
-+++ b/src/glsl/builtin_function.cpp
-@@ -63,7 +63,7 @@ read_builtins(GLenum target, const char *protos, const char **functions, unsigne
-       if (st->error) {
-          printf("error reading builtin: %.35s ...\n", functions[i]);
-          printf("Info log:\n%s\n", st->info_log);
--         talloc_free(sh);
-+         ralloc_free(sh);
-          return NULL;
-       }
-    }
-@@ -13516,7 +13516,7 @@ void *builtin_mem_ctx = NULL;
- void
- _mesa_glsl_release_functions(void)
- {
--   talloc_free(builtin_mem_ctx);
-+   ralloc_free(builtin_mem_ctx);
-    builtin_mem_ctx = NULL;
-    memset(builtin_profiles, 0, sizeof(builtin_profiles));
- }
-@@ -13533,7 +13533,7 @@ _mesa_read_profile(struct _mesa_glsl_parse_state *state,
- 
-    if (sh == NULL) {
-       sh = read_builtins(GL_VERTEX_SHADER, prototypes, functions, count);
--      talloc_steal(builtin_mem_ctx, sh);
-+      ralloc_steal(builtin_mem_ctx, sh);
-       builtin_profiles[profile_index] = sh;
-    }
- 
-@@ -13546,7 +13546,7 @@ _mesa_glsl_initialize_functions(exec_list *instructions,
-                                 struct _mesa_glsl_parse_state *state)
- {
-    if (builtin_mem_ctx == NULL) {
--      builtin_mem_ctx = talloc_init("GLSL built-in functions");
-+      builtin_mem_ctx = ralloc_context(NULL); // "GLSL built-in functions"
-       memset(&builtin_profiles, 0, sizeof(builtin_profiles));
-    }
- 
-diff --git a/src/glsl/builtin_types.h b/src/glsl/builtin_types.h
-index 443ae16..8ccbf6e 100644
---- a/src/glsl/builtin_types.h
-+++ b/src/glsl/builtin_types.h
-@@ -24,10 +24,11 @@
- const glsl_type glsl_type::_error_type =
-    glsl_type(GL_INVALID_ENUM, GLSL_TYPE_ERROR, 0, 0, "");
- 
--const glsl_type glsl_type::void_type =
-+const glsl_type glsl_type::_void_type =
-    glsl_type(GL_INVALID_ENUM, GLSL_TYPE_VOID, 0, 0, "void");
- 
- const glsl_type *const glsl_type::error_type = & glsl_type::_error_type;
-+const glsl_type *const glsl_type::void_type = & glsl_type::_void_type;
- 
- /** \name Core built-in types
-  *
-diff --git a/src/glsl/glcpp/glcpp-lex.c b/src/glsl/glcpp/glcpp-lex.c
-index 156af30..b53bea6 100644
---- a/src/glsl/glcpp/glcpp-lex.c
-+++ b/src/glsl/glcpp/glcpp-lex.c
-@@ -795,6 +795,10 @@ int glcpp_get_lineno (yyscan_t yyscanner );
- 
- void glcpp_set_lineno (int line_number ,yyscan_t yyscanner );
- 
-+int glcpp_get_column  (yyscan_t yyscanner );
-+
-+void glcpp_set_column (int column_no ,yyscan_t yyscanner );
-+
- YYSTYPE * glcpp_get_lval (yyscan_t yyscanner );
- 
- void glcpp_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-@@ -954,7 +958,7 @@ YY_DECL
- 
- 
- 	/* Single-line comments */
--#line 958 "glcpp/glcpp-lex.c"
-+#line 962 "glcpp/glcpp-lex.c"
- 
-     yylval = yylval_param;
- 
-@@ -1121,7 +1125,7 @@ case 8:
- YY_RULE_SETUP
- #line 94 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	yyextra->space_tokens = 0;
- 	return HASH_VERSION;
- }
-@@ -1132,7 +1136,7 @@ case 9:
- YY_RULE_SETUP
- #line 102 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	yylineno++;
- 	yycolumn = 0;
- 	return OTHER;
-@@ -1312,7 +1316,7 @@ case 24:
- YY_RULE_SETUP
- #line 221 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 	YY_BREAK
-@@ -1320,7 +1324,7 @@ case 25:
- YY_RULE_SETUP
- #line 226 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 	YY_BREAK
-@@ -1328,7 +1332,7 @@ case 26:
- YY_RULE_SETUP
- #line 231 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 	YY_BREAK
-@@ -1406,7 +1410,7 @@ case 37:
- YY_RULE_SETUP
- #line 276 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return IDENTIFIER;
- }
- 	YY_BREAK
-@@ -1421,7 +1425,7 @@ case 39:
- YY_RULE_SETUP
- #line 285 "glcpp/glcpp-lex.l"
- {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return OTHER;
- }
- 	YY_BREAK
-@@ -1471,7 +1475,7 @@ YY_RULE_SETUP
- #line 319 "glcpp/glcpp-lex.l"
- ECHO;
- 	YY_BREAK
--#line 1475 "glcpp/glcpp-lex.c"
-+#line 1479 "glcpp/glcpp-lex.c"
- 			case YY_STATE_EOF(DONE):
- 			case YY_STATE_EOF(COMMENT):
- 			case YY_STATE_EOF(UNREACHABLE):
-diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
-index e936854..11b73ae 100644
---- a/src/glsl/glcpp/glcpp-lex.l
-+++ b/src/glsl/glcpp/glcpp-lex.l
-@@ -92,7 +92,7 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
- }
- 
- {HASH}version {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	yyextra->space_tokens = 0;
- 	return HASH_VERSION;
- }
-@@ -100,7 +100,7 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
- 	/* glcpp doesn't handle #extension, #version, or #pragma directives.
- 	 * Simply pass them through to the main compiler's lexer/parser. */
- {HASH}(extension|pragma)[^\n]+ {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	yylineno++;
- 	yycolumn = 0;
- 	return OTHER;
-@@ -219,17 +219,17 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
- }
- 
- {DECIMAL_INTEGER} {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 
- {OCTAL_INTEGER} {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 
- {HEXADECIMAL_INTEGER} {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return INTEGER_STRING;
- }
- 
-@@ -274,7 +274,7 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
- }
- 
- {IDENTIFIER} {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return IDENTIFIER;
- }
- 
-@@ -283,7 +283,7 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
- }
- 
- {OTHER}+ {
--	yylval->str = talloc_strdup (yyextra, yytext);
-+	yylval->str = ralloc_strdup (yyextra, yytext);
- 	return OTHER;
- }
- 
-diff --git a/src/glsl/glcpp/glcpp-parse.c b/src/glsl/glcpp/glcpp-parse.c
-index ab7c30e..609db08 100644
---- a/src/glsl/glcpp/glcpp-parse.c
-+++ b/src/glsl/glcpp/glcpp-parse.c
-@@ -102,10 +102,6 @@
- #include "main/core.h" /* for struct gl_extensions */
- #include "main/mtypes.h" /* for gl_api enum */
- 
--#define glcpp_print(stream, str) stream = talloc_strdup_append(stream, str)
--#define glcpp_printf(stream, fmt, args, ...) \
--	stream = talloc_asprintf_append(stream, fmt, args)
--
- static void
- yyerror (YYLTYPE *locp, glcpp_parser_t *parser, const char *error);
- 
-@@ -149,7 +145,7 @@ _argument_list_length (argument_list_t *list);
- static token_list_t *
- _argument_list_member_at (argument_list_t *list, int index);
- 
--/* Note: This function talloc_steal()s the str pointer. */
-+/* Note: This function ralloc_steal()s the str pointer. */
- static token_t *
- _token_create_str (void *ctx, int type, char *str);
- 
-@@ -159,10 +155,7 @@ _token_create_ival (void *ctx, int type, int ival);
- static token_list_t *
- _token_list_create (void *ctx);
- 
--/* Note: This function adds a talloc_reference() to token.
-- *
-- * You may want to talloc_unlink any current reference if you no
-- * longer need it. */
-+/* Note: This function calls ralloc_steal on token. */
- static void
- _token_list_append (token_list_t *list, token_t *token);
- 
-@@ -219,7 +212,7 @@ add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
- 
- 
- /* Line 189 of yacc.c  */
--#line 223 "glcpp/glcpp-parse.c"
-+#line 216 "glcpp/glcpp-parse.c"
- 
- /* Enabling traces.  */
- #ifndef YYDEBUG
-@@ -307,7 +300,7 @@ typedef struct YYLTYPE
- 
- 
- /* Line 264 of yacc.c  */
--#line 311 "glcpp/glcpp-parse.c"
-+#line 304 "glcpp/glcpp-parse.c"
- 
- #ifdef short
- # undef short
-@@ -632,17 +625,17 @@ static const yytype_int8 yyrhs[] =
- /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
- static const yytype_uint16 yyrline[] =
- {
--       0,   188,   188,   190,   194,   197,   202,   203,   207,   210,
--     216,   219,   222,   225,   233,   252,   262,   267,   272,   291,
--     306,   309,   312,   333,   337,   346,   351,   352,   355,   358,
--     361,   364,   367,   370,   373,   376,   379,   382,   385,   388,
--     391,   394,   397,   400,   403,   406,   409,   412,   415,   418,
--     424,   429,   437,   438,   442,   448,   449,   452,   454,   461,
--     465,   469,   474,   479,   487,   493,   501,   505,   509,   513,
--     517,   524,   525,   526,   527,   528,   529,   530,   531,   532,
--     533,   534,   535,   536,   537,   538,   539,   540,   541,   542,
--     543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
--     553,   554
-+       0,   181,   181,   183,   187,   190,   195,   196,   200,   203,
-+     209,   212,   215,   218,   226,   245,   255,   260,   265,   284,
-+     299,   302,   305,   326,   330,   339,   344,   345,   348,   351,
-+     354,   357,   360,   363,   366,   369,   372,   375,   378,   381,
-+     384,   387,   390,   393,   401,   404,   407,   410,   413,   416,
-+     422,   427,   435,   436,   440,   446,   447,   450,   452,   459,
-+     463,   467,   472,   476,   483,   488,   495,   499,   503,   507,
-+     511,   518,   519,   520,   521,   522,   523,   524,   525,   526,
-+     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
-+     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
-+     547,   548
- };
- #endif
- 
-@@ -1611,7 +1604,7 @@ YYLTYPE yylloc;
- /* User initialization code.  */
- 
- /* Line 1251 of yacc.c  */
--#line 155 "glcpp/glcpp-parse.y"
-+#line 148 "glcpp/glcpp-parse.y"
- {
- 	yylloc.first_line = 1;
- 	yylloc.first_column = 1;
-@@ -1621,7 +1614,7 @@ YYLTYPE yylloc;
- }
- 
- /* Line 1251 of yacc.c  */
--#line 1625 "glcpp/glcpp-parse.c"
-+#line 1618 "glcpp/glcpp-parse.c"
-   yylsp[0] = yylloc;
- 
-   goto yysetstate;
-@@ -1809,27 +1802,27 @@ yyreduce:
-         case 4:
- 
- /* Line 1464 of yacc.c  */
--#line 194 "glcpp/glcpp-parse.y"
-+#line 187 "glcpp/glcpp-parse.y"
-     {
--		glcpp_print(parser->output, "\n");
-+		ralloc_strcat (&parser->output, "\n");
- 	;}
-     break;
- 
-   case 5:
- 
- /* Line 1464 of yacc.c  */
--#line 197 "glcpp/glcpp-parse.y"
-+#line 190 "glcpp/glcpp-parse.y"
-     {
- 		_glcpp_parser_print_expanded_token_list (parser, (yyvsp[(1) - (1)].token_list));
--		glcpp_print(parser->output, "\n");
--		talloc_free ((yyvsp[(1) - (1)].token_list));
-+		ralloc_strcat (&parser->output, "\n");
-+		ralloc_free ((yyvsp[(1) - (1)].token_list));
- 	;}
-     break;
- 
-   case 8:
- 
- /* Line 1464 of yacc.c  */
--#line 207 "glcpp/glcpp-parse.y"
-+#line 200 "glcpp/glcpp-parse.y"
-     {
- 		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (3)]), (yyvsp[(2) - (3)].ival));
- 	;}
-@@ -1838,7 +1831,7 @@ yyreduce:
-   case 9:
- 
- /* Line 1464 of yacc.c  */
--#line 210 "glcpp/glcpp-parse.y"
-+#line 203 "glcpp/glcpp-parse.y"
-     {
- 		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (3)]), "elif", (yyvsp[(2) - (3)].ival));
- 	;}
-@@ -1847,7 +1840,7 @@ yyreduce:
-   case 10:
- 
- /* Line 1464 of yacc.c  */
--#line 216 "glcpp/glcpp-parse.y"
-+#line 209 "glcpp/glcpp-parse.y"
-     {
- 		_define_object_macro (parser, & (yylsp[(2) - (4)]), (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].token_list));
- 	;}
-@@ -1856,7 +1849,7 @@ yyreduce:
-   case 11:
- 
- /* Line 1464 of yacc.c  */
--#line 219 "glcpp/glcpp-parse.y"
-+#line 212 "glcpp/glcpp-parse.y"
-     {
- 		_define_function_macro (parser, & (yylsp[(2) - (6)]), (yyvsp[(2) - (6)].str), NULL, (yyvsp[(5) - (6)].token_list));
- 	;}
-@@ -1865,7 +1858,7 @@ yyreduce:
-   case 12:
- 
- /* Line 1464 of yacc.c  */
--#line 222 "glcpp/glcpp-parse.y"
-+#line 215 "glcpp/glcpp-parse.y"
-     {
- 		_define_function_macro (parser, & (yylsp[(2) - (7)]), (yyvsp[(2) - (7)].str), (yyvsp[(4) - (7)].string_list), (yyvsp[(6) - (7)].token_list));
- 	;}
-@@ -1874,21 +1867,21 @@ yyreduce:
-   case 13:
- 
- /* Line 1464 of yacc.c  */
--#line 225 "glcpp/glcpp-parse.y"
-+#line 218 "glcpp/glcpp-parse.y"
-     {
- 		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (3)].str));
- 		if (macro) {
- 			hash_table_remove (parser->defines, (yyvsp[(2) - (3)].str));
--			talloc_free (macro);
-+			ralloc_free (macro);
- 		}
--		talloc_free ((yyvsp[(2) - (3)].str));
-+		ralloc_free ((yyvsp[(2) - (3)].str));
- 	;}
-     break;
- 
-   case 14:
- 
- /* Line 1464 of yacc.c  */
--#line 233 "glcpp/glcpp-parse.y"
-+#line 226 "glcpp/glcpp-parse.y"
-     {
- 		/* Be careful to only evaluate the 'if' expression if
- 		 * we are not skipping. When we are skipping, we
-@@ -1913,7 +1906,7 @@ yyreduce:
-   case 15:
- 
- /* Line 1464 of yacc.c  */
--#line 252 "glcpp/glcpp-parse.y"
-+#line 245 "glcpp/glcpp-parse.y"
-     {
- 		/* #if without an expression is only an error if we
- 		 *  are not skipping */
-@@ -1929,10 +1922,10 @@ yyreduce:
-   case 16:
- 
- /* Line 1464 of yacc.c  */
--#line 262 "glcpp/glcpp-parse.y"
-+#line 255 "glcpp/glcpp-parse.y"
-     {
- 		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str));
--		talloc_free ((yyvsp[(2) - (4)].str));
-+		ralloc_free ((yyvsp[(2) - (4)].str));
- 		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (4)]), macro != NULL);
- 	;}
-     break;
-@@ -1940,10 +1933,10 @@ yyreduce:
-   case 17:
- 
- /* Line 1464 of yacc.c  */
--#line 267 "glcpp/glcpp-parse.y"
-+#line 260 "glcpp/glcpp-parse.y"
-     {
- 		macro_t *macro = hash_table_find (parser->defines, (yyvsp[(2) - (4)].str));
--		talloc_free ((yyvsp[(2) - (4)].str));
-+		ralloc_free ((yyvsp[(2) - (4)].str));
- 		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[(1) - (4)]), macro == NULL);
- 	;}
-     break;
-@@ -1951,7 +1944,7 @@ yyreduce:
-   case 18:
- 
- /* Line 1464 of yacc.c  */
--#line 272 "glcpp/glcpp-parse.y"
-+#line 265 "glcpp/glcpp-parse.y"
-     {
- 		/* Be careful to only evaluate the 'elif' expression
- 		 * if we are not skipping. When we are skipping, we
-@@ -1976,7 +1969,7 @@ yyreduce:
-   case 19:
- 
- /* Line 1464 of yacc.c  */
--#line 291 "glcpp/glcpp-parse.y"
-+#line 284 "glcpp/glcpp-parse.y"
-     {
- 		/* #elif without an expression is an error unless we
- 		 * are skipping. */
-@@ -1997,7 +1990,7 @@ yyreduce:
-   case 20:
- 
- /* Line 1464 of yacc.c  */
--#line 306 "glcpp/glcpp-parse.y"
-+#line 299 "glcpp/glcpp-parse.y"
-     {
- 		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[(1) - (2)]), "else", 1);
- 	;}
-@@ -2006,7 +1999,7 @@ yyreduce:
-   case 21:
- 
- /* Line 1464 of yacc.c  */
--#line 309 "glcpp/glcpp-parse.y"
-+#line 302 "glcpp/glcpp-parse.y"
-     {
- 		_glcpp_parser_skip_stack_pop (parser, & (yylsp[(1) - (2)]));
- 	;}
-@@ -2015,12 +2008,12 @@ yyreduce:
-   case 22:
- 
- /* Line 1464 of yacc.c  */
--#line 312 "glcpp/glcpp-parse.y"
-+#line 305 "glcpp/glcpp-parse.y"
-     {
- 		macro_t *macro = hash_table_find (parser->defines, "__VERSION__");
- 		if (macro) {
- 			hash_table_remove (parser->defines, "__VERSION__");
--			talloc_free (macro);
-+			ralloc_free (macro);
- 		}
- 		add_builtin_define (parser, "__VERSION__", (yyvsp[(2) - (3)].ival));
- 
-@@ -2035,14 +2028,14 @@ yyreduce:
- 		if ((yyvsp[(2) - (3)].ival) >= 130 || (yyvsp[(2) - (3)].ival) == 100)
- 			add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
- 
--		glcpp_printf(parser->output, "#version %" PRIiMAX, (yyvsp[(2) - (3)].ival));
-+		ralloc_asprintf_append (&parser->output, "#version %" PRIiMAX, (yyvsp[(2) - (3)].ival));
- 	;}
-     break;
- 
-   case 24:
- 
- /* Line 1464 of yacc.c  */
--#line 337 "glcpp/glcpp-parse.y"
-+#line 330 "glcpp/glcpp-parse.y"
-     {
- 		if (strlen ((yyvsp[(1) - (1)].str)) >= 3 && strncmp ((yyvsp[(1) - (1)].str), "0x", 2) == 0) {
- 			(yyval.ival) = strtoll ((yyvsp[(1) - (1)].str) + 2, NULL, 16);
-@@ -2057,7 +2050,7 @@ yyreduce:
-   case 25:
- 
- /* Line 1464 of yacc.c  */
--#line 346 "glcpp/glcpp-parse.y"
-+#line 339 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (1)].ival);
- 	;}
-@@ -2066,7 +2059,7 @@ yyreduce:
-   case 27:
- 
- /* Line 1464 of yacc.c  */
--#line 352 "glcpp/glcpp-parse.y"
-+#line 345 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) || (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2075,7 +2068,7 @@ yyreduce:
-   case 28:
- 
- /* Line 1464 of yacc.c  */
--#line 355 "glcpp/glcpp-parse.y"
-+#line 348 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) && (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2084,7 +2077,7 @@ yyreduce:
-   case 29:
- 
- /* Line 1464 of yacc.c  */
--#line 358 "glcpp/glcpp-parse.y"
-+#line 351 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2093,7 +2086,7 @@ yyreduce:
-   case 30:
- 
- /* Line 1464 of yacc.c  */
--#line 361 "glcpp/glcpp-parse.y"
-+#line 354 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) ^ (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2102,7 +2095,7 @@ yyreduce:
-   case 31:
- 
- /* Line 1464 of yacc.c  */
--#line 364 "glcpp/glcpp-parse.y"
-+#line 357 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) & (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2111,7 +2104,7 @@ yyreduce:
-   case 32:
- 
- /* Line 1464 of yacc.c  */
--#line 367 "glcpp/glcpp-parse.y"
-+#line 360 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) != (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2120,7 +2113,7 @@ yyreduce:
-   case 33:
- 
- /* Line 1464 of yacc.c  */
--#line 370 "glcpp/glcpp-parse.y"
-+#line 363 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) == (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2129,7 +2122,7 @@ yyreduce:
-   case 34:
- 
- /* Line 1464 of yacc.c  */
--#line 373 "glcpp/glcpp-parse.y"
-+#line 366 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) >= (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2138,7 +2131,7 @@ yyreduce:
-   case 35:
- 
- /* Line 1464 of yacc.c  */
--#line 376 "glcpp/glcpp-parse.y"
-+#line 369 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) <= (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2147,7 +2140,7 @@ yyreduce:
-   case 36:
- 
- /* Line 1464 of yacc.c  */
--#line 379 "glcpp/glcpp-parse.y"
-+#line 372 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) > (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2156,7 +2149,7 @@ yyreduce:
-   case 37:
- 
- /* Line 1464 of yacc.c  */
--#line 382 "glcpp/glcpp-parse.y"
-+#line 375 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) < (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2165,7 +2158,7 @@ yyreduce:
-   case 38:
- 
- /* Line 1464 of yacc.c  */
--#line 385 "glcpp/glcpp-parse.y"
-+#line 378 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) >> (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2174,7 +2167,7 @@ yyreduce:
-   case 39:
- 
- /* Line 1464 of yacc.c  */
--#line 388 "glcpp/glcpp-parse.y"
-+#line 381 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) << (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2183,7 +2176,7 @@ yyreduce:
-   case 40:
- 
- /* Line 1464 of yacc.c  */
--#line 391 "glcpp/glcpp-parse.y"
-+#line 384 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) - (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2192,7 +2185,7 @@ yyreduce:
-   case 41:
- 
- /* Line 1464 of yacc.c  */
--#line 394 "glcpp/glcpp-parse.y"
-+#line 387 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) + (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2201,7 +2194,7 @@ yyreduce:
-   case 42:
- 
- /* Line 1464 of yacc.c  */
--#line 397 "glcpp/glcpp-parse.y"
-+#line 390 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) % (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2210,16 +2203,21 @@ yyreduce:
-   case 43:
- 
- /* Line 1464 of yacc.c  */
--#line 400 "glcpp/glcpp-parse.y"
-+#line 393 "glcpp/glcpp-parse.y"
-     {
--		(yyval.ival) = (yyvsp[(1) - (3)].ival) / (yyvsp[(3) - (3)].ival);
-+		if ((yyvsp[(3) - (3)].ival) == 0) {
-+			yyerror (& (yylsp[(1) - (3)]), parser,
-+				 "division by 0 in preprocessor directive");
-+		} else {
-+			(yyval.ival) = (yyvsp[(1) - (3)].ival) / (yyvsp[(3) - (3)].ival);
-+		}
- 	;}
-     break;
- 
-   case 44:
- 
- /* Line 1464 of yacc.c  */
--#line 403 "glcpp/glcpp-parse.y"
-+#line 401 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(1) - (3)].ival) * (yyvsp[(3) - (3)].ival);
- 	;}
-@@ -2228,7 +2226,7 @@ yyreduce:
-   case 45:
- 
- /* Line 1464 of yacc.c  */
--#line 406 "glcpp/glcpp-parse.y"
-+#line 404 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = ! (yyvsp[(2) - (2)].ival);
- 	;}
-@@ -2237,7 +2235,7 @@ yyreduce:
-   case 46:
- 
- /* Line 1464 of yacc.c  */
--#line 409 "glcpp/glcpp-parse.y"
-+#line 407 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = ~ (yyvsp[(2) - (2)].ival);
- 	;}
-@@ -2246,7 +2244,7 @@ yyreduce:
-   case 47:
- 
- /* Line 1464 of yacc.c  */
--#line 412 "glcpp/glcpp-parse.y"
-+#line 410 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = - (yyvsp[(2) - (2)].ival);
- 	;}
-@@ -2255,7 +2253,7 @@ yyreduce:
-   case 48:
- 
- /* Line 1464 of yacc.c  */
--#line 415 "glcpp/glcpp-parse.y"
-+#line 413 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = + (yyvsp[(2) - (2)].ival);
- 	;}
-@@ -2264,7 +2262,7 @@ yyreduce:
-   case 49:
- 
- /* Line 1464 of yacc.c  */
--#line 418 "glcpp/glcpp-parse.y"
-+#line 416 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.ival) = (yyvsp[(2) - (3)].ival);
- 	;}
-@@ -2273,36 +2271,36 @@ yyreduce:
-   case 50:
- 
- /* Line 1464 of yacc.c  */
--#line 424 "glcpp/glcpp-parse.y"
-+#line 422 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.string_list) = _string_list_create (parser);
- 		_string_list_append_item ((yyval.string_list), (yyvsp[(1) - (1)].str));
--		talloc_steal ((yyval.string_list), (yyvsp[(1) - (1)].str));
-+		ralloc_steal ((yyval.string_list), (yyvsp[(1) - (1)].str));
- 	;}
-     break;
- 
-   case 51:
- 
- /* Line 1464 of yacc.c  */
--#line 429 "glcpp/glcpp-parse.y"
-+#line 427 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.string_list) = (yyvsp[(1) - (3)].string_list);	
- 		_string_list_append_item ((yyval.string_list), (yyvsp[(3) - (3)].str));
--		talloc_steal ((yyval.string_list), (yyvsp[(3) - (3)].str));
-+		ralloc_steal ((yyval.string_list), (yyvsp[(3) - (3)].str));
- 	;}
-     break;
- 
-   case 52:
- 
- /* Line 1464 of yacc.c  */
--#line 437 "glcpp/glcpp-parse.y"
-+#line 435 "glcpp/glcpp-parse.y"
-     { (yyval.token_list) = NULL; ;}
-     break;
- 
-   case 54:
- 
- /* Line 1464 of yacc.c  */
--#line 442 "glcpp/glcpp-parse.y"
-+#line 440 "glcpp/glcpp-parse.y"
-     {
- 		yyerror (& (yylsp[(1) - (2)]), parser, "Invalid tokens after #");
- 	;}
-@@ -2311,14 +2309,14 @@ yyreduce:
-   case 55:
- 
- /* Line 1464 of yacc.c  */
--#line 448 "glcpp/glcpp-parse.y"
-+#line 446 "glcpp/glcpp-parse.y"
-     { (yyval.token_list) = NULL; ;}
-     break;
- 
-   case 58:
- 
- /* Line 1464 of yacc.c  */
--#line 454 "glcpp/glcpp-parse.y"
-+#line 452 "glcpp/glcpp-parse.y"
-     {
- 		glcpp_warning(&(yylsp[(1) - (1)]), parser, "extra tokens at end of directive");
- 	;}
-@@ -2327,7 +2325,7 @@ yyreduce:
-   case 59:
- 
- /* Line 1464 of yacc.c  */
--#line 461 "glcpp/glcpp-parse.y"
-+#line 459 "glcpp/glcpp-parse.y"
-     {
- 		int v = hash_table_find (parser->defines, (yyvsp[(2) - (2)].str)) ? 1 : 0;
- 		(yyval.token) = _token_create_ival (parser, INTEGER, v);
-@@ -2337,7 +2335,7 @@ yyreduce:
-   case 60:
- 
- /* Line 1464 of yacc.c  */
--#line 465 "glcpp/glcpp-parse.y"
-+#line 463 "glcpp/glcpp-parse.y"
-     {
- 		int v = hash_table_find (parser->defines, (yyvsp[(3) - (4)].str)) ? 1 : 0;
- 		(yyval.token) = _token_create_ival (parser, INTEGER, v);
-@@ -2347,52 +2345,48 @@ yyreduce:
-   case 62:
- 
- /* Line 1464 of yacc.c  */
--#line 474 "glcpp/glcpp-parse.y"
-+#line 472 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token_list) = _token_list_create (parser);
- 		_token_list_append ((yyval.token_list), (yyvsp[(1) - (1)].token));
--		talloc_unlink (parser, (yyvsp[(1) - (1)].token));
- 	;}
-     break;
- 
-   case 63:
- 
- /* Line 1464 of yacc.c  */
--#line 479 "glcpp/glcpp-parse.y"
-+#line 476 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token_list) = (yyvsp[(1) - (2)].token_list);
- 		_token_list_append ((yyval.token_list), (yyvsp[(2) - (2)].token));
--		talloc_unlink (parser, (yyvsp[(2) - (2)].token));
- 	;}
-     break;
- 
-   case 64:
- 
- /* Line 1464 of yacc.c  */
--#line 487 "glcpp/glcpp-parse.y"
-+#line 483 "glcpp/glcpp-parse.y"
-     {
- 		parser->space_tokens = 1;
- 		(yyval.token_list) = _token_list_create (parser);
- 		_token_list_append ((yyval.token_list), (yyvsp[(1) - (1)].token));
--		talloc_unlink (parser, (yyvsp[(1) - (1)].token));
- 	;}
-     break;
- 
-   case 65:
- 
- /* Line 1464 of yacc.c  */
--#line 493 "glcpp/glcpp-parse.y"
-+#line 488 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token_list) = (yyvsp[(1) - (2)].token_list);
- 		_token_list_append ((yyval.token_list), (yyvsp[(2) - (2)].token));
--		talloc_unlink (parser, (yyvsp[(2) - (2)].token));
- 	;}
-     break;
- 
-   case 66:
- 
- /* Line 1464 of yacc.c  */
--#line 501 "glcpp/glcpp-parse.y"
-+#line 495 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token) = _token_create_str (parser, IDENTIFIER, (yyvsp[(1) - (1)].str));
- 		(yyval.token)->location = yylloc;
-@@ -2402,7 +2396,7 @@ yyreduce:
-   case 67:
- 
- /* Line 1464 of yacc.c  */
--#line 505 "glcpp/glcpp-parse.y"
-+#line 499 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token) = _token_create_str (parser, INTEGER_STRING, (yyvsp[(1) - (1)].str));
- 		(yyval.token)->location = yylloc;
-@@ -2412,7 +2406,7 @@ yyreduce:
-   case 68:
- 
- /* Line 1464 of yacc.c  */
--#line 509 "glcpp/glcpp-parse.y"
-+#line 503 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token) = _token_create_ival (parser, (yyvsp[(1) - (1)].ival), (yyvsp[(1) - (1)].ival));
- 		(yyval.token)->location = yylloc;
-@@ -2422,7 +2416,7 @@ yyreduce:
-   case 69:
- 
- /* Line 1464 of yacc.c  */
--#line 513 "glcpp/glcpp-parse.y"
-+#line 507 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token) = _token_create_str (parser, OTHER, (yyvsp[(1) - (1)].str));
- 		(yyval.token)->location = yylloc;
-@@ -2432,7 +2426,7 @@ yyreduce:
-   case 70:
- 
- /* Line 1464 of yacc.c  */
--#line 517 "glcpp/glcpp-parse.y"
-+#line 511 "glcpp/glcpp-parse.y"
-     {
- 		(yyval.token) = _token_create_ival (parser, SPACE, SPACE);
- 		(yyval.token)->location = yylloc;
-@@ -2442,224 +2436,224 @@ yyreduce:
-   case 71:
- 
- /* Line 1464 of yacc.c  */
--#line 524 "glcpp/glcpp-parse.y"
-+#line 518 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '['; ;}
-     break;
- 
-   case 72:
- 
- /* Line 1464 of yacc.c  */
--#line 525 "glcpp/glcpp-parse.y"
-+#line 519 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = ']'; ;}
-     break;
- 
-   case 73:
- 
- /* Line 1464 of yacc.c  */
--#line 526 "glcpp/glcpp-parse.y"
-+#line 520 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '('; ;}
-     break;
- 
-   case 74:
- 
- /* Line 1464 of yacc.c  */
--#line 527 "glcpp/glcpp-parse.y"
-+#line 521 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = ')'; ;}
-     break;
- 
-   case 75:
- 
- /* Line 1464 of yacc.c  */
--#line 528 "glcpp/glcpp-parse.y"
-+#line 522 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '{'; ;}
-     break;
- 
-   case 76:
- 
- /* Line 1464 of yacc.c  */
--#line 529 "glcpp/glcpp-parse.y"
-+#line 523 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '}'; ;}
-     break;
- 
-   case 77:
- 
- /* Line 1464 of yacc.c  */
--#line 530 "glcpp/glcpp-parse.y"
-+#line 524 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '.'; ;}
-     break;
- 
-   case 78:
- 
- /* Line 1464 of yacc.c  */
--#line 531 "glcpp/glcpp-parse.y"
-+#line 525 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '&'; ;}
-     break;
- 
-   case 79:
- 
- /* Line 1464 of yacc.c  */
--#line 532 "glcpp/glcpp-parse.y"
-+#line 526 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '*'; ;}
-     break;
- 
-   case 80:
- 
- /* Line 1464 of yacc.c  */
--#line 533 "glcpp/glcpp-parse.y"
-+#line 527 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '+'; ;}
-     break;
- 
-   case 81:
- 
- /* Line 1464 of yacc.c  */
--#line 534 "glcpp/glcpp-parse.y"
-+#line 528 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '-'; ;}
-     break;
- 
-   case 82:
- 
- /* Line 1464 of yacc.c  */
--#line 535 "glcpp/glcpp-parse.y"
-+#line 529 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '~'; ;}
-     break;
- 
-   case 83:
- 
- /* Line 1464 of yacc.c  */
--#line 536 "glcpp/glcpp-parse.y"
-+#line 530 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '!'; ;}
-     break;
- 
-   case 84:
- 
- /* Line 1464 of yacc.c  */
--#line 537 "glcpp/glcpp-parse.y"
-+#line 531 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '/'; ;}
-     break;
- 
-   case 85:
- 
- /* Line 1464 of yacc.c  */
--#line 538 "glcpp/glcpp-parse.y"
-+#line 532 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '%'; ;}
-     break;
- 
-   case 86:
- 
- /* Line 1464 of yacc.c  */
--#line 539 "glcpp/glcpp-parse.y"
-+#line 533 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = LEFT_SHIFT; ;}
-     break;
- 
-   case 87:
- 
- /* Line 1464 of yacc.c  */
--#line 540 "glcpp/glcpp-parse.y"
-+#line 534 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = RIGHT_SHIFT; ;}
-     break;
- 
-   case 88:
- 
- /* Line 1464 of yacc.c  */
--#line 541 "glcpp/glcpp-parse.y"
-+#line 535 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '<'; ;}
-     break;
- 
-   case 89:
- 
- /* Line 1464 of yacc.c  */
--#line 542 "glcpp/glcpp-parse.y"
-+#line 536 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '>'; ;}
-     break;
- 
-   case 90:
- 
- /* Line 1464 of yacc.c  */
--#line 543 "glcpp/glcpp-parse.y"
-+#line 537 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = LESS_OR_EQUAL; ;}
-     break;
- 
-   case 91:
- 
- /* Line 1464 of yacc.c  */
--#line 544 "glcpp/glcpp-parse.y"
-+#line 538 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = GREATER_OR_EQUAL; ;}
-     break;
- 
-   case 92:
- 
- /* Line 1464 of yacc.c  */
--#line 545 "glcpp/glcpp-parse.y"
-+#line 539 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = EQUAL; ;}
-     break;
- 
-   case 93:
- 
- /* Line 1464 of yacc.c  */
--#line 546 "glcpp/glcpp-parse.y"
-+#line 540 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = NOT_EQUAL; ;}
-     break;
- 
-   case 94:
- 
- /* Line 1464 of yacc.c  */
--#line 547 "glcpp/glcpp-parse.y"
-+#line 541 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '^'; ;}
-     break;
- 
-   case 95:
- 
- /* Line 1464 of yacc.c  */
--#line 548 "glcpp/glcpp-parse.y"
-+#line 542 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '|'; ;}
-     break;
- 
-   case 96:
- 
- /* Line 1464 of yacc.c  */
--#line 549 "glcpp/glcpp-parse.y"
-+#line 543 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = AND; ;}
-     break;
- 
-   case 97:
- 
- /* Line 1464 of yacc.c  */
--#line 550 "glcpp/glcpp-parse.y"
-+#line 544 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = OR; ;}
-     break;
- 
-   case 98:
- 
- /* Line 1464 of yacc.c  */
--#line 551 "glcpp/glcpp-parse.y"
-+#line 545 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = ';'; ;}
-     break;
- 
-   case 99:
- 
- /* Line 1464 of yacc.c  */
--#line 552 "glcpp/glcpp-parse.y"
-+#line 546 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = ','; ;}
-     break;
- 
-   case 100:
- 
- /* Line 1464 of yacc.c  */
--#line 553 "glcpp/glcpp-parse.y"
-+#line 547 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = '='; ;}
-     break;
- 
-   case 101:
- 
- /* Line 1464 of yacc.c  */
--#line 554 "glcpp/glcpp-parse.y"
-+#line 548 "glcpp/glcpp-parse.y"
-     { (yyval.ival) = PASTE; ;}
-     break;
- 
- 
- 
- /* Line 1464 of yacc.c  */
--#line 2663 "glcpp/glcpp-parse.c"
-+#line 2657 "glcpp/glcpp-parse.c"
-       default: break;
-     }
-   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-@@ -2878,7 +2872,7 @@ yyreturn:
- 
- 
- /* Line 1684 of yacc.c  */
--#line 557 "glcpp/glcpp-parse.y"
-+#line 551 "glcpp/glcpp-parse.y"
- 
- 
- string_list_t *
-@@ -2886,7 +2880,7 @@ _string_list_create (void *ctx)
- {
- 	string_list_t *list;
- 
--	list = talloc (ctx, string_list_t);
-+	list = ralloc (ctx, string_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 
-@@ -2898,8 +2892,8 @@ _string_list_append_item (string_list_t *list, const char *str)
- {
- 	string_node_t *node;
- 
--	node = talloc (list, string_node_t);
--	node->str = talloc_strdup (node, str);
-+	node = ralloc (list, string_node_t);
-+	node->str = ralloc_strdup (node, str);
- 
- 	node->next = NULL;
- 
-@@ -2977,7 +2971,7 @@ _argument_list_create (void *ctx)
- {
- 	argument_list_t *list;
- 
--	list = talloc (ctx, argument_list_t);
-+	list = ralloc (ctx, argument_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 
-@@ -2989,7 +2983,7 @@ _argument_list_append (argument_list_t *list, token_list_t *argument)
- {
- 	argument_node_t *node;
- 
--	node = talloc (list, argument_node_t);
-+	node = ralloc (list, argument_node_t);
- 	node->argument = argument;
- 
- 	node->next = NULL;
-@@ -3040,15 +3034,17 @@ _argument_list_member_at (argument_list_t *list, int index)
- 	return NULL;
- }
- 
--/* Note: This function talloc_steal()s the str pointer. */
-+/* Note: This function ralloc_steal()s the str pointer. */
- token_t *
- _token_create_str (void *ctx, int type, char *str)
- {
- 	token_t *token;
- 
--	token = talloc (ctx, token_t);
-+	token = ralloc (ctx, token_t);
- 	token->type = type;
--	token->value.str = talloc_steal (token, str);
-+	token->value.str = str;
-+
-+	ralloc_steal (token, str);
- 
- 	return token;
- }
-@@ -3058,7 +3054,7 @@ _token_create_ival (void *ctx, int type, int ival)
- {
- 	token_t *token;
- 
--	token = talloc (ctx, token_t);
-+	token = ralloc (ctx, token_t);
- 	token->type = type;
- 	token->value.ival = ival;
- 
-@@ -3070,7 +3066,7 @@ _token_list_create (void *ctx)
- {
- 	token_list_t *list;
- 
--	list = talloc (ctx, token_list_t);
-+	list = ralloc (ctx, token_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 	list->non_space_tail = NULL;
-@@ -3083,11 +3079,12 @@ _token_list_append (token_list_t *list, token_t *token)
- {
- 	token_node_t *node;
- 
--	node = talloc (list, token_node_t);
--	node->token = talloc_reference (list, token);
--
-+	node = ralloc (list, token_node_t);
-+	node->token = token;
- 	node->next = NULL;
- 
-+	ralloc_steal (list, token);
-+
- 	if (list->head == NULL) {
- 		list->head = node;
- 	} else {
-@@ -3125,8 +3122,11 @@ _token_list_copy (void *ctx, token_list_t *other)
- 		return NULL;
- 
- 	copy = _token_list_create (ctx);
--	for (node = other->head; node; node = node->next)
--		_token_list_append (copy, node->token);
-+	for (node = other->head; node; node = node->next) {
-+		token_t *new_token = ralloc (copy, token_t);
-+		*new_token = *node->token;
-+		_token_list_append (copy, new_token);
-+	}
- 
- 	return copy;
- }
-@@ -3143,17 +3143,38 @@ _token_list_trim_trailing_space (token_list_t *list)
- 
- 		while (tail) {
- 			next = tail->next;
--			talloc_free (tail);
-+			ralloc_free (tail);
- 			tail = next;
- 		}
- 	}
- }
- 
- int
-+_token_list_is_empty_ignoring_space (token_list_t *l)
-+{
-+	token_node_t *n;
-+
-+	if (l == NULL)
-+		return 1;
-+
-+	n = l->head;
-+	while (n != NULL && n->token->type == SPACE)
-+		n = n->next;
-+
-+	return n == NULL;
-+}
-+
-+int
- _token_list_equal_ignoring_space (token_list_t *a, token_list_t *b)
- {
- 	token_node_t *node_a, *node_b;
- 
-+	if (a == NULL || b == NULL) {
-+		int a_empty = _token_list_is_empty_ignoring_space(a);
-+		int b_empty = _token_list_is_empty_ignoring_space(b);
-+		return a_empty == b_empty;
-+	}
-+
- 	node_a = a->head;
- 	node_b = b->head;
- 
-@@ -3208,51 +3229,51 @@ static void
- _token_print (char **out, token_t *token)
- {
- 	if (token->type < 256) {
--		glcpp_printf (*out, "%c", token->type);
-+		ralloc_asprintf_append (out, "%c", token->type);
- 		return;
- 	}
- 
- 	switch (token->type) {
- 	case INTEGER:
--		glcpp_printf (*out, "%" PRIiMAX, token->value.ival);
-+		ralloc_asprintf_append (out, "%" PRIiMAX, token->value.ival);
- 		break;
- 	case IDENTIFIER:
- 	case INTEGER_STRING:
- 	case OTHER:
--		glcpp_print (*out, token->value.str);
-+		ralloc_strcat (out, token->value.str);
- 		break;
- 	case SPACE:
--		glcpp_print (*out, " ");
-+		ralloc_strcat (out, " ");
- 		break;
- 	case LEFT_SHIFT:
--		glcpp_print (*out, "<<");
-+		ralloc_strcat (out, "<<");
- 		break;
- 	case RIGHT_SHIFT:
--		glcpp_print (*out, ">>");
-+		ralloc_strcat (out, ">>");
- 		break;
- 	case LESS_OR_EQUAL:
--		glcpp_print (*out, "<=");
-+		ralloc_strcat (out, "<=");
- 		break;
- 	case GREATER_OR_EQUAL:
--		glcpp_print (*out, ">=");
-+		ralloc_strcat (out, ">=");
- 		break;
- 	case EQUAL:
--		glcpp_print (*out, "==");
-+		ralloc_strcat (out, "==");
- 		break;
- 	case NOT_EQUAL:
--		glcpp_print (*out, "!=");
-+		ralloc_strcat (out, "!=");
- 		break;
- 	case AND:
--		glcpp_print (*out, "&&");
-+		ralloc_strcat (out, "&&");
- 		break;
- 	case OR:
--		glcpp_print (*out, "||");
-+		ralloc_strcat (out, "||");
- 		break;
- 	case PASTE:
--		glcpp_print (*out, "##");
-+		ralloc_strcat (out, "##");
- 		break;
- 	case COMMA_FINAL:
--		glcpp_print (*out, ",");
-+		ralloc_strcat (out, ",");
- 		break;
- 	case PLACEHOLDER:
- 		/* Nothing to print. */
-@@ -3263,7 +3284,7 @@ _token_print (char **out, token_t *token)
- 	}
- }
- 
--/* Return a new token (talloc()ed off of 'token') formed by pasting
-+/* Return a new token (ralloc()ed off of 'token') formed by pasting
-  * 'token' and 'other'. Note that this function may return 'token' or
-  * 'other' directly rather than allocating anything new.
-  *
-@@ -3334,7 +3355,7 @@ _token_paste (glcpp_parser_t *parser, token_t *token, token_t *other)
- 	{
- 		char *str;
- 
--		str = talloc_asprintf (token, "%s%s", token->value.str,
-+		str = ralloc_asprintf (token, "%s%s", token->value.str,
- 				       other->value.str);
- 		combined = _token_create_str (token, token->type, str);
- 		combined->location = token->location;
-@@ -3342,11 +3363,11 @@ _token_paste (glcpp_parser_t *parser, token_t *token, token_t *other)
- 	}
- 
- 	glcpp_error (&token->location, parser, "");
--	glcpp_print (parser->info_log, "Pasting \"");
-+	ralloc_strcat (&parser->info_log, "Pasting \"");
- 	_token_print (&parser->info_log, token);
--	glcpp_print (parser->info_log, "\" and \"");
-+	ralloc_strcat (&parser->info_log, "\" and \"");
- 	_token_print (&parser->info_log, other);
--	glcpp_print (parser->info_log, "\" does not give a valid preprocessing token.\n");
-+	ralloc_strcat (&parser->info_log, "\" does not give a valid preprocessing token.\n");
- 
- 	return token;
- }
-@@ -3380,8 +3401,6 @@ static void add_builtin_define(glcpp_parser_t *parser,
-    list = _token_list_create(parser);
-    _token_list_append(list, tok);
-    _define_object_macro(parser, NULL, name, list);
--
--   talloc_unlink(parser, tok);
- }
- 
- glcpp_parser_t *
-@@ -3390,7 +3409,7 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api)
- 	glcpp_parser_t *parser;
- 	int language_version;
- 
--	parser = talloc (NULL, glcpp_parser_t);
-+	parser = ralloc (NULL, glcpp_parser_t);
- 
- 	glcpp_lex_init_extra (parser, &parser->scanner);
- 	parser->defines = hash_table_ctor (32, hash_table_string_hash,
-@@ -3407,8 +3426,8 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api)
- 	parser->lex_from_list = NULL;
- 	parser->lex_from_node = NULL;
- 
--	parser->output = talloc_strdup(parser, "");
--	parser->info_log = talloc_strdup(parser, "");
-+	parser->output = ralloc_strdup(parser, "");
-+	parser->info_log = ralloc_strdup(parser, "");
- 	parser->error = 0;
- 
- 	/* Add pre-defined macros. */
-@@ -3448,7 +3467,7 @@ glcpp_parser_destroy (glcpp_parser_t *parser)
- {
- 	glcpp_lex_destroy (parser->scanner);
- 	hash_table_dtor (parser->defines);
--	talloc_free (parser);
-+	ralloc_free (parser);
- }
- 
- typedef enum function_status
-@@ -3619,7 +3638,7 @@ _glcpp_parser_expand_function (glcpp_parser_t *parser,
- 
- 	/* Replace a macro defined as empty with a SPACE token. */
- 	if (macro->replacements == NULL) {
--		talloc_free (arguments);
-+		ralloc_free (arguments);
- 		return _token_list_create_with_one_space (parser);
- 	}
- 
-@@ -3775,7 +3794,7 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
- 		token_list_t *expansion;
- 		token_t *final;
- 
--		str = talloc_strdup (parser, token->value.str);
-+		str = ralloc_strdup (parser, token->value.str);
- 		final = _token_create_str (parser, OTHER, str);
- 		expansion = _token_list_create (parser);
- 		_token_list_append (expansion, final);
-@@ -3811,8 +3830,8 @@ _active_list_push (active_list_t *list,
- {
- 	active_list_t *node;
- 
--	node = talloc (list, active_list_t);
--	node->identifier = talloc_strdup (node, identifier);
-+	node = ralloc (list, active_list_t);
-+	node->identifier = ralloc_strdup (node, identifier);
- 	node->marker = marker;
- 	node->next = list;
- 
-@@ -3828,7 +3847,7 @@ _active_list_pop (active_list_t *list)
- 		return NULL;
- 
- 	node = list->next;
--	talloc_free (list);
-+	ralloc_free (list);
- 
- 	return node;
- }
-@@ -3977,17 +3996,18 @@ _define_object_macro (glcpp_parser_t *parser,
- 	if (loc != NULL)
- 		_check_for_reserved_macro_name(parser, loc, identifier);
- 
--	macro = talloc (parser, macro_t);
-+	macro = ralloc (parser, macro_t);
- 
- 	macro->is_function = 0;
- 	macro->parameters = NULL;
--	macro->identifier = talloc_strdup (macro, identifier);
--	macro->replacements = talloc_steal (macro, replacements);
-+	macro->identifier = ralloc_strdup (macro, identifier);
-+	macro->replacements = replacements;
-+	ralloc_steal (macro, replacements);
- 
- 	previous = hash_table_find (parser->defines, identifier);
- 	if (previous) {
- 		if (_macro_equal (macro, previous)) {
--			talloc_free (macro);
-+			ralloc_free (macro);
- 			return;
- 		}
- 		glcpp_error (loc, parser, "Redefinition of macro %s\n",
-@@ -4008,17 +4028,18 @@ _define_function_macro (glcpp_parser_t *parser,
- 
- 	_check_for_reserved_macro_name(parser, loc, identifier);
- 
--	macro = talloc (parser, macro_t);
-+	macro = ralloc (parser, macro_t);
-+	ralloc_steal (macro, parameters);
-+	ralloc_steal (macro, replacements);
- 
- 	macro->is_function = 1;
--	macro->parameters = talloc_steal (macro, parameters);
--	macro->identifier = talloc_strdup (macro, identifier);
--	macro->replacements = talloc_steal (macro, replacements);
--
-+	macro->parameters = parameters;
-+	macro->identifier = ralloc_strdup (macro, identifier);
-+	macro->replacements = replacements;
- 	previous = hash_table_find (parser->defines, identifier);
- 	if (previous) {
- 		if (_macro_equal (macro, previous)) {
--			talloc_free (macro);
-+			ralloc_free (macro);
- 			return;
- 		}
- 		glcpp_error (loc, parser, "Redefinition of macro %s\n",
-@@ -4094,7 +4115,7 @@ glcpp_parser_lex (YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser)
- 	node = parser->lex_from_node;
- 
- 	if (node == NULL) {
--		talloc_free (parser->lex_from_list);
-+		ralloc_free (parser->lex_from_list);
- 		parser->lex_from_list = NULL;
- 		return NEWLINE;
- 	}
-@@ -4123,13 +4144,13 @@ glcpp_parser_lex_from (glcpp_parser_t *parser, token_list_t *list)
- 		_token_list_append (parser->lex_from_list, node->token);
- 	}
- 
--	talloc_free (list);
-+	ralloc_free (list);
- 
- 	parser->lex_from_node = parser->lex_from_list->head;
- 
- 	/* It's possible the list consisted of nothing but whitespace. */
- 	if (parser->lex_from_node == NULL) {
--		talloc_free (parser->lex_from_list);
-+		ralloc_free (parser->lex_from_list);
- 		parser->lex_from_list = NULL;
- 	}
- }
-@@ -4144,7 +4165,7 @@ _glcpp_parser_skip_stack_push_if (glcpp_parser_t *parser, YYLTYPE *loc,
- 	if (parser->skip_stack)
- 		current = parser->skip_stack->type;
- 
--	node = talloc (parser, skip_node_t);
-+	node = ralloc (parser, skip_node_t);
- 	node->loc = *loc;
- 
- 	if (current == SKIP_NO_SKIP) {
-@@ -4189,6 +4210,6 @@ _glcpp_parser_skip_stack_pop (glcpp_parser_t *parser, YYLTYPE *loc)
- 
- 	node = parser->skip_stack;
- 	parser->skip_stack = node->next;
--	talloc_free (node);
-+	ralloc_free (node);
- }
- 
-diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
-index 558ad0a..5e218ad 100644
---- a/src/glsl/glcpp/glcpp-parse.y
-+++ b/src/glsl/glcpp/glcpp-parse.y
-@@ -32,10 +32,6 @@
- #include "main/core.h" /* for struct gl_extensions */
- #include "main/mtypes.h" /* for gl_api enum */
- 
--#define glcpp_print(stream, str) stream = talloc_strdup_append(stream, str)
--#define glcpp_printf(stream, fmt, args, ...) \
--	stream = talloc_asprintf_append(stream, fmt, args)
--
- static void
- yyerror (YYLTYPE *locp, glcpp_parser_t *parser, const char *error);
- 
-@@ -79,7 +75,7 @@ _argument_list_length (argument_list_t *list);
- static token_list_t *
- _argument_list_member_at (argument_list_t *list, int index);
- 
--/* Note: This function talloc_steal()s the str pointer. */
-+/* Note: This function ralloc_steal()s the str pointer. */
- static token_t *
- _token_create_str (void *ctx, int type, char *str);
- 
-@@ -89,10 +85,7 @@ _token_create_ival (void *ctx, int type, int ival);
- static token_list_t *
- _token_list_create (void *ctx);
- 
--/* Note: This function adds a talloc_reference() to token.
-- *
-- * You may want to talloc_unlink any current reference if you no
-- * longer need it. */
-+/* Note: This function calls ralloc_steal on token. */
- static void
- _token_list_append (token_list_t *list, token_t *token);
- 
-@@ -192,12 +185,12 @@ input:
- 
- line:
- 	control_line {
--		glcpp_print(parser->output, "\n");
-+		ralloc_strcat (&parser->output, "\n");
- 	}
- |	text_line {
- 		_glcpp_parser_print_expanded_token_list (parser, $1);
--		glcpp_print(parser->output, "\n");
--		talloc_free ($1);
-+		ralloc_strcat (&parser->output, "\n");
-+		ralloc_free ($1);
- 	}
- |	expanded_line
- |	HASH non_directive
-@@ -226,9 +219,9 @@ control_line:
- 		macro_t *macro = hash_table_find (parser->defines, $2);
- 		if (macro) {
- 			hash_table_remove (parser->defines, $2);
--			talloc_free (macro);
-+			ralloc_free (macro);
- 		}
--		talloc_free ($2);
-+		ralloc_free ($2);
- 	}
- |	HASH_IF conditional_tokens NEWLINE {
- 		/* Be careful to only evaluate the 'if' expression if
-@@ -261,12 +254,12 @@ control_line:
- 	}
- |	HASH_IFDEF IDENTIFIER junk NEWLINE {
- 		macro_t *macro = hash_table_find (parser->defines, $2);
--		talloc_free ($2);
-+		ralloc_free ($2);
- 		_glcpp_parser_skip_stack_push_if (parser, & @1, macro != NULL);
- 	}
- |	HASH_IFNDEF IDENTIFIER junk NEWLINE {
- 		macro_t *macro = hash_table_find (parser->defines, $2);
--		talloc_free ($2);
-+		ralloc_free ($2);
- 		_glcpp_parser_skip_stack_push_if (parser, & @1, macro == NULL);
- 	}
- |	HASH_ELIF conditional_tokens NEWLINE {
-@@ -313,7 +306,7 @@ control_line:
- 		macro_t *macro = hash_table_find (parser->defines, "__VERSION__");
- 		if (macro) {
- 			hash_table_remove (parser->defines, "__VERSION__");
--			talloc_free (macro);
-+			ralloc_free (macro);
- 		}
- 		add_builtin_define (parser, "__VERSION__", $2);
- 
-@@ -328,7 +321,7 @@ control_line:
- 		if ($2 >= 130 || $2 == 100)
- 			add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
- 
--		glcpp_printf(parser->output, "#version %" PRIiMAX, $2);
-+		ralloc_asprintf_append (&parser->output, "#version %" PRIiMAX, $2);
- 	}
- |	HASH NEWLINE
- ;
-@@ -398,7 +391,12 @@ expression:
- 		$$ = $1 % $3;
- 	}
- |	expression '/' expression {
--		$$ = $1 / $3;
-+		if ($3 == 0) {
-+			yyerror (& @1, parser,
-+				 "division by 0 in preprocessor directive");
-+		} else {
-+			$$ = $1 / $3;
-+		}
- 	}
- |	expression '*' expression {
- 		$$ = $1 * $3;
-@@ -424,12 +422,12 @@ identifier_list:
- 	IDENTIFIER {
- 		$$ = _string_list_create (parser);
- 		_string_list_append_item ($$, $1);
--		talloc_steal ($$, $1);
-+		ralloc_steal ($$, $1);
- 	}
- |	identifier_list ',' IDENTIFIER {
- 		$$ = $1;	
- 		_string_list_append_item ($$, $3);
--		talloc_steal ($$, $3);
-+		ralloc_steal ($$, $3);
- 	}
- ;
- 
-@@ -474,12 +472,10 @@ conditional_tokens:
- 	conditional_token {
- 		$$ = _token_list_create (parser);
- 		_token_list_append ($$, $1);
--		talloc_unlink (parser, $1);
- 	}
- |	conditional_tokens conditional_token {
- 		$$ = $1;
- 		_token_list_append ($$, $2);
--		talloc_unlink (parser, $2);
- 	}
- ;
- 
-@@ -488,12 +484,10 @@ pp_tokens:
- 		parser->space_tokens = 1;
- 		$$ = _token_list_create (parser);
- 		_token_list_append ($$, $1);
--		talloc_unlink (parser, $1);
- 	}
- |	pp_tokens preprocessing_token {
- 		$$ = $1;
- 		_token_list_append ($$, $2);
--		talloc_unlink (parser, $2);
- 	}
- ;
- 
-@@ -561,7 +555,7 @@ _string_list_create (void *ctx)
- {
- 	string_list_t *list;
- 
--	list = talloc (ctx, string_list_t);
-+	list = ralloc (ctx, string_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 
-@@ -573,8 +567,8 @@ _string_list_append_item (string_list_t *list, const char *str)
- {
- 	string_node_t *node;
- 
--	node = talloc (list, string_node_t);
--	node->str = talloc_strdup (node, str);
-+	node = ralloc (list, string_node_t);
-+	node->str = ralloc_strdup (node, str);
- 
- 	node->next = NULL;
- 
-@@ -652,7 +646,7 @@ _argument_list_create (void *ctx)
- {
- 	argument_list_t *list;
- 
--	list = talloc (ctx, argument_list_t);
-+	list = ralloc (ctx, argument_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 
-@@ -664,7 +658,7 @@ _argument_list_append (argument_list_t *list, token_list_t *argument)
- {
- 	argument_node_t *node;
- 
--	node = talloc (list, argument_node_t);
-+	node = ralloc (list, argument_node_t);
- 	node->argument = argument;
- 
- 	node->next = NULL;
-@@ -715,15 +709,17 @@ _argument_list_member_at (argument_list_t *list, int index)
- 	return NULL;
- }
- 
--/* Note: This function talloc_steal()s the str pointer. */
-+/* Note: This function ralloc_steal()s the str pointer. */
- token_t *
- _token_create_str (void *ctx, int type, char *str)
- {
- 	token_t *token;
- 
--	token = talloc (ctx, token_t);
-+	token = ralloc (ctx, token_t);
- 	token->type = type;
--	token->value.str = talloc_steal (token, str);
-+	token->value.str = str;
-+
-+	ralloc_steal (token, str);
- 
- 	return token;
- }
-@@ -733,7 +729,7 @@ _token_create_ival (void *ctx, int type, int ival)
- {
- 	token_t *token;
- 
--	token = talloc (ctx, token_t);
-+	token = ralloc (ctx, token_t);
- 	token->type = type;
- 	token->value.ival = ival;
- 
-@@ -745,7 +741,7 @@ _token_list_create (void *ctx)
- {
- 	token_list_t *list;
- 
--	list = talloc (ctx, token_list_t);
-+	list = ralloc (ctx, token_list_t);
- 	list->head = NULL;
- 	list->tail = NULL;
- 	list->non_space_tail = NULL;
-@@ -758,11 +754,12 @@ _token_list_append (token_list_t *list, token_t *token)
- {
- 	token_node_t *node;
- 
--	node = talloc (list, token_node_t);
--	node->token = talloc_reference (list, token);
--
-+	node = ralloc (list, token_node_t);
-+	node->token = token;
- 	node->next = NULL;
- 
-+	ralloc_steal (list, token);
-+
- 	if (list->head == NULL) {
- 		list->head = node;
- 	} else {
-@@ -800,8 +797,11 @@ _token_list_copy (void *ctx, token_list_t *other)
- 		return NULL;
- 
- 	copy = _token_list_create (ctx);
--	for (node = other->head; node; node = node->next)
--		_token_list_append (copy, node->token);
-+	for (node = other->head; node; node = node->next) {
-+		token_t *new_token = ralloc (copy, token_t);
-+		*new_token = *node->token;
-+		_token_list_append (copy, new_token);
-+	}
- 
- 	return copy;
- }
-@@ -818,17 +818,38 @@ _token_list_trim_trailing_space (token_list_t *list)
- 
- 		while (tail) {
- 			next = tail->next;
--			talloc_free (tail);
-+			ralloc_free (tail);
- 			tail = next;
- 		}
- 	}
- }
- 
- int
-+_token_list_is_empty_ignoring_space (token_list_t *l)
-+{
-+	token_node_t *n;
-+
-+	if (l == NULL)
-+		return 1;
-+
-+	n = l->head;
-+	while (n != NULL && n->token->type == SPACE)
-+		n = n->next;
-+
-+	return n == NULL;
-+}
-+
-+int
- _token_list_equal_ignoring_space (token_list_t *a, token_list_t *b)
- {
- 	token_node_t *node_a, *node_b;
- 
-+	if (a == NULL || b == NULL) {
-+		int a_empty = _token_list_is_empty_ignoring_space(a);
-+		int b_empty = _token_list_is_empty_ignoring_space(b);
-+		return a_empty == b_empty;
-+	}
-+
- 	node_a = a->head;
- 	node_b = b->head;
- 
-@@ -883,51 +904,51 @@ static void
- _token_print (char **out, token_t *token)
- {
- 	if (token->type < 256) {
--		glcpp_printf (*out, "%c", token->type);
-+		ralloc_asprintf_append (out, "%c", token->type);
- 		return;
- 	}
- 
- 	switch (token->type) {
- 	case INTEGER:
--		glcpp_printf (*out, "%" PRIiMAX, token->value.ival);
-+		ralloc_asprintf_append (out, "%" PRIiMAX, token->value.ival);
- 		break;
- 	case IDENTIFIER:
- 	case INTEGER_STRING:
- 	case OTHER:
--		glcpp_print (*out, token->value.str);
-+		ralloc_strcat (out, token->value.str);
- 		break;
- 	case SPACE:
--		glcpp_print (*out, " ");
-+		ralloc_strcat (out, " ");
- 		break;
- 	case LEFT_SHIFT:
--		glcpp_print (*out, "<<");
-+		ralloc_strcat (out, "<<");
- 		break;
- 	case RIGHT_SHIFT:
--		glcpp_print (*out, ">>");
-+		ralloc_strcat (out, ">>");
- 		break;
- 	case LESS_OR_EQUAL:
--		glcpp_print (*out, "<=");
-+		ralloc_strcat (out, "<=");
- 		break;
- 	case GREATER_OR_EQUAL:
--		glcpp_print (*out, ">=");
-+		ralloc_strcat (out, ">=");
- 		break;
- 	case EQUAL:
--		glcpp_print (*out, "==");
-+		ralloc_strcat (out, "==");
- 		break;
- 	case NOT_EQUAL:
--		glcpp_print (*out, "!=");
-+		ralloc_strcat (out, "!=");
- 		break;
- 	case AND:
--		glcpp_print (*out, "&&");
-+		ralloc_strcat (out, "&&");
- 		break;
- 	case OR:
--		glcpp_print (*out, "||");
-+		ralloc_strcat (out, "||");
- 		break;
- 	case PASTE:
--		glcpp_print (*out, "##");
-+		ralloc_strcat (out, "##");
- 		break;
- 	case COMMA_FINAL:
--		glcpp_print (*out, ",");
-+		ralloc_strcat (out, ",");
- 		break;
- 	case PLACEHOLDER:
- 		/* Nothing to print. */
-@@ -938,7 +959,7 @@ _token_print (char **out, token_t *token)
- 	}
- }
- 
--/* Return a new token (talloc()ed off of 'token') formed by pasting
-+/* Return a new token (ralloc()ed off of 'token') formed by pasting
-  * 'token' and 'other'. Note that this function may return 'token' or
-  * 'other' directly rather than allocating anything new.
-  *
-@@ -1009,7 +1030,7 @@ _token_paste (glcpp_parser_t *parser, token_t *token, token_t *other)
- 	{
- 		char *str;
- 
--		str = talloc_asprintf (token, "%s%s", token->value.str,
-+		str = ralloc_asprintf (token, "%s%s", token->value.str,
- 				       other->value.str);
- 		combined = _token_create_str (token, token->type, str);
- 		combined->location = token->location;
-@@ -1017,11 +1038,11 @@ _token_paste (glcpp_parser_t *parser, token_t *token, token_t *other)
- 	}
- 
- 	glcpp_error (&token->location, parser, "");
--	glcpp_print (parser->info_log, "Pasting \"");
-+	ralloc_strcat (&parser->info_log, "Pasting \"");
- 	_token_print (&parser->info_log, token);
--	glcpp_print (parser->info_log, "\" and \"");
-+	ralloc_strcat (&parser->info_log, "\" and \"");
- 	_token_print (&parser->info_log, other);
--	glcpp_print (parser->info_log, "\" does not give a valid preprocessing token.\n");
-+	ralloc_strcat (&parser->info_log, "\" does not give a valid preprocessing token.\n");
- 
- 	return token;
- }
-@@ -1055,8 +1076,6 @@ static void add_builtin_define(glcpp_parser_t *parser,
-    list = _token_list_create(parser);
-    _token_list_append(list, tok);
-    _define_object_macro(parser, NULL, name, list);
--
--   talloc_unlink(parser, tok);
- }
- 
- glcpp_parser_t *
-@@ -1065,7 +1084,7 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api)
- 	glcpp_parser_t *parser;
- 	int language_version;
- 
--	parser = talloc (NULL, glcpp_parser_t);
-+	parser = ralloc (NULL, glcpp_parser_t);
- 
- 	glcpp_lex_init_extra (parser, &parser->scanner);
- 	parser->defines = hash_table_ctor (32, hash_table_string_hash,
-@@ -1082,8 +1101,8 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api)
- 	parser->lex_from_list = NULL;
- 	parser->lex_from_node = NULL;
- 
--	parser->output = talloc_strdup(parser, "");
--	parser->info_log = talloc_strdup(parser, "");
-+	parser->output = ralloc_strdup(parser, "");
-+	parser->info_log = ralloc_strdup(parser, "");
- 	parser->error = 0;
- 
- 	/* Add pre-defined macros. */
-@@ -1123,7 +1142,7 @@ glcpp_parser_destroy (glcpp_parser_t *parser)
- {
- 	glcpp_lex_destroy (parser->scanner);
- 	hash_table_dtor (parser->defines);
--	talloc_free (parser);
-+	ralloc_free (parser);
- }
- 
- typedef enum function_status
-@@ -1294,7 +1313,7 @@ _glcpp_parser_expand_function (glcpp_parser_t *parser,
- 
- 	/* Replace a macro defined as empty with a SPACE token. */
- 	if (macro->replacements == NULL) {
--		talloc_free (arguments);
-+		ralloc_free (arguments);
- 		return _token_list_create_with_one_space (parser);
- 	}
- 
-@@ -1450,7 +1469,7 @@ _glcpp_parser_expand_node (glcpp_parser_t *parser,
- 		token_list_t *expansion;
- 		token_t *final;
- 
--		str = talloc_strdup (parser, token->value.str);
-+		str = ralloc_strdup (parser, token->value.str);
- 		final = _token_create_str (parser, OTHER, str);
- 		expansion = _token_list_create (parser);
- 		_token_list_append (expansion, final);
-@@ -1486,8 +1505,8 @@ _active_list_push (active_list_t *list,
- {
- 	active_list_t *node;
- 
--	node = talloc (list, active_list_t);
--	node->identifier = talloc_strdup (node, identifier);
-+	node = ralloc (list, active_list_t);
-+	node->identifier = ralloc_strdup (node, identifier);
- 	node->marker = marker;
- 	node->next = list;
- 
-@@ -1503,7 +1522,7 @@ _active_list_pop (active_list_t *list)
- 		return NULL;
- 
- 	node = list->next;
--	talloc_free (list);
-+	ralloc_free (list);
- 
- 	return node;
- }
-@@ -1652,17 +1671,18 @@ _define_object_macro (glcpp_parser_t *parser,
- 	if (loc != NULL)
- 		_check_for_reserved_macro_name(parser, loc, identifier);
- 
--	macro = talloc (parser, macro_t);
-+	macro = ralloc (parser, macro_t);
- 
- 	macro->is_function = 0;
- 	macro->parameters = NULL;
--	macro->identifier = talloc_strdup (macro, identifier);
--	macro->replacements = talloc_steal (macro, replacements);
-+	macro->identifier = ralloc_strdup (macro, identifier);
-+	macro->replacements = replacements;
-+	ralloc_steal (macro, replacements);
- 
- 	previous = hash_table_find (parser->defines, identifier);
- 	if (previous) {
- 		if (_macro_equal (macro, previous)) {
--			talloc_free (macro);
-+			ralloc_free (macro);
- 			return;
- 		}
- 		glcpp_error (loc, parser, "Redefinition of macro %s\n",
-@@ -1683,17 +1703,18 @@ _define_function_macro (glcpp_parser_t *parser,
- 
- 	_check_for_reserved_macro_name(parser, loc, identifier);
- 
--	macro = talloc (parser, macro_t);
-+	macro = ralloc (parser, macro_t);
-+	ralloc_steal (macro, parameters);
-+	ralloc_steal (macro, replacements);
- 
- 	macro->is_function = 1;
--	macro->parameters = talloc_steal (macro, parameters);
--	macro->identifier = talloc_strdup (macro, identifier);
--	macro->replacements = talloc_steal (macro, replacements);
--
-+	macro->parameters = parameters;
-+	macro->identifier = ralloc_strdup (macro, identifier);
-+	macro->replacements = replacements;
- 	previous = hash_table_find (parser->defines, identifier);
- 	if (previous) {
- 		if (_macro_equal (macro, previous)) {
--			talloc_free (macro);
-+			ralloc_free (macro);
- 			return;
- 		}
- 		glcpp_error (loc, parser, "Redefinition of macro %s\n",
-@@ -1769,7 +1790,7 @@ glcpp_parser_lex (YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser)
- 	node = parser->lex_from_node;
- 
- 	if (node == NULL) {
--		talloc_free (parser->lex_from_list);
-+		ralloc_free (parser->lex_from_list);
- 		parser->lex_from_list = NULL;
- 		return NEWLINE;
- 	}
-@@ -1798,13 +1819,13 @@ glcpp_parser_lex_from (glcpp_parser_t *parser, token_list_t *list)
- 		_token_list_append (parser->lex_from_list, node->token);
- 	}
- 
--	talloc_free (list);
-+	ralloc_free (list);
- 
- 	parser->lex_from_node = parser->lex_from_list->head;
- 
- 	/* It's possible the list consisted of nothing but whitespace. */
- 	if (parser->lex_from_node == NULL) {
--		talloc_free (parser->lex_from_list);
-+		ralloc_free (parser->lex_from_list);
- 		parser->lex_from_list = NULL;
- 	}
- }
-@@ -1819,7 +1840,7 @@ _glcpp_parser_skip_stack_push_if (glcpp_parser_t *parser, YYLTYPE *loc,
- 	if (parser->skip_stack)
- 		current = parser->skip_stack->type;
- 
--	node = talloc (parser, skip_node_t);
-+	node = ralloc (parser, skip_node_t);
- 	node->loc = *loc;
- 
- 	if (current == SKIP_NO_SKIP) {
-@@ -1864,5 +1885,5 @@ _glcpp_parser_skip_stack_pop (glcpp_parser_t *parser, YYLTYPE *loc)
- 
- 	node = parser->skip_stack;
- 	parser->skip_stack = node->next;
--	talloc_free (node);
-+	ralloc_free (node);
- }
-diff --git a/src/glsl/glcpp/glcpp.c b/src/glsl/glcpp/glcpp.c
-index 062eb6b..564194c 100644
---- a/src/glsl/glcpp/glcpp.c
-+++ b/src/glsl/glcpp/glcpp.c
-@@ -54,7 +54,7 @@ load_text_fd (void *ctx, int fd)
- 	while (1) {
- 		if (total_read + CHUNK + 1 > text_size) {
- 			text_size = text_size ? text_size * 2 : CHUNK + 1;
--			text = talloc_realloc_size (ctx, text, text_size);
-+			text = reralloc_size (ctx, text, text_size);
- 			if (text == NULL) {
- 				fprintf (stderr, "Out of memory\n");
- 				return NULL;
-@@ -64,7 +64,7 @@ load_text_fd (void *ctx, int fd)
- 		if (bytes < 0) {
- 			fprintf (stderr, "Error while reading: %s\n",
- 				 strerror (errno));
--			talloc_free (text);
-+			ralloc_free (text);
- 			return NULL;
- 		}
- 
-@@ -107,8 +107,8 @@ int
- main (int argc, char *argv[])
- {
- 	char *filename = NULL;
--	void *ctx = talloc(NULL, void*);
--	char *info_log = talloc_strdup(ctx, "");
-+	void *ctx = ralloc(NULL, void*);
-+	char *info_log = ralloc_strdup(ctx, "");
- 	const char *shader;
- 	int ret;
- 
-@@ -125,7 +125,7 @@ main (int argc, char *argv[])
- 	printf("%s", shader);
- 	fprintf(stderr, "%s", info_log);
- 
--	talloc_free(ctx);
-+	ralloc_free(ctx);
- 
- 	return ret;
- }
-diff --git a/src/glsl/glcpp/glcpp.h b/src/glsl/glcpp/glcpp.h
-index 7125d32..dc816e9 100644
---- a/src/glsl/glcpp/glcpp.h
-+++ b/src/glsl/glcpp/glcpp.h
-@@ -26,7 +26,7 @@
- 
- #include <stdint.h>
- 
--#include <talloc.h>
-+#include "../ralloc.h"
- 
- #include "program/hash_table.h"
- 
-@@ -189,7 +189,7 @@ void
- glcpp_parser_destroy (glcpp_parser_t *parser);
- 
- int
--preprocess(void *talloc_ctx, const char **shader, char **info_log,
-+preprocess(void *ralloc_ctx, const char **shader, char **info_log,
- 	   const struct gl_extensions *extensions, int api);
- 
- /* Functions for writing to the info log */
-diff --git a/src/glsl/glcpp/pp.c b/src/glsl/glcpp/pp.c
-index e1a3a88..3640896 100644
---- a/src/glsl/glcpp/pp.c
-+++ b/src/glsl/glcpp/pp.c
-@@ -33,16 +33,15 @@ glcpp_error (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
- 	va_list ap;
- 
- 	parser->error = 1;
--	parser->info_log = talloc_asprintf_append(parser->info_log,
--						  "%u:%u(%u): "
-+	ralloc_asprintf_append(&parser->info_log, "%u:%u(%u): "
- 						  "preprocessor error: ",
- 						  locp->source,
- 						  locp->first_line,
- 						  locp->first_column);
- 	va_start(ap, fmt);
--	parser->info_log = talloc_vasprintf_append(parser->info_log, fmt, ap);
-+	ralloc_vasprintf_append(&parser->info_log, fmt, ap);
- 	va_end(ap);
--	parser->info_log = talloc_strdup_append(parser->info_log, "\n");
-+	ralloc_strcat(&parser->info_log, "\n");
- }
- 
- void
-@@ -50,16 +49,15 @@ glcpp_warning (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
- {
- 	va_list ap;
- 
--	parser->info_log = talloc_asprintf_append(parser->info_log,
--						  "%u:%u(%u): "
-+	ralloc_asprintf_append(&parser->info_log, "%u:%u(%u): "
- 						  "preprocessor warning: ",
- 						  locp->source,
- 						  locp->first_line,
- 						  locp->first_column);
- 	va_start(ap, fmt);
--	parser->info_log = talloc_vasprintf_append(parser->info_log, fmt, ap);
-+	ralloc_vasprintf_append(&parser->info_log, fmt, ap);
- 	va_end(ap);
--	parser->info_log = talloc_strdup_append(parser->info_log, "\n");
-+	ralloc_strcat(&parser->info_log, "\n");
- }
- 
- /* Searches backwards for '^ *#' from a given starting point. */
-@@ -92,7 +90,7 @@ remove_line_continuations(glcpp_parser_t *ctx, const char *shader)
- {
- 	int in_continued_line = 0;
- 	int extra_newlines = 0;
--	char *clean = talloc_strdup(ctx, "");
-+	char *clean = ralloc_strdup(ctx, "");
- 	const char *search_start = shader;
- 	const char *newline;
- 	while ((newline = strchr(search_start, '\n')) != NULL) {
-@@ -122,27 +120,27 @@ remove_line_continuations(glcpp_parser_t *ctx, const char *shader)
- 			}
- 			if (in_continued_line) {
- 				/* Copy everything before the \ */
--				clean = talloc_strndup_append(clean, shader, backslash - shader);
-+				ralloc_strncat(&clean, shader, backslash - shader);
- 				shader = newline + 1;
- 				extra_newlines++;
- 			}
- 		} else if (in_continued_line) {
- 			/* Copy everything up to and including the \n */
--			clean = talloc_strndup_append(clean, shader, newline - shader + 1);
-+			ralloc_strncat(&clean, shader, newline - shader + 1);
- 			shader = newline + 1;
- 			/* Output extra newlines to make line numbers match */
- 			for (; extra_newlines > 0; extra_newlines--)
--				clean = talloc_strdup_append(clean, "\n");
-+				ralloc_strcat(&clean, "\n");
- 			in_continued_line = 0;
- 		}
- 		search_start = newline + 1;
- 	}
--	clean = talloc_strdup_append(clean, shader);
-+	ralloc_strcat(&clean, shader);
- 	return clean;
- }
- 
- int
--preprocess(void *talloc_ctx, const char **shader, char **info_log,
-+preprocess(void *ralloc_ctx, const char **shader, char **info_log,
- 	   const struct gl_extensions *extensions, int api)
- {
- 	int errors;
-@@ -156,9 +154,9 @@ preprocess(void *talloc_ctx, const char **shader, char **info_log,
- 	if (parser->skip_stack)
- 		glcpp_error (&parser->skip_stack->loc, parser, "Unterminated #if\n");
- 
--	*info_log = talloc_strdup_append(*info_log, parser->info_log);
-+	ralloc_strcat(info_log, parser->info_log);
- 
--	talloc_steal(talloc_ctx, parser->output);
-+	ralloc_steal(ralloc_ctx, parser->output);
- 	*shader = parser->output;
- 
- 	errors = parser->error;
-diff --git a/src/glsl/glsl_lexer.cpp b/src/glsl/glsl_lexer.cpp
-index 39c1190..3b648d5 100644
---- a/src/glsl/glsl_lexer.cpp
-+++ b/src/glsl/glsl_lexer.cpp
-@@ -349,8 +349,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
- 	*yy_cp = '\0'; \
- 	yyg->yy_c_buf_p = yy_cp;
- 
--#define YY_NUM_RULES 209
--#define YY_END_OF_BUFFER 210
-+#define YY_NUM_RULES 210
-+#define YY_END_OF_BUFFER 211
- /* This struct is not used in this scanner,
-    but its presence is necessary. */
- struct yy_trans_info
-@@ -358,98 +358,100 @@ struct yy_trans_info
- 	flex_int32_t yy_verify;
- 	flex_int32_t yy_nxt;
- 	};
--static yyconst flex_int16_t yy_accept[813] =
-+static yyconst flex_int16_t yy_accept[836] =
-     {   0,
--        0,    0,   15,   15,    0,    0,  210,  208,    1,   20,
--      208,  208,  208,  208,  208,  208,  208,  208,  119,  117,
--      208,  208,  208,  207,  208,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  208,    1,  208,  209,   15,
--       19,  209,   18,   16,   17,   13,   12,    1,  101,  110,
--      102,  113,  107,   96,  109,   97,  116,  121,  108,  122,
--      119,    0,    0,  124,  119,    0,  117,  117,  105,   98,
--      100,   99,  106,  207,  114,  104,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,   29,  207,
--
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,   33,  207,  207,   60,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  115,
--      103,    1,    0,    0,    2,    0,    0,    0,    0,   15,
--       14,   18,   17,    0,  121,  120,    0,  122,    0,  123,
--      118,  111,  112,  207,  127,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,   32,  207,  207,  207,
--
--      207,  207,  207,  207,  207,  207,  207,   25,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,   61,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--        0,    0,    0,    0,   14,    0,  121,    0,  120,    0,
--      122,  123,  118,  207,  207,   23,  207,  207,  174,  167,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,   31,
--      130,  207,  207,  207,  207,   67,  207,  207,  135,  149,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--
--      207,  207,  146,  170,   48,   49,   50,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  133,  125,  207,
--      207,   26,  207,  207,  207,  207,  207,  207,  207,   45,
--       46,   47,   94,  207,  207,    0,    0,    0,    0,    0,
--      120,  207,  207,   27,   36,   37,   38,  207,  128,  207,
--       22,  207,  207,  207,  207,  157,  158,  159,  207,  126,
--      207,  150,   24,  160,  161,  162,  172,  154,  155,  156,
--      207,  207,  207,   62,  152,  207,  207,  207,   39,   40,
--       41,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--
--      207,  207,  207,  207,  207,  207,  207,  147,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  129,  207,
--      207,  169,   42,   43,   44,  207,  207,   30,    0,    0,
--        0,    0,  177,  207,  207,  175,  207,  207,  207,  148,
--      143,  180,  207,  207,  207,  207,  207,  207,  138,  207,
--      207,  207,   95,   51,   52,   53,   54,   55,   56,   57,
--       58,   59,  207,  207,  207,  207,  153,  134,  207,  207,
--      141,   35,  207,  207,  166,   68,  142,   93,  178,  136,
--      207,  207,  207,  207,  207,  207,  207,  207,    0,    0,
--        0,    0,  207,  207,  207,  137,   34,  207,  207,  207,
--
--      207,  207,  207,  181,  182,  183,  207,  207,  207,  207,
--      207,  171,  207,  207,  207,  207,  207,  207,  207,  207,
--      131,  207,  207,  207,  207,  207,   63,  207,  207,   64,
--      207,    0,    0,    0,    0,    0,  207,   65,   28,  144,
--      185,  186,  187,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  139,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  132,  189,  190,  191,  207,
--      207,  151,  207,  140,    0,    0,    6,    0,    0,    0,
--       11,    3,   21,  207,  207,  207,  207,  207,  207,  207,
--      207,  207,  184,  145,   66,  207,  207,  207,  207,  168,
--
--      207,  176,  173,  206,   70,   71,   72,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,    0,    0,    0,
--        0,    0,    0,  207,  207,  207,  188,  207,  207,  207,
--      207,  207,   81,   82,   83,  207,  207,  207,  207,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  192,   87,
--       88,   89,  207,    4,    0,    5,    0,    0,    0,    0,
--        0,  207,  207,  207,  207,  207,  207,  207,  203,  207,
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--       73,  207,  207,  207,  207,  207,  207,    0,    0,    0,
--      207,  207,  204,  193,  207,  194,  207,  207,  207,   84,
--
--      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
--      207,  205,  207,  207,   90,    0,    0,  195,  196,  207,
--      199,  207,  200,  207,  207,   69,  207,  207,  207,  163,
--      207,  164,  179,  207,  197,  198,  207,  207,    0,    0,
--      207,  207,  207,  207,   74,  207,   75,  207,  207,  207,
--      207,  207,    0,    0,    0,  207,  207,   85,   86,  207,
--       76,  207,  207,   77,  207,   91,   92,    0,    0,    0,
--      207,  207,  207,  207,  207,  207,    0,    0,    0,  207,
--      207,  207,  207,  207,   78,    0,    0,    7,    0,    0,
--      201,  202,  207,  207,  207,    0,    8,    0,    0,  207,
--
--      207,  165,    0,    0,   79,   80,    0,    0,    9,    0,
--       10,    0
-+        0,    0,   16,   16,    0,    0,  211,  209,    1,   21,
-+      209,  209,  209,  209,  209,  209,  209,  209,  120,  118,
-+      209,  209,  209,  208,  209,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  209,    1,  209,  210,   16,
-+       20,  210,   19,   17,   18,   14,   13,    1,  102,  111,
-+      103,  114,  108,   97,  110,   98,  117,  122,  109,  123,
-+      120,    0,    0,  125,  120,    0,  118,  118,  106,   99,
-+      101,  100,  107,  208,  115,  105,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,   30,  208,
-+
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,   34,  208,  208,   61,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  116,
-+      104,    1,    0,    0,    2,    0,    0,    0,    0,   16,
-+       15,   19,   18,    0,  122,  121,    0,  123,    0,  124,
-+      119,  112,  113,  208,  128,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,   33,  208,  208,  208,
-+
-+      208,  208,  208,  208,  208,  208,  208,   26,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,   62,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+        0,    0,    0,    0,   15,    0,  122,    0,  121,    0,
-+      123,  124,  119,  208,  208,   24,  208,  208,  175,  168,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,   32,
-+      131,  208,  208,  208,  208,   68,  208,  208,  136,  150,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+
-+      208,  208,  147,  171,   49,   50,   51,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  134,  126,  208,
-+      208,   27,  208,  208,  208,  208,  208,  208,  208,   46,
-+       47,   48,   95,  208,  208,    0,    0,    0,    0,    0,
-+      121,  208,  208,   28,   37,   38,   39,  208,  129,  208,
-+       23,  208,  208,  208,  208,  158,  159,  160,  208,  127,
-+      208,  151,   25,  161,  162,  163,  173,  155,  156,  157,
-+      208,  208,  208,   63,  153,  208,  208,  208,   40,   41,
-+       42,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+
-+      208,  208,  208,  208,  208,  208,  208,  148,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  130,  208,
-+      208,  170,   43,   44,   45,  208,  208,   31,    0,    0,
-+        0,    0,  178,  208,  208,  176,  208,  208,  208,  149,
-+      144,  181,  208,  208,  208,  208,  208,  208,  139,  208,
-+      208,  208,   96,   52,   53,   54,   55,   56,   57,   58,
-+       59,   60,  208,  208,  208,  208,  154,  135,  208,  208,
-+      142,   36,  208,  208,  167,   69,  143,   94,  179,  137,
-+      208,  208,  208,  208,  208,  208,  208,  208,    0,    0,
-+        0,    0,  208,  208,  208,  138,   35,  208,  208,  208,
-+
-+      208,  208,  208,  182,  183,  184,  208,  208,  208,  208,
-+      208,  172,  208,  208,  208,  208,  208,  208,  208,  208,
-+      132,  208,  208,  208,  208,  208,   64,  208,  208,   65,
-+      208,    0,    0,    0,    0,    0,  208,   66,   29,  145,
-+      186,  187,  188,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  140,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  133,  190,  191,  192,  208,
-+      208,  152,  208,  141,    0,    0,    6,    0,    0,    0,
-+       12,    3,   22,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  185,  146,   67,  208,  208,  208,  208,  169,
-+
-+      208,  177,  174,  207,   71,   72,   73,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,    0,    0,    0,
-+        0,    0,    0,    0,  208,  208,  208,  189,  208,  208,
-+      208,  208,  208,   82,   83,   84,  208,  208,  208,  208,
-+      208,  208,  208,  208,  208,  208,  208,  208,  208,  193,
-+       88,   89,   90,  208,    4,    0,    5,    0,    0,    0,
-+        0,    0,    0,  208,  208,  208,  208,  208,  208,  208,
-+      204,  208,  208,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,   74,  208,  208,  208,  208,  208,  208,    0,
-+        0,    0,    0,  208,  208,  205,  194,  208,  195,  208,
-+
-+      208,  208,   85,  208,  208,  208,  208,  208,  208,  208,
-+      208,  208,  208,  208,  206,  208,  208,   91,    0,    0,
-+        0,  196,  197,  208,  200,  208,  201,  208,  208,   70,
-+      208,  208,  208,  164,  208,  165,  180,  208,  198,  199,
-+      208,  208,    0,    0,    0,  208,  208,  208,  208,   75,
-+      208,   76,  208,  208,  208,  208,  208,    0,    0,    0,
-+        0,  208,  208,   86,   87,  208,   77,  208,  208,   78,
-+      208,   92,   93,    0,    0,    0,    0,  208,  208,  208,
-+      208,  208,  208,    0,    0,    0,    0,  208,  208,  208,
-+      208,  208,   79,    0,    0,    0,    7,    0,    0,  202,
-+
-+      203,  208,  208,  208,    0,    0,    8,    0,    0,  208,
-+      208,  166,    0,    0,    0,   80,   81,    0,    0,    0,
-+        9,    0,    0,   10,    0,    0,    0,    0,    0,    0,
-+        0,    0,    0,   11,    0
-     } ;
- 
- static yyconst flex_int32_t yy_ec[256] =
-@@ -461,13 +463,13 @@ static yyconst flex_int32_t yy_ec[256] =
-        10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
-        19,   20,   21,   21,   21,   22,   22,   23,    1,   24,
-        25,   26,    1,    1,   27,   28,   29,   30,   31,   32,
--       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
--       33,   34,   35,   33,   36,   33,   33,   37,   33,   33,
--        1,    1,    1,   38,   39,    1,   40,   41,   42,   43,
-+       33,   34,   34,   34,   34,   35,   34,   34,   34,   34,
-+       34,   36,   37,   38,   39,   34,   34,   40,   34,   34,
-+        1,    1,    1,   41,   42,    1,   43,   44,   45,   46,
- 
--       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
--       54,   55,   33,   56,   57,   58,   59,   60,   61,   62,
--       63,   64,    1,   65,    1,    1,    1,    1,    1,    1,
-+       47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
-+       57,   58,   34,   59,   60,   61,   62,   63,   64,   65,
-+       66,   67,    1,   68,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-@@ -484,350 +486,357 @@ static yyconst flex_int32_t yy_ec[256] =
-         1,    1,    1,    1,    1
-     } ;
- 
--static yyconst flex_int32_t yy_meta[66] =
-+static yyconst flex_int32_t yy_meta[69] =
-     {   0,
--        1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
--        1,    1,    1,    1,    1,    4,    4,    4,    4,    4,
--        4,    5,    1,    1,    1,    1,    6,    6,    6,    6,
--        5,    5,    7,    7,    7,    7,    8,    1,    7,    6,
--        6,    6,    6,    5,    5,    7,    7,    7,    7,    7,
--        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
--        7,    8,    7,    7,    1
-+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
-+        1,    1,    1,    1,    1,    3,    3,    3,    3,    3,
-+        3,    3,    1,    1,    1,    1,    4,    4,    4,    4,
-+        3,    3,    5,    5,    5,    5,    5,    5,    5,    5,
-+        1,    5,    4,    4,    4,    4,    3,    3,    5,    5,
-+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-+        5,    5,    5,    5,    5,    5,    5,    1
-     } ;
- 
--static yyconst flex_int16_t yy_base[824] =
-+static yyconst flex_int16_t yy_base[845] =
-     {   0,
--        0,   64,   70,    0, 1185, 1184, 1186, 1189,   65, 1189,
--     1160, 1159,  128, 1158,  125,  126,  124, 1157,  140,  189,
--      123, 1156,  138,    0,  127,  124,  113,  135,  144,  161,
--      176, 1126,  130,  187,  140,  143,  161, 1120,  182,  174,
--      202,  199,  211,  212, 1131,  130,  263,  255, 1189,  189,
--     1189, 1162,  256, 1189,    0, 1189, 1189,  215, 1189, 1189,
--     1189, 1189, 1189, 1189, 1189, 1189, 1189,  248, 1189,  250,
--      112,  302,  319, 1189, 1189,    0,    0, 1189, 1151, 1189,
--     1189, 1189, 1150,    0, 1189, 1189, 1116, 1121, 1114, 1117,
--     1126, 1125, 1111, 1114, 1126,  144, 1120, 1107, 1104, 1118,
--
--     1104, 1101, 1101, 1107,  175,  191, 1101, 1112, 1097, 1103,
--     1107, 1108,    0, 1099, 1110,  247, 1109, 1104, 1084,  230,
--     1088, 1102, 1092,  241, 1085,  228, 1098, 1100, 1082, 1078,
--     1086, 1083, 1072, 1081,  173, 1079, 1085, 1080, 1083, 1071,
--     1074,  233,  240,  260, 1084, 1071, 1084,  239, 1077, 1189,
--     1189,  307,  301,  323, 1189, 1062, 1075, 1066, 1077,  249,
--        0,  368,    0,  379, 1189,  298,  390, 1189,  397,  404,
--      291, 1189, 1189, 1072,    0, 1063, 1067, 1077, 1074,  270,
--     1057, 1057, 1061,  291, 1072, 1069, 1069, 1067, 1064, 1055,
--     1062, 1048, 1046, 1059, 1044, 1061,    0, 1058, 1045, 1053,
--
--     1050, 1054, 1055, 1048, 1045, 1033, 1032, 1046, 1049, 1036,
--     1045, 1032, 1039, 1029,  335, 1035, 1038, 1028, 1036, 1024,
--     1028, 1019, 1034, 1024, 1015, 1034, 1017, 1015, 1026, 1015,
--     1010, 1008, 1022, 1007, 1009, 1006, 1018, 1017, 1020, 1001,
--      306, 1010, 1005, 1003, 1013,  991,  339, 1010, 1012, 1000,
--      992,  996, 1008,  991,    0,  411,  421,  438, 1189,  451,
--      458, 1189, 1189,  986,  997,    0,  994,  344,    0,    0,
--      987,  985,  987,  982,  991,  979,  997,  985,  350,    0,
--        0,  979,  990,  989,  989,    0,  973,  353,    0,    0,
--      975,  357,  983,  984,  974,  968,  967,  968,  967,  967,
--
--      361,  962,    0,    0,  958,  957,  956,  958,  959,  964,
--      958,  954,  968,  963,  962,  961,  952,  955,  955,  947,
--      950,  945,  954,  959,  944,  957,  947,    0,    0,  954,
--      950,    0,  941,  941,  947,  937,  945,  426,  942,    0,
--        0,    0,    0,  931,  944,  943,  942,  939,  927,  465,
--      475,  939,  941,    0,    0,    0,    0,  927,    0,  927,
--        0,  926,  927,  921,  932,    0,    0,    0,  922,    0,
--      918,    0,    0,    0,    0,    0,    0,    0,    0,    0,
--      929,  481,  928,    0,    0,  926,  922,  918,    0,    0,
--        0,  910,  443,  486,  493,  915,  911,  917,  907,  905,
--
--      919,  903,  903,  917,  905,  917,  912,    0,  910,  907,
--      911,  894,  896,  903,  909,  904,  903,  890,    0,  892,
--      893,    0,    0,    0,    0,  890,  894,    0,  888,  938,
--      887,  890,    0,  878,  888,    0,  876,  876,  890,    0,
--      892,    0,  497,  901,  900,  899,  869,  868,    0,  886,
--      885,  880,    0,    0,    0,    0,    0,    0,    0,    0,
--        0,    0,  868,  882,  868,  865,    0,    0,  871,  870,
--        0,    0,  868,  860,    0,    0,    0,    0,    0,    0,
--      857,  869,  500,  861,  868,  867,  864,  858,  851,  519,
--      867,  852,  847,  861,  859,    0,    0,  851,  871,  870,
--
--      869,  839,  838,  495,  496,    0,  851,  854,  852,  840,
--      836,    0,  849,  846,  845,  834,  833,  832,  515,  841,
--        0,  854,  853,  852,  822,  821,    0,  836,  822,    0,
--      833,  828,  543,  545,  873,  821,  829,    0,    0,    0,
--      845,  844,    0,  825,  828,  812,  820,  810,  818,  819,
--      819,  818,  803,  539,  816,    0,  817,  805,  804,  800,
--      825,  824,  823,  793,  792,    0,  823,  822,    0,  803,
--      806,    0,  552,    0,  792,  557, 1189,  580,    0,  590,
--      499, 1189,    0,  789,  788,  798,  798,  785,  800,  783,
--      798,  793,    0,    0,    0,  806,  805,  804,  774,    0,
--
--      774,    0,    0,    0,  559,  568,  797,  785,  788,  772,
--      771,  781,  781,  794,  793,  792,  762,  767,  552,  613,
--      363,  775,  763,  761,  760,  771,    0,  774,  770,  772,
--      768,  754,  782,  781,    0,  766,  758,  749,  757,  747,
--      758,  754,  756,  754,  754,  741,  740,  751,    0,  767,
--      766,    0,  751, 1189,  391, 1189,  620,    0,  640,  750,
--      732,  749,  748,  731,  723,  731,  721,  729,    0,  726,
--      725,  736,  719,  722,  737,  720,  733,  734,  731,  728,
--      736,  730,  729,  712,  711,  710,  721,  402,  705,  715,
--      699,  698,    0,  725,  698,  723,  696,  700,  699,    0,
--
--      710,  713,  709,  711,  688,  702,  686,  680,  688,  671,
--      662,    0,  640,  639,    0,  648,  641,    0,    0,  645,
--        0,  644,    0,  650,  649,    0,  625,  633,  623,  650,
--      630,    0,    0,  643,    0,    0,  642,  641,  582,  632,
--      639,  638,  614,  613,  635,  608,  633,  607,  590,  607,
--      586,  585,  611,  380,  526,  545,  544,    0,    0,  538,
--        0,  504,  510,    0,  495,    0,    0,  550,  572,  483,
--      470,  454,  462,  449,  445,  404,  419,  616,  619,  391,
--      387,  404,  392,  290,    0,  617,  642, 1189,  644,  570,
--        0,    0,  263,  258,  139,  645, 1189,  643,  618,  107,
--
--       77,    0,   23,  662,    0,    0,  663,  664, 1189,  665,
--     1189, 1189,  697,  702,  707,  712,  714,  716,  722,  729,
--      734,  739,  744
-+        0,   67,   73,    0, 1210, 1209, 1211, 1214,   68, 1214,
-+     1185, 1184,  134, 1183,  131,  132,  130, 1182,  146,  198,
-+      129, 1181,  144,    0,  130,  113,  124,  141,  150,  126,
-+      181, 1148,  159,  192,  118,  129,  146, 1142,  147,  174,
-+      206,  192,  203,  222, 1153,  203,  221,  231, 1214,  260,
-+     1214, 1187,  279, 1214,    0, 1214, 1214,  270, 1214, 1214,
-+     1214, 1214, 1214, 1214, 1214, 1214, 1214,  244, 1214,  255,
-+      139,  290,  307, 1214, 1214,    0,    0, 1214, 1176, 1214,
-+     1214, 1214, 1175,    0, 1214, 1214, 1138, 1143, 1136, 1139,
-+     1148, 1147, 1133, 1136, 1148,  144, 1142, 1129, 1126, 1140,
-+
-+     1126, 1123, 1123, 1129,  219,  193, 1123, 1134, 1119, 1125,
-+     1129, 1130,    0, 1121, 1132,  278, 1131, 1126, 1106,  224,
-+     1110, 1124, 1114,  232, 1107,  271, 1120, 1122, 1104, 1100,
-+     1108, 1105, 1094, 1103,  234, 1101, 1107, 1102, 1105, 1093,
-+     1096,  226,  145,  262, 1106, 1093, 1106,  263, 1099, 1214,
-+     1214,  338,  331,  343, 1214, 1084, 1097, 1088, 1099,  345,
-+        0,  334,    0,  345, 1214,  328,  391, 1214,  352,  398,
-+      338, 1214, 1214, 1094,    0, 1085, 1089, 1099, 1096,  332,
-+     1079, 1079, 1083,  320, 1094, 1091, 1091, 1089, 1086, 1077,
-+     1084, 1070, 1068, 1081, 1066, 1083,    0, 1080, 1067, 1075,
-+
-+     1072, 1076, 1077, 1070, 1067, 1055, 1054, 1068, 1071, 1058,
-+     1067, 1054, 1061, 1051,  364, 1057, 1060, 1050, 1058, 1046,
-+     1050, 1041, 1056, 1046, 1037, 1056, 1039, 1037, 1048, 1037,
-+     1032, 1030, 1044, 1029, 1031, 1028, 1040, 1039, 1042, 1023,
-+      338, 1032, 1027, 1025, 1035, 1013,  403, 1032, 1034, 1022,
-+     1014, 1018, 1030, 1013,    0,  415,  422,  439, 1214,  446,
-+      455, 1214, 1214, 1008, 1019,    0, 1016,  406,    0,    0,
-+     1009, 1007, 1009, 1004, 1013, 1001, 1019, 1007,  409,    0,
-+        0, 1001, 1012, 1011, 1011,    0,  995,  429,    0,    0,
-+      997,  460, 1005, 1006,  996,  990,  989,  990,  989,  989,
-+
-+      463,  984,    0,    0,  980,  979,  978,  980,  981,  986,
-+      980,  976,  990,  985,  984,  983,  974,  977,  977,  969,
-+      972,  967,  976,  981,  966,  979,  969,    0,    0,  976,
-+      972,    0,  963,  963,  969,  959,  967,  466,  964,    0,
-+        0,    0,    0,  953,  966,  965,  964,  961,  949,  472,
-+      479,  961,  963,    0,    0,    0,    0,  949,    0,  949,
-+        0,  948,  949,  943,  954,    0,    0,    0,  944,    0,
-+      940,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-+      951,  487,  950,    0,    0,  948,  944,  940,    0,    0,
-+        0,  932,  489,  494,  499,  937,  933,  939,  929,  927,
-+
-+      941,  925,  925,  939,  927,  939,  934,    0,  932,  929,
-+      933,  916,  918,  925,  931,  926,  925,  912,    0,  914,
-+      915,    0,    0,    0,    0,  912,  916,    0,  910,  963,
-+      909,  912,    0,  900,  910,    0,  898,  898,  912,    0,
-+      914,    0,  503,  926,  925,  924,  891,  890,    0,  908,
-+      907,  902,    0,    0,    0,    0,    0,    0,    0,    0,
-+        0,    0,  890,  904,  890,  887,    0,    0,  893,  892,
-+        0,    0,  890,  882,    0,    0,    0,    0,    0,    0,
-+      879,  891,  506,  883,  890,  889,  886,  880,  873,  524,
-+      889,  874,  869,  883,  881,    0,    0,  873,  896,  895,
-+
-+      894,  861,  860,  361,  365,    0,  873,  876,  874,  862,
-+      858,    0,  871,  868,  867,  856,  855,  854,  519,  863,
-+        0,  879,  878,  877,  844,  843,    0,  858,  844,    0,
-+      855,  850,  547,  553,  898,  843,  851,    0,    0,    0,
-+      870,  869,    0,  847,  850,  834,  842,  832,  840,  841,
-+      841,  840,  825,  559,  838,    0,  839,  827,  826,  822,
-+      850,  849,  848,  815,  814,    0,  848,  847,    0,  825,
-+      828,    0,  562,    0,  814,  580, 1214,  587,    0,  607,
-+      584, 1214,    0,  811,  810,  820,  820,  807,  822,  805,
-+      820,  815,    0,    0,    0,  831,  830,  829,  796,    0,
-+
-+      796,    0,    0,    0,  502,  524,  820,  807,  810,  794,
-+      793,  803,  803,  819,  818,  817,  784,  789,  615,  640,
-+      550,  806,  796,  784,  782,  781,  792,    0,  795,  791,
-+      793,  789,  775,  806,  805,    0,  787,  779,  770,  778,
-+      768,  779,  775,  777,  775,  775,  762,  761,  772,    0,
-+      791,  790,    0,  772, 1214,  555, 1214,  647,    0,  667,
-+      785,  770,  752,  769,  768,  751,  743,  751,  741,  749,
-+        0,  746,  745,  756,  739,  742,  757,  740,  753,  754,
-+      751,  748,  757,  750,  749,  732,  731,  730,  741,  582,
-+      754,  724,  734,  718,  717,    0,  745,  717,  743,  715,
-+
-+      719,  718,    0,  729,  732,  728,  730,  711,  725,  709,
-+      710,  718,  701,  700,    0,  706,  705,    0,  728,  713,
-+      706,    0,    0,  710,    0,  709,    0,  715,  714,    0,
-+      690,  698,  688,  716,  695,    0,    0,  708,    0,    0,
-+      707,  706,  746,  611,  696,  703,  702,  678,  677,  705,
-+      677,  703,  689,  674,  691,  670,  669,  190,  613,  557,
-+      667,  687,  686,    0,    0,  681,    0,  680,  686,    0,
-+      671,    0,    0,  671,  590,  343,  672,  645,  644,  654,
-+      635,  631,  612,  612,  604,  443,  635,  576,  575,  549,
-+       25,   87,    0,  183,  500,  552, 1214,  636,  591,    0,
-+
-+        0,  196,  258,  254,  272,  609, 1214,  614,  598,  279,
-+      284,    0,  336,  348,  671,    0,    0,  362,  672,  688,
-+     1214,  394,  689, 1214,  408,  670,  691,  649,  651,  474,
-+      476,  693,  694, 1214, 1214,  704,  707,  710,  530,  591,
-+      713,  717,  720,  722
-     } ;
- 
--static yyconst flex_int16_t yy_def[824] =
-+static yyconst flex_int16_t yy_def[845] =
-     {   0,
--      812,    1,  812,    3,  813,  813,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  814,  812,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  815,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  816,  812,  817,
--       19,  812,  812,  812,  812,  818,   20,  812,  812,  812,
--      812,  812,  812,  814,  812,  812,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      819,  812,  815,  812,  812,  817,  812,  812,  812,  812,
--      818,  812,  812,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      812,  812,  812,  812,  819,  812,  812,  812,  812,  812,
--      812,  812,  812,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
--      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
--      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
--      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  812,  820,  812,  812,  812,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  812,  812,  812,  812,  821,  812,
--      812,  812,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  812,  822,  812,
--      821,  812,  812,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  812,  812,  812,  812,  823,  812,  812,
--      812,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  823,  812,  812,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  812,  812,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  814,  812,  812,
--      814,  814,  814,  814,  814,  814,  814,  814,  814,  814,
--      814,  814,  812,  812,  812,  814,  814,  814,  814,  814,
--      814,  814,  814,  814,  814,  814,  814,  812,  812,  812,
--      814,  814,  814,  814,  814,  814,  812,  812,  812,  814,
--      814,  814,  814,  814,  814,  812,  812,  812,  812,  812,
--      814,  814,  814,  814,  814,  812,  812,  812,  812,  814,
--
--      814,  814,  812,  812,  814,  814,  812,  812,  812,  812,
--      812,    0,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812
-+      835,    1,  835,    3,  836,  836,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  837,  835,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  838,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  839,  835,  840,
-+       19,  835,  835,  835,  835,  841,   20,  835,  835,  835,
-+      835,  835,  835,  837,  835,  835,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      842,  835,  838,  835,  835,  840,  835,  835,  835,  835,
-+      841,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      835,  835,  835,  835,  842,  835,  835,  835,  835,  835,
-+      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  835,  835,  835,  835,  835,
-+      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-+      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-+      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  835,  835,  835,  835,  835,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  835,  835,  835,  835,  843,  835,
-+      835,  835,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  835,  835,  835,
-+      843,  835,  835,  835,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  835,  835,  835,  835,  844,  835,
-+      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  844,
-+      835,  835,  835,  837,  837,  837,  837,  837,  837,  837,
-+
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  835,  835,
-+      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  835,  835,  835,  837,  837,  837,  837,  837,
-+      837,  837,  837,  837,  837,  837,  837,  835,  835,  835,
-+      835,  837,  837,  837,  837,  837,  837,  837,  837,  837,
-+      837,  837,  837,  835,  835,  835,  835,  837,  837,  837,
-+      837,  837,  837,  835,  835,  835,  835,  837,  837,  837,
-+      837,  837,  837,  835,  835,  835,  835,  835,  835,  837,
-+
-+      837,  837,  837,  837,  835,  835,  835,  835,  835,  837,
-+      837,  837,  835,  835,  835,  837,  837,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,    0,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835
-     } ;
- 
--static yyconst flex_int16_t yy_nxt[1255] =
-+static yyconst flex_int16_t yy_nxt[1283] =
-     {   0,
-         8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
-        14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
-        20,   20,    8,   21,   22,   23,   24,   24,   24,   24,
--       24,   24,   24,   24,   24,   24,   24,   25,   24,   26,
--       27,   28,   29,   30,   31,   32,   33,   34,   24,   24,
--       35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
--       45,   24,   24,   24,   46,   47,   58,  807,   58,   48,
--       49,   50,   51,   50,   49,   49,   49,   49,   49,   49,
--       49,   49,   49,   49,   52,   49,   53,   53,   53,   53,
--       53,   53,   54,   49,   49,   49,   55,   55,   55,   55,
--
--       55,   55,   55,   55,   55,   55,   55,   49,   55,   55,
-+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
-+       25,   24,   26,   27,   28,   29,   30,   31,   32,   33,
-+       34,   24,   24,   35,   36,   37,   38,   39,   40,   41,
-+       42,   43,   44,   45,   24,   24,   24,   46,   47,   58,
-+      803,   58,   48,   49,   50,   51,   50,   49,   49,   49,
-+       49,   49,   49,   49,   49,   49,   49,   52,   49,   53,
-+       53,   53,   53,   53,   53,   54,   49,   49,   49,   55,
-+
-+       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-+       55,   55,   55,   49,   55,   55,   55,   55,   55,   55,
-        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
-        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
--       55,   55,   55,   55,   49,   61,   64,  806,   66,   68,
--       68,   68,   68,   68,   68,   68,   79,   80,  812,   65,
--       67,   85,   62,   70,  150,   71,   71,   71,   71,   71,
--       71,   72,   82,   83,   86,   87,   90,  805,   91,  110,
--       73,   74,   92,  812,   93,   75,   76,  111,   94,  119,
--       88,   89,  121,   73,   74,   95,  122,   97,   96,  112,
--      160,   98,  160,  120,  151,  183,  184,   99,   75,  802,
--
--      123,   76,   70,  100,   77,   77,   77,   77,   77,   77,
--       77,  101,  231,  102,  124,  104,   58,  129,   58,   73,
--       74,  126,  103,  105,   78,  193,  106,  130,  232,  107,
--      195,  113,   73,   74,  114,  108,  194,  127,  115,  116,
--      128,  131,  138,  117,  196,  139,  118,   78,  132,  133,
--      160,  146,  160,  134,  140,  147,  154,  155,  142,  135,
--      136,  141,  137,  143,  152,  148,   58,  144,  153,  221,
--      145,  162,  162,  162,  162,  162,  162,  162,  164,  165,
--      167,  168,  213,  222,  239,  240,  248,  241,  218,  249,
--      214,  164,  165,  167,  168,  219,  242,  205,  156,  243,
--
--      206,  207,  154,  155,  208,  157,  209,  244,  152,  158,
--       58,  801,  153,  269,  159,   70,  800,   72,   72,   72,
--       72,   72,   72,   72,  154,  155,  263,  270,  258,  259,
--      169,  169,   73,   74,  170,  170,  170,  170,  170,  170,
--      170,  258,  259,  795,  156,   73,   74,  274,  275,  263,
--      333,  157,  305,  306,  307,  158,  340,  341,  342,  334,
--      159,  355,  356,  357,  576,  577,  156,  366,  367,  368,
--      374,  375,  376,  157,  378,  379,  380,  158,  389,  390,
--      391,  768,  159,  162,  162,  162,  162,  162,  162,  162,
--      256,  256,  655,  656,  257,  257,  257,  257,  257,  257,
--
--      257,  260,  260,  655,  656,  261,  261,  261,  261,  261,
--      261,  261,  170,  170,  170,  170,  170,  170,  170,  170,
--      170,  170,  170,  170,  170,  170,  257,  257,  257,  257,
--      257,  257,  257,  769,  794,  262,  257,  257,  257,  257,
--      257,  257,  257,  423,  424,  425,  793,  792,  262,  350,
--      350,  791,  165,  351,  351,  351,  351,  351,  351,  351,
--      454,  455,  456,  786,  785,  165,  261,  261,  261,  261,
--      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
--      351,  351,  351,  351,  351,  351,  351,  784,  783,  168,
--      351,  351,  351,  351,  351,  351,  351,  444,  445,  446,
--
--      581,  782,  168,  457,  458,  459,  259,  781,  447,  448,
--      460,  461,  462,  499,  500,  501,  522,  523,  524,  259,
--      490,  546,  548,  780,  502,  503,  779,  525,  526,  547,
--      549,  561,  562,  563,  533,  534,  534,  534,  534,  534,
--      534,  622,  564,  565,  576,  577,  576,  577,  776,  775,
--      774,  768,  623,  655,  656,  596,  597,  598,  576,  577,
--      580,  580,  580,  580,  580,  580,  580,  599,  614,  615,
--      616,  798,  619,  620,  620,  620,  620,  620,  620,  579,
--      617,  576,  577,  753,  773,  638,  772,  771,  658,  770,
--      754,  576,  577,  639,  640,  578,  578,  578,  578,  578,
--
--      578,  641,  642,  769,  579,  580,  580,  580,  580,  580,
--      580,  580,  753,  658,  655,  656,  777,  787,  796,  754,
--      789,  655,  656,  799,  778,  788,  797,  790,  659,  659,
--      659,  659,  659,  659,  659,  657,  657,  657,  657,  657,
--      657,  655,  656,  787,  798,  789,  796,  767,  766,  765,
--      764,  788,  790,  763,  797,  659,  659,  659,  659,  659,
--      659,  659,  803,  808,  810,  808,  810,  762,  761,  760,
--      804,  809,  811,  809,  811,  759,  758,  757,  756,  755,
--      752,  751,  750,  749,  748,  747,  746,  745,  744,  743,
--      742,  741,  740,  739,  738,  737,  799,   56,   56,   56,
--
--       56,   56,   56,   56,   56,   84,   84,   84,   84,   84,
--      163,  163,  163,  163,  163,   68,   68,  166,  166,  171,
--      171,  171,  255,  255,  736,  255,  255,  255,  255,  255,
--      578,  578,  578,  735,  734,  733,  578,  621,  621,  621,
--      657,  657,  657,  732,  731,  730,  657,  688,  688,  688,
--      729,  728,  727,  726,  725,  724,  723,  722,  721,  720,
--      719,  718,  717,  716,  715,  714,  713,  712,  711,  710,
--      709,  708,  707,  706,  705,  704,  703,  702,  701,  700,
--      699,  698,  697,  696,  695,  694,  693,  692,  691,  690,
--      689,  687,  686,  685,  684,  683,  682,  681,  680,  679,
--
--      678,  677,  676,  675,  674,  673,  672,  671,  670,  669,
--      668,  667,  666,  665,  664,  663,  662,  661,  660,  654,
--      653,  652,  651,  650,  649,  648,  647,  646,  645,  644,
--      643,  637,  636,  635,  634,  633,  632,  631,  630,  629,
--      628,  627,  626,  625,  624,  618,  613,  612,  611,  610,
--      609,  608,  607,  606,  605,  604,  603,  602,  601,  600,
--      595,  594,  593,  592,  591,  590,  589,  588,  587,  586,
--      585,  584,  583,  582,  581,  575,  574,  573,  572,  571,
--      570,  569,  568,  567,  566,  560,  559,  558,  557,  556,
--      555,  554,  553,  552,  551,  550,  545,  544,  543,  542,
--
--      541,  540,  539,  538,  537,  536,  535,  532,  531,  530,
--      529,  528,  527,  521,  520,  519,  518,  517,  516,  515,
--      514,  513,  512,  511,  510,  509,  508,  507,  506,  505,
--      504,  498,  497,  496,  495,  494,  493,  492,  491,  490,
--      489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
--      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
--      469,  468,  467,  466,  465,  464,  463,  453,  452,  451,
--      450,  449,  443,  442,  441,  440,  439,  438,  437,  436,
--      435,  434,  433,  432,  431,  430,  429,  428,  427,  426,
--      422,  421,  420,  419,  418,  417,  416,  415,  414,  413,
--
--      412,  411,  410,  409,  408,  407,  406,  405,  404,  403,
--      402,  401,  400,  399,  398,  397,  396,  395,  394,  393,
--      392,  388,  387,  386,  385,  384,  383,  382,  381,  377,
--      373,  372,  371,  370,  369,  365,  364,  363,  362,  361,
--      360,  359,  358,  354,  353,  352,  349,  348,  347,  346,
--      345,  344,  343,  339,  338,  337,  336,  335,  332,  331,
--      330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
--      320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
--      310,  309,  308,  304,  303,  302,  301,  300,  299,  298,
--      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
--
--      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
--      277,  276,  273,  272,  271,  268,  267,  266,  265,  264,
--      254,  253,  252,  251,  250,  247,  246,  245,  238,  237,
--      236,  235,  234,  233,  230,  229,  228,  227,  226,  225,
--      224,  223,  220,  217,  216,  215,  212,  211,  210,  204,
--      203,  202,  201,  200,  199,  198,  197,  192,  191,  190,
--      189,  188,  187,  186,  185,  182,  181,  180,  179,  178,
--      177,  176,  175,  174,  173,  172,  161,  149,  125,  109,
--       81,   69,   63,   60,   59,  812,   57,   57,    7,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812
-+       49,   61,   64,  804,   66,   68,   68,   68,   68,   68,
-+       68,   68,   79,   80,   85,   65,   67,   87,   62,   70,
-+      119,   71,   71,   71,   71,   71,   71,   72,   82,   83,
-+       86,  121,   88,   89,  120,  122,   73,   74,  835,  101,
-+       90,  102,   91,   93,   75,   76,   92,   94,  123,  126,
-+      103,  758,   73,   74,   95,  241,   97,   96,  183,  184,
-+
-+       98,  110,  124,  835,  242,  127,   99,   75,  128,  111,
-+       76,   70,  100,   77,   77,   77,   77,   77,   77,   77,
-+      129,  112,  152,  104,   58,  805,  153,  150,   73,   74,
-+      130,  105,  154,  155,  106,  195,   78,  107,  138,  113,
-+      774,  139,  114,  108,   73,   74,  115,  116,  131,  196,
-+      140,  117,  810,  142,  118,  132,  133,  141,  143,   78,
-+      134,  160,  144,  160,  146,  145,  135,  136,  147,  137,
-+      151,   58,  193,   58,  164,  165,  231,  156,  148,  213,
-+      239,  240,  218,  194,  157,  167,  168,  214,  158,  219,
-+      164,  165,  232,  159,  162,  162,  162,  162,  162,  162,
-+
-+      162,  167,  168,   70,  243,   72,   72,   72,   72,   72,
-+       72,   72,  244,  248,  811,  221,  249,  812,  169,  169,
-+       73,   74,  170,  170,  170,  170,  170,  170,  170,  222,
-+      813,  205,  154,  155,  206,  207,   73,   74,  208,  152,
-+      209,   58,  816,  153,  154,  155,  160,  817,  160,  162,
-+      162,  162,  162,  162,  162,  162,  256,  256,  258,  259,
-+      257,  257,  257,  257,  257,  257,  257,  170,  170,  170,
-+      170,  170,  170,  170,  258,  259,  263,  156,  269,  274,
-+      275,  305,  306,  307,  157,  333,  818,  546,  158,  156,
-+      785,  548,  270,  159,  334,  819,  157,  547,  786,  263,
-+
-+      158,  549,  260,  260,  822,  159,  261,  261,  261,  261,
-+      261,  261,  261,  170,  170,  170,  170,  170,  170,  170,
-+      340,  341,  342,  355,  356,  357,  366,  367,  368,  262,
-+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
-+      257,  257,  257,  257,  796,  262,  374,  375,  376,  825,
-+      350,  350,  797,  165,  351,  351,  351,  351,  351,  351,
-+      351,  261,  261,  261,  261,  261,  261,  261,  826,  165,
-+      261,  261,  261,  261,  261,  261,  261,  378,  379,  380,
-+      389,  390,  391,  423,  424,  425,  168,  351,  351,  351,
-+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
-+
-+      351,  806,  168,  444,  445,  446,  454,  455,  456,  807,
-+      259,  457,  458,  459,  447,  448,  460,  461,  462,  499,
-+      500,  501,  522,  523,  524,  490,  259,  831,  639,  832,
-+      502,  503,   68,  525,  526,  561,  562,  563,  640,  533,
-+      534,  534,  534,  534,  534,  534,  564,  565,  576,  577,
-+      641,  576,  577,  796,  576,  577,  656,  657,  775,  642,
-+      643,  797,  578,  578,  578,  578,  578,  578,  580,  580,
-+      580,  580,  580,  580,  580,  596,  597,  598,  614,  615,
-+      616,  576,  577,  656,  657,  581,  579,  599,  576,  577,
-+      617,  775,  808,  166,  802,  619,  620,  620,  620,  620,
-+
-+      620,  620,  578,  578,  578,  578,  578,  578,  576,  577,
-+      806,  579,  759,  776,  759,  808,  656,  657,  807,  760,
-+      622,  760,  580,  580,  580,  580,  580,  580,  580,  623,
-+      658,  658,  658,  658,  658,  658,  798,  798,  801,  800,
-+      624,  656,  657,  799,  799,  814,  776,  809,  656,  657,
-+      829,  795,  829,  815,  659,  660,  660,  660,  660,  660,
-+      660,  660,  658,  658,  658,  658,  658,  658,  656,  657,
-+      809,  827,  820,  823,  794,  793,  792,  791,  828,  659,
-+      821,  824,  660,  660,  660,  660,  660,  660,  660,  820,
-+      823,  830,  827,  830,  833,  833,  790,  821,  824,  828,
-+
-+      789,  788,  834,  834,   56,   56,   56,   56,   56,   84,
-+       84,   84,  163,  163,  163,  171,  171,  255,  787,  255,
-+      255,  255,  621,  621,  690,  690,  784,  783,  782,  781,
-+      780,  779,  778,  777,  773,  772,  771,  770,  769,  768,
-+      767,  766,  765,  764,  763,  762,  761,  758,  757,  756,
-+      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
-+      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
-+      735,  734,  733,  732,  731,  730,  729,  728,  727,  726,
-+      725,  724,  723,  722,  721,  720,  719,  718,  717,  716,
-+      715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
-+
-+      705,  704,  703,  702,  701,  700,  699,  698,  697,  696,
-+      695,  694,  693,  692,  691,  689,  688,  687,  686,  685,
-+      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
-+      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
-+      664,  663,  662,  661,  655,  654,  653,  652,  651,  650,
-+      649,  648,  647,  646,  645,  644,  638,  637,  636,  635,
-+      634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
-+      618,  613,  612,  611,  610,  609,  608,  607,  606,  605,
-+      604,  603,  602,  601,  600,  595,  594,  593,  592,  591,
-+      590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
-+
-+      575,  574,  573,  572,  571,  570,  569,  568,  567,  566,
-+      560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
-+      550,  545,  544,  543,  542,  541,  540,  539,  538,  537,
-+      536,  535,  532,  531,  530,  529,  528,  527,  521,  520,
-+      519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
-+      509,  508,  507,  506,  505,  504,  498,  497,  496,  495,
-+      494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
-+      484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
-+      474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
-+      464,  463,  453,  452,  451,  450,  449,  443,  442,  441,
-+
-+      440,  439,  438,  437,  436,  435,  434,  433,  432,  431,
-+      430,  429,  428,  427,  426,  422,  421,  420,  419,  418,
-+      417,  416,  415,  414,  413,  412,  411,  410,  409,  408,
-+      407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
-+      397,  396,  395,  394,  393,  392,  388,  387,  386,  385,
-+      384,  383,  382,  381,  377,  373,  372,  371,  370,  369,
-+      365,  364,  363,  362,  361,  360,  359,  358,  354,  353,
-+      352,  349,  348,  347,  346,  345,  344,  343,  339,  338,
-+      337,  336,  335,  332,  331,  330,  329,  328,  327,  326,
-+      325,  324,  323,  322,  321,  320,  319,  318,  317,  316,
-+
-+      315,  314,  313,  312,  311,  310,  309,  308,  304,  303,
-+      302,  301,  300,  299,  298,  297,  296,  295,  294,  293,
-+      292,  291,  290,  289,  288,  287,  286,  285,  284,  283,
-+      282,  281,  280,  279,  278,  277,  276,  273,  272,  271,
-+      268,  267,  266,  265,  264,  254,  253,  252,  251,  250,
-+      247,  246,  245,  238,  237,  236,  235,  234,  233,  230,
-+      229,  228,  227,  226,  225,  224,  223,  220,  217,  216,
-+      215,  212,  211,  210,  204,  203,  202,  201,  200,  199,
-+      198,  197,  192,  191,  190,  189,  188,  187,  186,  185,
-+      182,  181,  180,  179,  178,  177,  176,  175,  174,  173,
-+
-+      172,  161,  149,  125,  109,   81,   69,   63,   60,   59,
-+      835,   57,   57,    7,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835
-     } ;
- 
--static yyconst flex_int16_t yy_chk[1255] =
-+static yyconst flex_int16_t yy_chk[1283] =
-     {   0,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-@@ -835,138 +844,141 @@ static yyconst flex_int16_t yy_chk[1255] =
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
--        1,    1,    1,    1,    1,    2,    9,  803,    9,    2,
--        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-+        1,    1,    1,    1,    1,    1,    1,    1,    2,    9,
-+      791,    9,    2,    3,    3,    3,    3,    3,    3,    3,
-         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
- 
-         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
--        3,    3,    3,    3,    3,   13,   15,  801,   16,   17,
--       17,   17,   17,   17,   17,   17,   21,   21,   71,   15,
--       16,   25,   13,   19,   46,   19,   19,   19,   19,   19,
--       19,   19,   23,   23,   25,   26,   27,  800,   27,   33,
--       19,   19,   27,   71,   28,   19,   19,   33,   28,   35,
--       26,   26,   36,   19,   19,   28,   36,   29,   28,   33,
--       50,   29,   50,   35,   46,   96,   96,   29,   19,  795,
--
--       37,   19,   20,   29,   20,   20,   20,   20,   20,   20,
--       20,   30,  135,   30,   37,   31,   58,   40,   58,   20,
--       20,   39,   30,   31,   20,  105,   31,   40,  135,   31,
--      106,   34,   20,   20,   34,   31,  105,   39,   34,   34,
--       39,   41,   42,   34,  106,   42,   34,   20,   41,   41,
--      160,   44,  160,   41,   42,   44,   48,   48,   43,   41,
--       41,   42,   41,   43,   47,   44,   47,   43,   47,  126,
--       43,   53,   53,   53,   53,   53,   53,   53,   68,   68,
--       70,   70,  120,  126,  142,  142,  148,  143,  124,  148,
--      120,   68,   68,   70,   70,  124,  143,  116,   48,  144,
--
--      116,  116,  153,  153,  116,   48,  116,  144,  152,   48,
--      152,  794,  152,  180,   48,   72,  793,   72,   72,   72,
--       72,   72,   72,   72,  154,  154,  171,  180,  166,  166,
--       73,   73,   72,   72,   73,   73,   73,   73,   73,   73,
--       73,  166,  166,  784,  153,   72,   72,  184,  184,  171,
--      241,  153,  215,  215,  215,  153,  247,  247,  247,  241,
--      153,  268,  268,  268,  621,  621,  154,  279,  279,  279,
--      288,  288,  288,  154,  292,  292,  292,  154,  301,  301,
--      301,  754,  154,  162,  162,  162,  162,  162,  162,  162,
--      164,  164,  655,  655,  164,  164,  164,  164,  164,  164,
--
--      164,  167,  167,  688,  688,  167,  167,  167,  167,  167,
--      167,  167,  169,  169,  169,  169,  169,  169,  169,  170,
--      170,  170,  170,  170,  170,  170,  256,  256,  256,  256,
--      256,  256,  256,  754,  783,  170,  257,  257,  257,  257,
--      257,  257,  257,  338,  338,  338,  782,  781,  170,  258,
--      258,  780,  257,  258,  258,  258,  258,  258,  258,  258,
--      393,  393,  393,  777,  776,  257,  260,  260,  260,  260,
--      260,  260,  260,  261,  261,  261,  261,  261,  261,  261,
--      350,  350,  350,  350,  350,  350,  350,  775,  774,  261,
--      351,  351,  351,  351,  351,  351,  351,  382,  382,  382,
--
--      581,  773,  261,  394,  394,  394,  351,  772,  382,  382,
--      395,  395,  395,  443,  443,  443,  483,  483,  483,  351,
--      490,  504,  505,  771,  443,  443,  770,  483,  483,  504,
--      505,  519,  519,  519,  490,  490,  490,  490,  490,  490,
--      490,  581,  519,  519,  533,  533,  534,  534,  765,  763,
--      762,  768,  581,  619,  619,  554,  554,  554,  576,  576,
--      534,  534,  534,  534,  534,  534,  534,  554,  573,  573,
--      573,  790,  576,  576,  576,  576,  576,  576,  576,  533,
--      573,  578,  578,  739,  760,  605,  757,  756,  619,  755,
--      739,  580,  580,  605,  606,  578,  578,  578,  578,  578,
--
--      578,  606,  606,  768,  533,  580,  580,  580,  580,  580,
--      580,  580,  753,  619,  620,  620,  769,  778,  786,  753,
--      779,  657,  657,  790,  769,  778,  786,  779,  620,  620,
--      620,  620,  620,  620,  620,  657,  657,  657,  657,  657,
--      657,  659,  659,  787,  798,  789,  796,  752,  751,  750,
--      749,  787,  789,  748,  796,  659,  659,  659,  659,  659,
--      659,  659,  799,  804,  807,  808,  810,  747,  746,  745,
--      799,  804,  807,  808,  810,  744,  743,  742,  741,  740,
--      738,  737,  734,  731,  730,  729,  728,  727,  725,  724,
--      722,  720,  717,  716,  714,  713,  798,  813,  813,  813,
--
--      813,  813,  813,  813,  813,  814,  814,  814,  814,  814,
--      815,  815,  815,  815,  815,  816,  816,  817,  817,  818,
--      818,  818,  819,  819,  711,  819,  819,  819,  819,  819,
--      820,  820,  820,  710,  709,  708,  820,  821,  821,  821,
--      822,  822,  822,  707,  706,  705,  822,  823,  823,  823,
--      704,  703,  702,  701,  699,  698,  697,  696,  695,  694,
--      692,  691,  690,  689,  687,  686,  685,  684,  683,  682,
--      681,  680,  679,  678,  677,  676,  675,  674,  673,  672,
--      671,  670,  668,  667,  666,  665,  664,  663,  662,  661,
--      660,  653,  651,  650,  648,  647,  646,  645,  644,  643,
--
--      642,  641,  640,  639,  638,  637,  636,  634,  633,  632,
--      631,  630,  629,  628,  626,  625,  624,  623,  622,  618,
--      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
--      607,  601,  599,  598,  597,  596,  592,  591,  590,  589,
--      588,  587,  586,  585,  584,  575,  571,  570,  568,  567,
--      565,  564,  563,  562,  561,  560,  559,  558,  557,  555,
--      553,  552,  551,  550,  549,  548,  547,  546,  545,  544,
--      542,  541,  537,  536,  535,  532,  531,  529,  528,  526,
--      525,  524,  523,  522,  520,  518,  517,  516,  515,  514,
--      513,  511,  510,  509,  508,  507,  503,  502,  501,  500,
--
--      499,  498,  495,  494,  493,  492,  491,  489,  488,  487,
--      486,  485,  484,  482,  481,  474,  473,  470,  469,  466,
--      465,  464,  463,  452,  451,  450,  448,  447,  446,  445,
--      444,  441,  439,  438,  437,  435,  434,  432,  431,  430,
--      429,  427,  426,  421,  420,  418,  417,  416,  415,  414,
--      413,  412,  411,  410,  409,  407,  406,  405,  404,  403,
--      402,  401,  400,  399,  398,  397,  396,  392,  388,  387,
--      386,  383,  381,  371,  369,  365,  364,  363,  362,  360,
--      358,  353,  352,  349,  348,  347,  346,  345,  344,  339,
--      337,  336,  335,  334,  333,  331,  330,  327,  326,  325,
--
--      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
--      314,  313,  312,  311,  310,  309,  308,  307,  306,  305,
--      302,  300,  299,  298,  297,  296,  295,  294,  293,  291,
--      287,  285,  284,  283,  282,  278,  277,  276,  275,  274,
--      273,  272,  271,  267,  265,  264,  254,  253,  252,  251,
--      250,  249,  248,  246,  245,  244,  243,  242,  240,  239,
--      238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
--      228,  227,  226,  225,  224,  223,  222,  221,  220,  219,
--      218,  217,  216,  214,  213,  212,  211,  210,  209,  208,
--      207,  206,  205,  204,  203,  202,  201,  200,  199,  198,
--
--      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
--      186,  185,  183,  182,  181,  179,  178,  177,  176,  174,
--      159,  158,  157,  156,  149,  147,  146,  145,  141,  140,
--      139,  138,  137,  136,  134,  133,  132,  131,  130,  129,
--      128,  127,  125,  123,  122,  121,  119,  118,  117,  115,
--      114,  112,  111,  110,  109,  108,  107,  104,  103,  102,
--      101,  100,   99,   98,   97,   95,   94,   93,   92,   91,
--       90,   89,   88,   87,   83,   79,   52,   45,   38,   32,
--       22,   18,   14,   12,   11,    7,    6,    5,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
--      812,  812,  812,  812
-+        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-+        3,   13,   15,  792,   16,   17,   17,   17,   17,   17,
-+       17,   17,   21,   21,   25,   15,   16,   26,   13,   19,
-+       35,   19,   19,   19,   19,   19,   19,   19,   23,   23,
-+       25,   36,   26,   26,   35,   36,   19,   19,   71,   30,
-+       27,   30,   27,   28,   19,   19,   27,   28,   37,   39,
-+       30,  758,   19,   19,   28,  143,   29,   28,   96,   96,
-+
-+       29,   33,   37,   71,  143,   39,   29,   19,   39,   33,
-+       19,   20,   29,   20,   20,   20,   20,   20,   20,   20,
-+       40,   33,   47,   31,   47,  794,   47,   46,   20,   20,
-+       40,   31,   48,   48,   31,  106,   20,   31,   42,   34,
-+      758,   42,   34,   31,   20,   20,   34,   34,   41,  106,
-+       42,   34,  802,   43,   34,   41,   41,   42,   43,   20,
-+       41,   50,   43,   50,   44,   43,   41,   41,   44,   41,
-+       46,   58,  105,   58,   68,   68,  135,   48,   44,  120,
-+      142,  142,  124,  105,   48,   70,   70,  120,   48,  124,
-+       68,   68,  135,   48,   53,   53,   53,   53,   53,   53,
-+
-+       53,   70,   70,   72,  144,   72,   72,   72,   72,   72,
-+       72,   72,  144,  148,  803,  126,  148,  804,   73,   73,
-+       72,   72,   73,   73,   73,   73,   73,   73,   73,  126,
-+      805,  116,  153,  153,  116,  116,   72,   72,  116,  152,
-+      116,  152,  810,  152,  154,  154,  160,  811,  160,  162,
-+      162,  162,  162,  162,  162,  162,  164,  164,  166,  166,
-+      164,  164,  164,  164,  164,  164,  164,  169,  169,  169,
-+      169,  169,  169,  169,  166,  166,  171,  153,  180,  184,
-+      184,  215,  215,  215,  153,  241,  813,  504,  153,  154,
-+      776,  505,  180,  153,  241,  814,  154,  504,  776,  171,
-+
-+      154,  505,  167,  167,  818,  154,  167,  167,  167,  167,
-+      167,  167,  167,  170,  170,  170,  170,  170,  170,  170,
-+      247,  247,  247,  268,  268,  268,  279,  279,  279,  170,
-+      256,  256,  256,  256,  256,  256,  256,  257,  257,  257,
-+      257,  257,  257,  257,  786,  170,  288,  288,  288,  822,
-+      258,  258,  786,  257,  258,  258,  258,  258,  258,  258,
-+      258,  260,  260,  260,  260,  260,  260,  260,  825,  257,
-+      261,  261,  261,  261,  261,  261,  261,  292,  292,  292,
-+      301,  301,  301,  338,  338,  338,  261,  350,  350,  350,
-+      350,  350,  350,  350,  351,  351,  351,  351,  351,  351,
-+
-+      351,  795,  261,  382,  382,  382,  393,  393,  393,  795,
-+      351,  394,  394,  394,  382,  382,  395,  395,  395,  443,
-+      443,  443,  483,  483,  483,  490,  351,  830,  605,  831,
-+      443,  443,  839,  483,  483,  519,  519,  519,  605,  490,
-+      490,  490,  490,  490,  490,  490,  519,  519,  533,  533,
-+      606,  621,  621,  796,  534,  534,  656,  656,  760,  606,
-+      606,  796,  533,  533,  533,  533,  533,  533,  534,  534,
-+      534,  534,  534,  534,  534,  554,  554,  554,  573,  573,
-+      573,  576,  576,  690,  690,  581,  533,  554,  578,  578,
-+      573,  775,  799,  840,  790,  576,  576,  576,  576,  576,
-+
-+      576,  576,  578,  578,  578,  578,  578,  578,  580,  580,
-+      806,  533,  744,  760,  759,  808,  619,  619,  806,  744,
-+      581,  759,  580,  580,  580,  580,  580,  580,  580,  581,
-+      619,  619,  619,  619,  619,  619,  787,  798,  789,  788,
-+      581,  620,  620,  787,  798,  809,  775,  799,  658,  658,
-+      828,  785,  829,  809,  619,  620,  620,  620,  620,  620,
-+      620,  620,  658,  658,  658,  658,  658,  658,  660,  660,
-+      808,  826,  815,  819,  784,  783,  782,  781,  826,  619,
-+      815,  819,  660,  660,  660,  660,  660,  660,  660,  820,
-+      823,  828,  827,  829,  832,  833,  780,  820,  823,  827,
-+
-+      779,  778,  832,  833,  836,  836,  836,  836,  836,  837,
-+      837,  837,  838,  838,  838,  841,  841,  842,  777,  842,
-+      842,  842,  843,  843,  844,  844,  774,  771,  769,  768,
-+      766,  763,  762,  761,  757,  756,  755,  754,  753,  752,
-+      751,  750,  749,  748,  747,  746,  745,  743,  742,  741,
-+      738,  735,  734,  733,  732,  731,  729,  728,  726,  724,
-+      721,  720,  719,  717,  716,  714,  713,  712,  711,  710,
-+      709,  708,  707,  706,  705,  704,  702,  701,  700,  699,
-+      698,  697,  695,  694,  693,  692,  691,  689,  688,  687,
-+      686,  685,  684,  683,  682,  681,  680,  679,  678,  677,
-+
-+      676,  675,  674,  673,  672,  670,  669,  668,  667,  666,
-+      665,  664,  663,  662,  661,  654,  652,  651,  649,  648,
-+      647,  646,  645,  644,  643,  642,  641,  640,  639,  638,
-+      637,  635,  634,  633,  632,  631,  630,  629,  627,  626,
-+      625,  624,  623,  622,  618,  617,  616,  615,  614,  613,
-+      612,  611,  610,  609,  608,  607,  601,  599,  598,  597,
-+      596,  592,  591,  590,  589,  588,  587,  586,  585,  584,
-+      575,  571,  570,  568,  567,  565,  564,  563,  562,  561,
-+      560,  559,  558,  557,  555,  553,  552,  551,  550,  549,
-+      548,  547,  546,  545,  544,  542,  541,  537,  536,  535,
-+
-+      532,  531,  529,  528,  526,  525,  524,  523,  522,  520,
-+      518,  517,  516,  515,  514,  513,  511,  510,  509,  508,
-+      507,  503,  502,  501,  500,  499,  498,  495,  494,  493,
-+      492,  491,  489,  488,  487,  486,  485,  484,  482,  481,
-+      474,  473,  470,  469,  466,  465,  464,  463,  452,  451,
-+      450,  448,  447,  446,  445,  444,  441,  439,  438,  437,
-+      435,  434,  432,  431,  430,  429,  427,  426,  421,  420,
-+      418,  417,  416,  415,  414,  413,  412,  411,  410,  409,
-+      407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
-+      397,  396,  392,  388,  387,  386,  383,  381,  371,  369,
-+
-+      365,  364,  363,  362,  360,  358,  353,  352,  349,  348,
-+      347,  346,  345,  344,  339,  337,  336,  335,  334,  333,
-+      331,  330,  327,  326,  325,  324,  323,  322,  321,  320,
-+      319,  318,  317,  316,  315,  314,  313,  312,  311,  310,
-+      309,  308,  307,  306,  305,  302,  300,  299,  298,  297,
-+      296,  295,  294,  293,  291,  287,  285,  284,  283,  282,
-+      278,  277,  276,  275,  274,  273,  272,  271,  267,  265,
-+      264,  254,  253,  252,  251,  250,  249,  248,  246,  245,
-+      244,  243,  242,  240,  239,  238,  237,  236,  235,  234,
-+      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
-+
-+      223,  222,  221,  220,  219,  218,  217,  216,  214,  213,
-+      212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
-+      202,  201,  200,  199,  198,  196,  195,  194,  193,  192,
-+      191,  190,  189,  188,  187,  186,  185,  183,  182,  181,
-+      179,  178,  177,  176,  174,  159,  158,  157,  156,  149,
-+      147,  146,  145,  141,  140,  139,  138,  137,  136,  134,
-+      133,  132,  131,  130,  129,  128,  127,  125,  123,  122,
-+      121,  119,  118,  117,  115,  114,  112,  111,  110,  109,
-+      108,  107,  104,  103,  102,  101,  100,   99,   98,   97,
-+       95,   94,   93,   92,   91,   90,   89,   88,   87,   83,
-+
-+       79,   52,   45,   38,   32,   22,   18,   14,   12,   11,
-+        7,    6,    5,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
-+      835,  835
-     } ;
- 
- /* The intent behind this definition is that it'll catch
-@@ -1055,7 +1067,7 @@ static yyconst flex_int16_t yy_chk[1255] =
-  */
- #define ES yyextra->es_shader
- 
--#line 1059 "glsl_lexer.cpp"
-+#line 1071 "glsl_lexer.cpp"
- 
- #define INITIAL 0
- #define PP 1
-@@ -1142,6 +1154,10 @@ int _mesa_glsl_get_lineno (yyscan_t yyscanner );
- 
- void _mesa_glsl_set_lineno (int line_number ,yyscan_t yyscanner );
- 
-+int _mesa_glsl_get_column  (yyscan_t yyscanner );
-+
-+void _mesa_glsl_set_column (int column_no ,yyscan_t yyscanner );
-+
- YYSTYPE * _mesa_glsl_get_lval (yyscan_t yyscanner );
- 
- void _mesa_glsl_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
-@@ -1292,7 +1308,7 @@ YY_DECL
- #line 95 "glsl_lexer.lpp"
- 
- 
--#line 1296 "glsl_lexer.cpp"
-+#line 1312 "glsl_lexer.cpp"
- 
-     yylval = yylval_param;
- 
-@@ -1350,13 +1366,13 @@ yy_match:
- 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- 				{
- 				yy_current_state = (int) yy_def[yy_current_state];
--				if ( yy_current_state >= 813 )
-+				if ( yy_current_state >= 836 )
- 					yy_c = yy_meta[(unsigned int) yy_c];
- 				}
- 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- 			++yy_cp;
- 			}
--		while ( yy_current_state != 812 );
-+		while ( yy_current_state != 835 );
- 		yy_cp = yyg->yy_last_accepting_cpos;
- 		yy_current_state = yyg->yy_last_accepting_state;
- 
-@@ -1478,435 +1494,443 @@ YY_RULE_SETUP
- case 11:
- YY_RULE_SETUP
- #line 148 "glsl_lexer.lpp"
--{ BEGIN PRAGMA; }
-+{
-+				  BEGIN PP;
-+				  return PRAGMA_INVARIANT_ALL;
-+				}
- 	YY_BREAK
- case 12:
--/* rule 12 can match eol */
- YY_RULE_SETUP
--#line 150 "glsl_lexer.lpp"
--{ BEGIN 0; yylineno++; yycolumn = 0; }
-+#line 152 "glsl_lexer.lpp"
-+{ BEGIN PRAGMA; }
- 	YY_BREAK
- case 13:
-+/* rule 13 can match eol */
- YY_RULE_SETUP
--#line 151 "glsl_lexer.lpp"
--{ }
-+#line 154 "glsl_lexer.lpp"
-+{ BEGIN 0; yylineno++; yycolumn = 0; }
- 	YY_BREAK
- case 14:
- YY_RULE_SETUP
--#line 153 "glsl_lexer.lpp"
-+#line 155 "glsl_lexer.lpp"
- { }
- 	YY_BREAK
- case 15:
- YY_RULE_SETUP
--#line 154 "glsl_lexer.lpp"
-+#line 157 "glsl_lexer.lpp"
- { }
- 	YY_BREAK
- case 16:
- YY_RULE_SETUP
--#line 155 "glsl_lexer.lpp"
--return COLON;
-+#line 158 "glsl_lexer.lpp"
-+{ }
- 	YY_BREAK
- case 17:
- YY_RULE_SETUP
--#line 156 "glsl_lexer.lpp"
-+#line 159 "glsl_lexer.lpp"
-+return COLON;
-+	YY_BREAK
-+case 18:
-+YY_RULE_SETUP
-+#line 160 "glsl_lexer.lpp"
- {
- 				   yylval->identifier = strdup(yytext);
- 				   return IDENTIFIER;
- 				}
- 	YY_BREAK
--case 18:
-+case 19:
- YY_RULE_SETUP
--#line 160 "glsl_lexer.lpp"
-+#line 164 "glsl_lexer.lpp"
- {
- 				    yylval->n = strtol(yytext, NULL, 10);
- 				    return INTCONSTANT;
- 				}
- 	YY_BREAK
--case 19:
--/* rule 19 can match eol */
-+case 20:
-+/* rule 20 can match eol */
- YY_RULE_SETUP
--#line 164 "glsl_lexer.lpp"
-+#line 168 "glsl_lexer.lpp"
- { BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
- 	YY_BREAK
--case 20:
--/* rule 20 can match eol */
-+case 21:
-+/* rule 21 can match eol */
- YY_RULE_SETUP
--#line 166 "glsl_lexer.lpp"
-+#line 170 "glsl_lexer.lpp"
- { yylineno++; yycolumn = 0; }
- 	YY_BREAK
--case 21:
-+case 22:
- YY_RULE_SETUP
--#line 168 "glsl_lexer.lpp"
-+#line 172 "glsl_lexer.lpp"
- return ATTRIBUTE;
- 	YY_BREAK
--case 22:
-+case 23:
- YY_RULE_SETUP
--#line 169 "glsl_lexer.lpp"
-+#line 173 "glsl_lexer.lpp"
- return CONST_TOK;
- 	YY_BREAK
--case 23:
-+case 24:
- YY_RULE_SETUP
--#line 170 "glsl_lexer.lpp"
-+#line 174 "glsl_lexer.lpp"
- return BOOL_TOK;
- 	YY_BREAK
--case 24:
-+case 25:
- YY_RULE_SETUP
--#line 171 "glsl_lexer.lpp"
-+#line 175 "glsl_lexer.lpp"
- return FLOAT_TOK;
- 	YY_BREAK
--case 25:
-+case 26:
- YY_RULE_SETUP
--#line 172 "glsl_lexer.lpp"
-+#line 176 "glsl_lexer.lpp"
- return INT_TOK;
- 	YY_BREAK
--case 26:
-+case 27:
- YY_RULE_SETUP
--#line 173 "glsl_lexer.lpp"
-+#line 177 "glsl_lexer.lpp"
- KEYWORD(130, 130, UINT_TOK);
- 	YY_BREAK
--case 27:
-+case 28:
- YY_RULE_SETUP
--#line 175 "glsl_lexer.lpp"
-+#line 179 "glsl_lexer.lpp"
- return BREAK;
- 	YY_BREAK
--case 28:
-+case 29:
- YY_RULE_SETUP
--#line 176 "glsl_lexer.lpp"
-+#line 180 "glsl_lexer.lpp"
- return CONTINUE;
- 	YY_BREAK
--case 29:
-+case 30:
- YY_RULE_SETUP
--#line 177 "glsl_lexer.lpp"
-+#line 181 "glsl_lexer.lpp"
- return DO;
- 	YY_BREAK
--case 30:
-+case 31:
- YY_RULE_SETUP
--#line 178 "glsl_lexer.lpp"
-+#line 182 "glsl_lexer.lpp"
- return WHILE;
- 	YY_BREAK
--case 31:
-+case 32:
- YY_RULE_SETUP
--#line 179 "glsl_lexer.lpp"
-+#line 183 "glsl_lexer.lpp"
- return ELSE;
- 	YY_BREAK
--case 32:
-+case 33:
- YY_RULE_SETUP
--#line 180 "glsl_lexer.lpp"
-+#line 184 "glsl_lexer.lpp"
- return FOR;
- 	YY_BREAK
--case 33:
-+case 34:
- YY_RULE_SETUP
--#line 181 "glsl_lexer.lpp"
-+#line 185 "glsl_lexer.lpp"
- return IF;
- 	YY_BREAK
--case 34:
-+case 35:
- YY_RULE_SETUP
--#line 182 "glsl_lexer.lpp"
-+#line 186 "glsl_lexer.lpp"
- return DISCARD;
- 	YY_BREAK
--case 35:
-+case 36:
- YY_RULE_SETUP
--#line 183 "glsl_lexer.lpp"
-+#line 187 "glsl_lexer.lpp"
- return RETURN;
- 	YY_BREAK
--case 36:
-+case 37:
- YY_RULE_SETUP
--#line 185 "glsl_lexer.lpp"
-+#line 189 "glsl_lexer.lpp"
- return BVEC2;
- 	YY_BREAK
--case 37:
-+case 38:
- YY_RULE_SETUP
--#line 186 "glsl_lexer.lpp"
-+#line 190 "glsl_lexer.lpp"
- return BVEC3;
- 	YY_BREAK
--case 38:
-+case 39:
- YY_RULE_SETUP
--#line 187 "glsl_lexer.lpp"
-+#line 191 "glsl_lexer.lpp"
- return BVEC4;
- 	YY_BREAK
--case 39:
-+case 40:
- YY_RULE_SETUP
--#line 188 "glsl_lexer.lpp"
-+#line 192 "glsl_lexer.lpp"
- return IVEC2;
- 	YY_BREAK
--case 40:
-+case 41:
- YY_RULE_SETUP
--#line 189 "glsl_lexer.lpp"
-+#line 193 "glsl_lexer.lpp"
- return IVEC3;
- 	YY_BREAK
--case 41:
-+case 42:
- YY_RULE_SETUP
--#line 190 "glsl_lexer.lpp"
-+#line 194 "glsl_lexer.lpp"
- return IVEC4;
- 	YY_BREAK
--case 42:
-+case 43:
- YY_RULE_SETUP
--#line 191 "glsl_lexer.lpp"
-+#line 195 "glsl_lexer.lpp"
- KEYWORD(130, 130, UVEC2);
- 	YY_BREAK
--case 43:
-+case 44:
- YY_RULE_SETUP
--#line 192 "glsl_lexer.lpp"
-+#line 196 "glsl_lexer.lpp"
- KEYWORD(130, 130, UVEC3);
- 	YY_BREAK
--case 44:
-+case 45:
- YY_RULE_SETUP
--#line 193 "glsl_lexer.lpp"
-+#line 197 "glsl_lexer.lpp"
- KEYWORD(130, 130, UVEC4);
- 	YY_BREAK
--case 45:
-+case 46:
- YY_RULE_SETUP
--#line 194 "glsl_lexer.lpp"
-+#line 198 "glsl_lexer.lpp"
- return VEC2;
- 	YY_BREAK
--case 46:
-+case 47:
- YY_RULE_SETUP
--#line 195 "glsl_lexer.lpp"
-+#line 199 "glsl_lexer.lpp"
- return VEC3;
- 	YY_BREAK
--case 47:
-+case 48:
- YY_RULE_SETUP
--#line 196 "glsl_lexer.lpp"
-+#line 200 "glsl_lexer.lpp"
- return VEC4;
- 	YY_BREAK
--case 48:
-+case 49:
- YY_RULE_SETUP
--#line 197 "glsl_lexer.lpp"
-+#line 201 "glsl_lexer.lpp"
- return MAT2X2;
- 	YY_BREAK
--case 49:
-+case 50:
- YY_RULE_SETUP
--#line 198 "glsl_lexer.lpp"
-+#line 202 "glsl_lexer.lpp"
- return MAT3X3;
- 	YY_BREAK
--case 50:
-+case 51:
- YY_RULE_SETUP
--#line 199 "glsl_lexer.lpp"
-+#line 203 "glsl_lexer.lpp"
- return MAT4X4;
- 	YY_BREAK
--case 51:
-+case 52:
- YY_RULE_SETUP
--#line 200 "glsl_lexer.lpp"
-+#line 204 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT2X2);
- 	YY_BREAK
--case 52:
-+case 53:
- YY_RULE_SETUP
--#line 201 "glsl_lexer.lpp"
-+#line 205 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT2X3);
- 	YY_BREAK
--case 53:
-+case 54:
- YY_RULE_SETUP
--#line 202 "glsl_lexer.lpp"
-+#line 206 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT2X4);
- 	YY_BREAK
--case 54:
-+case 55:
- YY_RULE_SETUP
--#line 203 "glsl_lexer.lpp"
-+#line 207 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT3X2);
- 	YY_BREAK
--case 55:
-+case 56:
- YY_RULE_SETUP
--#line 204 "glsl_lexer.lpp"
-+#line 208 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT3X3);
- 	YY_BREAK
--case 56:
-+case 57:
- YY_RULE_SETUP
--#line 205 "glsl_lexer.lpp"
-+#line 209 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT3X4);
- 	YY_BREAK
--case 57:
-+case 58:
- YY_RULE_SETUP
--#line 206 "glsl_lexer.lpp"
-+#line 210 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT4X2);
- 	YY_BREAK
--case 58:
-+case 59:
- YY_RULE_SETUP
--#line 207 "glsl_lexer.lpp"
-+#line 211 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT4X3);
- 	YY_BREAK
--case 59:
-+case 60:
- YY_RULE_SETUP
--#line 208 "glsl_lexer.lpp"
-+#line 212 "glsl_lexer.lpp"
- KEYWORD(120, 120, MAT4X4);
- 	YY_BREAK
--case 60:
-+case 61:
- YY_RULE_SETUP
--#line 210 "glsl_lexer.lpp"
-+#line 214 "glsl_lexer.lpp"
- return IN_TOK;
- 	YY_BREAK
--case 61:
-+case 62:
- YY_RULE_SETUP
--#line 211 "glsl_lexer.lpp"
-+#line 215 "glsl_lexer.lpp"
- return OUT_TOK;
- 	YY_BREAK
--case 62:
-+case 63:
- YY_RULE_SETUP
--#line 212 "glsl_lexer.lpp"
-+#line 216 "glsl_lexer.lpp"
- return INOUT_TOK;
- 	YY_BREAK
--case 63:
-+case 64:
- YY_RULE_SETUP
--#line 213 "glsl_lexer.lpp"
-+#line 217 "glsl_lexer.lpp"
- return UNIFORM;
- 	YY_BREAK
--case 64:
-+case 65:
- YY_RULE_SETUP
--#line 214 "glsl_lexer.lpp"
-+#line 218 "glsl_lexer.lpp"
- return VARYING;
- 	YY_BREAK
--case 65:
-+case 66:
- YY_RULE_SETUP
--#line 215 "glsl_lexer.lpp"
-+#line 219 "glsl_lexer.lpp"
- KEYWORD(120, 120, CENTROID);
- 	YY_BREAK
--case 66:
-+case 67:
- YY_RULE_SETUP
--#line 216 "glsl_lexer.lpp"
-+#line 220 "glsl_lexer.lpp"
- KEYWORD(120 || ES, 120 || ES, INVARIANT);
- 	YY_BREAK
--case 67:
-+case 68:
- YY_RULE_SETUP
--#line 217 "glsl_lexer.lpp"
-+#line 221 "glsl_lexer.lpp"
- KEYWORD(130 || ES, 130, FLAT);
- 	YY_BREAK
--case 68:
-+case 69:
- YY_RULE_SETUP
--#line 218 "glsl_lexer.lpp"
-+#line 222 "glsl_lexer.lpp"
- KEYWORD(130, 130, SMOOTH);
- 	YY_BREAK
--case 69:
-+case 70:
- YY_RULE_SETUP
--#line 219 "glsl_lexer.lpp"
-+#line 223 "glsl_lexer.lpp"
- KEYWORD(130, 130, NOPERSPECTIVE);
- 	YY_BREAK
--case 70:
-+case 71:
- YY_RULE_SETUP
--#line 221 "glsl_lexer.lpp"
-+#line 225 "glsl_lexer.lpp"
- return SAMPLER1D;
- 	YY_BREAK
--case 71:
-+case 72:
- YY_RULE_SETUP
--#line 222 "glsl_lexer.lpp"
-+#line 226 "glsl_lexer.lpp"
- return SAMPLER2D;
- 	YY_BREAK
--case 72:
-+case 73:
- YY_RULE_SETUP
--#line 223 "glsl_lexer.lpp"
-+#line 227 "glsl_lexer.lpp"
- return SAMPLER3D;
- 	YY_BREAK
--case 73:
-+case 74:
- YY_RULE_SETUP
--#line 224 "glsl_lexer.lpp"
-+#line 228 "glsl_lexer.lpp"
- return SAMPLERCUBE;
- 	YY_BREAK
--case 74:
-+case 75:
- YY_RULE_SETUP
--#line 225 "glsl_lexer.lpp"
-+#line 229 "glsl_lexer.lpp"
- KEYWORD(130, 130, SAMPLER1DARRAY);
- 	YY_BREAK
--case 75:
-+case 76:
- YY_RULE_SETUP
--#line 226 "glsl_lexer.lpp"
-+#line 230 "glsl_lexer.lpp"
- KEYWORD(130, 130, SAMPLER2DARRAY);
- 	YY_BREAK
--case 76:
-+case 77:
- YY_RULE_SETUP
--#line 227 "glsl_lexer.lpp"
-+#line 231 "glsl_lexer.lpp"
- return SAMPLER1DSHADOW;
- 	YY_BREAK
--case 77:
-+case 78:
- YY_RULE_SETUP
--#line 228 "glsl_lexer.lpp"
-+#line 232 "glsl_lexer.lpp"
- return SAMPLER2DSHADOW;
- 	YY_BREAK
--case 78:
-+case 79:
- YY_RULE_SETUP
--#line 229 "glsl_lexer.lpp"
-+#line 233 "glsl_lexer.lpp"
- KEYWORD(130, 130, SAMPLERCUBESHADOW);
- 	YY_BREAK
--case 79:
-+case 80:
- YY_RULE_SETUP
--#line 230 "glsl_lexer.lpp"
-+#line 234 "glsl_lexer.lpp"
- KEYWORD(130, 130, SAMPLER1DARRAYSHADOW);
- 	YY_BREAK
--case 80:
-+case 81:
- YY_RULE_SETUP
--#line 231 "glsl_lexer.lpp"
-+#line 235 "glsl_lexer.lpp"
- KEYWORD(130, 130, SAMPLER2DARRAYSHADOW);
- 	YY_BREAK
--case 81:
-+case 82:
- YY_RULE_SETUP
--#line 232 "glsl_lexer.lpp"
-+#line 236 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLER1D);
- 	YY_BREAK
--case 82:
-+case 83:
- YY_RULE_SETUP
--#line 233 "glsl_lexer.lpp"
-+#line 237 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLER2D);
- 	YY_BREAK
--case 83:
-+case 84:
- YY_RULE_SETUP
--#line 234 "glsl_lexer.lpp"
-+#line 238 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLER3D);
- 	YY_BREAK
--case 84:
-+case 85:
- YY_RULE_SETUP
--#line 235 "glsl_lexer.lpp"
-+#line 239 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLERCUBE);
- 	YY_BREAK
--case 85:
-+case 86:
- YY_RULE_SETUP
--#line 236 "glsl_lexer.lpp"
-+#line 240 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLER1DARRAY);
- 	YY_BREAK
--case 86:
-+case 87:
- YY_RULE_SETUP
--#line 237 "glsl_lexer.lpp"
-+#line 241 "glsl_lexer.lpp"
- KEYWORD(130, 130, ISAMPLER2DARRAY);
- 	YY_BREAK
--case 87:
-+case 88:
- YY_RULE_SETUP
--#line 238 "glsl_lexer.lpp"
-+#line 242 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLER1D);
- 	YY_BREAK
--case 88:
-+case 89:
- YY_RULE_SETUP
--#line 239 "glsl_lexer.lpp"
-+#line 243 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLER2D);
- 	YY_BREAK
--case 89:
-+case 90:
- YY_RULE_SETUP
--#line 240 "glsl_lexer.lpp"
-+#line 244 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLER3D);
- 	YY_BREAK
--case 90:
-+case 91:
- YY_RULE_SETUP
--#line 241 "glsl_lexer.lpp"
-+#line 245 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLERCUBE);
- 	YY_BREAK
--case 91:
-+case 92:
- YY_RULE_SETUP
--#line 242 "glsl_lexer.lpp"
-+#line 246 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLER1DARRAY);
- 	YY_BREAK
--case 92:
-+case 93:
- YY_RULE_SETUP
--#line 243 "glsl_lexer.lpp"
-+#line 247 "glsl_lexer.lpp"
- KEYWORD(130, 130, USAMPLER2DARRAY);
- 	YY_BREAK
--case 93:
-+case 94:
- YY_RULE_SETUP
--#line 246 "glsl_lexer.lpp"
-+#line 250 "glsl_lexer.lpp"
- return STRUCT;
- 	YY_BREAK
--case 94:
-+case 95:
- YY_RULE_SETUP
--#line 247 "glsl_lexer.lpp"
-+#line 251 "glsl_lexer.lpp"
- return VOID_TOK;
- 	YY_BREAK
--case 95:
-+case 96:
- YY_RULE_SETUP
--#line 249 "glsl_lexer.lpp"
-+#line 253 "glsl_lexer.lpp"
- {
- 		  if ((yyextra->language_version >= 140)
- 		      || yyextra->ARB_explicit_attrib_location_enable
-@@ -1918,124 +1942,116 @@ YY_RULE_SETUP
- 		   }
- 		}
- 	YY_BREAK
--case 96:
--YY_RULE_SETUP
--#line 260 "glsl_lexer.lpp"
--return INC_OP;
--	YY_BREAK
- case 97:
- YY_RULE_SETUP
--#line 261 "glsl_lexer.lpp"
--return DEC_OP;
-+#line 264 "glsl_lexer.lpp"
-+return INC_OP;
- 	YY_BREAK
- case 98:
- YY_RULE_SETUP
--#line 262 "glsl_lexer.lpp"
--return LE_OP;
-+#line 265 "glsl_lexer.lpp"
-+return DEC_OP;
- 	YY_BREAK
- case 99:
- YY_RULE_SETUP
--#line 263 "glsl_lexer.lpp"
--return GE_OP;
-+#line 266 "glsl_lexer.lpp"
-+return LE_OP;
- 	YY_BREAK
- case 100:
- YY_RULE_SETUP
--#line 264 "glsl_lexer.lpp"
--return EQ_OP;
-+#line 267 "glsl_lexer.lpp"
-+return GE_OP;
- 	YY_BREAK
- case 101:
- YY_RULE_SETUP
--#line 265 "glsl_lexer.lpp"
--return NE_OP;
-+#line 268 "glsl_lexer.lpp"
-+return EQ_OP;
- 	YY_BREAK
- case 102:
- YY_RULE_SETUP
--#line 266 "glsl_lexer.lpp"
--return AND_OP;
-+#line 269 "glsl_lexer.lpp"
-+return NE_OP;
- 	YY_BREAK
- case 103:
- YY_RULE_SETUP
--#line 267 "glsl_lexer.lpp"
--return OR_OP;
-+#line 270 "glsl_lexer.lpp"
-+return AND_OP;
- 	YY_BREAK
- case 104:
- YY_RULE_SETUP
--#line 268 "glsl_lexer.lpp"
--return XOR_OP;
-+#line 271 "glsl_lexer.lpp"
-+return OR_OP;
- 	YY_BREAK
- case 105:
- YY_RULE_SETUP
--#line 269 "glsl_lexer.lpp"
--return LEFT_OP;
-+#line 272 "glsl_lexer.lpp"
-+return XOR_OP;
- 	YY_BREAK
- case 106:
- YY_RULE_SETUP
--#line 270 "glsl_lexer.lpp"
--return RIGHT_OP;
-+#line 273 "glsl_lexer.lpp"
-+return LEFT_OP;
- 	YY_BREAK
- case 107:
- YY_RULE_SETUP
--#line 272 "glsl_lexer.lpp"
--return MUL_ASSIGN;
-+#line 274 "glsl_lexer.lpp"
-+return RIGHT_OP;
- 	YY_BREAK
- case 108:
- YY_RULE_SETUP
--#line 273 "glsl_lexer.lpp"
--return DIV_ASSIGN;
-+#line 276 "glsl_lexer.lpp"
-+return MUL_ASSIGN;
- 	YY_BREAK
- case 109:
- YY_RULE_SETUP
--#line 274 "glsl_lexer.lpp"
--return ADD_ASSIGN;
-+#line 277 "glsl_lexer.lpp"
-+return DIV_ASSIGN;
- 	YY_BREAK
- case 110:
- YY_RULE_SETUP
--#line 275 "glsl_lexer.lpp"
--return MOD_ASSIGN;
-+#line 278 "glsl_lexer.lpp"
-+return ADD_ASSIGN;
- 	YY_BREAK
- case 111:
- YY_RULE_SETUP
--#line 276 "glsl_lexer.lpp"
--return LEFT_ASSIGN;
-+#line 279 "glsl_lexer.lpp"
-+return MOD_ASSIGN;
- 	YY_BREAK
- case 112:
- YY_RULE_SETUP
--#line 277 "glsl_lexer.lpp"
--return RIGHT_ASSIGN;
-+#line 280 "glsl_lexer.lpp"
-+return LEFT_ASSIGN;
- 	YY_BREAK
- case 113:
- YY_RULE_SETUP
--#line 278 "glsl_lexer.lpp"
--return AND_ASSIGN;
-+#line 281 "glsl_lexer.lpp"
-+return RIGHT_ASSIGN;
- 	YY_BREAK
- case 114:
- YY_RULE_SETUP
--#line 279 "glsl_lexer.lpp"
--return XOR_ASSIGN;
-+#line 282 "glsl_lexer.lpp"
-+return AND_ASSIGN;
- 	YY_BREAK
- case 115:
- YY_RULE_SETUP
--#line 280 "glsl_lexer.lpp"
--return OR_ASSIGN;
-+#line 283 "glsl_lexer.lpp"
-+return XOR_ASSIGN;
- 	YY_BREAK
- case 116:
- YY_RULE_SETUP
--#line 281 "glsl_lexer.lpp"
--return SUB_ASSIGN;
-+#line 284 "glsl_lexer.lpp"
-+return OR_ASSIGN;
- 	YY_BREAK
- case 117:
- YY_RULE_SETUP
--#line 283 "glsl_lexer.lpp"
--{
--			    yylval->n = strtol(yytext, NULL, 10);
--			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
--			}
-+#line 285 "glsl_lexer.lpp"
-+return SUB_ASSIGN;
- 	YY_BREAK
- case 118:
- YY_RULE_SETUP
- #line 287 "glsl_lexer.lpp"
- {
--			    yylval->n = strtol(yytext + 2, NULL, 16);
-+			    yylval->n = strtol(yytext, NULL, 10);
- 			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
- 			}
- 	YY_BREAK
-@@ -2043,16 +2059,16 @@ case 119:
- YY_RULE_SETUP
- #line 291 "glsl_lexer.lpp"
- {
--			    yylval->n = strtol(yytext, NULL, 8);
-+			    yylval->n = strtol(yytext + 2, NULL, 16);
- 			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
- 			}
- 	YY_BREAK
- case 120:
- YY_RULE_SETUP
--#line 296 "glsl_lexer.lpp"
-+#line 295 "glsl_lexer.lpp"
- {
--			    yylval->real = glsl_strtod(yytext, NULL);
--			    return FLOATCONSTANT;
-+			    yylval->n = strtol(yytext, NULL, 8);
-+			    return IS_UINT ? UINTCONSTANT : INTCONSTANT;
- 			}
- 	YY_BREAK
- case 121:
-@@ -2089,444 +2105,452 @@ YY_RULE_SETUP
- 	YY_BREAK
- case 125:
- YY_RULE_SETUP
--#line 317 "glsl_lexer.lpp"
-+#line 316 "glsl_lexer.lpp"
- {
--			    yylval->n = 1;
--			    return BOOLCONSTANT;
-+			    yylval->real = glsl_strtod(yytext, NULL);
-+			    return FLOATCONSTANT;
- 			}
- 	YY_BREAK
- case 126:
- YY_RULE_SETUP
- #line 321 "glsl_lexer.lpp"
- {
-+			    yylval->n = 1;
-+			    return BOOLCONSTANT;
-+			}
-+	YY_BREAK
-+case 127:
-+YY_RULE_SETUP
-+#line 325 "glsl_lexer.lpp"
-+{
- 			    yylval->n = 0;
- 			    return BOOLCONSTANT;
- 			}
- 	YY_BREAK
- /* Reserved words in GLSL 1.10. */
--case 127:
-+case 128:
- YY_RULE_SETUP
--#line 328 "glsl_lexer.lpp"
-+#line 332 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, ASM);
- 	YY_BREAK
--case 128:
-+case 129:
- YY_RULE_SETUP
--#line 329 "glsl_lexer.lpp"
-+#line 333 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, CLASS);
- 	YY_BREAK
--case 129:
-+case 130:
- YY_RULE_SETUP
--#line 330 "glsl_lexer.lpp"
-+#line 334 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, UNION);
- 	YY_BREAK
--case 130:
-+case 131:
- YY_RULE_SETUP
--#line 331 "glsl_lexer.lpp"
-+#line 335 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, ENUM);
- 	YY_BREAK
--case 131:
-+case 132:
- YY_RULE_SETUP
--#line 332 "glsl_lexer.lpp"
-+#line 336 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, TYPEDEF);
- 	YY_BREAK
--case 132:
-+case 133:
- YY_RULE_SETUP
--#line 333 "glsl_lexer.lpp"
-+#line 337 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, TEMPLATE);
- 	YY_BREAK
--case 133:
-+case 134:
- YY_RULE_SETUP
--#line 334 "glsl_lexer.lpp"
-+#line 338 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, THIS);
- 	YY_BREAK
--case 134:
-+case 135:
- YY_RULE_SETUP
--#line 335 "glsl_lexer.lpp"
-+#line 339 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, PACKED_TOK);
- 	YY_BREAK
--case 135:
-+case 136:
- YY_RULE_SETUP
--#line 336 "glsl_lexer.lpp"
-+#line 340 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, GOTO);
- 	YY_BREAK
--case 136:
-+case 137:
- YY_RULE_SETUP
--#line 337 "glsl_lexer.lpp"
-+#line 341 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 130, SWITCH);
- 	YY_BREAK
--case 137:
-+case 138:
- YY_RULE_SETUP
--#line 338 "glsl_lexer.lpp"
-+#line 342 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 130, DEFAULT);
- 	YY_BREAK
--case 138:
-+case 139:
- YY_RULE_SETUP
--#line 339 "glsl_lexer.lpp"
-+#line 343 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, INLINE_TOK);
- 	YY_BREAK
--case 139:
-+case 140:
- YY_RULE_SETUP
--#line 340 "glsl_lexer.lpp"
-+#line 344 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, NOINLINE);
- 	YY_BREAK
--case 140:
-+case 141:
- YY_RULE_SETUP
--#line 341 "glsl_lexer.lpp"
-+#line 345 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, VOLATILE);
- 	YY_BREAK
--case 141:
-+case 142:
- YY_RULE_SETUP
--#line 342 "glsl_lexer.lpp"
-+#line 346 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, PUBLIC_TOK);
- 	YY_BREAK
--case 142:
-+case 143:
- YY_RULE_SETUP
--#line 343 "glsl_lexer.lpp"
-+#line 347 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, STATIC);
- 	YY_BREAK
--case 143:
-+case 144:
- YY_RULE_SETUP
--#line 344 "glsl_lexer.lpp"
-+#line 348 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, EXTERN);
- 	YY_BREAK
--case 144:
-+case 145:
- YY_RULE_SETUP
--#line 345 "glsl_lexer.lpp"
-+#line 349 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, EXTERNAL);
- 	YY_BREAK
--case 145:
-+case 146:
- YY_RULE_SETUP
--#line 346 "glsl_lexer.lpp"
-+#line 350 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, INTERFACE);
- 	YY_BREAK
--case 146:
-+case 147:
- YY_RULE_SETUP
--#line 347 "glsl_lexer.lpp"
-+#line 351 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, LONG_TOK);
- 	YY_BREAK
--case 147:
-+case 148:
- YY_RULE_SETUP
--#line 348 "glsl_lexer.lpp"
-+#line 352 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, SHORT_TOK);
- 	YY_BREAK
--case 148:
-+case 149:
- YY_RULE_SETUP
--#line 349 "glsl_lexer.lpp"
-+#line 353 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 400, DOUBLE_TOK);
- 	YY_BREAK
--case 149:
-+case 150:
- YY_RULE_SETUP
--#line 350 "glsl_lexer.lpp"
-+#line 354 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, HALF);
- 	YY_BREAK
--case 150:
-+case 151:
- YY_RULE_SETUP
--#line 351 "glsl_lexer.lpp"
-+#line 355 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, FIXED_TOK);
- 	YY_BREAK
--case 151:
-+case 152:
- YY_RULE_SETUP
--#line 352 "glsl_lexer.lpp"
-+#line 356 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, UNSIGNED);
- 	YY_BREAK
--case 152:
-+case 153:
- YY_RULE_SETUP
--#line 353 "glsl_lexer.lpp"
-+#line 357 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, INPUT_TOK);
- 	YY_BREAK
--case 153:
-+case 154:
- YY_RULE_SETUP
--#line 354 "glsl_lexer.lpp"
-+#line 358 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, OUTPUT);
- 	YY_BREAK
--case 154:
-+case 155:
- YY_RULE_SETUP
--#line 355 "glsl_lexer.lpp"
-+#line 359 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, HVEC2);
- 	YY_BREAK
--case 155:
-+case 156:
- YY_RULE_SETUP
--#line 356 "glsl_lexer.lpp"
-+#line 360 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, HVEC3);
- 	YY_BREAK
--case 156:
-+case 157:
- YY_RULE_SETUP
--#line 357 "glsl_lexer.lpp"
-+#line 361 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, HVEC4);
- 	YY_BREAK
--case 157:
-+case 158:
- YY_RULE_SETUP
--#line 358 "glsl_lexer.lpp"
-+#line 362 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 400, DVEC2);
- 	YY_BREAK
--case 158:
-+case 159:
- YY_RULE_SETUP
--#line 359 "glsl_lexer.lpp"
-+#line 363 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 400, DVEC3);
- 	YY_BREAK
--case 159:
-+case 160:
- YY_RULE_SETUP
--#line 360 "glsl_lexer.lpp"
-+#line 364 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 400, DVEC4);
- 	YY_BREAK
--case 160:
-+case 161:
- YY_RULE_SETUP
--#line 361 "glsl_lexer.lpp"
-+#line 365 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, FVEC2);
- 	YY_BREAK
--case 161:
-+case 162:
- YY_RULE_SETUP
--#line 362 "glsl_lexer.lpp"
-+#line 366 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, FVEC3);
- 	YY_BREAK
--case 162:
-+case 163:
- YY_RULE_SETUP
--#line 363 "glsl_lexer.lpp"
-+#line 367 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, FVEC4);
- 	YY_BREAK
--case 163:
-+case 164:
- YY_RULE_SETUP
--#line 364 "glsl_lexer.lpp"
-+#line 368 "glsl_lexer.lpp"
- return SAMPLER2DRECT;
- 	YY_BREAK
--case 164:
-+case 165:
- YY_RULE_SETUP
--#line 365 "glsl_lexer.lpp"
-+#line 369 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, SAMPLER3DRECT);
- 	YY_BREAK
--case 165:
-+case 166:
- YY_RULE_SETUP
--#line 366 "glsl_lexer.lpp"
-+#line 370 "glsl_lexer.lpp"
- return SAMPLER2DRECTSHADOW;
- 	YY_BREAK
--case 166:
-+case 167:
- YY_RULE_SETUP
--#line 367 "glsl_lexer.lpp"
-+#line 371 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, SIZEOF);
- 	YY_BREAK
--case 167:
-+case 168:
- YY_RULE_SETUP
--#line 368 "glsl_lexer.lpp"
-+#line 372 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, CAST);
- 	YY_BREAK
--case 168:
-+case 169:
- YY_RULE_SETUP
--#line 369 "glsl_lexer.lpp"
-+#line 373 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, NAMESPACE);
- 	YY_BREAK
--case 169:
-+case 170:
- YY_RULE_SETUP
--#line 370 "glsl_lexer.lpp"
-+#line 374 "glsl_lexer.lpp"
- KEYWORD(110 || ES, 999, USING);
- 	YY_BREAK
- /* Additional reserved words in GLSL 1.20. */
--case 170:
-+case 171:
- YY_RULE_SETUP
--#line 373 "glsl_lexer.lpp"
-+#line 377 "glsl_lexer.lpp"
- KEYWORD(120, 130 || ES, LOWP);
- 	YY_BREAK
--case 171:
-+case 172:
- YY_RULE_SETUP
--#line 374 "glsl_lexer.lpp"
-+#line 378 "glsl_lexer.lpp"
- KEYWORD(120, 130 || ES, MEDIUMP);
- 	YY_BREAK
--case 172:
-+case 173:
- YY_RULE_SETUP
--#line 375 "glsl_lexer.lpp"
-+#line 379 "glsl_lexer.lpp"
- KEYWORD(120, 130 || ES, HIGHP);
- 	YY_BREAK
--case 173:
-+case 174:
- YY_RULE_SETUP
--#line 376 "glsl_lexer.lpp"
-+#line 380 "glsl_lexer.lpp"
- KEYWORD(120, 130 || ES, PRECISION);
- 	YY_BREAK
- /* Additional reserved words in GLSL 1.30. */
--case 174:
-+case 175:
- YY_RULE_SETUP
--#line 379 "glsl_lexer.lpp"
-+#line 383 "glsl_lexer.lpp"
- KEYWORD(130, 130, CASE);
- 	YY_BREAK
--case 175:
-+case 176:
- YY_RULE_SETUP
--#line 380 "glsl_lexer.lpp"
-+#line 384 "glsl_lexer.lpp"
- KEYWORD(130, 999, COMMON);
- 	YY_BREAK
--case 176:
-+case 177:
- YY_RULE_SETUP
--#line 381 "glsl_lexer.lpp"
-+#line 385 "glsl_lexer.lpp"
- KEYWORD(130, 999, PARTITION);
- 	YY_BREAK
--case 177:
-+case 178:
- YY_RULE_SETUP
--#line 382 "glsl_lexer.lpp"
-+#line 386 "glsl_lexer.lpp"
- KEYWORD(130, 999, ACTIVE);
- 	YY_BREAK
--case 178:
-+case 179:
- YY_RULE_SETUP
--#line 383 "glsl_lexer.lpp"
-+#line 387 "glsl_lexer.lpp"
- KEYWORD(130 || ES, 999, SUPERP);
- 	YY_BREAK
--case 179:
-+case 180:
- YY_RULE_SETUP
--#line 384 "glsl_lexer.lpp"
-+#line 388 "glsl_lexer.lpp"
- KEYWORD(130, 140, SAMPLERBUFFER);
- 	YY_BREAK
--case 180:
-+case 181:
- YY_RULE_SETUP
--#line 385 "glsl_lexer.lpp"
-+#line 389 "glsl_lexer.lpp"
- KEYWORD(130, 999, FILTER);
- 	YY_BREAK
--case 181:
-+case 182:
- YY_RULE_SETUP
--#line 386 "glsl_lexer.lpp"
-+#line 390 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE1D);
- 	YY_BREAK
--case 182:
-+case 183:
- YY_RULE_SETUP
--#line 387 "glsl_lexer.lpp"
-+#line 391 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE2D);
- 	YY_BREAK
--case 183:
-+case 184:
- YY_RULE_SETUP
--#line 388 "glsl_lexer.lpp"
-+#line 392 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE3D);
- 	YY_BREAK
--case 184:
-+case 185:
- YY_RULE_SETUP
--#line 389 "glsl_lexer.lpp"
-+#line 393 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGECUBE);
- 	YY_BREAK
--case 185:
-+case 186:
- YY_RULE_SETUP
--#line 390 "glsl_lexer.lpp"
-+#line 394 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGE1D);
- 	YY_BREAK
--case 186:
-+case 187:
- YY_RULE_SETUP
--#line 391 "glsl_lexer.lpp"
-+#line 395 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGE2D);
- 	YY_BREAK
--case 187:
-+case 188:
- YY_RULE_SETUP
--#line 392 "glsl_lexer.lpp"
-+#line 396 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGE3D);
- 	YY_BREAK
--case 188:
-+case 189:
- YY_RULE_SETUP
--#line 393 "glsl_lexer.lpp"
-+#line 397 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGECUBE);
- 	YY_BREAK
--case 189:
-+case 190:
- YY_RULE_SETUP
--#line 394 "glsl_lexer.lpp"
-+#line 398 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGE1D);
- 	YY_BREAK
--case 190:
-+case 191:
- YY_RULE_SETUP
--#line 395 "glsl_lexer.lpp"
-+#line 399 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGE2D);
- 	YY_BREAK
--case 191:
-+case 192:
- YY_RULE_SETUP
--#line 396 "glsl_lexer.lpp"
-+#line 400 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGE3D);
- 	YY_BREAK
--case 192:
-+case 193:
- YY_RULE_SETUP
--#line 397 "glsl_lexer.lpp"
-+#line 401 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGECUBE);
- 	YY_BREAK
--case 193:
-+case 194:
- YY_RULE_SETUP
--#line 398 "glsl_lexer.lpp"
-+#line 402 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE1DARRAY);
- 	YY_BREAK
--case 194:
-+case 195:
- YY_RULE_SETUP
--#line 399 "glsl_lexer.lpp"
-+#line 403 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE2DARRAY);
- 	YY_BREAK
--case 195:
-+case 196:
- YY_RULE_SETUP
--#line 400 "glsl_lexer.lpp"
-+#line 404 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGE1DARRAY);
- 	YY_BREAK
--case 196:
-+case 197:
- YY_RULE_SETUP
--#line 401 "glsl_lexer.lpp"
-+#line 405 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGE2DARRAY);
- 	YY_BREAK
--case 197:
-+case 198:
- YY_RULE_SETUP
--#line 402 "glsl_lexer.lpp"
-+#line 406 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGE1DARRAY);
- 	YY_BREAK
--case 198:
-+case 199:
- YY_RULE_SETUP
--#line 403 "glsl_lexer.lpp"
-+#line 407 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGE2DARRAY);
- 	YY_BREAK
--case 199:
-+case 200:
- YY_RULE_SETUP
--#line 404 "glsl_lexer.lpp"
-+#line 408 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE1DSHADOW);
- 	YY_BREAK
--case 200:
-+case 201:
- YY_RULE_SETUP
--#line 405 "glsl_lexer.lpp"
-+#line 409 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE2DSHADOW);
- 	YY_BREAK
--case 201:
-+case 202:
- YY_RULE_SETUP
--#line 406 "glsl_lexer.lpp"
-+#line 410 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE1DARRAYSHADOW);
- 	YY_BREAK
--case 202:
-+case 203:
- YY_RULE_SETUP
--#line 407 "glsl_lexer.lpp"
-+#line 411 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGE2DARRAYSHADOW);
- 	YY_BREAK
--case 203:
-+case 204:
- YY_RULE_SETUP
--#line 408 "glsl_lexer.lpp"
-+#line 412 "glsl_lexer.lpp"
- KEYWORD(130, 999, IMAGEBUFFER);
- 	YY_BREAK
--case 204:
-+case 205:
- YY_RULE_SETUP
--#line 409 "glsl_lexer.lpp"
-+#line 413 "glsl_lexer.lpp"
- KEYWORD(130, 999, IIMAGEBUFFER);
- 	YY_BREAK
--case 205:
-+case 206:
- YY_RULE_SETUP
--#line 410 "glsl_lexer.lpp"
-+#line 414 "glsl_lexer.lpp"
- KEYWORD(130, 999, UIMAGEBUFFER);
- 	YY_BREAK
--case 206:
-+case 207:
- YY_RULE_SETUP
--#line 411 "glsl_lexer.lpp"
-+#line 415 "glsl_lexer.lpp"
- KEYWORD(130, 999, ROW_MAJOR);
- 	YY_BREAK
--case 207:
-+case 208:
- YY_RULE_SETUP
--#line 413 "glsl_lexer.lpp"
-+#line 417 "glsl_lexer.lpp"
- {
- 			    struct _mesa_glsl_parse_state *state = yyextra;
- 			    void *ctx = state;	
--			    yylval->identifier = talloc_strdup(ctx, yytext);
-+			    yylval->identifier = ralloc_strdup(ctx, yytext);
- 			    return IDENTIFIER;
- 			}
- 	YY_BREAK
--case 208:
-+case 209:
- YY_RULE_SETUP
--#line 420 "glsl_lexer.lpp"
-+#line 424 "glsl_lexer.lpp"
- { return yytext[0]; }
- 	YY_BREAK
--case 209:
-+case 210:
- YY_RULE_SETUP
--#line 422 "glsl_lexer.lpp"
-+#line 426 "glsl_lexer.lpp"
- ECHO;
- 	YY_BREAK
--#line 2530 "glsl_lexer.cpp"
-+#line 2554 "glsl_lexer.cpp"
- case YY_STATE_EOF(INITIAL):
- case YY_STATE_EOF(PP):
- case YY_STATE_EOF(PRAGMA):
-@@ -2824,7 +2848,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
- 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- 			{
- 			yy_current_state = (int) yy_def[yy_current_state];
--			if ( yy_current_state >= 813 )
-+			if ( yy_current_state >= 836 )
- 				yy_c = yy_meta[(unsigned int) yy_c];
- 			}
- 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-@@ -2853,11 +2877,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
- 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- 		{
- 		yy_current_state = (int) yy_def[yy_current_state];
--		if ( yy_current_state >= 813 )
-+		if ( yy_current_state >= 836 )
- 			yy_c = yy_meta[(unsigned int) yy_c];
- 		}
- 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
--	yy_is_jam = (yy_current_state == 812);
-+	yy_is_jam = (yy_current_state == 835);
- 
- 	return yy_is_jam ? 0 : yy_current_state;
- }
-@@ -3669,7 +3693,7 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner)
- 
- #define YYTABLES_NAME "yytables"
- 
--#line 422 "glsl_lexer.lpp"
-+#line 426 "glsl_lexer.lpp"
- 
- 
- 
-diff --git a/src/glsl/glsl_lexer.lpp b/src/glsl/glsl_lexer.lpp
-index 15742ac..08d306a 100644
---- a/src/glsl/glsl_lexer.lpp
-+++ b/src/glsl/glsl_lexer.lpp
-@@ -145,6 +145,10 @@ HASH		^{SPC}#{SPC}
- 				  BEGIN PP;
- 				  return PRAGMA_OPTIMIZE_OFF;
- 				}
-+^{SPC}#{SPC}pragma{SPCP}STDGL{SPCP}invariant{SPC}\({SPC}all{SPC}\) {
-+				  BEGIN PP;
-+				  return PRAGMA_INVARIANT_ALL;
-+				}
- ^{SPC}#{SPC}pragma{SPCP}	{ BEGIN PRAGMA; }
- 
- <PRAGMA>\n			{ BEGIN 0; yylineno++; yycolumn = 0; }
-@@ -413,7 +417,7 @@ row_major	KEYWORD(130, 999, ROW_MAJOR);
- [_a-zA-Z][_a-zA-Z0-9]*	{
- 			    struct _mesa_glsl_parse_state *state = yyextra;
- 			    void *ctx = state;	
--			    yylval->identifier = talloc_strdup(ctx, yytext);
-+			    yylval->identifier = ralloc_strdup(ctx, yytext);
- 			    return IDENTIFIER;
- 			}
- 
-diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp
-index 23e439c..7065369 100644
---- a/src/glsl/glsl_parser.cpp
-+++ b/src/glsl/glsl_parser.cpp
-@@ -257,79 +257,80 @@
-      PRAGMA_DEBUG_OFF = 372,
-      PRAGMA_OPTIMIZE_ON = 373,
-      PRAGMA_OPTIMIZE_OFF = 374,
--     LAYOUT_TOK = 375,
--     ASM = 376,
--     CLASS = 377,
--     UNION = 378,
--     ENUM = 379,
--     TYPEDEF = 380,
--     TEMPLATE = 381,
--     THIS = 382,
--     PACKED_TOK = 383,
--     GOTO = 384,
--     INLINE_TOK = 385,
--     NOINLINE = 386,
--     VOLATILE = 387,
--     PUBLIC_TOK = 388,
--     STATIC = 389,
--     EXTERN = 390,
--     EXTERNAL = 391,
--     LONG_TOK = 392,
--     SHORT_TOK = 393,
--     DOUBLE_TOK = 394,
--     HALF = 395,
--     FIXED_TOK = 396,
--     UNSIGNED = 397,
--     INPUT_TOK = 398,
--     OUPTUT = 399,
--     HVEC2 = 400,
--     HVEC3 = 401,
--     HVEC4 = 402,
--     DVEC2 = 403,
--     DVEC3 = 404,
--     DVEC4 = 405,
--     FVEC2 = 406,
--     FVEC3 = 407,
--     FVEC4 = 408,
--     SAMPLER2DRECT = 409,
--     SAMPLER3DRECT = 410,
--     SAMPLER2DRECTSHADOW = 411,
--     SIZEOF = 412,
--     CAST = 413,
--     NAMESPACE = 414,
--     USING = 415,
--     ERROR_TOK = 416,
--     COMMON = 417,
--     PARTITION = 418,
--     ACTIVE = 419,
--     SAMPLERBUFFER = 420,
--     FILTER = 421,
--     IMAGE1D = 422,
--     IMAGE2D = 423,
--     IMAGE3D = 424,
--     IMAGECUBE = 425,
--     IMAGE1DARRAY = 426,
--     IMAGE2DARRAY = 427,
--     IIMAGE1D = 428,
--     IIMAGE2D = 429,
--     IIMAGE3D = 430,
--     IIMAGECUBE = 431,
--     IIMAGE1DARRAY = 432,
--     IIMAGE2DARRAY = 433,
--     UIMAGE1D = 434,
--     UIMAGE2D = 435,
--     UIMAGE3D = 436,
--     UIMAGECUBE = 437,
--     UIMAGE1DARRAY = 438,
--     UIMAGE2DARRAY = 439,
--     IMAGE1DSHADOW = 440,
--     IMAGE2DSHADOW = 441,
--     IMAGEBUFFER = 442,
--     IIMAGEBUFFER = 443,
--     UIMAGEBUFFER = 444,
--     IMAGE1DARRAYSHADOW = 445,
--     IMAGE2DARRAYSHADOW = 446,
--     ROW_MAJOR = 447
-+     PRAGMA_INVARIANT_ALL = 375,
-+     LAYOUT_TOK = 376,
-+     ASM = 377,
-+     CLASS = 378,
-+     UNION = 379,
-+     ENUM = 380,
-+     TYPEDEF = 381,
-+     TEMPLATE = 382,
-+     THIS = 383,
-+     PACKED_TOK = 384,
-+     GOTO = 385,
-+     INLINE_TOK = 386,
-+     NOINLINE = 387,
-+     VOLATILE = 388,
-+     PUBLIC_TOK = 389,
-+     STATIC = 390,
-+     EXTERN = 391,
-+     EXTERNAL = 392,
-+     LONG_TOK = 393,
-+     SHORT_TOK = 394,
-+     DOUBLE_TOK = 395,
-+     HALF = 396,
-+     FIXED_TOK = 397,
-+     UNSIGNED = 398,
-+     INPUT_TOK = 399,
-+     OUPTUT = 400,
-+     HVEC2 = 401,
-+     HVEC3 = 402,
-+     HVEC4 = 403,
-+     DVEC2 = 404,
-+     DVEC3 = 405,
-+     DVEC4 = 406,
-+     FVEC2 = 407,
-+     FVEC3 = 408,
-+     FVEC4 = 409,
-+     SAMPLER2DRECT = 410,
-+     SAMPLER3DRECT = 411,
-+     SAMPLER2DRECTSHADOW = 412,
-+     SIZEOF = 413,
-+     CAST = 414,
-+     NAMESPACE = 415,
-+     USING = 416,
-+     ERROR_TOK = 417,
-+     COMMON = 418,
-+     PARTITION = 419,
-+     ACTIVE = 420,
-+     SAMPLERBUFFER = 421,
-+     FILTER = 422,
-+     IMAGE1D = 423,
-+     IMAGE2D = 424,
-+     IMAGE3D = 425,
-+     IMAGECUBE = 426,
-+     IMAGE1DARRAY = 427,
-+     IMAGE2DARRAY = 428,
-+     IIMAGE1D = 429,
-+     IIMAGE2D = 430,
-+     IIMAGE3D = 431,
-+     IIMAGECUBE = 432,
-+     IIMAGE1DARRAY = 433,
-+     IIMAGE2DARRAY = 434,
-+     UIMAGE1D = 435,
-+     UIMAGE2D = 436,
-+     UIMAGE3D = 437,
-+     UIMAGECUBE = 438,
-+     UIMAGE1DARRAY = 439,
-+     UIMAGE2DARRAY = 440,
-+     IMAGE1DSHADOW = 441,
-+     IMAGE2DSHADOW = 442,
-+     IMAGEBUFFER = 443,
-+     IIMAGEBUFFER = 444,
-+     UIMAGEBUFFER = 445,
-+     IMAGE1DARRAYSHADOW = 446,
-+     IMAGE2DARRAYSHADOW = 447,
-+     ROW_MAJOR = 448
-    };
- #endif
- 
-@@ -373,7 +374,7 @@ typedef union YYSTYPE
- 
- 
- /* Line 214 of yacc.c  */
--#line 377 "glsl_parser.cpp"
-+#line 378 "glsl_parser.cpp"
- } YYSTYPE;
- # define YYSTYPE_IS_TRIVIAL 1
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
-@@ -398,7 +399,7 @@ typedef struct YYLTYPE
- 
- 
- /* Line 264 of yacc.c  */
--#line 402 "glsl_parser.cpp"
-+#line 403 "glsl_parser.cpp"
- 
- #ifdef short
- # undef short
-@@ -615,20 +616,20 @@ union yyalloc
- /* YYFINAL -- State number of the termination state.  */
- #define YYFINAL  5
- /* YYLAST -- Last index in YYTABLE.  */
--#define YYLAST   3718
-+#define YYLAST   3738
- 
- /* YYNTOKENS -- Number of terminals.  */
--#define YYNTOKENS  217
-+#define YYNTOKENS  218
- /* YYNNTS -- Number of nonterminals.  */
- #define YYNNTS  87
- /* YYNRULES -- Number of rules.  */
--#define YYNRULES  278
-+#define YYNRULES  279
- /* YYNRULES -- Number of states.  */
--#define YYNSTATES  413
-+#define YYNSTATES  415
- 
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
- #define YYUNDEFTOK  2
--#define YYMAXUTOK   447
-+#define YYMAXUTOK   448
- 
- #define YYTRANSLATE(YYX)						\
-   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-@@ -639,16 +640,16 @@ static const yytype_uint8 yytranslate[] =
-        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--       2,     2,     2,   201,     2,     2,     2,   205,   208,     2,
--     193,   194,   203,   199,   198,   200,   197,   204,     2,     2,
--       2,     2,     2,     2,     2,     2,     2,     2,   212,   214,
--     206,   213,   207,   211,     2,     2,     2,     2,     2,     2,
-+       2,     2,     2,   202,     2,     2,     2,   206,   209,     2,
-+     194,   195,   204,   200,   199,   201,   198,   205,     2,     2,
-+       2,     2,     2,     2,     2,     2,     2,     2,   213,   215,
-+     207,   214,   208,   212,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--       2,   195,     2,   196,   209,     2,     2,     2,     2,     2,
-+       2,   196,     2,   197,   210,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--       2,     2,     2,   215,   210,   216,   202,     2,     2,     2,
-+       2,     2,     2,   216,   211,   217,   203,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-@@ -680,7 +681,7 @@ static const yytype_uint8 yytranslate[] =
-      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
--     185,   186,   187,   188,   189,   190,   191,   192
-+     185,   186,   187,   188,   189,   190,   191,   192,   193
- };
- 
- #if YYDEBUG
-@@ -689,151 +690,151 @@ static const yytype_uint8 yytranslate[] =
- static const yytype_uint16 yyprhs[] =
- {
-        0,     0,     3,     4,     9,    10,    14,    17,    20,    23,
--      26,    27,    30,    36,    38,    41,    43,    45,    47,    49,
--      51,    53,    57,    59,    64,    66,    70,    73,    76,    78,
--      80,    82,    86,    89,    92,    95,    97,   100,   104,   107,
--     109,   111,   113,   115,   118,   121,   124,   126,   128,   130,
--     132,   134,   138,   142,   146,   148,   152,   156,   158,   162,
--     166,   168,   172,   176,   180,   184,   186,   190,   194,   196,
--     200,   202,   206,   208,   212,   214,   218,   220,   224,   226,
--     230,   232,   238,   240,   244,   246,   248,   250,   252,   254,
--     256,   258,   260,   262,   264,   266,   268,   272,   274,   277,
--     280,   285,   288,   290,   292,   295,   299,   303,   306,   312,
--     316,   319,   323,   326,   327,   329,   331,   333,   335,   337,
--     341,   347,   354,   362,   371,   377,   379,   382,   387,   393,
--     400,   408,   413,   416,   418,   421,   426,   428,   432,   434,
--     438,   440,   442,   444,   446,   448,   450,   453,   455,   458,
--     461,   465,   467,   469,   471,   473,   476,   478,   480,   483,
--     486,   488,   490,   493,   495,   499,   504,   506,   508,   510,
--     512,   514,   516,   518,   520,   522,   524,   526,   528,   530,
--     532,   534,   536,   538,   540,   542,   544,   546,   548,   550,
--     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
--     572,   574,   576,   578,   580,   582,   584,   586,   588,   590,
--     592,   594,   596,   598,   600,   602,   604,   606,   608,   610,
--     612,   614,   616,   618,   624,   629,   631,   634,   638,   640,
--     644,   646,   651,   653,   655,   657,   659,   661,   663,   665,
--     667,   669,   671,   673,   676,   680,   682,   684,   687,   691,
--     693,   696,   698,   701,   707,   711,   713,   715,   720,   726,
--     730,   733,   739,   747,   754,   756,   758,   760,   761,   764,
--     768,   771,   774,   777,   781,   784,   786,   788,   790
-+      26,    29,    30,    33,    39,    41,    44,    46,    48,    50,
-+      52,    54,    56,    60,    62,    67,    69,    73,    76,    79,
-+      81,    83,    85,    89,    92,    95,    98,   100,   103,   107,
-+     110,   112,   114,   116,   118,   121,   124,   127,   129,   131,
-+     133,   135,   137,   141,   145,   149,   151,   155,   159,   161,
-+     165,   169,   171,   175,   179,   183,   187,   189,   193,   197,
-+     199,   203,   205,   209,   211,   215,   217,   221,   223,   227,
-+     229,   233,   235,   241,   243,   247,   249,   251,   253,   255,
-+     257,   259,   261,   263,   265,   267,   269,   271,   275,   277,
-+     280,   283,   288,   291,   293,   295,   298,   302,   306,   309,
-+     315,   319,   322,   326,   329,   330,   332,   334,   336,   338,
-+     340,   344,   350,   357,   365,   374,   380,   382,   385,   390,
-+     396,   403,   411,   416,   419,   421,   424,   429,   431,   435,
-+     437,   441,   443,   445,   447,   449,   451,   453,   456,   458,
-+     461,   464,   468,   470,   472,   474,   476,   479,   481,   483,
-+     486,   489,   491,   493,   496,   498,   502,   507,   509,   511,
-+     513,   515,   517,   519,   521,   523,   525,   527,   529,   531,
-+     533,   535,   537,   539,   541,   543,   545,   547,   549,   551,
-+     553,   555,   557,   559,   561,   563,   565,   567,   569,   571,
-+     573,   575,   577,   579,   581,   583,   585,   587,   589,   591,
-+     593,   595,   597,   599,   601,   603,   605,   607,   609,   611,
-+     613,   615,   617,   619,   621,   627,   632,   634,   637,   641,
-+     643,   647,   649,   654,   656,   658,   660,   662,   664,   666,
-+     668,   670,   672,   674,   676,   679,   683,   685,   687,   690,
-+     694,   696,   699,   701,   704,   710,   714,   716,   718,   723,
-+     729,   733,   736,   742,   750,   757,   759,   761,   763,   764,
-+     767,   771,   774,   777,   780,   784,   787,   789,   791,   793
- };
- 
- /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
- static const yytype_int16 yyrhs[] =
- {
--     218,     0,    -1,    -1,   220,   222,   219,   224,    -1,    -1,
-+     219,     0,    -1,    -1,   221,   223,   220,   225,    -1,    -1,
-      109,    78,   113,    -1,   116,   113,    -1,   117,   113,    -1,
--     118,   113,    -1,   119,   113,    -1,    -1,   222,   223,    -1,
--     110,    76,   112,    76,   113,    -1,   302,    -1,   224,   302,
--      -1,    76,    -1,   225,    -1,    78,    -1,    79,    -1,    77,
--      -1,    80,    -1,   193,   252,   194,    -1,   226,    -1,   227,
--     195,   228,   196,    -1,   229,    -1,   227,   197,    76,    -1,
--     227,    84,    -1,   227,    85,    -1,   252,    -1,   230,    -1,
--     231,    -1,   227,   197,   231,    -1,   233,   194,    -1,   232,
--     194,    -1,   234,    74,    -1,   234,    -1,   234,   250,    -1,
--     233,   198,   250,    -1,   235,   193,    -1,   273,    -1,    76,
--      -1,    81,    -1,   227,    -1,    84,   236,    -1,    85,   236,
--      -1,   237,   236,    -1,   199,    -1,   200,    -1,   201,    -1,
--     202,    -1,   236,    -1,   238,   203,   236,    -1,   238,   204,
--     236,    -1,   238,   205,   236,    -1,   238,    -1,   239,   199,
--     238,    -1,   239,   200,   238,    -1,   239,    -1,   240,    82,
--     239,    -1,   240,    83,   239,    -1,   240,    -1,   241,   206,
--     240,    -1,   241,   207,   240,    -1,   241,    86,   240,    -1,
--     241,    87,   240,    -1,   241,    -1,   242,    88,   241,    -1,
--     242,    89,   241,    -1,   242,    -1,   243,   208,   242,    -1,
--     243,    -1,   244,   209,   243,    -1,   244,    -1,   245,   210,
--     244,    -1,   245,    -1,   246,    90,   245,    -1,   246,    -1,
--     247,    92,   246,    -1,   247,    -1,   248,    91,   247,    -1,
--     248,    -1,   248,   211,   252,   212,   250,    -1,   249,    -1,
--     236,   251,   250,    -1,   213,    -1,    93,    -1,    94,    -1,
--      96,    -1,    95,    -1,   102,    -1,    97,    -1,    98,    -1,
--      99,    -1,   100,    -1,   101,    -1,   250,    -1,   252,   198,
--     250,    -1,   249,    -1,   255,   214,    -1,   263,   214,    -1,
--     108,   277,   274,   214,    -1,   256,   194,    -1,   258,    -1,
--     257,    -1,   258,   260,    -1,   257,   198,   260,    -1,   265,
--      76,   193,    -1,   273,    76,    -1,   273,    76,   195,   253,
--     196,    -1,   270,   261,   259,    -1,   261,   259,    -1,   270,
--     261,   262,    -1,   261,   262,    -1,    -1,    33,    -1,    34,
--      -1,    35,    -1,   273,    -1,   264,    -1,   263,   198,    76,
--      -1,   263,   198,    76,   195,   196,    -1,   263,   198,    76,
--     195,   253,   196,    -1,   263,   198,    76,   195,   196,   213,
--     283,    -1,   263,   198,    76,   195,   253,   196,   213,   283,
--      -1,   263,   198,    76,   213,   283,    -1,   265,    -1,   265,
--      76,    -1,   265,    76,   195,   196,    -1,   265,    76,   195,
--     253,   196,    -1,   265,    76,   195,   196,   213,   283,    -1,
--     265,    76,   195,   253,   196,   213,   283,    -1,   265,    76,
--     213,   283,    -1,   103,    76,    -1,   273,    -1,   271,   273,
--      -1,   120,   193,   267,   194,    -1,   268,    -1,   267,   198,
--     268,    -1,    76,    -1,    76,   213,    78,    -1,    40,    -1,
--      39,    -1,    38,    -1,     4,    -1,   272,    -1,   266,    -1,
--     266,   272,    -1,   269,    -1,   269,   272,    -1,   103,   272,
--      -1,   103,   269,   272,    -1,   103,    -1,     4,    -1,     3,
--      -1,    37,    -1,    32,    37,    -1,    33,    -1,    34,    -1,
--      32,    33,    -1,    32,    34,    -1,    36,    -1,   274,    -1,
--     277,   274,    -1,   275,    -1,   275,   195,   196,    -1,   275,
--     195,   253,   196,    -1,   276,    -1,   278,    -1,    76,    -1,
--      74,    -1,     6,    -1,     7,    -1,     8,    -1,     5,    -1,
--      29,    -1,    30,    -1,    31,    -1,    20,    -1,    21,    -1,
--      22,    -1,    23,    -1,    24,    -1,    25,    -1,    26,    -1,
--      27,    -1,    28,    -1,    41,    -1,    42,    -1,    43,    -1,
--      44,    -1,    45,    -1,    46,    -1,    47,    -1,    48,    -1,
--      49,    -1,    50,    -1,    51,    -1,   154,    -1,    52,    -1,
--      53,    -1,    54,    -1,    55,    -1,   156,    -1,    56,    -1,
--      57,    -1,    58,    -1,    59,    -1,    60,    -1,    61,    -1,
--      62,    -1,    63,    -1,    64,    -1,    65,    -1,    66,    -1,
--      67,    -1,    68,    -1,    69,    -1,    70,    -1,    71,    -1,
--      72,    -1,   106,    -1,   105,    -1,   104,    -1,    73,    76,
--     215,   279,   216,    -1,    73,   215,   279,   216,    -1,   280,
--      -1,   279,   280,    -1,   273,   281,   214,    -1,   282,    -1,
--     281,   198,   282,    -1,    76,    -1,    76,   195,   253,   196,
--      -1,   250,    -1,   254,    -1,   287,    -1,   286,    -1,   284,
--      -1,   291,    -1,   292,    -1,   295,    -1,   296,    -1,   297,
--      -1,   301,    -1,   215,   216,    -1,   215,   290,   216,    -1,
--     289,    -1,   286,    -1,   215,   216,    -1,   215,   290,   216,
--      -1,   285,    -1,   290,   285,    -1,   214,    -1,   252,   214,
--      -1,    14,   193,   252,   194,   293,    -1,   285,    12,   285,
--      -1,   285,    -1,   252,    -1,   265,    76,   213,   283,    -1,
--      17,   193,   252,   194,   287,    -1,    18,   252,   212,    -1,
--      19,   212,    -1,    75,   193,   294,   194,   288,    -1,    11,
--     285,    75,   193,   252,   194,   214,    -1,    13,   193,   298,
--     300,   194,   288,    -1,   291,    -1,   284,    -1,   294,    -1,
--      -1,   299,   214,    -1,   299,   214,   252,    -1,    10,   214,
--      -1,     9,   214,    -1,    16,   214,    -1,    16,   252,   214,
--      -1,    15,   214,    -1,   303,    -1,   254,    -1,   221,    -1,
--     255,   289,    -1
-+     118,   113,    -1,   119,   113,    -1,   120,   113,    -1,    -1,
-+     223,   224,    -1,   110,    76,   112,    76,   113,    -1,   303,
-+      -1,   225,   303,    -1,    76,    -1,   226,    -1,    78,    -1,
-+      79,    -1,    77,    -1,    80,    -1,   194,   253,   195,    -1,
-+     227,    -1,   228,   196,   229,   197,    -1,   230,    -1,   228,
-+     198,    76,    -1,   228,    84,    -1,   228,    85,    -1,   253,
-+      -1,   231,    -1,   232,    -1,   228,   198,   232,    -1,   234,
-+     195,    -1,   233,   195,    -1,   235,    74,    -1,   235,    -1,
-+     235,   251,    -1,   234,   199,   251,    -1,   236,   194,    -1,
-+     274,    -1,    76,    -1,    81,    -1,   228,    -1,    84,   237,
-+      -1,    85,   237,    -1,   238,   237,    -1,   200,    -1,   201,
-+      -1,   202,    -1,   203,    -1,   237,    -1,   239,   204,   237,
-+      -1,   239,   205,   237,    -1,   239,   206,   237,    -1,   239,
-+      -1,   240,   200,   239,    -1,   240,   201,   239,    -1,   240,
-+      -1,   241,    82,   240,    -1,   241,    83,   240,    -1,   241,
-+      -1,   242,   207,   241,    -1,   242,   208,   241,    -1,   242,
-+      86,   241,    -1,   242,    87,   241,    -1,   242,    -1,   243,
-+      88,   242,    -1,   243,    89,   242,    -1,   243,    -1,   244,
-+     209,   243,    -1,   244,    -1,   245,   210,   244,    -1,   245,
-+      -1,   246,   211,   245,    -1,   246,    -1,   247,    90,   246,
-+      -1,   247,    -1,   248,    92,   247,    -1,   248,    -1,   249,
-+      91,   248,    -1,   249,    -1,   249,   212,   253,   213,   251,
-+      -1,   250,    -1,   237,   252,   251,    -1,   214,    -1,    93,
-+      -1,    94,    -1,    96,    -1,    95,    -1,   102,    -1,    97,
-+      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   251,
-+      -1,   253,   199,   251,    -1,   250,    -1,   256,   215,    -1,
-+     264,   215,    -1,   108,   278,   275,   215,    -1,   257,   195,
-+      -1,   259,    -1,   258,    -1,   259,   261,    -1,   258,   199,
-+     261,    -1,   266,    76,   194,    -1,   274,    76,    -1,   274,
-+      76,   196,   254,   197,    -1,   271,   262,   260,    -1,   262,
-+     260,    -1,   271,   262,   263,    -1,   262,   263,    -1,    -1,
-+      33,    -1,    34,    -1,    35,    -1,   274,    -1,   265,    -1,
-+     264,   199,    76,    -1,   264,   199,    76,   196,   197,    -1,
-+     264,   199,    76,   196,   254,   197,    -1,   264,   199,    76,
-+     196,   197,   214,   284,    -1,   264,   199,    76,   196,   254,
-+     197,   214,   284,    -1,   264,   199,    76,   214,   284,    -1,
-+     266,    -1,   266,    76,    -1,   266,    76,   196,   197,    -1,
-+     266,    76,   196,   254,   197,    -1,   266,    76,   196,   197,
-+     214,   284,    -1,   266,    76,   196,   254,   197,   214,   284,
-+      -1,   266,    76,   214,   284,    -1,   103,    76,    -1,   274,
-+      -1,   272,   274,    -1,   121,   194,   268,   195,    -1,   269,
-+      -1,   268,   199,   269,    -1,    76,    -1,    76,   214,    78,
-+      -1,    40,    -1,    39,    -1,    38,    -1,     4,    -1,   273,
-+      -1,   267,    -1,   267,   273,    -1,   270,    -1,   270,   273,
-+      -1,   103,   273,    -1,   103,   270,   273,    -1,   103,    -1,
-+       4,    -1,     3,    -1,    37,    -1,    32,    37,    -1,    33,
-+      -1,    34,    -1,    32,    33,    -1,    32,    34,    -1,    36,
-+      -1,   275,    -1,   278,   275,    -1,   276,    -1,   276,   196,
-+     197,    -1,   276,   196,   254,   197,    -1,   277,    -1,   279,
-+      -1,    76,    -1,    74,    -1,     6,    -1,     7,    -1,     8,
-+      -1,     5,    -1,    29,    -1,    30,    -1,    31,    -1,    20,
-+      -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,
-+      -1,    26,    -1,    27,    -1,    28,    -1,    41,    -1,    42,
-+      -1,    43,    -1,    44,    -1,    45,    -1,    46,    -1,    47,
-+      -1,    48,    -1,    49,    -1,    50,    -1,    51,    -1,   155,
-+      -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,   157,
-+      -1,    56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,
-+      -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,
-+      -1,    66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,
-+      -1,    71,    -1,    72,    -1,   106,    -1,   105,    -1,   104,
-+      -1,    73,    76,   216,   280,   217,    -1,    73,   216,   280,
-+     217,    -1,   281,    -1,   280,   281,    -1,   274,   282,   215,
-+      -1,   283,    -1,   282,   199,   283,    -1,    76,    -1,    76,
-+     196,   254,   197,    -1,   251,    -1,   255,    -1,   288,    -1,
-+     287,    -1,   285,    -1,   292,    -1,   293,    -1,   296,    -1,
-+     297,    -1,   298,    -1,   302,    -1,   216,   217,    -1,   216,
-+     291,   217,    -1,   290,    -1,   287,    -1,   216,   217,    -1,
-+     216,   291,   217,    -1,   286,    -1,   291,   286,    -1,   215,
-+      -1,   253,   215,    -1,    14,   194,   253,   195,   294,    -1,
-+     286,    12,   286,    -1,   286,    -1,   253,    -1,   266,    76,
-+     214,   284,    -1,    17,   194,   253,   195,   288,    -1,    18,
-+     253,   213,    -1,    19,   213,    -1,    75,   194,   295,   195,
-+     289,    -1,    11,   286,    75,   194,   253,   195,   215,    -1,
-+      13,   194,   299,   301,   195,   289,    -1,   292,    -1,   285,
-+      -1,   295,    -1,    -1,   300,   215,    -1,   300,   215,   253,
-+      -1,    10,   215,    -1,     9,   215,    -1,    16,   215,    -1,
-+      16,   253,   215,    -1,    15,   215,    -1,   304,    -1,   255,
-+      -1,   222,    -1,   256,   290,    -1
- };
- 
- /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
- static const yytype_uint16 yyrline[] =
- {
--       0,   212,   212,   211,   218,   220,   240,   241,   242,   243,
--     246,   248,   252,   261,   269,   280,   284,   291,   298,   305,
--     312,   319,   326,   327,   333,   337,   344,   350,   359,   363,
--     367,   368,   377,   378,   382,   383,   387,   393,   405,   409,
--     415,   422,   433,   434,   440,   446,   456,   457,   458,   459,
--     463,   464,   470,   476,   485,   486,   492,   501,   502,   508,
--     517,   518,   524,   530,   536,   545,   546,   552,   561,   562,
--     571,   572,   581,   582,   591,   592,   601,   602,   611,   612,
--     621,   622,   631,   632,   641,   642,   643,   644,   645,   646,
--     647,   648,   649,   650,   651,   655,   659,   675,   679,   683,
--     687,   701,   705,   706,   710,   715,   723,   734,   744,   759,
--     766,   771,   782,   795,   798,   803,   808,   817,   821,   822,
--     831,   840,   849,   858,   867,   880,   891,   900,   909,   918,
--     927,   936,   945,   959,   966,   977,   984,   985,  1004,  1033,
--    1074,  1079,  1084,  1092,  1100,  1101,  1102,  1107,  1108,  1113,
--    1118,  1124,  1132,  1137,  1142,  1147,  1153,  1158,  1163,  1168,
--    1173,  1181,  1182,  1190,  1191,  1197,  1206,  1212,  1218,  1227,
--    1228,  1229,  1230,  1231,  1232,  1233,  1234,  1235,  1236,  1237,
--    1238,  1239,  1240,  1241,  1242,  1243,  1244,  1245,  1246,  1247,
--    1248,  1249,  1250,  1251,  1252,  1253,  1254,  1255,  1256,  1257,
--    1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,
--    1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,
--    1281,  1292,  1303,  1317,  1323,  1332,  1337,  1345,  1360,  1365,
--    1373,  1379,  1388,  1392,  1398,  1399,  1403,  1404,  1405,  1406,
--    1407,  1408,  1409,  1413,  1419,  1428,  1429,  1433,  1439,  1448,
--    1458,  1470,  1476,  1485,  1494,  1499,  1507,  1511,  1525,  1529,
--    1530,  1534,  1541,  1548,  1558,  1559,  1563,  1565,  1571,  1576,
--    1585,  1591,  1597,  1603,  1609,  1618,  1619,  1620,  1624
-+       0,   213,   213,   212,   219,   221,   246,   247,   248,   249,
-+     250,   262,   264,   268,   277,   285,   296,   300,   307,   314,
-+     321,   328,   335,   342,   343,   349,   353,   360,   366,   375,
-+     379,   383,   384,   393,   394,   398,   399,   403,   409,   421,
-+     425,   431,   438,   449,   450,   456,   462,   472,   473,   474,
-+     475,   479,   480,   486,   492,   501,   502,   508,   517,   518,
-+     524,   533,   534,   540,   546,   552,   561,   562,   568,   577,
-+     578,   587,   588,   597,   598,   607,   608,   617,   618,   627,
-+     628,   637,   638,   647,   648,   657,   658,   659,   660,   661,
-+     662,   663,   664,   665,   666,   667,   671,   675,   691,   695,
-+     699,   703,   712,   716,   717,   721,   726,   734,   745,   755,
-+     770,   777,   782,   793,   806,   809,   814,   819,   828,   832,
-+     833,   842,   851,   860,   869,   878,   891,   902,   911,   920,
-+     929,   938,   947,   956,   970,   977,   988,   995,   996,  1015,
-+    1044,  1085,  1090,  1095,  1103,  1111,  1112,  1113,  1118,  1119,
-+    1124,  1129,  1135,  1143,  1148,  1153,  1158,  1164,  1169,  1174,
-+    1179,  1184,  1192,  1196,  1204,  1205,  1211,  1220,  1226,  1232,
-+    1241,  1242,  1243,  1244,  1245,  1246,  1247,  1248,  1249,  1250,
-+    1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,
-+    1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1270,
-+    1271,  1272,  1273,  1274,  1275,  1276,  1277,  1278,  1279,  1280,
-+    1281,  1282,  1283,  1284,  1285,  1286,  1287,  1288,  1289,  1290,
-+    1291,  1295,  1305,  1315,  1328,  1334,  1343,  1348,  1356,  1371,
-+    1376,  1384,  1390,  1399,  1403,  1409,  1410,  1414,  1415,  1416,
-+    1417,  1418,  1419,  1420,  1424,  1430,  1439,  1440,  1444,  1450,
-+    1459,  1469,  1481,  1487,  1496,  1505,  1510,  1518,  1522,  1536,
-+    1540,  1541,  1545,  1552,  1559,  1569,  1570,  1574,  1576,  1582,
-+    1587,  1596,  1602,  1608,  1614,  1620,  1629,  1630,  1631,  1635
- };
- #endif
- 
-@@ -864,28 +865,28 @@ static const char *const yytname[] =
-   "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION",
-   "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT",
-   "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
--  "PRAGMA_OPTIMIZE_OFF", "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM",
--  "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK",
--  "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL",
--  "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED",
--  "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3",
--  "DVEC4", "FVEC2", "FVEC3", "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT",
--  "SAMPLER2DRECTSHADOW", "SIZEOF", "CAST", "NAMESPACE", "USING",
--  "ERROR_TOK", "COMMON", "PARTITION", "ACTIVE", "SAMPLERBUFFER", "FILTER",
--  "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGECUBE", "IMAGE1DARRAY",
--  "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D", "IIMAGE3D", "IIMAGECUBE",
--  "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D",
--  "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY", "IMAGE1DSHADOW",
--  "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
--  "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR", "'('", "')'",
--  "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'",
--  "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'",
--  "'{'", "'}'", "$accept", "translation_unit", "$@1", "version_statement",
--  "pragma_statement", "extension_statement_list", "extension_statement",
--  "external_declaration_list", "variable_identifier", "primary_expression",
--  "postfix_expression", "integer_expression", "function_call",
--  "function_call_or_method", "function_call_generic",
--  "function_call_header_no_parameters",
-+  "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM",
-+  "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK",
-+  "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC",
-+  "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF",
-+  "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3",
-+  "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4",
-+  "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF",
-+  "CAST", "NAMESPACE", "USING", "ERROR_TOK", "COMMON", "PARTITION",
-+  "ACTIVE", "SAMPLERBUFFER", "FILTER", "IMAGE1D", "IMAGE2D", "IMAGE3D",
-+  "IMAGECUBE", "IMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE1D", "IIMAGE2D",
-+  "IIMAGE3D", "IIMAGECUBE", "IIMAGE1DARRAY", "IIMAGE2DARRAY", "UIMAGE1D",
-+  "UIMAGE2D", "UIMAGE3D", "UIMAGECUBE", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
-+  "IMAGE1DSHADOW", "IMAGE2DSHADOW", "IMAGEBUFFER", "IIMAGEBUFFER",
-+  "UIMAGEBUFFER", "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "ROW_MAJOR",
-+  "'('", "')'", "'['", "']'", "'.'", "','", "'+'", "'-'", "'!'", "'~'",
-+  "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", "'^'", "'|'", "'?'", "':'",
-+  "'='", "';'", "'{'", "'}'", "$accept", "translation_unit", "$@1",
-+  "version_statement", "pragma_statement", "extension_statement_list",
-+  "extension_statement", "external_declaration_list",
-+  "variable_identifier", "primary_expression", "postfix_expression",
-+  "integer_expression", "function_call", "function_call_or_method",
-+  "function_call_generic", "function_call_header_no_parameters",
-   "function_call_header_with_parameters", "function_call_header",
-   "function_identifier", "unary_expression", "unary_operator",
-   "multiplicative_expression", "additive_expression", "shift_expression",
-@@ -940,76 +941,76 @@ static const yytype_uint16 yytoknum[] =
-      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
-      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
--     445,   446,   447,    40,    41,    91,    93,    46,    44,    43,
--      45,    33,   126,    42,    47,    37,    60,    62,    38,    94,
--     124,    63,    58,    61,    59,   123,   125
-+     445,   446,   447,   448,    40,    41,    91,    93,    46,    44,
-+      43,    45,    33,   126,    42,    47,    37,    60,    62,    38,
-+      94,   124,    63,    58,    61,    59,   123,   125
- };
- # endif
- 
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
- static const yytype_uint16 yyr1[] =
- {
--       0,   217,   219,   218,   220,   220,   221,   221,   221,   221,
--     222,   222,   223,   224,   224,   225,   226,   226,   226,   226,
--     226,   226,   227,   227,   227,   227,   227,   227,   228,   229,
--     230,   230,   231,   231,   232,   232,   233,   233,   234,   235,
--     235,   235,   236,   236,   236,   236,   237,   237,   237,   237,
--     238,   238,   238,   238,   239,   239,   239,   240,   240,   240,
--     241,   241,   241,   241,   241,   242,   242,   242,   243,   243,
--     244,   244,   245,   245,   246,   246,   247,   247,   248,   248,
--     249,   249,   250,   250,   251,   251,   251,   251,   251,   251,
--     251,   251,   251,   251,   251,   252,   252,   253,   254,   254,
--     254,   255,   256,   256,   257,   257,   258,   259,   259,   260,
--     260,   260,   260,   261,   261,   261,   261,   262,   263,   263,
--     263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
--     264,   264,   264,   265,   265,   266,   267,   267,   268,   268,
--     269,   269,   269,   270,   271,   271,   271,   271,   271,   271,
--     271,   271,   272,   272,   272,   272,   272,   272,   272,   272,
--     272,   273,   273,   274,   274,   274,   275,   275,   275,   276,
--     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
--     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
--     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
--     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
--     276,   276,   276,   276,   276,   276,   276,   276,   276,   276,
--     277,   277,   277,   278,   278,   279,   279,   280,   281,   281,
--     282,   282,   283,   284,   285,   285,   286,   286,   286,   286,
--     286,   286,   286,   287,   287,   288,   288,   289,   289,   290,
--     290,   291,   291,   292,   293,   293,   294,   294,   295,   296,
--     296,   297,   297,   297,   298,   298,   299,   299,   300,   300,
--     301,   301,   301,   301,   301,   302,   302,   302,   303
-+       0,   218,   220,   219,   221,   221,   222,   222,   222,   222,
-+     222,   223,   223,   224,   225,   225,   226,   227,   227,   227,
-+     227,   227,   227,   228,   228,   228,   228,   228,   228,   229,
-+     230,   231,   231,   232,   232,   233,   233,   234,   234,   235,
-+     236,   236,   236,   237,   237,   237,   237,   238,   238,   238,
-+     238,   239,   239,   239,   239,   240,   240,   240,   241,   241,
-+     241,   242,   242,   242,   242,   242,   243,   243,   243,   244,
-+     244,   245,   245,   246,   246,   247,   247,   248,   248,   249,
-+     249,   250,   250,   251,   251,   252,   252,   252,   252,   252,
-+     252,   252,   252,   252,   252,   252,   253,   253,   254,   255,
-+     255,   255,   256,   257,   257,   258,   258,   259,   260,   260,
-+     261,   261,   261,   261,   262,   262,   262,   262,   263,   264,
-+     264,   264,   264,   264,   264,   264,   265,   265,   265,   265,
-+     265,   265,   265,   265,   266,   266,   267,   268,   268,   269,
-+     269,   270,   270,   270,   271,   272,   272,   272,   272,   272,
-+     272,   272,   272,   273,   273,   273,   273,   273,   273,   273,
-+     273,   273,   274,   274,   275,   275,   275,   276,   276,   276,
-+     277,   277,   277,   277,   277,   277,   277,   277,   277,   277,
-+     277,   277,   277,   277,   277,   277,   277,   277,   277,   277,
-+     277,   277,   277,   277,   277,   277,   277,   277,   277,   277,
-+     277,   277,   277,   277,   277,   277,   277,   277,   277,   277,
-+     277,   277,   277,   277,   277,   277,   277,   277,   277,   277,
-+     277,   278,   278,   278,   279,   279,   280,   280,   281,   282,
-+     282,   283,   283,   284,   285,   286,   286,   287,   287,   287,
-+     287,   287,   287,   287,   288,   288,   289,   289,   290,   290,
-+     291,   291,   292,   292,   293,   294,   294,   295,   295,   296,
-+     297,   297,   298,   298,   298,   299,   299,   300,   300,   301,
-+     301,   302,   302,   302,   302,   302,   303,   303,   303,   304
- };
- 
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
- static const yytype_uint8 yyr2[] =
- {
-        0,     2,     0,     4,     0,     3,     2,     2,     2,     2,
--       0,     2,     5,     1,     2,     1,     1,     1,     1,     1,
--       1,     3,     1,     4,     1,     3,     2,     2,     1,     1,
--       1,     3,     2,     2,     2,     1,     2,     3,     2,     1,
--       1,     1,     1,     2,     2,     2,     1,     1,     1,     1,
--       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
--       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
--       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
--       1,     5,     1,     3,     1,     1,     1,     1,     1,     1,
--       1,     1,     1,     1,     1,     1,     3,     1,     2,     2,
--       4,     2,     1,     1,     2,     3,     3,     2,     5,     3,
--       2,     3,     2,     0,     1,     1,     1,     1,     1,     3,
--       5,     6,     7,     8,     5,     1,     2,     4,     5,     6,
--       7,     4,     2,     1,     2,     4,     1,     3,     1,     3,
--       1,     1,     1,     1,     1,     1,     2,     1,     2,     2,
--       3,     1,     1,     1,     1,     2,     1,     1,     2,     2,
--       1,     1,     2,     1,     3,     4,     1,     1,     1,     1,
-+       2,     0,     2,     5,     1,     2,     1,     1,     1,     1,
-+       1,     1,     3,     1,     4,     1,     3,     2,     2,     1,
-+       1,     1,     3,     2,     2,     2,     1,     2,     3,     2,
-+       1,     1,     1,     1,     2,     2,     2,     1,     1,     1,
-+       1,     1,     3,     3,     3,     1,     3,     3,     1,     3,
-+       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
-+       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
-+       3,     1,     5,     1,     3,     1,     1,     1,     1,     1,
-+       1,     1,     1,     1,     1,     1,     1,     3,     1,     2,
-+       2,     4,     2,     1,     1,     2,     3,     3,     2,     5,
-+       3,     2,     3,     2,     0,     1,     1,     1,     1,     1,
-+       3,     5,     6,     7,     8,     5,     1,     2,     4,     5,
-+       6,     7,     4,     2,     1,     2,     4,     1,     3,     1,
-+       3,     1,     1,     1,     1,     1,     1,     2,     1,     2,
-+       2,     3,     1,     1,     1,     1,     2,     1,     1,     2,
-+       2,     1,     1,     2,     1,     3,     4,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
--       1,     1,     1,     5,     4,     1,     2,     3,     1,     3,
--       1,     4,     1,     1,     1,     1,     1,     1,     1,     1,
--       1,     1,     1,     2,     3,     1,     1,     2,     3,     1,
--       2,     1,     2,     5,     3,     1,     1,     4,     5,     3,
--       2,     5,     7,     6,     1,     1,     1,     0,     2,     3,
--       2,     2,     2,     3,     2,     1,     1,     1,     2
-+       1,     1,     1,     1,     5,     4,     1,     2,     3,     1,
-+       3,     1,     4,     1,     1,     1,     1,     1,     1,     1,
-+       1,     1,     1,     1,     2,     3,     1,     1,     2,     3,
-+       1,     2,     1,     2,     5,     3,     1,     1,     4,     5,
-+       3,     2,     5,     7,     6,     1,     1,     1,     0,     2,
-+       3,     2,     2,     2,     3,     2,     1,     1,     1,     2
- };
- 
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-@@ -1017,614 +1018,638 @@ static const yytype_uint8 yyr2[] =
-    means the default is an error.  */
- static const yytype_uint16 yydefact[] =
- {
--       4,     0,     0,    10,     0,     1,     2,     5,     0,     0,
--      11,     0,   153,   152,   173,   170,   171,   172,   177,   178,
--     179,   180,   181,   182,   183,   184,   185,   174,   175,   176,
--       0,   156,   157,   160,   154,   142,   141,   140,   186,   187,
--     188,   189,   190,   191,   192,   193,   194,   195,   196,   198,
--     199,   200,   201,   203,   204,   205,   206,   207,   208,   209,
--     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
--       0,   169,   168,   151,   222,   221,   220,     0,     0,     0,
--       0,     0,     0,   197,   202,   277,     3,   276,     0,     0,
--     103,   113,     0,   118,   125,   145,   147,     0,   144,   133,
--     161,   163,   166,     0,   167,    13,   275,     0,   158,   159,
--     155,     0,     0,   132,     0,   149,     0,     6,     7,     8,
--       9,     0,    14,    98,     0,   278,   101,   113,   143,   114,
--     115,   116,   104,     0,   113,     0,    99,   126,   146,   148,
--     134,     0,   162,     0,     0,     0,     0,   225,   150,     0,
--     138,     0,   136,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    15,    19,    17,    18,    20,    41,
--       0,     0,     0,    46,    47,    48,    49,   251,     0,   247,
--      16,    22,    42,    24,    29,    30,     0,     0,    35,     0,
--      50,     0,    54,    57,    60,    65,    68,    70,    72,    74,
--      76,    78,    80,    82,    95,     0,   233,     0,   133,   236,
--     249,   235,   234,     0,   237,   238,   239,   240,   241,   242,
--     105,   110,   112,   117,     0,   119,   106,     0,     0,   164,
--      50,    97,     0,    39,    12,     0,   230,     0,   228,   224,
--     226,   100,     0,   135,     0,   271,   270,     0,     0,     0,
--     274,   272,     0,     0,     0,   260,     0,    43,    44,     0,
--     243,     0,    26,    27,     0,     0,    33,    32,     0,   169,
--      36,    38,    85,    86,    88,    87,    90,    91,    92,    93,
--      94,    89,    84,     0,    45,     0,     0,     0,     0,     0,
-+       4,     0,     0,    11,     0,     1,     2,     5,     0,     0,
-+      12,     0,   154,   153,   174,   171,   172,   173,   178,   179,
-+     180,   181,   182,   183,   184,   185,   186,   175,   176,   177,
-+       0,   157,   158,   161,   155,   143,   142,   141,   187,   188,
-+     189,   190,   191,   192,   193,   194,   195,   196,   197,   199,
-+     200,   201,   202,   204,   205,   206,   207,   208,   209,   210,
-+     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-+       0,   170,   169,   152,   223,   222,   221,     0,     0,     0,
-+       0,     0,     0,     0,   198,   203,   278,     3,   277,     0,
-+       0,   104,   114,     0,   119,   126,   146,   148,     0,   145,
-+     134,   162,   164,   167,     0,   168,    14,   276,     0,   159,
-+     160,   156,     0,     0,   133,     0,   150,     0,     6,     7,
-+       8,     9,    10,     0,    15,    99,     0,   279,   102,   114,
-+     144,   115,   116,   117,   105,     0,   114,     0,   100,   127,
-+     147,   149,   135,     0,   163,     0,     0,     0,     0,   226,
-+     151,     0,   139,     0,   137,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,    16,    20,    18,    19,
-+      21,    42,     0,     0,     0,    47,    48,    49,    50,   252,
-+       0,   248,    17,    23,    43,    25,    30,    31,     0,     0,
-+      36,     0,    51,     0,    55,    58,    61,    66,    69,    71,
-+      73,    75,    77,    79,    81,    83,    96,     0,   234,     0,
-+     134,   237,   250,   236,   235,     0,   238,   239,   240,   241,
-+     242,   243,   106,   111,   113,   118,     0,   120,   107,     0,
-+       0,   165,    51,    98,     0,    40,    13,     0,   231,     0,
-+     229,   225,   227,   101,     0,   136,     0,   272,   271,     0,
-+       0,     0,   275,   273,     0,     0,     0,   261,     0,    44,
-+      45,     0,   244,     0,    27,    28,     0,     0,    34,    33,
-+       0,   170,    37,    39,    86,    87,    89,    88,    91,    92,
-+      93,    94,    95,    90,    85,     0,    46,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,   252,   248,   250,   107,
--     109,   111,     0,     0,   127,     0,   232,   131,   165,   223,
--       0,     0,   227,   139,   137,     0,   265,   264,   267,     0,
--     273,     0,   259,   151,   256,     0,     0,    21,   244,     0,
--      28,    25,    31,    37,    83,    51,    52,    53,    55,    56,
--      58,    59,    63,    64,    61,    62,    66,    67,    69,    71,
--      73,    75,    77,    79,     0,    96,     0,   120,     0,   124,
--       0,   128,     0,   229,     0,   266,     0,     0,     0,     0,
--       0,     0,    23,     0,     0,     0,   121,   129,     0,   231,
--       0,   268,     0,   255,   253,   258,     0,   246,   261,   245,
--      81,   108,   122,     0,   130,     0,   269,   263,     0,   257,
--     123,   262,   254
-+       0,     0,     0,     0,     0,     0,     0,     0,   253,   249,
-+     251,   108,   110,   112,     0,     0,   128,     0,   233,   132,
-+     166,   224,     0,     0,   228,   140,   138,     0,   266,   265,
-+     268,     0,   274,     0,   260,   152,   257,     0,     0,    22,
-+     245,     0,    29,    26,    32,    38,    84,    52,    53,    54,
-+      56,    57,    59,    60,    64,    65,    62,    63,    67,    68,
-+      70,    72,    74,    76,    78,    80,     0,    97,     0,   121,
-+       0,   125,     0,   129,     0,   230,     0,   267,     0,     0,
-+       0,     0,     0,     0,    24,     0,     0,     0,   122,   130,
-+       0,   232,     0,   269,     0,   256,   254,   259,     0,   247,
-+     262,   246,    82,   109,   123,     0,   131,     0,   270,   264,
-+       0,   258,   124,   263,   255
- };
- 
- /* YYDEFGOTO[NTERM-NUM].  */
- static const yytype_int16 yydefgoto[] =
- {
--      -1,     2,     9,     3,    85,     6,    10,    86,   180,   181,
--     182,   339,   183,   184,   185,   186,   187,   188,   189,   190,
--     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
--     201,   202,   203,   204,   283,   205,   232,   206,   207,    89,
--      90,    91,   221,   132,   133,   222,    92,    93,    94,    95,
--     151,   152,    96,   134,    97,    98,   233,   100,   101,   102,
--     103,   104,   146,   147,   237,   238,   317,   209,   210,   211,
--     212,   398,   399,   213,   214,   215,   394,   336,   216,   217,
--     218,   328,   376,   377,   219,   105,   106
-+      -1,     2,     9,     3,    86,     6,    10,    87,   182,   183,
-+     184,   341,   185,   186,   187,   188,   189,   190,   191,   192,
-+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-+     203,   204,   205,   206,   285,   207,   234,   208,   209,    90,
-+      91,    92,   223,   134,   135,   224,    93,    94,    95,    96,
-+     153,   154,    97,   136,    98,    99,   235,   101,   102,   103,
-+     104,   105,   148,   149,   239,   240,   319,   211,   212,   213,
-+     214,   400,   401,   215,   216,   217,   396,   338,   218,   219,
-+     220,   330,   378,   379,   221,   106,   107
- };
- 
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-    STATE-NUM.  */
--#define YYPACT_NINF -350
-+#define YYPACT_NINF -321
- static const yytype_int16 yypact[] =
- {
--     -78,   -56,    54,  -350,   -52,  -350,   -37,  -350,     8,  3302,
--    -350,   -26,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--      88,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--     -66,  -350,  -350,    42,  -350,  -350,  -350,    70,    -4,    10,
--      29,    34,   -79,  -350,  -350,  -350,  3302,  -350,   -19,   -24,
--     -69,     5,  -154,  -350,   102,    16,    16,  3490,  -350,  -350,
--    -350,    18,  -350,  3562,  -350,  -350,  -350,   108,  -350,  -350,
--    -350,    -8,  3490,  -350,    16,  -350,  3562,  -350,  -350,  -350,
--    -350,   138,  -350,  -350,   387,  -350,  -350,    24,  -350,  -350,
--    -350,  -350,  -350,  3490,   147,   141,  -350,  -166,  -350,  -350,
--    -350,  2387,  -350,   106,  3490,   144,  1772,  -350,  -350,     7,
--      11,   -87,  -350,    14,    15,  1243,    30,    32,    20,  2004,
--      37,  2936,    25,    39,   -65,  -350,  -350,  -350,  -350,  -350,
--    2936,  2936,  2936,  -350,  -350,  -350,  -350,  -350,   601,  -350,
--    -350,  -350,   -59,  -350,  -350,  -350,    28,   -82,  3119,    43,
--     -30,  2936,   -11,    -2,   118,   -74,   114,    35,    31,    36,
--     148,   152,   -77,  -350,  -350,  -115,  -350,    40,    52,  -350,
--    -350,  -350,  -350,   815,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,   172,  3490,  -180,  -350,  2570,  2936,  -350,
--    -350,  -350,    53,  -350,  -350,  1888,    55,  -113,  -350,  -350,
--    -350,  -350,   173,  -350,   138,  -350,  -350,   178,  1656,  2936,
--    -350,  -350,  -108,  2936,  -161,  -350,  2204,  -350,  -350,   -68,
--    -350,  1029,  -350,  -350,  2936,  3418,  -350,  -350,  2936,    61,
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  2936,  -350,  2936,  2936,  2936,  2936,  2936,
--    2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,  2936,
--    2936,  2936,  2936,  2936,  2936,  2936,  -350,  -350,  -350,    63,
--    -350,  -350,  2753,  2936,    46,    60,  -350,  -350,  -350,  -350,
--    2936,   144,  -350,  -350,  -350,    67,  -350,  -350,  2204,   -55,
--    -350,   -54,  -350,   238,    65,   188,    71,  -350,  -350,    72,
--      65,    73,  -350,  -350,  -350,  -350,  -350,  -350,   -11,   -11,
--      -2,    -2,   118,   118,   118,   118,   -74,   -74,   114,    35,
--      31,    36,   148,   152,  -157,  -350,  2936,    56,    83,  -350,
--    2936,    68,    84,  -350,  2936,  -350,    69,    90,  1243,    74,
--      77,  1456,  -350,  2936,    86,  2936,    79,  -350,  2936,  -350,
--     -53,  2936,  1456,   255,  -350,  -350,  2936,  -350,  -350,  -350,
--    -350,  -350,  -350,  2936,  -350,    80,    65,  -350,  1243,  -350,
--    -350,  -350,  -350
-+     -86,   -57,    45,  -321,   -56,  -321,   -50,  -321,   -10,  3320,
-+    -321,   -26,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+      79,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+     -70,  -321,  -321,    43,  -321,  -321,  -321,    18,   -22,   -12,
-+      -5,     2,    25,  -101,  -321,  -321,  -321,  3320,  -321,   -43,
-+     -55,   -54,     6,  -148,  -321,    52,   211,   211,  3509,  -321,
-+    -321,  -321,   -47,  -321,  3581,  -321,  -321,  -321,   110,  -321,
-+    -321,  -321,   -14,  3509,  -321,   211,  -321,  3581,  -321,  -321,
-+    -321,  -321,  -321,   131,  -321,  -321,   389,  -321,  -321,    15,
-+    -321,  -321,  -321,  -321,  -321,  3509,   109,   136,  -321,  -152,
-+    -321,  -321,  -321,  2400,  -321,   105,  3509,   143,  1781,  -321,
-+    -321,     7,     9,  -107,  -321,    10,    12,  1249,    27,    36,
-+      17,  2015,    40,  2952,    22,    42,   -65,  -321,  -321,  -321,
-+    -321,  -321,  2952,  2952,  2952,  -321,  -321,  -321,  -321,  -321,
-+     604,  -321,  -321,  -321,   -20,  -321,  -321,  -321,    47,   -92,
-+    3136,    46,   -67,  2952,   -24,   -16,   111,   -73,   108,    37,
-+      41,    39,   162,   161,   -82,  -321,  -321,  -147,  -321,    44,
-+      61,  -321,  -321,  -321,  -321,   819,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,   181,  3509,  -160,  -321,  2584,
-+    2952,  -321,  -321,  -321,    63,  -321,  -321,  1898,    62,  -146,
-+    -321,  -321,  -321,  -321,   183,  -321,   131,  -321,  -321,   187,
-+    1664,  2952,  -321,  -321,  -144,  2952,  -140,  -321,  2216,  -321,
-+    -321,   -81,  -321,  1034,  -321,  -321,  2952,  3437,  -321,  -321,
-+    2952,    70,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,  2952,  -321,  2952,  2952,  2952,
-+    2952,  2952,  2952,  2952,  2952,  2952,  2952,  2952,  2952,  2952,
-+    2952,  2952,  2952,  2952,  2952,  2952,  2952,  2952,  -321,  -321,
-+    -321,    74,  -321,  -321,  2768,  2952,    64,    69,  -321,  -321,
-+    -321,  -321,  2952,   143,  -321,  -321,  -321,    82,  -321,  -321,
-+    2216,   -74,  -321,   -68,  -321,   235,    78,   203,    85,  -321,
-+    -321,    84,    78,    88,  -321,  -321,  -321,  -321,  -321,  -321,
-+     -24,   -24,   -16,   -16,   111,   111,   111,   111,   -73,   -73,
-+     108,    37,    41,    39,   162,   161,  -129,  -321,  2952,    71,
-+      86,  -321,  2952,    72,    87,  -321,  2952,  -321,    73,    92,
-+    1249,    75,    76,  1463,  -321,  2952,    95,  2952,    80,  -321,
-+    2952,  -321,   -63,  2952,  1463,   277,  -321,  -321,  2952,  -321,
-+    -321,  -321,  -321,  -321,  -321,  2952,  -321,    81,    78,  -321,
-+    1249,  -321,  -321,  -321,  -321
- };
- 
- /* YYPGOTO[NTERM-NUM].  */
- static const yytype_int16 yypgoto[] =
- {
--    -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,  -350,
--    -350,  -350,  -350,  -350,    22,  -350,  -350,  -350,  -350,  -135,
--    -350,   -83,   -81,  -104,   -85,   -13,    -6,    -5,    -3,    -1,
--      -7,  -350,  -133,   -97,  -350,  -156,  -193,     9,    12,  -350,
--    -350,  -350,    76,   170,   168,    81,  -350,  -350,  -239,  -350,
--    -350,    59,   -71,  -350,  -350,   -72,    -9,     1,  -350,  -350,
--     227,  -350,   163,  -139,  -350,   -12,  -283,    62,  -151,  -349,
--     -67,   -84,   223,   135,    66,  -350,  -350,   -10,  -350,  -350,
--    -350,  -350,  -350,  -350,  -350,   229,  -350
-+    -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
-+    -321,  -321,  -321,  -321,    26,  -321,  -321,  -321,  -321,  -135,
-+    -321,   -91,   -88,  -106,   -90,    -3,    -6,    -4,    -2,    -1,
-+       0,  -321,  -139,  -174,  -321,  -156,  -217,    11,    13,  -321,
-+    -321,  -321,    83,   170,   164,    89,  -321,  -321,  -243,  -321,
-+    -321,    56,   -71,  -321,  -321,   -72,    -9,   -32,  -321,  -321,
-+     227,  -321,   160,  -131,  -321,   -15,  -195,    57,  -154,  -320,
-+     -69,   -84,   222,   133,    66,  -321,  -321,   -13,  -321,  -321,
-+    -321,  -321,  -321,  -321,  -321,   231,  -321
- };
- 
- /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-    positive, shift that token.  If negative, reduce the rule which
-    number is the opposite.  If zero, do what YYDEFACT says.
-    If YYTABLE_NINF, syntax error.  */
--#define YYTABLE_NINF -169
-+#define YYTABLE_NINF -170
- static const yytype_int16 yytable[] =
- {
--      99,   115,   114,   252,   247,   254,   230,   240,   231,   128,
--     111,  -168,   292,   293,   303,   312,   259,   335,    87,    12,
--      13,    88,     4,   138,   139,   262,   263,   226,   128,   227,
--     369,     1,   397,   313,   315,   257,   258,   305,   129,   130,
--     131,   305,   148,   397,   135,    12,    13,   228,    30,    31,
--      32,   332,    33,    34,     5,   383,   284,   129,   130,   131,
--     136,     7,   308,   272,   273,   274,   275,   276,   277,   278,
--     279,   280,   281,     8,    30,    31,    32,    99,    33,    34,
--      35,    36,    37,   305,    11,   321,   107,   387,   140,   335,
--     305,   270,   230,   329,   231,    87,   240,   331,    88,   306,
--     334,   322,   402,   145,   142,   404,   330,   243,   340,   117,
--     308,   244,   267,   409,   121,   208,   268,   149,   113,   368,
--     410,   108,   109,   118,   223,   110,   337,   372,   -40,   127,
--     305,   316,   294,   295,   304,   145,   264,   145,   265,   378,
--     379,   405,   119,   305,   305,   305,   208,   120,   364,   112,
--     345,   346,   347,   230,   230,   230,   230,   230,   230,   230,
--     230,   230,   230,   230,   230,   230,   230,   230,   230,   208,
--     126,   343,   334,   384,    74,    75,    76,   230,   137,   231,
--     129,   130,   131,   282,   143,   230,   344,   231,   352,   353,
--     354,   355,   285,   286,   287,   123,   124,   288,   289,  -102,
--     290,   291,   296,   297,   208,   348,   349,   144,   365,   350,
--     351,   356,   357,   141,   150,   223,   316,   225,   390,   234,
--     236,   241,   266,   248,   242,   249,   145,   393,   245,   246,
--     253,   230,   256,   231,   250,   406,   271,   255,   301,   208,
--     299,    12,    13,   298,   302,   -39,   300,   208,   309,   318,
--     320,   323,   208,   325,   123,   -34,   371,   412,   366,   370,
--     374,   115,   114,   305,   380,   381,   -40,   408,   382,   385,
--      30,    31,    32,   316,    33,    34,    35,    36,    37,   386,
--     389,   388,   401,   391,   392,   358,   400,   342,   316,   178,
--     396,   316,   403,   359,   411,   360,   363,   220,   361,   316,
--     310,   362,   224,   324,   116,   311,   316,   235,   407,   373,
--     326,   125,   395,   261,   327,   122,     0,     0,   375,   208,
-+     100,   116,   115,   249,   233,   254,   112,   256,   232,   305,
-+     130,  -169,   317,   294,   295,   337,   272,   242,   261,   130,
-+      88,     4,    89,     1,   140,   141,   274,   275,   276,   277,
-+     278,   279,   280,   281,   282,   283,   314,   259,   260,   131,
-+     132,   133,   228,   150,   229,     5,    12,    13,   131,   132,
-+     133,   137,   307,   323,   315,   307,   318,     7,   286,   307,
-+       8,   310,   230,   399,   264,   265,    11,   138,   308,   324,
-+     307,   332,   144,   334,   399,    30,    31,    32,   100,    33,
-+      34,    35,    36,    37,   385,   151,   108,   337,   245,   142,
-+     233,   118,   246,   123,   232,   331,   345,   370,    88,   333,
-+      89,   119,   336,   269,   147,   374,   242,   270,   120,   310,
-+     342,   346,   109,   110,   339,   121,   111,   210,   307,   114,
-+     371,   380,    74,    75,    76,   307,   225,   381,   139,   -41,
-+     306,   307,   407,   367,   296,   297,   307,   147,   122,   147,
-+     128,   318,   131,   132,   133,   129,   113,   284,   210,   143,
-+     366,   386,   347,   348,   349,   232,   232,   232,   232,   232,
-+     232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
-+     232,   210,   125,   126,   336,   233,   266,   389,   267,   232,
-+     287,   288,   289,   233,   290,   291,   145,   232,   354,   355,
-+     356,   357,   404,   292,   293,   406,   298,   299,   318,   350,
-+     351,  -103,   146,   411,   352,   353,   210,   152,   358,   359,
-+     412,   402,   227,   318,    12,    13,   318,   225,   236,   238,
-+     392,   250,   243,   244,   318,   247,   395,   248,   147,   233,
-+     251,   318,   252,   232,   255,   257,   258,   408,    12,    13,
-+     273,   210,   268,    30,    31,    32,   300,    33,    34,   210,
-+     302,   301,   303,   304,   210,   -40,   414,   311,   322,   125,
-+     320,   325,   327,   116,   115,   -35,   373,    30,    31,    32,
-+     368,    33,    34,    35,    36,    37,   376,   307,   372,   382,
-+     383,   384,   -41,   388,   391,   387,   390,   394,   393,   410,
-+     398,   180,   403,   344,   405,   361,   413,   360,   362,   222,
-+     226,   363,   326,   364,   117,   365,   237,   328,   375,   312,
-+     409,   127,   397,   263,     0,   313,   329,   377,   124,     0,
-+       0,   210,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,   208,
--       0,     0,   208,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,   208,     0,     0,     0,     0,     0,     0,
--      12,    13,    14,    15,    16,    17,   153,   154,   155,   208,
--     156,   157,   158,   159,   160,   161,   162,    18,    19,    20,
--      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
--      31,    32,     0,    33,    34,    35,    36,    37,    38,    39,
--      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
--      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
--      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
--      70,    71,   163,   164,   165,   166,   167,   168,   169,     0,
--       0,   170,   171,     0,     0,     0,     0,     0,     0,     0,
-+       0,   210,     0,     0,   210,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,   210,     0,     0,     0,     0,
-+       0,     0,    12,    13,    14,    15,    16,    17,   155,   156,
-+     157,   210,   158,   159,   160,   161,   162,   163,   164,    18,
-+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-+      29,    30,    31,    32,     0,    33,    34,    35,    36,    37,
-+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-+      68,    69,    70,    71,   165,   166,   167,   168,   169,   170,
-+     171,     0,     0,   172,   173,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--      73,    74,    75,    76,     0,    77,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,    82,     0,     0,
-+       0,     0,    73,    74,    75,    76,     0,    77,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,    84,     0,    85,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--     172,     0,     0,     0,     0,     0,   173,   174,   175,   176,
-+       0,     0,     0,   174,     0,     0,     0,     0,     0,   175,
-+     176,   177,   178,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,   179,   180,   181,    12,    13,    14,
-+      15,    16,    17,   155,   156,   157,     0,   158,   159,   160,
-+     161,   162,   163,   164,    18,    19,    20,    21,    22,    23,
-+      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-+      63,    64,    65,    66,    67,    68,    69,    70,    71,   165,
-+     166,   167,   168,   169,   170,   171,     0,     0,   172,   173,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,   177,   178,   179,    12,    13,    14,    15,    16,    17,
--     153,   154,   155,     0,   156,   157,   158,   159,   160,   161,
--     162,    18,    19,    20,    21,    22,    23,    24,    25,    26,
--      27,    28,    29,    30,    31,    32,     0,    33,    34,    35,
--      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
--      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
--      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
--      66,    67,    68,    69,    70,    71,   163,   164,   165,   166,
--     167,   168,   169,     0,     0,   170,   171,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-+      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,    83,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    73,    74,    75,    76,     0,    77,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,    82,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    84,
-+       0,    85,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,    83,     0,    84,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,   174,     0,
-+       0,     0,     0,     0,   175,   176,   177,   178,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,   179,
-+     180,   262,    12,    13,    14,    15,    16,    17,   155,   156,
-+     157,     0,   158,   159,   160,   161,   162,   163,   164,    18,
-+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-+      29,    30,    31,    32,     0,    33,    34,    35,    36,    37,
-+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-+      68,    69,    70,    71,   165,   166,   167,   168,   169,   170,
-+     171,     0,     0,   172,   173,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,    73,    74,    75,    76,     0,    77,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,   172,     0,     0,     0,     0,     0,
--     173,   174,   175,   176,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,   177,   178,   260,    12,    13,
--      14,    15,    16,    17,   153,   154,   155,     0,   156,   157,
--     158,   159,   160,   161,   162,    18,    19,    20,    21,    22,
--      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
--       0,    33,    34,    35,    36,    37,    38,    39,    40,    41,
--      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
--      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
--      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
--     163,   164,   165,   166,   167,   168,   169,     0,     0,   170,
--     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
--      75,    76,     0,    77,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,    82,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,    84,     0,    85,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,    83,
--       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,   174,     0,     0,     0,     0,     0,   175,
-+     176,   177,   178,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,   179,   180,   309,    12,    13,    14,
-+      15,    16,    17,   155,   156,   157,     0,   158,   159,   160,
-+     161,   162,   163,   164,    18,    19,    20,    21,    22,    23,
-+      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-+      63,    64,    65,    66,    67,    68,    69,    70,    71,   165,
-+     166,   167,   168,   169,   170,   171,     0,     0,   172,   173,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-+      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,    83,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    84,
-+       0,    85,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
--       0,     0,     0,     0,   173,   174,   175,   176,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
--     178,   307,    12,    13,    14,    15,    16,    17,   153,   154,
--     155,     0,   156,   157,   158,   159,   160,   161,   162,    18,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,   174,     0,
-+       0,     0,     0,     0,   175,   176,   177,   178,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,   179,
-+     180,   340,    12,    13,    14,    15,    16,    17,   155,   156,
-+     157,     0,   158,   159,   160,   161,   162,   163,   164,    18,
-       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-       29,    30,    31,    32,     0,    33,    34,    35,    36,    37,
-       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
--      68,    69,    70,    71,   163,   164,   165,   166,   167,   168,
--     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
-+      68,    69,    70,    71,   165,   166,   167,   168,   169,   170,
-+     171,     0,     0,   172,   173,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    73,    74,    75,    76,     0,    77,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,    82,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,    83,     0,    84,     0,     0,     0,     0,
-+       0,     0,     0,     0,    84,     0,    85,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,   172,     0,     0,     0,     0,     0,   173,   174,
--     175,   176,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,   177,   178,   338,    12,    13,    14,    15,
--      16,    17,   153,   154,   155,     0,   156,   157,   158,   159,
--     160,   161,   162,    18,    19,    20,    21,    22,    23,    24,
-+       0,     0,     0,   174,     0,     0,     0,     0,     0,   175,
-+     176,   177,   178,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,   179,   180,    12,    13,    14,    15,
-+      16,    17,   155,   156,   157,     0,   158,   159,   160,   161,
-+     162,   163,   164,    18,    19,    20,    21,    22,    23,    24,
-       25,    26,    27,    28,    29,    30,    31,    32,     0,    33,
-       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
--      64,    65,    66,    67,    68,    69,    70,    71,   163,   164,
--     165,   166,   167,   168,   169,     0,     0,   170,   171,     0,
-+      64,    65,    66,    67,    68,    69,    70,    71,   165,   166,
-+     167,   168,   169,   170,   171,     0,     0,   172,   173,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    73,    74,    75,    76,
-        0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,    82,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,    83,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,    83,     0,    84,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,    84,     0,
-+      85,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,   172,     0,     0,     0,
--       0,     0,   173,   174,   175,   176,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,   177,   178,    12,
--      13,    14,    15,    16,    17,   153,   154,   155,     0,   156,
--     157,   158,   159,   160,   161,   162,    18,    19,    20,    21,
--      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
--      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
--      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
--      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
--      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
--      71,   163,   164,   165,   166,   167,   168,   169,     0,     0,
--     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
--      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,    82,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--      83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,   174,     0,     0,
-+       0,     0,     0,   175,   176,   177,   178,    12,    13,    14,
-+      15,    16,    17,     0,     0,     0,     0,     0,   179,   126,
-+       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
-+      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
-+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-+      63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-+     166,   167,   168,   169,   170,   171,     0,     0,   172,   173,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
-+      76,     0,    77,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,    83,    14,    15,    16,    17,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,   172,
--       0,     0,     0,     0,     0,   173,   174,   175,   176,    12,
--      13,    14,    15,    16,    17,     0,     0,     0,     0,     0,
--     177,   124,     0,     0,     0,     0,    18,    19,    20,    21,
--      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
--      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
--      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
--      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
--      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
--      71,     0,   164,   165,   166,   167,   168,   169,     0,     0,
--     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
--      74,    75,    76,     0,    77,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,    82,    14,    15,    16,
--      17,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
--      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
--      83,     0,    84,    38,    39,    40,    41,    42,    43,    44,
--      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
--      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
--      65,    66,    67,    68,    69,    70,    71,     0,    72,   172,
--       0,     0,     0,     0,     0,   173,   174,   175,   176,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--     177,     0,     0,     0,     0,     0,    74,    75,    76,     0,
-+       0,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-+      27,    28,    29,     0,     0,     0,     0,     0,     0,    84,
-+       0,    85,    38,    39,    40,    41,    42,    43,    44,    45,
-+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-+      66,    67,    68,    69,    70,    71,     0,    72,   174,     0,
-+       0,     0,     0,     0,   175,   176,   177,   178,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,   179,
-+       0,     0,     0,     0,     0,    74,    75,    76,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    18,    19,
-       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
--       0,     0,     0,     0,     0,     0,    83,     0,    84,    38,
-+       0,     0,     0,     0,     0,     0,    84,     0,    85,    38,
-       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-       69,    70,    71,     0,    72,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,   239,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,   241,     0,
-        0,     0,    74,    75,    76,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
--      15,    16,    17,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
--      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
--       0,     0,    83,     0,    84,    38,    39,    40,    41,    42,
--      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
--      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
--      63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
--     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,   319,     0,     0,     0,    74,    75,
--      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
--      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,   172,     0,     0,
--       0,     0,     0,   173,   174,   175,   176,    12,    13,    14,
--      15,    16,    17,     0,     0,     0,     0,     0,   251,     0,
--       0,     0,     0,     0,    18,    19,    20,    21,    22,    23,
--      24,    25,    26,    27,    28,    29,    30,    31,    32,     0,
--      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
--      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
--      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
--      63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
--     164,   165,   166,   167,   168,   169,     0,     0,   170,   171,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,   333,    74,    75,
--      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    82,     0,     0,     0,     0,     0,
-+      14,    15,    16,    17,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,    18,    19,    20,    21,    22,
-+      23,    24,    25,    26,    27,    28,    29,     0,     0,     0,
-+       0,     0,     0,    84,     0,    85,    38,    39,    40,    41,
-+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-+       0,   166,   167,   168,   169,   170,   171,     0,     0,   172,
-+     173,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,   321,     0,     0,     0,    74,
-+      75,    76,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    83,     0,
--      84,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,    14,    15,    16,    17,     0,   172,     0,     0,
--       0,     0,     0,   173,   174,   175,   176,    18,    19,    20,
--      21,    22,    23,    24,    25,    26,    27,    28,    29,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    38,    39,
--      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
--      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
--      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
--      70,    71,     0,   164,   165,   166,   167,   168,   169,     0,
--       0,   170,   171,     0,     0,     0,     0,     0,     0,     0,
-+      84,     0,    85,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,    74,    75,    76,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,   174,
-+       0,     0,     0,     0,     0,   175,   176,   177,   178,    12,
-+      13,    14,    15,    16,    17,     0,     0,     0,     0,     0,
-+     253,     0,     0,     0,     0,     0,    18,    19,    20,    21,
-+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-+      32,     0,    33,    34,    35,    36,    37,    38,    39,    40,
-+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-+      71,     0,   166,   167,   168,   169,   170,   171,     0,     0,
-+     172,   173,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,   335,
-+      74,    75,    76,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,    83,     0,    84,     0,     0,     0,     0,     0,     0,
-+       0,    84,     0,    85,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    14,    15,    16,    17,     0,
--     172,     0,     0,   229,     0,     0,   173,   174,   175,   176,
-+     174,     0,     0,     0,     0,     0,   175,   176,   177,   178,
-       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-       28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
--      67,    68,    69,    70,    71,     0,   164,   165,   166,   167,
--     168,   169,     0,     0,   170,   171,     0,     0,     0,     0,
-+      67,    68,    69,    70,    71,     0,   166,   167,   168,   169,
-+     170,   171,     0,     0,   172,   173,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    74,    75,    76,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
-+       0,     0,     0,     0,     0,    84,     0,    85,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    14,    15,
--      16,    17,     0,   172,     0,     0,   314,     0,     0,   173,
--     174,   175,   176,    18,    19,    20,    21,    22,    23,    24,
--      25,    26,    27,    28,    29,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    38,    39,    40,    41,    42,    43,
--      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
--      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
--      64,    65,    66,    67,    68,    69,    70,    71,     0,   164,
--     165,   166,   167,   168,   169,     0,     0,   170,   171,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
-+      15,    16,    17,     0,   174,     0,     0,   231,     0,     0,
-+     175,   176,   177,   178,    18,    19,    20,    21,    22,    23,
-+      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,    38,    39,    40,    41,    42,
-+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-+      63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-+     166,   167,   168,   169,   170,   171,     0,     0,   172,   173,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,    74,    75,    76,
-+       0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
-+      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    84,
-+       0,    85,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,    83,     0,    84,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,    14,    15,    16,    17,     0,   174,     0,
-+       0,   316,     0,     0,   175,   176,   177,   178,    18,    19,
-+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
-+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-+      69,    70,    71,     0,   166,   167,   168,   169,   170,   171,
-+       0,     0,   172,   173,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,    74,    75,    76,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,    14,    15,    16,    17,     0,   172,     0,     0,   367,
--       0,     0,   173,   174,   175,   176,    18,    19,    20,    21,
--      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,    38,    39,    40,
--      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
--      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
--      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
--      71,     0,   164,   165,   166,   167,   168,   169,     0,     0,
--     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--      74,    75,    76,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,    84,     0,    85,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--      83,     0,    84,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    14,    15,    16,
-+      17,     0,   174,     0,     0,   369,     0,     0,   175,   176,
-+     177,   178,    18,    19,    20,    21,    22,    23,    24,    25,
-+      26,    27,    28,    29,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,    38,    39,    40,    41,    42,    43,    44,
-+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-+      65,    66,    67,    68,    69,    70,    71,     0,   166,   167,
-+     168,   169,   170,   171,     0,     0,   172,   173,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,    74,    75,    76,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,    14,    15,    16,    17,     0,   172,
--       0,     0,     0,     0,     0,   173,   174,   175,   176,    18,
--      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
--      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
--      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
--      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
--      68,    69,    70,   269,     0,   164,   165,   166,   167,   168,
--     169,     0,     0,   170,   171,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,    74,    75,    76,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    84,     0,    85,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,    83,     0,    84,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,    14,    15,    16,    17,     0,   174,     0,     0,     0,
-+       0,     0,   175,   176,   177,   178,    18,    19,    20,    21,
-+      22,    23,    24,    25,    26,    27,    28,    29,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    38,    39,    40,
-+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-+     271,     0,   166,   167,   168,   169,   170,   171,     0,     0,
-+     172,   173,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+      74,    75,    76,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,    12,    13,    14,    15,    16,
--      17,     0,   172,     0,     0,     0,     0,     0,   173,   174,
--     175,   176,    18,    19,    20,    21,    22,    23,    24,    25,
--      26,    27,    28,    29,    30,    31,    32,     0,    33,    34,
--      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
--      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
--      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
--      65,    66,    67,    68,    69,    70,    71,     0,    72,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,    73,    74,    75,    76,     0,
--      77,     0,     0,     0,     0,     0,     0,     0,    78,    79,
--      80,    81,    82,    14,    15,    16,    17,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,     0,     0,    18,    19,
--      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
--       0,     0,     0,     0,     0,     0,    83,     0,    84,    38,
--      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
--      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
--      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
--      69,    70,    71,     0,   341,    14,    15,    16,    17,   169,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,    84,     0,    85,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,    12,    13,    14,    15,    16,    17,     0,
-+     174,     0,     0,     0,     0,     0,   175,   176,   177,   178,
-       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
--      28,    29,    74,    75,    76,     0,     0,     0,     0,     0,
--       0,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-+      28,    29,    30,    31,    32,     0,    33,    34,    35,    36,
-+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
--      67,    68,    69,    70,    71,     0,    72,    14,    15,    16,
--      17,     0,    83,     0,    84,     0,     0,     0,     0,     0,
--       0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
--      26,    27,    28,    29,    74,    75,    76,     0,     0,     0,
--       0,     0,     0,    38,    39,    40,    41,    42,    43,    44,
--      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
--      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
--      65,    66,    67,    68,    69,    70,    71,     0,    72,     0,
--       0,     0,     0,     0,    83,     0,    84,     0,     0,     0,
-+      67,    68,    69,    70,    71,     0,    72,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-+       0,     0,     0,    73,    74,    75,    76,     0,    77,     0,
-+       0,     0,     0,     0,     0,     0,    78,    79,    80,    81,
-+      82,    83,    14,    15,    16,    17,     0,     0,     0,     0,
-+       0,     0,     0,     0,     0,     0,     0,    18,    19,    20,
-+      21,    22,    23,    24,    25,    26,    27,    28,    29,     0,
-+       0,     0,     0,     0,     0,    84,     0,    85,    38,    39,
-+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-+      70,    71,     0,   343,    14,    15,    16,    17,   171,     0,
-+       0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
-+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-+      29,    74,    75,    76,     0,     0,     0,     0,     0,     0,
-+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-+      68,    69,    70,    71,     0,    72,    14,    15,    16,    17,
-+       0,     0,    84,     0,    85,     0,     0,     0,     0,     0,
-+       0,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-+      27,    28,    29,    74,    75,    76,     0,     0,     0,     0,
-+       0,     0,    38,    39,    40,    41,    42,    43,    44,    45,
-+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-+      66,    67,    68,    69,    70,    71,     0,    72,     0,     0,
-+       0,     0,     0,     0,    84,     0,    85,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--       0,     0,     0,     0,     0,     0,    83,     0,    84
-+       0,     0,     0,     0,     0,     0,    84,     0,    85
- };
- 
- static const yytype_int16 yycheck[] =
- {
--       9,    73,    73,   159,   155,   161,   141,   146,   141,     4,
--      76,    76,    86,    87,    91,   195,   172,   256,     9,     3,
--       4,     9,    78,    95,    96,    84,    85,   193,     4,   195,
--     313,   109,   381,   213,   227,   170,   171,   198,    33,    34,
--      35,   198,   114,   392,   198,     3,     4,   213,    32,    33,
--      34,   212,    36,    37,     0,   212,   191,    33,    34,    35,
--     214,   113,   213,    93,    94,    95,    96,    97,    98,    99,
--     100,   101,   102,   110,    32,    33,    34,    86,    36,    37,
--      38,    39,    40,   198,    76,   198,   112,   370,    97,   328,
--     198,   188,   227,   249,   227,    86,   235,   253,    86,   214,
--     256,   214,   385,   112,   103,   388,   214,   194,   264,   113,
--     261,   198,   194,   396,   193,   124,   198,   116,    76,   312,
--     403,    33,    34,   113,   133,    37,   194,   320,   193,   198,
--     198,   228,   206,   207,   211,   144,   195,   146,   197,   194,
--     194,   194,   113,   198,   198,   198,   155,   113,   304,   215,
--     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
--     295,   296,   297,   298,   299,   300,   301,   302,   303,   178,
--     194,   268,   328,   366,   104,   105,   106,   312,    76,   312,
--      33,    34,    35,   213,    76,   320,   283,   320,   292,   293,
--     294,   295,   203,   204,   205,   214,   215,   199,   200,   194,
--      82,    83,    88,    89,   213,   288,   289,   215,   305,   290,
--     291,   296,   297,   195,    76,   224,   313,    76,   374,   113,
--      76,   214,   194,   193,   213,   193,   235,   378,   214,   214,
--     193,   366,   193,   366,   214,   391,   193,   212,    90,   248,
--     209,     3,     4,   208,    92,   193,   210,   256,    76,   196,
--     195,    78,   261,    75,   214,   194,   196,   408,   195,   213,
--     193,   333,   333,   198,    76,   194,   193,    12,   196,   213,
--      32,    33,    34,   370,    36,    37,    38,    39,    40,   196,
--     196,   213,   196,   214,   194,   298,   383,   265,   385,   215,
--     213,   388,   213,   299,   214,   300,   303,   127,   301,   396,
--     224,   302,   134,   244,    77,   224,   403,   144,   392,   321,
--     248,    88,   379,   178,   248,    86,    -1,    -1,   328,   328,
-+       9,    73,    73,   157,   143,   161,    76,   163,   143,    91,
-+       4,    76,   229,    86,    87,   258,   190,   148,   174,     4,
-+       9,    78,     9,   109,    96,    97,    93,    94,    95,    96,
-+      97,    98,    99,   100,   101,   102,   196,   172,   173,    33,
-+      34,    35,   194,   115,   196,     0,     3,     4,    33,    34,
-+      35,   199,   199,   199,   214,   199,   230,   113,   193,   199,
-+     110,   215,   214,   383,    84,    85,    76,   215,   215,   215,
-+     199,   215,   104,   213,   394,    32,    33,    34,    87,    36,
-+      37,    38,    39,    40,   213,   117,   112,   330,   195,    98,
-+     229,   113,   199,   194,   229,   251,   270,   314,    87,   255,
-+      87,   113,   258,   195,   113,   322,   237,   199,   113,   263,
-+     266,   285,    33,    34,   195,   113,    37,   126,   199,    76,
-+     315,   195,   104,   105,   106,   199,   135,   195,    76,   194,
-+     212,   199,   195,   307,   207,   208,   199,   146,   113,   148,
-+     195,   315,    33,    34,    35,   199,   216,   214,   157,   196,
-+     306,   368,   287,   288,   289,   290,   291,   292,   293,   294,
-+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-+     305,   180,   215,   216,   330,   314,   196,   372,   198,   314,
-+     204,   205,   206,   322,   200,   201,    76,   322,   294,   295,
-+     296,   297,   387,    82,    83,   390,    88,    89,   372,   290,
-+     291,   195,   216,   398,   292,   293,   215,    76,   298,   299,
-+     405,   385,    76,   387,     3,     4,   390,   226,   113,    76,
-+     376,   194,   215,   214,   398,   215,   380,   215,   237,   368,
-+     194,   405,   215,   368,   194,   213,   194,   393,     3,     4,
-+     194,   250,   195,    32,    33,    34,   209,    36,    37,   258,
-+     211,   210,    90,    92,   263,   194,   410,    76,   196,   215,
-+     197,    78,    75,   335,   335,   195,   197,    32,    33,    34,
-+     196,    36,    37,    38,    39,    40,   194,   199,   214,    76,
-+     195,   197,   194,   197,   197,   214,   214,   195,   215,    12,
-+     214,   216,   197,   267,   214,   301,   215,   300,   302,   129,
-+     136,   303,   246,   304,    77,   305,   146,   250,   323,   226,
-+     394,    89,   381,   180,    -1,   226,   250,   330,    87,    -1,
-+      -1,   330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
--      -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   392,    -1,    -1,    -1,    -1,    -1,    -1,
--       3,     4,     5,     6,     7,     8,     9,    10,    11,   408,
--      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
--      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
--      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
--      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
--      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
--      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
--      73,    74,    75,    76,    77,    78,    79,    80,    81,    -1,
--      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,   380,    -1,    -1,   383,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,   394,    -1,    -1,    -1,    -1,
-+      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
-+      11,   410,    13,    14,    15,    16,    17,    18,    19,    20,
-+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-+      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-+      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--     103,   104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-+      -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+     121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   155,    -1,   157,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--     193,    -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,
-+      -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,    -1,   200,
-+     201,   202,   203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   215,   216,   217,     3,     4,     5,
-+       6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
-+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,   214,   215,   216,     3,     4,     5,     6,     7,     8,
--       9,    10,    11,    -1,    13,    14,    15,    16,    17,    18,
--      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
--      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
--      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
--      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
--      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
--      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
--      79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-+     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,   121,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
-+      -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,
-+      -1,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
-+     216,   217,     3,     4,     5,     6,     7,     8,     9,    10,
-+      11,    -1,    13,    14,    15,    16,    17,    18,    19,    20,
-+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-+      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-+      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+     121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,
--     199,   200,   201,   202,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,   214,   215,   216,     3,     4,
--       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
--      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
--      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
--      -1,    36,    37,    38,    39,    40,    41,    42,    43,    44,
--      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
--      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
--      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
--      75,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
--      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
--     105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   155,    -1,   157,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,    -1,   200,
-+     201,   202,   203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   215,   216,   217,     3,     4,     5,
-+       6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
-+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-+     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,   121,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
--      -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
-+      -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,
--      -1,    -1,    -1,    -1,   199,   200,   201,   202,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,
--     215,   216,     3,     4,     5,     6,     7,     8,     9,    10,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,
-+      -1,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
-+     216,   217,     3,     4,     5,     6,     7,     8,     9,    10,
-       11,    -1,    13,    14,    15,    16,    17,    18,    19,    20,
-       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-       31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
-@@ -1635,17 +1660,17 @@ static const yytype_int16 yycheck[] =
-       81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+     121,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   155,    -1,   157,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,   199,   200,
--     201,   202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   214,   215,   216,     3,     4,     5,     6,
-+      -1,    -1,    -1,   194,    -1,    -1,    -1,    -1,    -1,   200,
-+     201,   202,   203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   215,   216,     3,     4,     5,     6,
-        7,     8,     9,    10,    11,    -1,    13,    14,    15,    16,
-       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-       27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
-@@ -1657,38 +1682,72 @@ static const yytype_int16 yycheck[] =
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,   106,
-       -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   121,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,    -1,
-+     157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,
-+      -1,    -1,    -1,   200,   201,   202,   203,     3,     4,     5,
-+       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   215,   216,
-+      -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
-+      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-+      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-+      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-+     106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,   121,     5,     6,     7,     8,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-+      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,   155,
-+      -1,   157,    41,    42,    43,    44,    45,    46,    47,    48,
-+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-+      69,    70,    71,    72,    73,    74,    -1,    76,   194,    -1,
-+      -1,    -1,    -1,    -1,   200,   201,   202,   203,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   215,
-+      -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
-+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-+      -1,    -1,    -1,    -1,    -1,    -1,   155,    -1,   157,    41,
-+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-+      72,    73,    74,    -1,    76,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,
-+      -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+       5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,
-+      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
-+      -1,    -1,    -1,   155,    -1,   157,    41,    42,    43,    44,
-+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-+      -1,    76,    77,    78,    79,    80,    81,    -1,    -1,    84,
-+      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   104,
-+     105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,
--      -1,    -1,   199,   200,   201,   202,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   214,   215,     3,
--       4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
--      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
--      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
--      34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
--      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
--      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
--      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
--      74,    75,    76,    77,    78,    79,    80,    81,    -1,    -1,
--      84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
--     104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--     154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+     155,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,
--      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,     3,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,
-+      -1,    -1,    -1,    -1,    -1,   200,   201,   202,   203,     3,
-        4,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    -1,
--     214,   215,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
-+     215,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
-       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-       34,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-@@ -1697,126 +1756,90 @@ static const yytype_int16 yycheck[] =
-       74,    -1,    76,    77,    78,    79,    80,    81,    -1,    -1,
-       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
--     104,   105,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,   120,     5,     6,     7,
--       8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
--      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
--     154,    -1,   156,    41,    42,    43,    44,    45,    46,    47,
--      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
--      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
--      68,    69,    70,    71,    72,    73,    74,    -1,    76,   193,
--      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,    -1,
-+     104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   121,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--     214,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,     5,     6,     7,     8,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
--      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
--      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    41,
--      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
--      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
--      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
--      72,    73,    74,    -1,    76,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,
--      -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
--       6,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
--      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
--      -1,    -1,   154,    -1,   156,    41,    42,    43,    44,    45,
--      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
--      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
--      66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
--      76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
-+      -1,   155,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   216,    -1,    -1,    -1,   104,   105,
--     106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
-+     194,    -1,    -1,    -1,    -1,    -1,   200,   201,   202,   203,
-+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-+      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-+      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
-+      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
--     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
--      -1,    -1,    -1,   199,   200,   201,   202,     3,     4,     5,
--       6,     7,     8,    -1,    -1,    -1,    -1,    -1,   214,    -1,
--      -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
--      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
--      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-+      -1,    -1,    -1,    -1,    -1,   155,    -1,   157,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
-+       6,     7,     8,    -1,   194,    -1,    -1,   197,    -1,    -1,
-+     200,   201,   202,   203,    20,    21,    22,    23,    24,    25,
-+      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,
-       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    -1,
-       76,    77,    78,    79,    80,    81,    -1,    -1,    84,    85,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
-      106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,
--     156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
-+      -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,     5,     6,     7,     8,    -1,   193,    -1,    -1,
--      -1,    -1,    -1,   199,   200,   201,   202,    20,    21,    22,
--      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,
--      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
--      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
--      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
--      73,    74,    -1,    76,    77,    78,    79,    80,    81,    -1,
--      -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,     5,     6,     7,     8,    -1,   194,    -1,
-+      -1,   197,    -1,    -1,   200,   201,   202,   203,    20,    21,
-+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
-+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-+      72,    73,    74,    -1,    76,    77,    78,    79,    80,    81,
-+      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,
--     193,    -1,    -1,   196,    -1,    -1,   199,   200,   201,   202,
--      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
--      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
--      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
--      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
--      70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
--      80,    81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,
-+      -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,
-+      -1,    -1,    -1,   155,    -1,   157,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,
--       7,     8,    -1,   193,    -1,    -1,   196,    -1,    -1,   199,
--     200,   201,   202,    20,    21,    22,    23,    24,    25,    26,
--      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    46,
--      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
--      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
--      67,    68,    69,    70,    71,    72,    73,    74,    -1,    76,
--      77,    78,    79,    80,    81,    -1,    -1,    84,    85,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,
-+       8,    -1,   194,    -1,    -1,   197,    -1,    -1,   200,   201,
-+     202,   203,    20,    21,    22,    23,    24,    25,    26,    27,
-+      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    41,    42,    43,    44,    45,    46,    47,
-+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-+      68,    69,    70,    71,    72,    73,    74,    -1,    76,    77,
-+      78,    79,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,
-+      -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,    -1,   157,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,     5,     6,     7,     8,    -1,   193,    -1,    -1,   196,
--      -1,    -1,   199,   200,   201,   202,    20,    21,    22,    23,
-+      -1,     5,     6,     7,     8,    -1,   194,    -1,    -1,    -1,
-+      -1,    -1,   200,   201,   202,   203,    20,    21,    22,    23,
-       24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-@@ -1830,117 +1853,99 @@ static const yytype_int16 yycheck[] =
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--     154,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,   155,    -1,   157,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,     5,     6,     7,     8,    -1,   193,
--      -1,    -1,    -1,    -1,    -1,   199,   200,   201,   202,    20,
-+      -1,    -1,    -1,     3,     4,     5,     6,     7,     8,    -1,
-+     194,    -1,    -1,    -1,    -1,    -1,   200,   201,   202,   203,
-+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
-+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-+      70,    71,    72,    73,    74,    -1,    76,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,   103,   104,   105,   106,    -1,   108,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
-+     120,   121,     5,     6,     7,     8,    -1,    -1,    -1,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
-+      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
-+      -1,    -1,    -1,    -1,    -1,   155,    -1,   157,    41,    42,
-+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-+      73,    74,    -1,    76,     5,     6,     7,     8,    81,    -1,
-+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
-       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
--      31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-+      31,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,    -1,
-       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
--      71,    72,    73,    74,    -1,    76,    77,    78,    79,    80,
--      81,    -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   104,   105,   106,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
--       8,    -1,   193,    -1,    -1,    -1,    -1,    -1,   199,   200,
--     201,   202,    20,    21,    22,    23,    24,    25,    26,    27,
--      28,    29,    30,    31,    32,    33,    34,    -1,    36,    37,
--      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
--      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
--      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
--      68,    69,    70,    71,    72,    73,    74,    -1,    76,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,   103,   104,   105,   106,    -1,
--     108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
--     118,   119,   120,     5,     6,     7,     8,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
--      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
--      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156,    41,
--      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
--      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
--      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
--      72,    73,    74,    -1,    76,     5,     6,     7,     8,    81,
--      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
--      30,    31,   104,   105,   106,    -1,    -1,    -1,    -1,    -1,
--      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
--      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
--      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
--      70,    71,    72,    73,    74,    -1,    76,     5,     6,     7,
--       8,    -1,   154,    -1,   156,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
--      28,    29,    30,    31,   104,   105,   106,    -1,    -1,    -1,
--      -1,    -1,    -1,    41,    42,    43,    44,    45,    46,    47,
--      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
--      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
--      68,    69,    70,    71,    72,    73,    74,    -1,    76,    -1,
--      -1,    -1,    -1,    -1,   154,    -1,   156,    -1,    -1,    -1,
-+      71,    72,    73,    74,    -1,    76,     5,     6,     7,     8,
-+      -1,    -1,   155,    -1,   157,    -1,    -1,    -1,    -1,    -1,
-+      -1,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-+      29,    30,    31,   104,   105,   106,    -1,    -1,    -1,    -1,
-+      -1,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
-+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-+      69,    70,    71,    72,    73,    74,    -1,    76,    -1,    -1,
-+      -1,    -1,    -1,    -1,   155,    -1,   157,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--      -1,    -1,    -1,    -1,    -1,    -1,   154,    -1,   156
-+      -1,    -1,    -1,    -1,    -1,    -1,   155,    -1,   157
- };
- 
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-    symbol of state STATE-NUM.  */
- static const yytype_uint16 yystos[] =
- {
--       0,   109,   218,   220,    78,     0,   222,   113,   110,   219,
--     223,    76,     3,     4,     5,     6,     7,     8,    20,    21,
-+       0,   109,   219,   221,    78,     0,   223,   113,   110,   220,
-+     224,    76,     3,     4,     5,     6,     7,     8,    20,    21,
-       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-       32,    33,    34,    36,    37,    38,    39,    40,    41,    42,
-       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    76,   103,   104,   105,   106,   108,   116,   117,
--     118,   119,   120,   154,   156,   221,   224,   254,   255,   256,
--     257,   258,   263,   264,   265,   266,   269,   271,   272,   273,
--     274,   275,   276,   277,   278,   302,   303,   112,    33,    34,
--      37,    76,   215,    76,   269,   272,   277,   113,   113,   113,
--     113,   193,   302,   214,   215,   289,   194,   198,     4,    33,
--      34,    35,   260,   261,   270,   198,   214,    76,   272,   272,
--     273,   195,   274,    76,   215,   273,   279,   280,   272,   274,
--      76,   267,   268,     9,    10,    11,    13,    14,    15,    16,
--      17,    18,    19,    75,    76,    77,    78,    79,    80,    81,
--      84,    85,   193,   199,   200,   201,   202,   214,   215,   216,
--     225,   226,   227,   229,   230,   231,   232,   233,   234,   235,
--     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
--     246,   247,   248,   249,   250,   252,   254,   255,   273,   284,
--     285,   286,   287,   290,   291,   292,   295,   296,   297,   301,
--     260,   259,   262,   273,   261,    76,   193,   195,   213,   196,
--     236,   249,   253,   273,   113,   279,    76,   281,   282,   216,
--     280,   214,   213,   194,   198,   214,   214,   285,   193,   193,
--     214,   214,   252,   193,   252,   212,   193,   236,   236,   252,
--     216,   290,    84,    85,   195,   197,   194,   194,   198,    74,
--     250,   193,    93,    94,    95,    96,    97,    98,    99,   100,
--     101,   102,   213,   251,   236,   203,   204,   205,   199,   200,
--      82,    83,    86,    87,   206,   207,    88,    89,   208,   209,
--     210,    90,    92,    91,   211,   198,   214,   216,   285,    76,
--     259,   262,   195,   213,   196,   253,   250,   283,   196,   216,
--     195,   198,   214,    78,   268,    75,   284,   291,   298,   252,
--     214,   252,   212,   103,   252,   265,   294,   194,   216,   228,
--     252,    76,   231,   250,   250,   236,   236,   236,   238,   238,
--     239,   239,   240,   240,   240,   240,   241,   241,   242,   243,
--     244,   245,   246,   247,   252,   250,   195,   196,   253,   283,
--     213,   196,   253,   282,   193,   294,   299,   300,   194,   194,
--      76,   194,   196,   212,   253,   213,   196,   283,   213,   196,
--     252,   214,   194,   285,   293,   287,   213,   286,   288,   289,
--     250,   196,   283,   213,   283,   194,   252,   288,    12,   283,
--     283,   214,   285
-+     118,   119,   120,   121,   155,   157,   222,   225,   255,   256,
-+     257,   258,   259,   264,   265,   266,   267,   270,   272,   273,
-+     274,   275,   276,   277,   278,   279,   303,   304,   112,    33,
-+      34,    37,    76,   216,    76,   270,   273,   278,   113,   113,
-+     113,   113,   113,   194,   303,   215,   216,   290,   195,   199,
-+       4,    33,    34,    35,   261,   262,   271,   199,   215,    76,
-+     273,   273,   274,   196,   275,    76,   216,   274,   280,   281,
-+     273,   275,    76,   268,   269,     9,    10,    11,    13,    14,
-+      15,    16,    17,    18,    19,    75,    76,    77,    78,    79,
-+      80,    81,    84,    85,   194,   200,   201,   202,   203,   215,
-+     216,   217,   226,   227,   228,   230,   231,   232,   233,   234,
-+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-+     245,   246,   247,   248,   249,   250,   251,   253,   255,   256,
-+     274,   285,   286,   287,   288,   291,   292,   293,   296,   297,
-+     298,   302,   261,   260,   263,   274,   262,    76,   194,   196,
-+     214,   197,   237,   250,   254,   274,   113,   280,    76,   282,
-+     283,   217,   281,   215,   214,   195,   199,   215,   215,   286,
-+     194,   194,   215,   215,   253,   194,   253,   213,   194,   237,
-+     237,   253,   217,   291,    84,    85,   196,   198,   195,   195,
-+     199,    74,   251,   194,    93,    94,    95,    96,    97,    98,
-+      99,   100,   101,   102,   214,   252,   237,   204,   205,   206,
-+     200,   201,    82,    83,    86,    87,   207,   208,    88,    89,
-+     209,   210,   211,    90,    92,    91,   212,   199,   215,   217,
-+     286,    76,   260,   263,   196,   214,   197,   254,   251,   284,
-+     197,   217,   196,   199,   215,    78,   269,    75,   285,   292,
-+     299,   253,   215,   253,   213,   103,   253,   266,   295,   195,
-+     217,   229,   253,    76,   232,   251,   251,   237,   237,   237,
-+     239,   239,   240,   240,   241,   241,   241,   241,   242,   242,
-+     243,   244,   245,   246,   247,   248,   253,   251,   196,   197,
-+     254,   284,   214,   197,   254,   283,   194,   295,   300,   301,
-+     195,   195,    76,   195,   197,   213,   254,   214,   197,   284,
-+     214,   197,   253,   215,   195,   286,   294,   288,   214,   287,
-+     289,   290,   251,   197,   284,   214,   284,   195,   253,   289,
-+      12,   284,   284,   215,   286
- };
- 
- #define yyerrok		(yyerrstatus = 0)
-@@ -2631,7 +2636,7 @@ YYLTYPE yylloc;
- }
- 
- /* Line 1251 of yacc.c  */
--#line 2635 "glsl_parser.cpp"
-+#line 2640 "glsl_parser.cpp"
-   yylsp[0] = yylloc;
- 
-   goto yysetstate;
-@@ -2819,7 +2824,7 @@ yyreduce:
-         case 2:
- 
- /* Line 1464 of yacc.c  */
--#line 212 "glsl_parser.ypp"
-+#line 213 "glsl_parser.ypp"
-     {
- 	   _mesa_glsl_initialize_types(state);
- 	;}
-@@ -2828,7 +2833,7 @@ yyreduce:
-   case 5:
- 
- /* Line 1464 of yacc.c  */
--#line 221 "glsl_parser.ypp"
-+#line 222 "glsl_parser.ypp"
-     {
- 	   switch ((yyvsp[(2) - (3)].n)) {
- 	   case 100:
-@@ -2838,6 +2843,11 @@ yyreduce:
- 	   case 130:
- 	      /* FINISHME: Check against implementation support versions. */
- 	      state->language_version = (yyvsp[(2) - (3)].n);
-+	      state->version_string =
-+		 ralloc_asprintf(state, "GLSL%s %d.%02d",
-+				 state->es_shader ? " ES" : "",
-+				 state->language_version / 100,
-+				 state->language_version % 100);
- 	      break;
- 	   default:
- 	      _mesa_glsl_error(& (yylsp[(2) - (3)]), state, "Shading language version"
-@@ -2847,10 +2857,25 @@ yyreduce:
- 	;}
-     break;
- 
--  case 12:
-+  case 10:
- 
- /* Line 1464 of yacc.c  */
--#line 253 "glsl_parser.ypp"
-+#line 251 "glsl_parser.ypp"
-+    {
-+	   if (state->language_version < 120) {
-+	      _mesa_glsl_warning(& (yylsp[(1) - (2)]), state,
-+				 "pragma `invariant(all)' not supported in %s",
-+				 state->version_string);
-+	   } else {
-+	      state->all_invariant = true;
-+	   }
-+	;}
-+    break;
-+
-+  case 13:
-+
-+/* Line 1464 of yacc.c  */
-+#line 269 "glsl_parser.ypp"
-     {
- 	   if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) {
- 	      YYERROR;
-@@ -2858,36 +2883,36 @@ yyreduce:
- 	;}
-     break;
- 
--  case 13:
-+  case 14:
- 
- /* Line 1464 of yacc.c  */
--#line 262 "glsl_parser.ypp"
-+#line 278 "glsl_parser.ypp"
-     {
--	   /* FINISHME: The NULL test is only required because 'precision'
--	    * FINISHME: statements are not yet supported.
-+	   /* FINISHME: The NULL test is required because pragmas are set to
-+	    * FINISHME: NULL. (See production rule for external_declaration.)
- 	    */
- 	   if ((yyvsp[(1) - (1)].node) != NULL)
- 	      state->translation_unit.push_tail(& (yyvsp[(1) - (1)].node)->link);
- 	;}
-     break;
- 
--  case 14:
-+  case 15:
- 
- /* Line 1464 of yacc.c  */
--#line 270 "glsl_parser.ypp"
-+#line 286 "glsl_parser.ypp"
-     {
--	   /* FINISHME: The NULL test is only required because 'precision'
--	    * FINISHME: statements are not yet supported.
-+	   /* FINISHME: The NULL test is required because pragmas are set to
-+	    * FINISHME: NULL. (See production rule for external_declaration.)
- 	    */
- 	   if ((yyvsp[(2) - (2)].node) != NULL)
- 	      state->translation_unit.push_tail(& (yyvsp[(2) - (2)].node)->link);
- 	;}
-     break;
- 
--  case 16:
-+  case 17:
- 
- /* Line 1464 of yacc.c  */
--#line 285 "glsl_parser.ypp"
-+#line 301 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
-@@ -2896,10 +2921,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 17:
-+  case 18:
- 
- /* Line 1464 of yacc.c  */
--#line 292 "glsl_parser.ypp"
-+#line 308 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
-@@ -2908,10 +2933,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 18:
-+  case 19:
- 
- /* Line 1464 of yacc.c  */
--#line 299 "glsl_parser.ypp"
-+#line 315 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
-@@ -2920,10 +2945,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 19:
-+  case 20:
- 
- /* Line 1464 of yacc.c  */
--#line 306 "glsl_parser.ypp"
-+#line 322 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
-@@ -2932,10 +2957,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 20:
-+  case 21:
- 
- /* Line 1464 of yacc.c  */
--#line 313 "glsl_parser.ypp"
-+#line 329 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
-@@ -2944,19 +2969,19 @@ yyreduce:
- 	;}
-     break;
- 
--  case 21:
-+  case 22:
- 
- /* Line 1464 of yacc.c  */
--#line 320 "glsl_parser.ypp"
-+#line 336 "glsl_parser.ypp"
-     {
- 	   (yyval.expression) = (yyvsp[(2) - (3)].expression);
- 	;}
-     break;
- 
--  case 23:
-+  case 24:
- 
- /* Line 1464 of yacc.c  */
--#line 328 "glsl_parser.ypp"
-+#line 344 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL);
-@@ -2964,19 +2989,19 @@ yyreduce:
- 	;}
-     break;
- 
--  case 24:
-+  case 25:
- 
- /* Line 1464 of yacc.c  */
--#line 334 "glsl_parser.ypp"
-+#line 350 "glsl_parser.ypp"
-     {
- 	   (yyval.expression) = (yyvsp[(1) - (1)].expression);
- 	;}
-     break;
- 
--  case 25:
-+  case 26:
- 
- /* Line 1464 of yacc.c  */
--#line 338 "glsl_parser.ypp"
-+#line 354 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL);
-@@ -2985,10 +3010,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 26:
-+  case 27:
- 
- /* Line 1464 of yacc.c  */
--#line 345 "glsl_parser.ypp"
-+#line 361 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL);
-@@ -2996,10 +3021,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 27:
-+  case 28:
- 
- /* Line 1464 of yacc.c  */
--#line 351 "glsl_parser.ypp"
-+#line 367 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL);
-@@ -3007,10 +3032,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 31:
-+  case 32:
- 
- /* Line 1464 of yacc.c  */
--#line 369 "glsl_parser.ypp"
-+#line 385 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
-@@ -3018,10 +3043,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 36:
-+  case 37:
- 
- /* Line 1464 of yacc.c  */
--#line 388 "glsl_parser.ypp"
-+#line 404 "glsl_parser.ypp"
-     {
- 	   (yyval.expression) = (yyvsp[(1) - (2)].expression);
- 	   (yyval.expression)->set_location(yylloc);
-@@ -3029,10 +3054,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 37:
-+  case 38:
- 
- /* Line 1464 of yacc.c  */
--#line 394 "glsl_parser.ypp"
-+#line 410 "glsl_parser.ypp"
-     {
- 	   (yyval.expression) = (yyvsp[(1) - (3)].expression);
- 	   (yyval.expression)->set_location(yylloc);
-@@ -3040,10 +3065,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 39:
-+  case 40:
- 
- /* Line 1464 of yacc.c  */
--#line 410 "glsl_parser.ypp"
-+#line 426 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier));
-@@ -3051,10 +3076,10 @@ yyreduce:
-    	;}
-     break;
- 
--  case 40:
-+  case 41:
- 
- /* Line 1464 of yacc.c  */
--#line 416 "glsl_parser.ypp"
-+#line 432 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
-@@ -3063,10 +3088,10 @@ yyreduce:
-    	;}
-     break;
- 
--  case 41:
-+  case 42:
- 
- /* Line 1464 of yacc.c  */
--#line 423 "glsl_parser.ypp"
-+#line 439 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier));
-@@ -3075,10 +3100,10 @@ yyreduce:
-    	;}
-     break;
- 
--  case 43:
-+  case 44:
- 
- /* Line 1464 of yacc.c  */
--#line 435 "glsl_parser.ypp"
-+#line 451 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL);
-@@ -3086,10 +3111,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 44:
-+  case 45:
- 
- /* Line 1464 of yacc.c  */
--#line 441 "glsl_parser.ypp"
-+#line 457 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL);
-@@ -3097,10 +3122,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 45:
-+  case 46:
- 
- /* Line 1464 of yacc.c  */
--#line 447 "glsl_parser.ypp"
-+#line 463 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL);
-@@ -3108,38 +3133,38 @@ yyreduce:
- 	;}
-     break;
- 
--  case 46:
-+  case 47:
- 
- /* Line 1464 of yacc.c  */
--#line 456 "glsl_parser.ypp"
-+#line 472 "glsl_parser.ypp"
-     { (yyval.n) = ast_plus; ;}
-     break;
- 
--  case 47:
-+  case 48:
- 
- /* Line 1464 of yacc.c  */
--#line 457 "glsl_parser.ypp"
-+#line 473 "glsl_parser.ypp"
-     { (yyval.n) = ast_neg; ;}
-     break;
- 
--  case 48:
-+  case 49:
- 
- /* Line 1464 of yacc.c  */
--#line 458 "glsl_parser.ypp"
-+#line 474 "glsl_parser.ypp"
-     { (yyval.n) = ast_logic_not; ;}
-     break;
- 
--  case 49:
-+  case 50:
- 
- /* Line 1464 of yacc.c  */
--#line 459 "glsl_parser.ypp"
-+#line 475 "glsl_parser.ypp"
-     { (yyval.n) = ast_bit_not; ;}
-     break;
- 
--  case 51:
-+  case 52:
- 
- /* Line 1464 of yacc.c  */
--#line 465 "glsl_parser.ypp"
-+#line 481 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3147,10 +3172,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 52:
-+  case 53:
- 
- /* Line 1464 of yacc.c  */
--#line 471 "glsl_parser.ypp"
-+#line 487 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3158,10 +3183,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 53:
-+  case 54:
- 
- /* Line 1464 of yacc.c  */
--#line 477 "glsl_parser.ypp"
-+#line 493 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3169,10 +3194,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 55:
-+  case 56:
- 
- /* Line 1464 of yacc.c  */
--#line 487 "glsl_parser.ypp"
-+#line 503 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3180,10 +3205,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 56:
-+  case 57:
- 
- /* Line 1464 of yacc.c  */
--#line 493 "glsl_parser.ypp"
-+#line 509 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3191,10 +3216,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 58:
-+  case 59:
- 
- /* Line 1464 of yacc.c  */
--#line 503 "glsl_parser.ypp"
-+#line 519 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3202,10 +3227,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 59:
-+  case 60:
- 
- /* Line 1464 of yacc.c  */
--#line 509 "glsl_parser.ypp"
-+#line 525 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3213,10 +3238,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 61:
-+  case 62:
- 
- /* Line 1464 of yacc.c  */
--#line 519 "glsl_parser.ypp"
-+#line 535 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3224,10 +3249,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 62:
-+  case 63:
- 
- /* Line 1464 of yacc.c  */
--#line 525 "glsl_parser.ypp"
-+#line 541 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3235,10 +3260,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 63:
-+  case 64:
- 
- /* Line 1464 of yacc.c  */
--#line 531 "glsl_parser.ypp"
-+#line 547 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3246,10 +3271,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 64:
-+  case 65:
- 
- /* Line 1464 of yacc.c  */
--#line 537 "glsl_parser.ypp"
-+#line 553 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3257,10 +3282,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 66:
-+  case 67:
- 
- /* Line 1464 of yacc.c  */
--#line 547 "glsl_parser.ypp"
-+#line 563 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3268,10 +3293,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 67:
-+  case 68:
- 
- /* Line 1464 of yacc.c  */
--#line 553 "glsl_parser.ypp"
-+#line 569 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3279,10 +3304,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 69:
-+  case 70:
- 
- /* Line 1464 of yacc.c  */
--#line 563 "glsl_parser.ypp"
-+#line 579 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3290,10 +3315,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 71:
-+  case 72:
- 
- /* Line 1464 of yacc.c  */
--#line 573 "glsl_parser.ypp"
-+#line 589 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3301,10 +3326,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 73:
-+  case 74:
- 
- /* Line 1464 of yacc.c  */
--#line 583 "glsl_parser.ypp"
-+#line 599 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3312,10 +3337,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 75:
-+  case 76:
- 
- /* Line 1464 of yacc.c  */
--#line 593 "glsl_parser.ypp"
-+#line 609 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3323,10 +3348,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 77:
-+  case 78:
- 
- /* Line 1464 of yacc.c  */
--#line 603 "glsl_parser.ypp"
-+#line 619 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3334,10 +3359,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 79:
-+  case 80:
- 
- /* Line 1464 of yacc.c  */
--#line 613 "glsl_parser.ypp"
-+#line 629 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
-@@ -3345,10 +3370,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 81:
-+  case 82:
- 
- /* Line 1464 of yacc.c  */
--#line 623 "glsl_parser.ypp"
-+#line 639 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[(1) - (5)].expression), (yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].expression));
-@@ -3356,10 +3381,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 83:
-+  case 84:
- 
- /* Line 1464 of yacc.c  */
--#line 633 "glsl_parser.ypp"
-+#line 649 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.expression) = new(ctx) ast_expression((yyvsp[(2) - (3)].n), (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL);
-@@ -3367,96 +3392,96 @@ yyreduce:
- 	;}
-     break;
- 
--  case 84:
-+  case 85:
- 
- /* Line 1464 of yacc.c  */
--#line 641 "glsl_parser.ypp"
-+#line 657 "glsl_parser.ypp"
-     { (yyval.n) = ast_assign; ;}
-     break;
- 
--  case 85:
-+  case 86:
- 
- /* Line 1464 of yacc.c  */
--#line 642 "glsl_parser.ypp"
-+#line 658 "glsl_parser.ypp"
-     { (yyval.n) = ast_mul_assign; ;}
-     break;
- 
--  case 86:
-+  case 87:
- 
- /* Line 1464 of yacc.c  */
--#line 643 "glsl_parser.ypp"
-+#line 659 "glsl_parser.ypp"
-     { (yyval.n) = ast_div_assign; ;}
-     break;
- 
--  case 87:
-+  case 88:
- 
- /* Line 1464 of yacc.c  */
--#line 644 "glsl_parser.ypp"
-+#line 660 "glsl_parser.ypp"
-     { (yyval.n) = ast_mod_assign; ;}
-     break;
- 
--  case 88:
-+  case 89:
- 
- /* Line 1464 of yacc.c  */
--#line 645 "glsl_parser.ypp"
-+#line 661 "glsl_parser.ypp"
-     { (yyval.n) = ast_add_assign; ;}
-     break;
- 
--  case 89:
-+  case 90:
- 
- /* Line 1464 of yacc.c  */
--#line 646 "glsl_parser.ypp"
-+#line 662 "glsl_parser.ypp"
-     { (yyval.n) = ast_sub_assign; ;}
-     break;
- 
--  case 90:
-+  case 91:
- 
- /* Line 1464 of yacc.c  */
--#line 647 "glsl_parser.ypp"
-+#line 663 "glsl_parser.ypp"
-     { (yyval.n) = ast_ls_assign; ;}
-     break;
- 
--  case 91:
-+  case 92:
- 
- /* Line 1464 of yacc.c  */
--#line 648 "glsl_parser.ypp"
-+#line 664 "glsl_parser.ypp"
-     { (yyval.n) = ast_rs_assign; ;}
-     break;
- 
--  case 92:
-+  case 93:
- 
- /* Line 1464 of yacc.c  */
--#line 649 "glsl_parser.ypp"
-+#line 665 "glsl_parser.ypp"
-     { (yyval.n) = ast_and_assign; ;}
-     break;
- 
--  case 93:
-+  case 94:
- 
- /* Line 1464 of yacc.c  */
--#line 650 "glsl_parser.ypp"
-+#line 666 "glsl_parser.ypp"
-     { (yyval.n) = ast_xor_assign; ;}
-     break;
- 
--  case 94:
-+  case 95:
- 
- /* Line 1464 of yacc.c  */
--#line 651 "glsl_parser.ypp"
-+#line 667 "glsl_parser.ypp"
-     { (yyval.n) = ast_or_assign; ;}
-     break;
- 
--  case 95:
-+  case 96:
- 
- /* Line 1464 of yacc.c  */
--#line 656 "glsl_parser.ypp"
-+#line 672 "glsl_parser.ypp"
-     {
- 	   (yyval.expression) = (yyvsp[(1) - (1)].expression);
- 	;}
-     break;
- 
--  case 96:
-+  case 97:
- 
- /* Line 1464 of yacc.c  */
--#line 660 "glsl_parser.ypp"
-+#line 676 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) {
-@@ -3471,64 +3496,59 @@ yyreduce:
- 	;}
-     break;
- 
--  case 98:
-+  case 99:
- 
- /* Line 1464 of yacc.c  */
--#line 680 "glsl_parser.ypp"
-+#line 696 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = (yyvsp[(1) - (2)].function);
- 	;}
-     break;
- 
--  case 99:
-+  case 100:
- 
- /* Line 1464 of yacc.c  */
--#line 684 "glsl_parser.ypp"
-+#line 700 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = (yyvsp[(1) - (2)].declarator_list);
- 	;}
-     break;
- 
--  case 100:
-+  case 101:
- 
- /* Line 1464 of yacc.c  */
--#line 688 "glsl_parser.ypp"
-+#line 704 "glsl_parser.ypp"
-     {
--	   if (((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_float)
--	       && ((yyvsp[(3) - (4)].type_specifier)->type_specifier != ast_int)) {
--	      _mesa_glsl_error(& (yylsp[(3) - (4)]), state, "global precision qualifier can "
--			       "only be applied to `int' or `float'\n");
--	      YYERROR;
--	   }
--
--	   (yyval.node) = NULL; /* FINISHME */
-+	   (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n);
-+	   (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true;
-+	   (yyval.node) = (yyvsp[(3) - (4)].type_specifier);
- 	;}
-     break;
- 
--  case 104:
-+  case 105:
- 
- /* Line 1464 of yacc.c  */
--#line 711 "glsl_parser.ypp"
-+#line 722 "glsl_parser.ypp"
-     {
- 	   (yyval.function) = (yyvsp[(1) - (2)].function);
- 	   (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link);
- 	;}
-     break;
- 
--  case 105:
-+  case 106:
- 
- /* Line 1464 of yacc.c  */
--#line 716 "glsl_parser.ypp"
-+#line 727 "glsl_parser.ypp"
-     {
- 	   (yyval.function) = (yyvsp[(1) - (3)].function);
- 	   (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link);
- 	;}
-     break;
- 
--  case 106:
-+  case 107:
- 
- /* Line 1464 of yacc.c  */
--#line 724 "glsl_parser.ypp"
-+#line 735 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.function) = new(ctx) ast_function();
-@@ -3538,10 +3558,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 107:
-+  case 108:
- 
- /* Line 1464 of yacc.c  */
--#line 735 "glsl_parser.ypp"
-+#line 746 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-@@ -3553,10 +3573,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 108:
-+  case 109:
- 
- /* Line 1464 of yacc.c  */
--#line 745 "glsl_parser.ypp"
-+#line 756 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-@@ -3570,10 +3590,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 109:
-+  case 110:
- 
- /* Line 1464 of yacc.c  */
--#line 760 "glsl_parser.ypp"
-+#line 771 "glsl_parser.ypp"
-     {
- 	   (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
- 
-@@ -3582,20 +3602,20 @@ yyreduce:
- 	;}
-     break;
- 
--  case 110:
-+  case 111:
- 
- /* Line 1464 of yacc.c  */
--#line 767 "glsl_parser.ypp"
-+#line 778 "glsl_parser.ypp"
-     {
- 	   (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator);
- 	   (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier);
- 	;}
-     break;
- 
--  case 111:
-+  case 112:
- 
- /* Line 1464 of yacc.c  */
--#line 772 "glsl_parser.ypp"
-+#line 783 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyvsp[(1) - (3)].type_qualifier).flags.i |= (yyvsp[(2) - (3)].type_qualifier).flags.i;
-@@ -3608,10 +3628,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 112:
-+  case 113:
- 
- /* Line 1464 of yacc.c  */
--#line 783 "glsl_parser.ypp"
-+#line 794 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
-@@ -3622,39 +3642,39 @@ yyreduce:
- 	;}
-     break;
- 
--  case 113:
-+  case 114:
- 
- /* Line 1464 of yacc.c  */
--#line 795 "glsl_parser.ypp"
-+#line 806 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	;}
-     break;
- 
--  case 114:
-+  case 115:
- 
- /* Line 1464 of yacc.c  */
--#line 799 "glsl_parser.ypp"
-+#line 810 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.in = 1;
- 	;}
-     break;
- 
--  case 115:
-+  case 116:
- 
- /* Line 1464 of yacc.c  */
--#line 804 "glsl_parser.ypp"
-+#line 815 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.out = 1;
- 	;}
-     break;
- 
--  case 116:
-+  case 117:
- 
- /* Line 1464 of yacc.c  */
--#line 809 "glsl_parser.ypp"
-+#line 820 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.in = 1;
-@@ -3662,10 +3682,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 119:
-+  case 120:
- 
- /* Line 1464 of yacc.c  */
--#line 823 "glsl_parser.ypp"
-+#line 834 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL);
-@@ -3676,10 +3696,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 120:
-+  case 121:
- 
- /* Line 1464 of yacc.c  */
--#line 832 "glsl_parser.ypp"
-+#line 843 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL);
-@@ -3690,10 +3710,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 121:
-+  case 122:
- 
- /* Line 1464 of yacc.c  */
--#line 841 "glsl_parser.ypp"
-+#line 852 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL);
-@@ -3704,10 +3724,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 122:
-+  case 123:
- 
- /* Line 1464 of yacc.c  */
--#line 850 "glsl_parser.ypp"
-+#line 861 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression));
-@@ -3718,10 +3738,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 123:
-+  case 124:
- 
- /* Line 1464 of yacc.c  */
--#line 859 "glsl_parser.ypp"
-+#line 870 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (8)].identifier), true, (yyvsp[(5) - (8)].expression), (yyvsp[(8) - (8)].expression));
-@@ -3732,10 +3752,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 124:
-+  case 125:
- 
- /* Line 1464 of yacc.c  */
--#line 868 "glsl_parser.ypp"
-+#line 879 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression));
-@@ -3746,10 +3766,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 125:
-+  case 126:
- 
- /* Line 1464 of yacc.c  */
--#line 881 "glsl_parser.ypp"
-+#line 892 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) {
-@@ -3762,10 +3782,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 126:
-+  case 127:
- 
- /* Line 1464 of yacc.c  */
--#line 892 "glsl_parser.ypp"
-+#line 903 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
-@@ -3776,10 +3796,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 127:
-+  case 128:
- 
- /* Line 1464 of yacc.c  */
--#line 901 "glsl_parser.ypp"
-+#line 912 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL);
-@@ -3790,10 +3810,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 128:
-+  case 129:
- 
- /* Line 1464 of yacc.c  */
--#line 910 "glsl_parser.ypp"
-+#line 921 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL);
-@@ -3804,10 +3824,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 129:
-+  case 130:
- 
- /* Line 1464 of yacc.c  */
--#line 919 "glsl_parser.ypp"
-+#line 930 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression));
-@@ -3818,10 +3838,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 130:
-+  case 131:
- 
- /* Line 1464 of yacc.c  */
--#line 928 "glsl_parser.ypp"
-+#line 939 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (7)].identifier), true, (yyvsp[(4) - (7)].expression), (yyvsp[(7) - (7)].expression));
-@@ -3832,10 +3852,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 131:
-+  case 132:
- 
- /* Line 1464 of yacc.c  */
--#line 937 "glsl_parser.ypp"
-+#line 948 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
-@@ -3846,10 +3866,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 132:
-+  case 133:
- 
- /* Line 1464 of yacc.c  */
--#line 946 "glsl_parser.ypp"
-+#line 957 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL);
-@@ -3862,10 +3882,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 133:
-+  case 134:
- 
- /* Line 1464 of yacc.c  */
--#line 960 "glsl_parser.ypp"
-+#line 971 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
-@@ -3874,10 +3894,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 134:
-+  case 135:
- 
- /* Line 1464 of yacc.c  */
--#line 967 "glsl_parser.ypp"
-+#line 978 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
-@@ -3887,19 +3907,19 @@ yyreduce:
- 	;}
-     break;
- 
--  case 135:
-+  case 136:
- 
- /* Line 1464 of yacc.c  */
--#line 978 "glsl_parser.ypp"
-+#line 989 "glsl_parser.ypp"
-     {
- 	  (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier);
- 	;}
-     break;
- 
--  case 137:
-+  case 138:
- 
- /* Line 1464 of yacc.c  */
--#line 986 "glsl_parser.ypp"
-+#line 997 "glsl_parser.ypp"
-     {
- 	   if (((yyvsp[(1) - (3)].type_qualifier).flags.i & (yyvsp[(3) - (3)].type_qualifier).flags.i) != 0) {
- 	      _mesa_glsl_error(& (yylsp[(3) - (3)]), state,
-@@ -3917,10 +3937,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 138:
-+  case 139:
- 
- /* Line 1464 of yacc.c  */
--#line 1005 "glsl_parser.ypp"
-+#line 1016 "glsl_parser.ypp"
-     {
- 	   bool got_one = false;
- 
-@@ -3951,10 +3971,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 139:
-+  case 140:
- 
- /* Line 1464 of yacc.c  */
--#line 1034 "glsl_parser.ypp"
-+#line 1045 "glsl_parser.ypp"
-     {
- 	   bool got_one = false;
- 
-@@ -3994,80 +4014,80 @@ yyreduce:
- 	;}
-     break;
- 
--  case 140:
-+  case 141:
- 
- /* Line 1464 of yacc.c  */
--#line 1075 "glsl_parser.ypp"
-+#line 1086 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.smooth = 1;
- 	;}
-     break;
- 
--  case 141:
-+  case 142:
- 
- /* Line 1464 of yacc.c  */
--#line 1080 "glsl_parser.ypp"
-+#line 1091 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.flat = 1;
- 	;}
-     break;
- 
--  case 142:
-+  case 143:
- 
- /* Line 1464 of yacc.c  */
--#line 1085 "glsl_parser.ypp"
-+#line 1096 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.noperspective = 1;
- 	;}
-     break;
- 
--  case 143:
-+  case 144:
- 
- /* Line 1464 of yacc.c  */
--#line 1093 "glsl_parser.ypp"
-+#line 1104 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.constant = 1;
- 	;}
-     break;
- 
--  case 146:
-+  case 147:
- 
- /* Line 1464 of yacc.c  */
--#line 1103 "glsl_parser.ypp"
-+#line 1114 "glsl_parser.ypp"
-     {
- 	   (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
- 	   (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
- 	;}
-     break;
- 
--  case 148:
-+  case 149:
- 
- /* Line 1464 of yacc.c  */
--#line 1109 "glsl_parser.ypp"
-+#line 1120 "glsl_parser.ypp"
-     {
- 	   (yyval.type_qualifier) = (yyvsp[(1) - (2)].type_qualifier);
- 	   (yyval.type_qualifier).flags.i |= (yyvsp[(2) - (2)].type_qualifier).flags.i;
- 	;}
-     break;
- 
--  case 149:
-+  case 150:
- 
- /* Line 1464 of yacc.c  */
--#line 1114 "glsl_parser.ypp"
-+#line 1125 "glsl_parser.ypp"
-     {
- 	   (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier);
- 	   (yyval.type_qualifier).flags.q.invariant = 1;
- 	;}
-     break;
- 
--  case 150:
-+  case 151:
- 
- /* Line 1464 of yacc.c  */
--#line 1119 "glsl_parser.ypp"
-+#line 1130 "glsl_parser.ypp"
-     {
- 	   (yyval.type_qualifier) = (yyvsp[(2) - (3)].type_qualifier);
- 	   (yyval.type_qualifier).flags.i |= (yyvsp[(3) - (3)].type_qualifier).flags.i;
-@@ -4075,50 +4095,50 @@ yyreduce:
- 	;}
-     break;
- 
--  case 151:
-+  case 152:
- 
- /* Line 1464 of yacc.c  */
--#line 1125 "glsl_parser.ypp"
-+#line 1136 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.invariant = 1;
- 	;}
-     break;
- 
--  case 152:
-+  case 153:
- 
- /* Line 1464 of yacc.c  */
--#line 1133 "glsl_parser.ypp"
-+#line 1144 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.constant = 1;
- 	;}
-     break;
- 
--  case 153:
-+  case 154:
- 
- /* Line 1464 of yacc.c  */
--#line 1138 "glsl_parser.ypp"
-+#line 1149 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.attribute = 1;
- 	;}
-     break;
- 
--  case 154:
-+  case 155:
- 
- /* Line 1464 of yacc.c  */
--#line 1143 "glsl_parser.ypp"
-+#line 1154 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.varying = 1;
- 	;}
-     break;
- 
--  case 155:
-+  case 156:
- 
- /* Line 1464 of yacc.c  */
--#line 1148 "glsl_parser.ypp"
-+#line 1159 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.centroid = 1;
-@@ -4126,50 +4146,50 @@ yyreduce:
- 	;}
-     break;
- 
--  case 156:
-+  case 157:
- 
- /* Line 1464 of yacc.c  */
--#line 1154 "glsl_parser.ypp"
-+#line 1165 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.in = 1;
- 	;}
-     break;
- 
--  case 157:
-+  case 158:
- 
- /* Line 1464 of yacc.c  */
--#line 1159 "glsl_parser.ypp"
-+#line 1170 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.out = 1;
- 	;}
-     break;
- 
--  case 158:
-+  case 159:
- 
- /* Line 1464 of yacc.c  */
--#line 1164 "glsl_parser.ypp"
-+#line 1175 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.in = 1;
- 	;}
-     break;
- 
--  case 159:
-+  case 160:
- 
- /* Line 1464 of yacc.c  */
--#line 1169 "glsl_parser.ypp"
-+#line 1180 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.centroid = 1; (yyval.type_qualifier).flags.q.out = 1;
- 	;}
-     break;
- 
--  case 160:
-+  case 161:
- 
- /* Line 1464 of yacc.c  */
--#line 1174 "glsl_parser.ypp"
-+#line 1185 "glsl_parser.ypp"
-     {
- 	   memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
- 	   (yyval.type_qualifier).flags.q.uniform = 1;
-@@ -4179,17 +4199,26 @@ yyreduce:
-   case 162:
- 
- /* Line 1464 of yacc.c  */
--#line 1183 "glsl_parser.ypp"
-+#line 1193 "glsl_parser.ypp"
-+    {
-+	   (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier);
-+	;}
-+    break;
-+
-+  case 163:
-+
-+/* Line 1464 of yacc.c  */
-+#line 1197 "glsl_parser.ypp"
-     {
- 	   (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier);
- 	   (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n);
- 	;}
-     break;
- 
--  case 164:
-+  case 165:
- 
- /* Line 1464 of yacc.c  */
--#line 1192 "glsl_parser.ypp"
-+#line 1206 "glsl_parser.ypp"
-     {
- 	   (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier);
- 	   (yyval.type_specifier)->is_array = true;
-@@ -4197,10 +4226,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 165:
-+  case 166:
- 
- /* Line 1464 of yacc.c  */
--#line 1198 "glsl_parser.ypp"
-+#line 1212 "glsl_parser.ypp"
-     {
- 	   (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier);
- 	   (yyval.type_specifier)->is_array = true;
-@@ -4208,10 +4237,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 166:
-+  case 167:
- 
- /* Line 1464 of yacc.c  */
--#line 1207 "glsl_parser.ypp"
-+#line 1221 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n));
-@@ -4219,10 +4248,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 167:
-+  case 168:
- 
- /* Line 1464 of yacc.c  */
--#line 1213 "glsl_parser.ypp"
-+#line 1227 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier));
-@@ -4230,10 +4259,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 168:
-+  case 169:
- 
- /* Line 1464 of yacc.c  */
--#line 1219 "glsl_parser.ypp"
-+#line 1233 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier));
-@@ -4241,418 +4270,415 @@ yyreduce:
- 	;}
-     break;
- 
--  case 169:
-+  case 170:
- 
- /* Line 1464 of yacc.c  */
--#line 1227 "glsl_parser.ypp"
-+#line 1241 "glsl_parser.ypp"
-     { (yyval.n) = ast_void; ;}
-     break;
- 
--  case 170:
-+  case 171:
- 
- /* Line 1464 of yacc.c  */
--#line 1228 "glsl_parser.ypp"
-+#line 1242 "glsl_parser.ypp"
-     { (yyval.n) = ast_float; ;}
-     break;
- 
--  case 171:
-+  case 172:
- 
- /* Line 1464 of yacc.c  */
--#line 1229 "glsl_parser.ypp"
-+#line 1243 "glsl_parser.ypp"
-     { (yyval.n) = ast_int; ;}
-     break;
- 
--  case 172:
-+  case 173:
- 
- /* Line 1464 of yacc.c  */
--#line 1230 "glsl_parser.ypp"
-+#line 1244 "glsl_parser.ypp"
-     { (yyval.n) = ast_uint; ;}
-     break;
- 
--  case 173:
-+  case 174:
- 
- /* Line 1464 of yacc.c  */
--#line 1231 "glsl_parser.ypp"
-+#line 1245 "glsl_parser.ypp"
-     { (yyval.n) = ast_bool; ;}
-     break;
- 
--  case 174:
-+  case 175:
- 
- /* Line 1464 of yacc.c  */
--#line 1232 "glsl_parser.ypp"
-+#line 1246 "glsl_parser.ypp"
-     { (yyval.n) = ast_vec2; ;}
-     break;
- 
--  case 175:
-+  case 176:
- 
- /* Line 1464 of yacc.c  */
--#line 1233 "glsl_parser.ypp"
-+#line 1247 "glsl_parser.ypp"
-     { (yyval.n) = ast_vec3; ;}
-     break;
- 
--  case 176:
-+  case 177:
- 
- /* Line 1464 of yacc.c  */
--#line 1234 "glsl_parser.ypp"
-+#line 1248 "glsl_parser.ypp"
-     { (yyval.n) = ast_vec4; ;}
-     break;
- 
--  case 177:
-+  case 178:
- 
- /* Line 1464 of yacc.c  */
--#line 1235 "glsl_parser.ypp"
-+#line 1249 "glsl_parser.ypp"
-     { (yyval.n) = ast_bvec2; ;}
-     break;
- 
--  case 178:
-+  case 179:
- 
- /* Line 1464 of yacc.c  */
--#line 1236 "glsl_parser.ypp"
-+#line 1250 "glsl_parser.ypp"
-     { (yyval.n) = ast_bvec3; ;}
-     break;
- 
--  case 179:
-+  case 180:
- 
- /* Line 1464 of yacc.c  */
--#line 1237 "glsl_parser.ypp"
-+#line 1251 "glsl_parser.ypp"
-     { (yyval.n) = ast_bvec4; ;}
-     break;
- 
--  case 180:
-+  case 181:
- 
- /* Line 1464 of yacc.c  */
--#line 1238 "glsl_parser.ypp"
-+#line 1252 "glsl_parser.ypp"
-     { (yyval.n) = ast_ivec2; ;}
-     break;
- 
--  case 181:
-+  case 182:
- 
- /* Line 1464 of yacc.c  */
--#line 1239 "glsl_parser.ypp"
-+#line 1253 "glsl_parser.ypp"
-     { (yyval.n) = ast_ivec3; ;}
-     break;
- 
--  case 182:
-+  case 183:
- 
- /* Line 1464 of yacc.c  */
--#line 1240 "glsl_parser.ypp"
-+#line 1254 "glsl_parser.ypp"
-     { (yyval.n) = ast_ivec4; ;}
-     break;
- 
--  case 183:
-+  case 184:
- 
- /* Line 1464 of yacc.c  */
--#line 1241 "glsl_parser.ypp"
-+#line 1255 "glsl_parser.ypp"
-     { (yyval.n) = ast_uvec2; ;}
-     break;
- 
--  case 184:
-+  case 185:
- 
- /* Line 1464 of yacc.c  */
--#line 1242 "glsl_parser.ypp"
-+#line 1256 "glsl_parser.ypp"
-     { (yyval.n) = ast_uvec3; ;}
-     break;
- 
--  case 185:
-+  case 186:
- 
- /* Line 1464 of yacc.c  */
--#line 1243 "glsl_parser.ypp"
-+#line 1257 "glsl_parser.ypp"
-     { (yyval.n) = ast_uvec4; ;}
-     break;
- 
--  case 186:
-+  case 187:
- 
- /* Line 1464 of yacc.c  */
--#line 1244 "glsl_parser.ypp"
-+#line 1258 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat2; ;}
-     break;
- 
--  case 187:
-+  case 188:
- 
- /* Line 1464 of yacc.c  */
--#line 1245 "glsl_parser.ypp"
-+#line 1259 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat2x3; ;}
-     break;
- 
--  case 188:
-+  case 189:
- 
- /* Line 1464 of yacc.c  */
--#line 1246 "glsl_parser.ypp"
-+#line 1260 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat2x4; ;}
-     break;
- 
--  case 189:
-+  case 190:
- 
- /* Line 1464 of yacc.c  */
--#line 1247 "glsl_parser.ypp"
-+#line 1261 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat3x2; ;}
-     break;
- 
--  case 190:
-+  case 191:
- 
- /* Line 1464 of yacc.c  */
--#line 1248 "glsl_parser.ypp"
-+#line 1262 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat3; ;}
-     break;
- 
--  case 191:
-+  case 192:
- 
- /* Line 1464 of yacc.c  */
--#line 1249 "glsl_parser.ypp"
-+#line 1263 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat3x4; ;}
-     break;
- 
--  case 192:
-+  case 193:
- 
- /* Line 1464 of yacc.c  */
--#line 1250 "glsl_parser.ypp"
-+#line 1264 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat4x2; ;}
-     break;
- 
--  case 193:
-+  case 194:
- 
- /* Line 1464 of yacc.c  */
--#line 1251 "glsl_parser.ypp"
-+#line 1265 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat4x3; ;}
-     break;
- 
--  case 194:
-+  case 195:
- 
- /* Line 1464 of yacc.c  */
--#line 1252 "glsl_parser.ypp"
-+#line 1266 "glsl_parser.ypp"
-     { (yyval.n) = ast_mat4; ;}
-     break;
- 
--  case 195:
-+  case 196:
- 
- /* Line 1464 of yacc.c  */
--#line 1253 "glsl_parser.ypp"
-+#line 1267 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler1d; ;}
-     break;
- 
--  case 196:
-+  case 197:
- 
- /* Line 1464 of yacc.c  */
--#line 1254 "glsl_parser.ypp"
-+#line 1268 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2d; ;}
-     break;
- 
--  case 197:
-+  case 198:
- 
- /* Line 1464 of yacc.c  */
--#line 1255 "glsl_parser.ypp"
-+#line 1269 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2drect; ;}
-     break;
- 
--  case 198:
-+  case 199:
- 
- /* Line 1464 of yacc.c  */
--#line 1256 "glsl_parser.ypp"
-+#line 1270 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler3d; ;}
-     break;
- 
--  case 199:
-+  case 200:
- 
- /* Line 1464 of yacc.c  */
--#line 1257 "glsl_parser.ypp"
-+#line 1271 "glsl_parser.ypp"
-     { (yyval.n) = ast_samplercube; ;}
-     break;
- 
--  case 200:
-+  case 201:
- 
- /* Line 1464 of yacc.c  */
--#line 1258 "glsl_parser.ypp"
-+#line 1272 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler1dshadow; ;}
-     break;
- 
--  case 201:
-+  case 202:
- 
- /* Line 1464 of yacc.c  */
--#line 1259 "glsl_parser.ypp"
-+#line 1273 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2dshadow; ;}
-     break;
- 
--  case 202:
-+  case 203:
- 
- /* Line 1464 of yacc.c  */
--#line 1260 "glsl_parser.ypp"
-+#line 1274 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2drectshadow; ;}
-     break;
- 
--  case 203:
-+  case 204:
- 
- /* Line 1464 of yacc.c  */
--#line 1261 "glsl_parser.ypp"
-+#line 1275 "glsl_parser.ypp"
-     { (yyval.n) = ast_samplercubeshadow; ;}
-     break;
- 
--  case 204:
-+  case 205:
- 
- /* Line 1464 of yacc.c  */
--#line 1262 "glsl_parser.ypp"
-+#line 1276 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler1darray; ;}
-     break;
- 
--  case 205:
-+  case 206:
- 
- /* Line 1464 of yacc.c  */
--#line 1263 "glsl_parser.ypp"
-+#line 1277 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2darray; ;}
-     break;
- 
--  case 206:
-+  case 207:
- 
- /* Line 1464 of yacc.c  */
--#line 1264 "glsl_parser.ypp"
-+#line 1278 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler1darrayshadow; ;}
-     break;
- 
--  case 207:
-+  case 208:
- 
- /* Line 1464 of yacc.c  */
--#line 1265 "glsl_parser.ypp"
-+#line 1279 "glsl_parser.ypp"
-     { (yyval.n) = ast_sampler2darrayshadow; ;}
-     break;
- 
--  case 208:
-+  case 209:
- 
- /* Line 1464 of yacc.c  */
--#line 1266 "glsl_parser.ypp"
-+#line 1280 "glsl_parser.ypp"
-     { (yyval.n) = ast_isampler1d; ;}
-     break;
- 
--  case 209:
-+  case 210:
- 
- /* Line 1464 of yacc.c  */
--#line 1267 "glsl_parser.ypp"
-+#line 1281 "glsl_parser.ypp"
-     { (yyval.n) = ast_isampler2d; ;}
-     break;
- 
--  case 210:
-+  case 211:
- 
- /* Line 1464 of yacc.c  */
--#line 1268 "glsl_parser.ypp"
-+#line 1282 "glsl_parser.ypp"
-     { (yyval.n) = ast_isampler3d; ;}
-     break;
- 
--  case 211:
-+  case 212:
- 
- /* Line 1464 of yacc.c  */
--#line 1269 "glsl_parser.ypp"
-+#line 1283 "glsl_parser.ypp"
-     { (yyval.n) = ast_isamplercube; ;}
-     break;
- 
--  case 212:
-+  case 213:
- 
- /* Line 1464 of yacc.c  */
--#line 1270 "glsl_parser.ypp"
-+#line 1284 "glsl_parser.ypp"
-     { (yyval.n) = ast_isampler1darray; ;}
-     break;
- 
--  case 213:
-+  case 214:
- 
- /* Line 1464 of yacc.c  */
--#line 1271 "glsl_parser.ypp"
-+#line 1285 "glsl_parser.ypp"
-     { (yyval.n) = ast_isampler2darray; ;}
-     break;
- 
--  case 214:
-+  case 215:
- 
- /* Line 1464 of yacc.c  */
--#line 1272 "glsl_parser.ypp"
-+#line 1286 "glsl_parser.ypp"
-     { (yyval.n) = ast_usampler1d; ;}
-     break;
- 
--  case 215:
-+  case 216:
- 
- /* Line 1464 of yacc.c  */
--#line 1273 "glsl_parser.ypp"
-+#line 1287 "glsl_parser.ypp"
-     { (yyval.n) = ast_usampler2d; ;}
-     break;
- 
--  case 216:
-+  case 217:
- 
- /* Line 1464 of yacc.c  */
--#line 1274 "glsl_parser.ypp"
-+#line 1288 "glsl_parser.ypp"
-     { (yyval.n) = ast_usampler3d; ;}
-     break;
- 
--  case 217:
-+  case 218:
- 
- /* Line 1464 of yacc.c  */
--#line 1275 "glsl_parser.ypp"
-+#line 1289 "glsl_parser.ypp"
-     { (yyval.n) = ast_usamplercube; ;}
-     break;
- 
--  case 218:
-+  case 219:
- 
- /* Line 1464 of yacc.c  */
--#line 1276 "glsl_parser.ypp"
-+#line 1290 "glsl_parser.ypp"
-     { (yyval.n) = ast_usampler1darray; ;}
-     break;
- 
--  case 219:
-+  case 220:
- 
- /* Line 1464 of yacc.c  */
--#line 1277 "glsl_parser.ypp"
-+#line 1291 "glsl_parser.ypp"
-     { (yyval.n) = ast_usampler2darray; ;}
-     break;
- 
--  case 220:
-+  case 221:
- 
- /* Line 1464 of yacc.c  */
--#line 1281 "glsl_parser.ypp"
-+#line 1295 "glsl_parser.ypp"
-     {
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
- 				         "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     (yyval.n) = ast_precision_high;
- 		  ;}
-     break;
- 
--  case 221:
-+  case 222:
- 
- /* Line 1464 of yacc.c  */
--#line 1292 "glsl_parser.ypp"
-+#line 1305 "glsl_parser.ypp"
-     {
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
- 					 "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     (yyval.n) = ast_precision_medium;
- 		  ;}
-     break;
- 
--  case 222:
-+  case 223:
- 
- /* Line 1464 of yacc.c  */
--#line 1303 "glsl_parser.ypp"
-+#line 1315 "glsl_parser.ypp"
-     {
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& (yylsp[(1) - (1)]), state,
- 					 "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     (yyval.n) = ast_precision_low;
- 		  ;}
-     break;
- 
--  case 223:
-+  case 224:
- 
- /* Line 1464 of yacc.c  */
--#line 1318 "glsl_parser.ypp"
-+#line 1329 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node));
-@@ -4660,10 +4686,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 224:
-+  case 225:
- 
- /* Line 1464 of yacc.c  */
--#line 1324 "glsl_parser.ypp"
-+#line 1335 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node));
-@@ -4671,30 +4697,30 @@ yyreduce:
- 	;}
-     break;
- 
--  case 225:
-+  case 226:
- 
- /* Line 1464 of yacc.c  */
--#line 1333 "glsl_parser.ypp"
-+#line 1344 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list);
- 	   (yyvsp[(1) - (1)].declarator_list)->link.self_link();
- 	;}
-     break;
- 
--  case 226:
-+  case 227:
- 
- /* Line 1464 of yacc.c  */
--#line 1338 "glsl_parser.ypp"
-+#line 1349 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node);
- 	   (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link);
- 	;}
-     break;
- 
--  case 227:
-+  case 228:
- 
- /* Line 1464 of yacc.c  */
--#line 1346 "glsl_parser.ypp"
-+#line 1357 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_fully_specified_type *type = new(ctx) ast_fully_specified_type();
-@@ -4708,30 +4734,30 @@ yyreduce:
- 	;}
-     break;
- 
--  case 228:
-+  case 229:
- 
- /* Line 1464 of yacc.c  */
--#line 1361 "glsl_parser.ypp"
-+#line 1372 "glsl_parser.ypp"
-     {
- 	   (yyval.declaration) = (yyvsp[(1) - (1)].declaration);
- 	   (yyvsp[(1) - (1)].declaration)->link.self_link();
- 	;}
-     break;
- 
--  case 229:
-+  case 230:
- 
- /* Line 1464 of yacc.c  */
--#line 1366 "glsl_parser.ypp"
-+#line 1377 "glsl_parser.ypp"
-     {
- 	   (yyval.declaration) = (yyvsp[(1) - (3)].declaration);
- 	   (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link);
- 	;}
-     break;
- 
--  case 230:
-+  case 231:
- 
- /* Line 1464 of yacc.c  */
--#line 1374 "glsl_parser.ypp"
-+#line 1385 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL);
-@@ -4739,10 +4765,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 231:
-+  case 232:
- 
- /* Line 1464 of yacc.c  */
--#line 1380 "glsl_parser.ypp"
-+#line 1391 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL);
-@@ -4750,31 +4776,31 @@ yyreduce:
- 	;}
-     break;
- 
--  case 234:
-+  case 235:
- 
- /* Line 1464 of yacc.c  */
--#line 1398 "glsl_parser.ypp"
-+#line 1409 "glsl_parser.ypp"
-     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
-     break;
- 
--  case 239:
-+  case 240:
- 
- /* Line 1464 of yacc.c  */
--#line 1406 "glsl_parser.ypp"
-+#line 1417 "glsl_parser.ypp"
-     { (yyval.node) = NULL; ;}
-     break;
- 
--  case 240:
-+  case 241:
- 
- /* Line 1464 of yacc.c  */
--#line 1407 "glsl_parser.ypp"
-+#line 1418 "glsl_parser.ypp"
-     { (yyval.node) = NULL; ;}
-     break;
- 
--  case 243:
-+  case 244:
- 
- /* Line 1464 of yacc.c  */
--#line 1414 "glsl_parser.ypp"
-+#line 1425 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
-@@ -4782,10 +4808,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 244:
-+  case 245:
- 
- /* Line 1464 of yacc.c  */
--#line 1420 "glsl_parser.ypp"
-+#line 1431 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node));
-@@ -4793,17 +4819,17 @@ yyreduce:
- 	;}
-     break;
- 
--  case 245:
-+  case 246:
- 
- /* Line 1464 of yacc.c  */
--#line 1428 "glsl_parser.ypp"
-+#line 1439 "glsl_parser.ypp"
-     { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;}
-     break;
- 
--  case 247:
-+  case 248:
- 
- /* Line 1464 of yacc.c  */
--#line 1434 "glsl_parser.ypp"
-+#line 1445 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
-@@ -4811,10 +4837,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 248:
-+  case 249:
- 
- /* Line 1464 of yacc.c  */
--#line 1440 "glsl_parser.ypp"
-+#line 1451 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node));
-@@ -4822,10 +4848,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 249:
-+  case 250:
- 
- /* Line 1464 of yacc.c  */
--#line 1449 "glsl_parser.ypp"
-+#line 1460 "glsl_parser.ypp"
-     {
- 	   if ((yyvsp[(1) - (1)].node) == NULL) {
- 	      _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n");
-@@ -4837,10 +4863,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 250:
-+  case 251:
- 
- /* Line 1464 of yacc.c  */
--#line 1459 "glsl_parser.ypp"
-+#line 1470 "glsl_parser.ypp"
-     {
- 	   if ((yyvsp[(2) - (2)].node) == NULL) {
- 	      _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n");
-@@ -4851,10 +4877,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 251:
-+  case 252:
- 
- /* Line 1464 of yacc.c  */
--#line 1471 "glsl_parser.ypp"
-+#line 1482 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_expression_statement(NULL);
-@@ -4862,10 +4888,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 252:
-+  case 253:
- 
- /* Line 1464 of yacc.c  */
--#line 1477 "glsl_parser.ypp"
-+#line 1488 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression));
-@@ -4873,10 +4899,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 253:
-+  case 254:
- 
- /* Line 1464 of yacc.c  */
--#line 1486 "glsl_parser.ypp"
-+#line 1497 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement,
- 						   (yyvsp[(5) - (5)].selection_rest_statement).else_statement);
-@@ -4884,39 +4910,39 @@ yyreduce:
- 	;}
-     break;
- 
--  case 254:
-+  case 255:
- 
- /* Line 1464 of yacc.c  */
--#line 1495 "glsl_parser.ypp"
-+#line 1506 "glsl_parser.ypp"
-     {
- 	   (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node);
- 	   (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node);
- 	;}
-     break;
- 
--  case 255:
-+  case 256:
- 
- /* Line 1464 of yacc.c  */
--#line 1500 "glsl_parser.ypp"
-+#line 1511 "glsl_parser.ypp"
-     {
- 	   (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node);
- 	   (yyval.selection_rest_statement).else_statement = NULL;
- 	;}
-     break;
- 
--  case 256:
-+  case 257:
- 
- /* Line 1464 of yacc.c  */
--#line 1508 "glsl_parser.ypp"
-+#line 1519 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression);
- 	;}
-     break;
- 
--  case 257:
-+  case 258:
- 
- /* Line 1464 of yacc.c  */
--#line 1512 "glsl_parser.ypp"
-+#line 1523 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression));
-@@ -4929,10 +4955,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 261:
-+  case 262:
- 
- /* Line 1464 of yacc.c  */
--#line 1535 "glsl_parser.ypp"
-+#line 1546 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
-@@ -4941,10 +4967,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 262:
-+  case 263:
- 
- /* Line 1464 of yacc.c  */
--#line 1542 "glsl_parser.ypp"
-+#line 1553 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
-@@ -4953,10 +4979,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 263:
-+  case 264:
- 
- /* Line 1464 of yacc.c  */
--#line 1549 "glsl_parser.ypp"
-+#line 1560 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
-@@ -4965,39 +4991,39 @@ yyreduce:
- 	;}
-     break;
- 
--  case 267:
-+  case 268:
- 
- /* Line 1464 of yacc.c  */
--#line 1565 "glsl_parser.ypp"
-+#line 1576 "glsl_parser.ypp"
-     {
- 	   (yyval.node) = NULL;
- 	;}
-     break;
- 
--  case 268:
-+  case 269:
- 
- /* Line 1464 of yacc.c  */
--#line 1572 "glsl_parser.ypp"
-+#line 1583 "glsl_parser.ypp"
-     {
- 	   (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node);
- 	   (yyval.for_rest_statement).rest = NULL;
- 	;}
-     break;
- 
--  case 269:
-+  case 270:
- 
- /* Line 1464 of yacc.c  */
--#line 1577 "glsl_parser.ypp"
-+#line 1588 "glsl_parser.ypp"
-     {
- 	   (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node);
- 	   (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression);
- 	;}
-     break;
- 
--  case 270:
-+  case 271:
- 
- /* Line 1464 of yacc.c  */
--#line 1586 "glsl_parser.ypp"
-+#line 1597 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
-@@ -5005,10 +5031,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 271:
-+  case 272:
- 
- /* Line 1464 of yacc.c  */
--#line 1592 "glsl_parser.ypp"
-+#line 1603 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
-@@ -5016,10 +5042,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 272:
-+  case 273:
- 
- /* Line 1464 of yacc.c  */
--#line 1598 "glsl_parser.ypp"
-+#line 1609 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
-@@ -5027,10 +5053,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 273:
-+  case 274:
- 
- /* Line 1464 of yacc.c  */
--#line 1604 "glsl_parser.ypp"
-+#line 1615 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression));
-@@ -5038,10 +5064,10 @@ yyreduce:
- 	;}
-     break;
- 
--  case 274:
-+  case 275:
- 
- /* Line 1464 of yacc.c  */
--#line 1610 "glsl_parser.ypp"
-+#line 1621 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
-@@ -5049,31 +5075,31 @@ yyreduce:
- 	;}
-     break;
- 
--  case 275:
-+  case 276:
- 
- /* Line 1464 of yacc.c  */
--#line 1618 "glsl_parser.ypp"
-+#line 1629 "glsl_parser.ypp"
-     { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;}
-     break;
- 
--  case 276:
-+  case 277:
- 
- /* Line 1464 of yacc.c  */
--#line 1619 "glsl_parser.ypp"
-+#line 1630 "glsl_parser.ypp"
-     { (yyval.node) = (yyvsp[(1) - (1)].node); ;}
-     break;
- 
--  case 277:
-+  case 278:
- 
- /* Line 1464 of yacc.c  */
--#line 1620 "glsl_parser.ypp"
-+#line 1631 "glsl_parser.ypp"
-     { (yyval.node) = NULL; ;}
-     break;
- 
--  case 278:
-+  case 279:
- 
- /* Line 1464 of yacc.c  */
--#line 1625 "glsl_parser.ypp"
-+#line 1636 "glsl_parser.ypp"
-     {
- 	   void *ctx = state;
- 	   (yyval.function_definition) = new(ctx) ast_function_definition();
-@@ -5086,7 +5112,7 @@ yyreduce:
- 
- 
- /* Line 1464 of yacc.c  */
--#line 5090 "glsl_parser.cpp"
-+#line 5116 "glsl_parser.cpp"
-       default: break;
-     }
-   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-diff --git a/src/glsl/glsl_parser.h b/src/glsl/glsl_parser.h
-index 83aa56f..1bf3b35 100644
---- a/src/glsl/glsl_parser.h
-+++ b/src/glsl/glsl_parser.h
-@@ -155,79 +155,80 @@
-      PRAGMA_DEBUG_OFF = 372,
-      PRAGMA_OPTIMIZE_ON = 373,
-      PRAGMA_OPTIMIZE_OFF = 374,
--     LAYOUT_TOK = 375,
--     ASM = 376,
--     CLASS = 377,
--     UNION = 378,
--     ENUM = 379,
--     TYPEDEF = 380,
--     TEMPLATE = 381,
--     THIS = 382,
--     PACKED_TOK = 383,
--     GOTO = 384,
--     INLINE_TOK = 385,
--     NOINLINE = 386,
--     VOLATILE = 387,
--     PUBLIC_TOK = 388,
--     STATIC = 389,
--     EXTERN = 390,
--     EXTERNAL = 391,
--     LONG_TOK = 392,
--     SHORT_TOK = 393,
--     DOUBLE_TOK = 394,
--     HALF = 395,
--     FIXED_TOK = 396,
--     UNSIGNED = 397,
--     INPUT_TOK = 398,
--     OUPTUT = 399,
--     HVEC2 = 400,
--     HVEC3 = 401,
--     HVEC4 = 402,
--     DVEC2 = 403,
--     DVEC3 = 404,
--     DVEC4 = 405,
--     FVEC2 = 406,
--     FVEC3 = 407,
--     FVEC4 = 408,
--     SAMPLER2DRECT = 409,
--     SAMPLER3DRECT = 410,
--     SAMPLER2DRECTSHADOW = 411,
--     SIZEOF = 412,
--     CAST = 413,
--     NAMESPACE = 414,
--     USING = 415,
--     ERROR_TOK = 416,
--     COMMON = 417,
--     PARTITION = 418,
--     ACTIVE = 419,
--     SAMPLERBUFFER = 420,
--     FILTER = 421,
--     IMAGE1D = 422,
--     IMAGE2D = 423,
--     IMAGE3D = 424,
--     IMAGECUBE = 425,
--     IMAGE1DARRAY = 426,
--     IMAGE2DARRAY = 427,
--     IIMAGE1D = 428,
--     IIMAGE2D = 429,
--     IIMAGE3D = 430,
--     IIMAGECUBE = 431,
--     IIMAGE1DARRAY = 432,
--     IIMAGE2DARRAY = 433,
--     UIMAGE1D = 434,
--     UIMAGE2D = 435,
--     UIMAGE3D = 436,
--     UIMAGECUBE = 437,
--     UIMAGE1DARRAY = 438,
--     UIMAGE2DARRAY = 439,
--     IMAGE1DSHADOW = 440,
--     IMAGE2DSHADOW = 441,
--     IMAGEBUFFER = 442,
--     IIMAGEBUFFER = 443,
--     UIMAGEBUFFER = 444,
--     IMAGE1DARRAYSHADOW = 445,
--     IMAGE2DARRAYSHADOW = 446,
--     ROW_MAJOR = 447
-+     PRAGMA_INVARIANT_ALL = 375,
-+     LAYOUT_TOK = 376,
-+     ASM = 377,
-+     CLASS = 378,
-+     UNION = 379,
-+     ENUM = 380,
-+     TYPEDEF = 381,
-+     TEMPLATE = 382,
-+     THIS = 383,
-+     PACKED_TOK = 384,
-+     GOTO = 385,
-+     INLINE_TOK = 386,
-+     NOINLINE = 387,
-+     VOLATILE = 388,
-+     PUBLIC_TOK = 389,
-+     STATIC = 390,
-+     EXTERN = 391,
-+     EXTERNAL = 392,
-+     LONG_TOK = 393,
-+     SHORT_TOK = 394,
-+     DOUBLE_TOK = 395,
-+     HALF = 396,
-+     FIXED_TOK = 397,
-+     UNSIGNED = 398,
-+     INPUT_TOK = 399,
-+     OUPTUT = 400,
-+     HVEC2 = 401,
-+     HVEC3 = 402,
-+     HVEC4 = 403,
-+     DVEC2 = 404,
-+     DVEC3 = 405,
-+     DVEC4 = 406,
-+     FVEC2 = 407,
-+     FVEC3 = 408,
-+     FVEC4 = 409,
-+     SAMPLER2DRECT = 410,
-+     SAMPLER3DRECT = 411,
-+     SAMPLER2DRECTSHADOW = 412,
-+     SIZEOF = 413,
-+     CAST = 414,
-+     NAMESPACE = 415,
-+     USING = 416,
-+     ERROR_TOK = 417,
-+     COMMON = 418,
-+     PARTITION = 419,
-+     ACTIVE = 420,
-+     SAMPLERBUFFER = 421,
-+     FILTER = 422,
-+     IMAGE1D = 423,
-+     IMAGE2D = 424,
-+     IMAGE3D = 425,
-+     IMAGECUBE = 426,
-+     IMAGE1DARRAY = 427,
-+     IMAGE2DARRAY = 428,
-+     IIMAGE1D = 429,
-+     IIMAGE2D = 430,
-+     IIMAGE3D = 431,
-+     IIMAGECUBE = 432,
-+     IIMAGE1DARRAY = 433,
-+     IIMAGE2DARRAY = 434,
-+     UIMAGE1D = 435,
-+     UIMAGE2D = 436,
-+     UIMAGE3D = 437,
-+     UIMAGECUBE = 438,
-+     UIMAGE1DARRAY = 439,
-+     UIMAGE2DARRAY = 440,
-+     IMAGE1DSHADOW = 441,
-+     IMAGE2DSHADOW = 442,
-+     IMAGEBUFFER = 443,
-+     IIMAGEBUFFER = 444,
-+     UIMAGEBUFFER = 445,
-+     IMAGE1DARRAYSHADOW = 446,
-+     IMAGE2DARRAYSHADOW = 447,
-+     ROW_MAJOR = 448
-    };
- #endif
- 
-@@ -271,7 +272,7 @@ typedef union YYSTYPE
- 
- 
- /* Line 1685 of yacc.c  */
--#line 275 "glsl_parser.h"
-+#line 276 "glsl_parser.h"
- } YYSTYPE;
- # define YYSTYPE_IS_TRIVIAL 1
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
-diff --git a/src/glsl/glsl_parser.ypp b/src/glsl/glsl_parser.ypp
-index 6d7d148..6ced818 100644
---- a/src/glsl/glsl_parser.ypp
-+++ b/src/glsl/glsl_parser.ypp
-@@ -108,6 +108,7 @@
- %token VERSION EXTENSION LINE COLON EOL INTERFACE OUTPUT
- %token PRAGMA_DEBUG_ON PRAGMA_DEBUG_OFF
- %token PRAGMA_OPTIMIZE_ON PRAGMA_OPTIMIZE_OFF
-+%token PRAGMA_INVARIANT_ALL
- %token LAYOUT_TOK
- 
-    /* Reserved words that are not actually used in the grammar.
-@@ -227,6 +228,11 @@ version_statement:
- 	   case 130:
- 	      /* FINISHME: Check against implementation support versions. */
- 	      state->language_version = $2;
-+	      state->version_string =
-+		 ralloc_asprintf(state, "GLSL%s %d.%02d",
-+				 state->es_shader ? " ES" : "",
-+				 state->language_version / 100,
-+				 state->language_version % 100);
- 	      break;
- 	   default:
- 	      _mesa_glsl_error(& @2, state, "Shading language version"
-@@ -241,6 +247,16 @@ pragma_statement:
- 	| PRAGMA_DEBUG_OFF EOL
- 	| PRAGMA_OPTIMIZE_ON EOL
- 	| PRAGMA_OPTIMIZE_OFF EOL
-+	| PRAGMA_INVARIANT_ALL EOL
-+	{
-+	   if (state->language_version < 120) {
-+	      _mesa_glsl_warning(& @1, state,
-+				 "pragma `invariant(all)' not supported in %s",
-+				 state->version_string);
-+	   } else {
-+	      state->all_invariant = true;
-+	   }
-+	}
- 	;
- 
- extension_statement_list:
-@@ -260,16 +276,16 @@ extension_statement:
- external_declaration_list:
- 	external_declaration
- 	{
--	   /* FINISHME: The NULL test is only required because 'precision'
--	    * FINISHME: statements are not yet supported.
-+	   /* FINISHME: The NULL test is required because pragmas are set to
-+	    * FINISHME: NULL. (See production rule for external_declaration.)
- 	    */
- 	   if ($1 != NULL)
- 	      state->translation_unit.push_tail(& $1->link);
- 	}
- 	| external_declaration_list external_declaration
- 	{
--	   /* FINISHME: The NULL test is only required because 'precision'
--	    * FINISHME: statements are not yet supported.
-+	   /* FINISHME: The NULL test is required because pragmas are set to
-+	    * FINISHME: NULL. (See production rule for external_declaration.)
- 	    */
- 	   if ($2 != NULL)
- 	      state->translation_unit.push_tail(& $2->link);
-@@ -686,14 +702,9 @@ declaration:
- 	}
- 	| PRECISION precision_qualifier type_specifier_no_prec ';'
- 	{
--	   if (($3->type_specifier != ast_float)
--	       && ($3->type_specifier != ast_int)) {
--	      _mesa_glsl_error(& @3, state, "global precision qualifier can "
--			       "only be applied to `int' or `float'\n");
--	      YYERROR;
--	   }
--
--	   $$ = NULL; /* FINISHME */
-+	   $3->precision = $2;
-+	   $3->is_precision_statement = true;
-+	   $$ = $3;
- 	}
- 	;
- 
-@@ -1179,6 +1190,9 @@ storage_qualifier:
- 
- type_specifier:
- 	type_specifier_no_prec
-+	{
-+	   $$ = $1;
-+	}
- 	| precision_qualifier type_specifier_no_prec
- 	{
- 	   $$ = $2;
-@@ -1282,10 +1296,9 @@ precision_qualifier:
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& @1, state,
- 				         "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     $$ = ast_precision_high;
- 		  }
-@@ -1293,10 +1306,9 @@ precision_qualifier:
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& @1, state,
- 					 "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     $$ = ast_precision_medium;
- 		  }
-@@ -1304,10 +1316,9 @@ precision_qualifier:
- 		     if (!state->es_shader && state->language_version < 130)
- 			_mesa_glsl_error(& @1, state,
- 					 "precision qualifier forbidden "
--					 "in GLSL %d.%d (1.30 or later "
-+					 "in %s (1.30 or later "
- 					 "required)\n",
--					 state->language_version / 100,
--					 state->language_version % 100);
-+					 state->version_string);
- 
- 		     $$ = ast_precision_low;
- 		  }
-diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
-index 8dbe669..24ab082 100644
---- a/src/glsl/glsl_parser_extras.cpp
-+++ b/src/glsl/glsl_parser_extras.cpp
-@@ -26,10 +26,10 @@
- #include <assert.h>
- 
- extern "C" {
--#include <talloc.h>
- #include "main/core.h" /* for struct gl_context */
- }
- 
-+#include "ralloc.h"
- #include "ast.h"
- #include "glsl_parser_extras.h"
- #include "glsl_parser.h"
-@@ -48,7 +48,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *ctx,
-    this->scanner = NULL;
-    this->translation_unit.make_empty();
-    this->symbols = new(mem_ctx) glsl_symbol_table;
--   this->info_log = talloc_strdup(mem_ctx, "");
-+   this->info_log = ralloc_strdup(mem_ctx, "");
-    this->error = false;
-    this->loop_or_switch_nesting = NULL;
- 
-@@ -104,15 +104,14 @@ _mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
-    state->error = true;
- 
-    assert(state->info_log != NULL);
--   state->info_log = talloc_asprintf_append(state->info_log,
--					    "%u:%u(%u): error: ",
-+   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): error: ",
- 					    locp->source,
- 					    locp->first_line,
- 					    locp->first_column);
-    va_start(ap, fmt);
--   state->info_log = talloc_vasprintf_append(state->info_log, fmt, ap);
-+   ralloc_vasprintf_append(&state->info_log, fmt, ap);
-    va_end(ap);
--   state->info_log = talloc_strdup_append(state->info_log, "\n");
-+   ralloc_strcat(&state->info_log, "\n");
- }
- 
- 
-@@ -123,15 +122,14 @@ _mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
-    va_list ap;
- 
-    assert(state->info_log != NULL);
--   state->info_log = talloc_asprintf_append(state->info_log,
--					    "%u:%u(%u): warning: ",
-+   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): warning: ",
- 					    locp->source,
- 					    locp->first_line,
- 					    locp->first_column);
-    va_start(ap, fmt);
--   state->info_log = talloc_vasprintf_append(state->info_log, fmt, ap);
-+   ralloc_vasprintf_append(&state->info_log, fmt, ap);
-    va_end(ap);
--   state->info_log = talloc_strdup_append(state->info_log, "\n");
-+   ralloc_strcat(&state->info_log, "\n");
- }
- 
- 
-@@ -696,7 +694,7 @@ ast_struct_specifier::ast_struct_specifier(char *identifier,
- {
-    if (identifier == NULL) {
-       static unsigned anon_count = 1;
--      identifier = talloc_asprintf(this, "#anon_struct_%04x", anon_count);
-+      identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
-       anon_count++;
-    }
-    name = identifier;
-diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
-index 98c4e70..bb77678 100644
---- a/src/glsl/glsl_parser_extras.h
-+++ b/src/glsl/glsl_parser_extras.h
-@@ -46,21 +46,21 @@ struct _mesa_glsl_parse_state {
-    _mesa_glsl_parse_state(struct gl_context *ctx, GLenum target,
- 			  void *mem_ctx);
- 
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
--      void *mem = talloc_zero_size(ctx, size);
-+      void *mem = rzalloc_size(ctx, size);
-       assert(mem != NULL);
- 
-       return mem;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. */
-+    * ralloc_free in that case. */
-    static void operator delete(void *mem)
-    {
--      talloc_free(mem);
-+      ralloc_free(mem);
-    }
- 
-    void *scanner;
-@@ -69,6 +69,7 @@ struct _mesa_glsl_parse_state {
- 
-    bool es_shader;
-    unsigned language_version;
-+   const char *version_string;
-    enum _mesa_glsl_parser_targets target;
- 
-    /**
-@@ -108,6 +109,13 @@ struct _mesa_glsl_parse_state {
-    /** Was there an error during compilation? */
-    bool error;
- 
-+   /**
-+    * Are all shader inputs / outputs invariant?
-+    *
-+    * This is set when the 'STDGL invariant(all)' pragma is used.
-+    */
-+   bool all_invariant;
-+
-    /** Loop or switch statement containing the current instructions. */
-    class ir_instruction *loop_or_switch_nesting;
-    class ast_iteration_statement *loop_or_switch_nesting_ast;
-diff --git a/src/glsl/glsl_symbol_table.cpp b/src/glsl/glsl_symbol_table.cpp
-index 3dcd928..2f291d4 100644
---- a/src/glsl/glsl_symbol_table.cpp
-+++ b/src/glsl/glsl_symbol_table.cpp
-@@ -26,22 +26,19 @@
- 
- class symbol_table_entry {
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
--      void *entry = talloc_size(ctx, size);
-+      void *entry = ralloc_size(ctx, size);
-       assert(entry != NULL);
-       return entry;
-    }
- 
--   /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. Here, C++ will have already called the
--    * destructor so tell talloc not to do that again. */
--   static void operator delete(void *table)
-+   /* If the user *does* call delete, that's OK, we will just ralloc_free. */
-+   static void operator delete(void *entry)
-    {
--      talloc_set_destructor(table, NULL);
--      talloc_free(table);
-+      ralloc_free(entry);
-    }
- 
-    symbol_table_entry(ir_variable *v)                     : v(v), f(0), t(0) {}
-@@ -57,13 +54,13 @@ glsl_symbol_table::glsl_symbol_table()
- {
-    this->language_version = 120;
-    this->table = _mesa_symbol_table_ctor();
--   this->mem_ctx = talloc_init("symbol table entries");
-+   this->mem_ctx = ralloc_context(NULL);
- }
- 
- glsl_symbol_table::~glsl_symbol_table()
- {
-    _mesa_symbol_table_dtor(table);
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- }
- 
- void glsl_symbol_table::push_scope()
-diff --git a/src/glsl/glsl_symbol_table.h b/src/glsl/glsl_symbol_table.h
-index 28a44eb..637bc03 100644
---- a/src/glsl/glsl_symbol_table.h
-+++ b/src/glsl/glsl_symbol_table.h
-@@ -44,36 +44,34 @@ class symbol_table_entry;
-  */
- struct glsl_symbol_table {
- private:
--   static int
-+   static void
-    _glsl_symbol_table_destructor (glsl_symbol_table *table)
-    {
-       table->~glsl_symbol_table();
--
--      return 0;
-    }
- 
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *table;
- 
--      table = talloc_size(ctx, size);
-+      table = ralloc_size(ctx, size);
-       assert(table != NULL);
- 
--      talloc_set_destructor(table, (int (*)(void*)) _glsl_symbol_table_destructor);
-+      ralloc_set_destructor(table, (void (*)(void*)) _glsl_symbol_table_destructor);
- 
-       return table;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. Here, C++ will have already called the
--    * destructor so tell talloc not to do that again. */
-+    * ralloc_free in that case. Here, C++ will have already called the
-+    * destructor so tell ralloc not to do that again. */
-    static void operator delete(void *table)
-    {
--      talloc_set_destructor(table, NULL);
--      talloc_free(table);
-+      ralloc_set_destructor(table, NULL);
-+      ralloc_free(table);
-    }
-    
-    glsl_symbol_table();
-diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
-index 8c33cfa..f4d9242 100644
---- a/src/glsl/glsl_types.cpp
-+++ b/src/glsl/glsl_types.cpp
-@@ -37,10 +37,10 @@ hash_table *glsl_type::record_types = NULL;
- void *glsl_type::mem_ctx = NULL;
- 
- void
--glsl_type::init_talloc_type_ctx(void)
-+glsl_type::init_ralloc_type_ctx(void)
- {
-    if (glsl_type::mem_ctx == NULL) {
--      glsl_type::mem_ctx = talloc_autofree_context();
-+      glsl_type::mem_ctx = ralloc_autofree_context();
-       assert(glsl_type::mem_ctx != NULL);
-    }
- }
-@@ -55,8 +55,8 @@ glsl_type::glsl_type(GLenum gl_type,
-    vector_elements(vector_elements), matrix_columns(matrix_columns),
-    length(0)
- {
--   init_talloc_type_ctx();
--   this->name = talloc_strdup(this->mem_ctx, name);
-+   init_ralloc_type_ctx();
-+   this->name = ralloc_strdup(this->mem_ctx, name);
-    /* Neither dimension is zero or both dimensions are zero.
-     */
-    assert((vector_elements == 0) == (matrix_columns == 0));
-@@ -73,8 +73,8 @@ glsl_type::glsl_type(GLenum gl_type,
-    vector_elements(0), matrix_columns(0),
-    length(0)
- {
--   init_talloc_type_ctx();
--   this->name = talloc_strdup(this->mem_ctx, name);
-+   init_ralloc_type_ctx();
-+   this->name = ralloc_strdup(this->mem_ctx, name);
-    memset(& fields, 0, sizeof(fields));
- }
- 
-@@ -88,13 +88,13 @@ glsl_type::glsl_type(const glsl_struct_field *fields, unsigned num_fields,
- {
-    unsigned int i;
- 
--   init_talloc_type_ctx();
--   this->name = talloc_strdup(this->mem_ctx, name);
--   this->fields.structure = talloc_array(this->mem_ctx,
-+   init_ralloc_type_ctx();
-+   this->name = ralloc_strdup(this->mem_ctx, name);
-+   this->fields.structure = ralloc_array(this->mem_ctx,
- 					 glsl_struct_field, length);
-    for (i = 0; i < length; i++) {
-       this->fields.structure[i].type = fields[i].type;
--      this->fields.structure[i].name = talloc_strdup(this->fields.structure,
-+      this->fields.structure[i].name = ralloc_strdup(this->fields.structure,
- 						     fields[i].name);
-    }
- }
-@@ -120,7 +120,7 @@ glsl_type::generate_100ES_types(glsl_symbol_table *symtab)
-    add_types_to_symbol_table(symtab, builtin_structure_types,
- 			     Elements(builtin_structure_types),
- 			     false);
--   add_types_to_symbol_table(symtab, &void_type, 1, false);
-+   add_types_to_symbol_table(symtab, void_type, 1, false);
- }
- 
- void
-@@ -264,7 +264,7 @@ glsl_type::glsl_type(const glsl_type *array, unsigned length) :
-     * NUL.
-     */
-    const unsigned name_length = strlen(array->name) + 10 + 3;
--   char *const n = (char *) talloc_size(this->mem_ctx, name_length);
-+   char *const n = (char *) ralloc_size(this->mem_ctx, name_length);
- 
-    if (length == 0)
-       snprintf(n, name_length, "%s[]", array->name);
-@@ -279,7 +279,7 @@ const glsl_type *
- glsl_type::get_instance(unsigned base_type, unsigned rows, unsigned columns)
- {
-    if (base_type == GLSL_TYPE_VOID)
--      return &void_type;
-+      return void_type;
- 
-    if ((rows < 1) || (rows > 4) || (columns < 1) || (columns > 4))
-       return error_type;
-@@ -354,7 +354,7 @@ glsl_type::get_array_instance(const glsl_type *base, unsigned array_size)
-    if (t == NULL) {
-       t = new glsl_type(base, array_size);
- 
--      hash_table_insert(array_types, (void *) t, talloc_strdup(mem_ctx, key));
-+      hash_table_insert(array_types, (void *) t, ralloc_strdup(mem_ctx, key));
-    }
- 
-    assert(t->base_type == GLSL_TYPE_ARRAY);
-diff --git a/src/glsl/glsl_types.h b/src/glsl/glsl_types.h
-index d62d493..ab6858f 100644
---- a/src/glsl/glsl_types.h
-+++ b/src/glsl/glsl_types.h
-@@ -31,9 +31,10 @@
- 
- extern "C" {
- #include "GL/gl.h"
--#include <talloc.h>
- }
- 
-+#include "ralloc.h"
-+
- struct _mesa_glsl_parse_state;
- struct glsl_symbol_table;
- 
-@@ -77,28 +78,28 @@ struct glsl_type {
- 				* and \c GLSL_TYPE_UINT are valid.
- 				*/
- 
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'mem_ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'mem_ctx' (or any of its ancestors). */
-    static void* operator new(size_t size)
-    {
-       if (glsl_type::mem_ctx == NULL) {
--	 glsl_type::mem_ctx = talloc_init("glsl_type");
-+	 glsl_type::mem_ctx = ralloc_context(NULL);
- 	 assert(glsl_type::mem_ctx != NULL);
-       }
- 
-       void *type;
- 
--      type = talloc_size(glsl_type::mem_ctx, size);
-+      type = ralloc_size(glsl_type::mem_ctx, size);
-       assert(type != NULL);
- 
-       return type;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. */
-+    * ralloc_free in that case. */
-    static void operator delete(void *type)
-    {
--      talloc_free(type);
-+      ralloc_free(type);
-    }
- 
-    /**
-@@ -142,6 +143,7 @@ struct glsl_type {
-     */
-    /*@{*/
-    static const glsl_type *const error_type;
-+   static const glsl_type *const void_type;
-    static const glsl_type *const int_type;
-    static const glsl_type *const ivec4_type;
-    static const glsl_type *const uint_type;
-@@ -385,13 +387,13 @@ struct glsl_type {
- 
- private:
-    /**
--    * talloc context for all glsl_type allocations
-+    * ralloc context for all glsl_type allocations
-     *
-     * Set on the first call to \c glsl_type::new.
-     */
-    static void *mem_ctx;
- 
--   void init_talloc_type_ctx(void);
-+   void init_ralloc_type_ctx(void);
- 
-    /** Constructor for vector and matrix types */
-    glsl_type(GLenum gl_type,
-@@ -424,7 +426,7 @@ private:
-     */
-    /*@{*/
-    static const glsl_type _error_type;
--   static const glsl_type void_type;
-+   static const glsl_type _void_type;
-    static const glsl_type builtin_core_types[];
-    static const glsl_type builtin_structure_types[];
-    static const glsl_type builtin_110_deprecated_structure_types[];
-diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
-index b8b0fed..169e948 100644
---- a/src/glsl/ir.cpp
-+++ b/src/glsl/ir.cpp
-@@ -514,7 +514,7 @@ ir_constant::ir_constant(const struct glsl_type *type, exec_list *value_list)
- 	  || type->is_record() || type->is_array());
- 
-    if (type->is_array()) {
--      this->array_elements = talloc_array(this, ir_constant *, type->length);
-+      this->array_elements = ralloc_array(this, ir_constant *, type->length);
-       unsigned i = 0;
-       foreach_list(node, value_list) {
- 	 ir_constant *value = (ir_constant *) node;
-@@ -972,7 +972,7 @@ ir_dereference_array::ir_dereference_array(ir_rvalue *value,
- ir_dereference_array::ir_dereference_array(ir_variable *var,
- 					   ir_rvalue *array_index)
- {
--   void *ctx = talloc_parent(var);
-+   void *ctx = ralloc_parent(var);
- 
-    this->ir_type = ir_type_dereference_array;
-    this->array_index = array_index;
-@@ -1005,7 +1005,7 @@ ir_dereference_record::ir_dereference_record(ir_rvalue *value,
- {
-    this->ir_type = ir_type_dereference_record;
-    this->record = value;
--   this->field = talloc_strdup(this, field);
-+   this->field = ralloc_strdup(this, field);
-    this->type = (this->record != NULL)
-       ? this->record->type->field_type(field) : glsl_type::error_type;
- }
-@@ -1014,11 +1014,11 @@ ir_dereference_record::ir_dereference_record(ir_rvalue *value,
- ir_dereference_record::ir_dereference_record(ir_variable *var,
- 					     const char *field)
- {
--   void *ctx = talloc_parent(var);
-+   void *ctx = ralloc_parent(var);
- 
-    this->ir_type = ir_type_dereference_record;
-    this->record = new(ctx) ir_dereference_variable(var);
--   this->field = talloc_strdup(this, field);
-+   this->field = ralloc_strdup(this, field);
-    this->type = (this->record != NULL)
-       ? this->record->type->field_type(field) : glsl_type::error_type;
- }
-@@ -1181,7 +1181,7 @@ ir_swizzle::ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask)
- ir_swizzle *
- ir_swizzle::create(ir_rvalue *val, const char *str, unsigned vector_length)
- {
--   void *ctx = talloc_parent(val);
-+   void *ctx = ralloc_parent(val);
- 
-    /* For each possible swizzle character, this table encodes the value in
-     * \c idx_map that represents the 0th element of the vector.  For invalid
-@@ -1270,13 +1270,14 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
- {
-    this->ir_type = ir_type_variable;
-    this->type = type;
--   this->name = talloc_strdup(this, name);
-+   this->name = ralloc_strdup(this, name);
-    this->explicit_location = false;
-    this->location = -1;
-    this->warn_extension = NULL;
-    this->constant_value = NULL;
-    this->origin_upper_left = false;
-    this->pixel_center_integer = false;
-+   this->used = false;
- 
-    if (type && type->base_type == GLSL_TYPE_SAMPLER)
-       this->read_only = true;
-@@ -1360,7 +1361,7 @@ ir_function_signature::replace_parameters(exec_list *new_params)
- ir_function::ir_function(const char *name)
- {
-    this->ir_type = ir_type_function;
--   this->name = talloc_strdup(this, name);
-+   this->name = ralloc_strdup(this, name);
- }
- 
- 
-@@ -1426,7 +1427,7 @@ steal_memory(ir_instruction *ir, void *new_ctx)
-       }
-    }
- 
--   talloc_steal(new_ctx, ir);
-+   ralloc_steal(new_ctx, ir);
- }
- 
- 
-diff --git a/src/glsl/ir.h b/src/glsl/ir.h
-index 102a68b..c4d2fbf 100644
---- a/src/glsl/ir.h
-+++ b/src/glsl/ir.h
-@@ -29,10 +29,7 @@
- #include <cstdio>
- #include <cstdlib>
- 
--extern "C" {
--#include <talloc.h>
--}
--
-+#include "ralloc.h"
- #include "glsl_types.h"
- #include "list.h"
- #include "ir_visitor.h"
-@@ -295,6 +292,15 @@ public:
-    unsigned invariant:1;
- 
-    /**
-+    * Has this variable been used for reading or writing?
-+    *
-+    * Several GLSL semantic checks require knowledge of whether or not a
-+    * variable has been used.  For example, it is an error to redeclare a
-+    * variable as invariant after it has been used.
-+    */
-+   unsigned used:1;
-+
-+   /**
-     * Storage class of the variable.
-     *
-     * \sa ir_variable_mode
-@@ -949,7 +955,7 @@ public:
-    /**
-     * Get a generic ir_call object when an error occurs
-     *
--    * Any allocation will be performed with 'ctx' as talloc owner.
-+    * Any allocation will be performed with 'ctx' as ralloc owner.
-     */
-    static ir_call *get_error_instruction(void *ctx);
- 
-diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp
-index 1522af6..20a59b1 100644
---- a/src/glsl/ir_clone.cpp
-+++ b/src/glsl/ir_clone.cpp
-@@ -346,7 +346,7 @@ ir_constant::clone(void *mem_ctx, struct hash_table *ht) const
-       ir_constant *c = new(mem_ctx) ir_constant;
- 
-       c->type = this->type;
--      c->array_elements = talloc_array(c, ir_constant *, this->type->length);
-+      c->array_elements = ralloc_array(c, ir_constant *, this->type->length);
-       for (unsigned i = 0; i < this->type->length; i++) {
- 	 c->array_elements[i] = this->array_elements[i]->clone(mem_ctx, NULL);
-       }
-diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp
-index 4fd6d09..cf958aa 100644
---- a/src/glsl/ir_constant_expression.cpp
-+++ b/src/glsl/ir_constant_expression.cpp
-@@ -86,7 +86,7 @@ ir_expression::constant_expression_value()
-       components = op[1]->type->components();
-    }
- 
--   void *ctx = talloc_parent(this);
-+   void *ctx = ralloc_parent(this);
- 
-    /* Handle array operations here, rather than below. */
-    if (op[0]->type->is_array()) {
-@@ -845,7 +845,7 @@ ir_swizzle::constant_expression_value()
- 	 }
-       }
- 
--      void *ctx = talloc_parent(this);
-+      void *ctx = ralloc_parent(this);
-       return new(ctx) ir_constant(this->type, &data);
-    }
-    return NULL;
-@@ -868,7 +868,7 @@ ir_dereference_variable::constant_expression_value()
-    if (!var->constant_value)
-       return NULL;
- 
--   return var->constant_value->clone(talloc_parent(var), NULL);
-+   return var->constant_value->clone(ralloc_parent(var), NULL);
- }
- 
- 
-@@ -879,7 +879,7 @@ ir_dereference_array::constant_expression_value()
-    ir_constant *idx = this->array_index->constant_expression_value();
- 
-    if ((array != NULL) && (idx != NULL)) {
--      void *ctx = talloc_parent(this);
-+      void *ctx = ralloc_parent(this);
-       if (array->type->is_matrix()) {
- 	 /* Array access of a matrix results in a vector.
- 	  */
-@@ -984,7 +984,7 @@ ir_call::constant_expression_value()
-     * - Fill "data" with appopriate constant data
-     * - Return an ir_constant directly.
-     */
--   void *mem_ctx = talloc_parent(this);
-+   void *mem_ctx = ralloc_parent(this);
-    ir_expression *expr = NULL;
- 
-    ir_constant_data data;
-diff --git a/src/glsl/ir_expression_flattening.cpp b/src/glsl/ir_expression_flattening.cpp
-index 7b1b8db..0b7c537 100644
---- a/src/glsl/ir_expression_flattening.cpp
-+++ b/src/glsl/ir_expression_flattening.cpp
-@@ -78,7 +78,7 @@ ir_expression_flattening_visitor::handle_rvalue(ir_rvalue **rvalue)
-    if (!ir || !this->predicate(ir))
-       return;
- 
--   void *ctx = talloc_parent(ir);
-+   void *ctx = ralloc_parent(ir);
- 
-    var = new(ctx) ir_variable(ir->type, "flattening_tmp", ir_var_temporary);
-    base_ir->insert_before(var);
-diff --git a/src/glsl/ir_import_prototypes.cpp b/src/glsl/ir_import_prototypes.cpp
-index 4e0b30a..be5e0c1 100644
---- a/src/glsl/ir_import_prototypes.cpp
-+++ b/src/glsl/ir_import_prototypes.cpp
-@@ -109,7 +109,7 @@ private:
-  * \param dest     Destination instruction stream where new \c ir_function and
-  *                 \c ir_function_signature nodes will be stored
-  * \param symbols  Symbol table where new functions will be stored
-- * \param mem_ctx  talloc memory context used for new allocations
-+ * \param mem_ctx  ralloc memory context used for new allocations
-  */
- void
- import_prototypes(const exec_list *source, exec_list *dest,
-diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
-index 5a718d3..e395ee9 100644
---- a/src/glsl/ir_reader.cpp
-+++ b/src/glsl/ir_reader.cpp
-@@ -23,10 +23,6 @@
- 
- #include <cstdarg>
- 
--extern "C" {
--#include <talloc.h>
--}
--
- #include "ir_reader.h"
- #include "glsl_parser_extras.h"
- #include "glsl_types.h"
-@@ -88,7 +84,7 @@ _mesa_glsl_read_ir(_mesa_glsl_parse_state *state, exec_list *instructions,
-    }
- 
-    read_instructions(state, instructions, expr, NULL);
--   talloc_free(expr);
-+   ralloc_free(expr);
- 
-    if (debug)
-       validate_ir_tree(instructions);
-@@ -103,21 +99,19 @@ ir_read_error(_mesa_glsl_parse_state *state, s_expression *expr,
-    state->error = true;
- 
-    if (state->current_function != NULL)
--      state->info_log = talloc_asprintf_append(state->info_log,
--			   "In function %s:\n",
--			   state->current_function->function_name());
--   state->info_log = talloc_strdup_append(state->info_log, "error: ");
-+      ralloc_asprintf_append(&state->info_log, "In function %s:\n",
-+			     state->current_function->function_name());
-+   ralloc_strcat(&state->info_log, "error: ");
- 
-    va_start(ap, fmt);
--   state->info_log = talloc_vasprintf_append(state->info_log, fmt, ap);
-+   ralloc_vasprintf_append(&state->info_log, fmt, ap);
-    va_end(ap);
--   state->info_log = talloc_strdup_append(state->info_log, "\n");
-+   ralloc_strcat(&state->info_log, "\n");
- 
-    if (expr != NULL) {
--      state->info_log = talloc_strdup_append(state->info_log,
--					     "...in this context:\n   ");
-+      ralloc_strcat(&state->info_log, "...in this context:\n   ");
-       expr->print();
--      state->info_log = talloc_strdup_append(state->info_log, "\n\n");
-+      ralloc_strcat(&state->info_log, "\n\n");
-    }
- }
- 
-diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
-index 5b055f6..44d7549 100644
---- a/src/glsl/ir_validate.cpp
-+++ b/src/glsl/ir_validate.cpp
-@@ -179,7 +179,7 @@ ir_validate::visit_enter(ir_function *ir)
- ir_visitor_status
- ir_validate::visit_leave(ir_function *ir)
- {
--   assert(talloc_parent(ir->name) == ir);
-+   assert(ralloc_parent(ir->name) == ir);
- 
-    this->current_function = NULL;
-    return visit_continue;
-@@ -450,7 +450,7 @@ ir_validate::visit(ir_variable *ir)
-     * declared before it is dereferenced.
-     */
-    if (ir->name)
--      assert(talloc_parent(ir->name) == ir);
-+      assert(ralloc_parent(ir->name) == ir);
- 
-    hash_table_insert(ht, ir, ir);
-    return visit_continue;
-diff --git a/src/glsl/ir_variable_refcount.h b/src/glsl/ir_variable_refcount.h
-index 8b43bad..906135a 100644
---- a/src/glsl/ir_variable_refcount.h
-+++ b/src/glsl/ir_variable_refcount.h
-@@ -54,13 +54,13 @@ class ir_variable_refcount_visitor : public ir_hierarchical_visitor {
- public:
-    ir_variable_refcount_visitor(void)
-    {
--      this->mem_ctx = talloc_new(NULL);
-+      this->mem_ctx = ralloc_context(NULL);
-       this->variable_list.make_empty();
-    }
- 
-    ~ir_variable_refcount_visitor(void)
-    {
--      talloc_free(this->mem_ctx);
-+      ralloc_free(this->mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit(ir_variable *);
-diff --git a/src/glsl/link_functions.cpp b/src/glsl/link_functions.cpp
-index 05930ed..861fa39 100644
---- a/src/glsl/link_functions.cpp
-+++ b/src/glsl/link_functions.cpp
-@@ -25,10 +25,6 @@
- #include <cstdio>
- #include <cstdarg>
- 
--extern "C" {
--#include <talloc.h>
--}
--
- #include "main/core.h"
- #include "glsl_symbol_table.h"
- #include "glsl_parser_extras.h"
-@@ -185,6 +181,18 @@ public:
- 	    var = ir->var->clone(linked, NULL);
- 	    linked->symbols->add_variable(var);
- 	    linked->ir->push_head(var);
-+	 } else if (var->type->is_array()) {
-+	    /* It is possible to have a global array declared in multiple
-+	     * shaders without a size.  The array is implicitly sized by the
-+	     * maximal access to it in *any* shader.  Because of this, we
-+	     * need to track the maximal access to the array as linking pulls
-+	     * more functions in that access the array.
-+	     */
-+	    var->max_array_access =
-+	       MAX2(var->max_array_access, ir->var->max_array_access);
-+
-+	    if (var->type->length == 0 && ir->var->type->length != 0)
-+	       var->type = ir->var->type;
- 	 }
- 
- 	 ir->var = var;
-diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
-index d8c42ac..e296507 100644
---- a/src/glsl/linker.cpp
-+++ b/src/glsl/linker.cpp
-@@ -68,10 +68,6 @@
- #include <cstdarg>
- #include <climits>
- 
--extern "C" {
--#include <talloc.h>
--}
--
- #include "main/core.h"
- #include "glsl_symbol_table.h"
- #include "ir.h"
-@@ -176,9 +172,9 @@ linker_error_printf(gl_shader_program *prog, const char *fmt, ...)
- {
-    va_list ap;
- 
--   prog->InfoLog = talloc_strdup_append(prog->InfoLog, "error: ");
-+   ralloc_strcat(&prog->InfoLog, "error: ");
-    va_start(ap, fmt);
--   prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, ap);
-+   ralloc_vasprintf_append(&prog->InfoLog, fmt, ap);
-    va_end(ap);
- }
- 
-@@ -360,11 +356,8 @@ cross_validate_globals(struct gl_shader_program *prog,
- 		   && (var->type->fields.array == existing->type->fields.array)
- 		   && ((var->type->length == 0)
- 		       || (existing->type->length == 0))) {
--		  if (existing->type->length == 0) {
-+		  if (var->type->length != 0) {
- 		     existing->type = var->type;
--		     existing->max_array_access =
--			MAX2(existing->max_array_access,
--			     var->max_array_access);
- 		  }
- 	       } else {
- 		  linker_error_printf(prog, "%s `%s' declared as type "
-@@ -413,7 +406,7 @@ cross_validate_globals(struct gl_shader_program *prog,
- 		   * FINISHME: will fail.
- 		   */
- 		  existing->constant_value =
--		     var->constant_value->clone(talloc_parent(existing), NULL);
-+		     var->constant_value->clone(ralloc_parent(existing), NULL);
- 	    }
- 
- 	    if (existing->invariant != var->invariant) {
-@@ -422,6 +415,12 @@ cross_validate_globals(struct gl_shader_program *prog,
- 	                           mode_string(var), var->name);
- 	       return false;
- 	    }
-+            if (existing->centroid != var->centroid) {
-+               linker_error_printf(prog, "declarations for %s `%s' have "
-+                                   "mismatching centroid qualifiers\n",
-+                                   mode_string(var), var->name);
-+               return false;
-+            }
- 	 } else
- 	    variables.add_variable(var);
-       }
-@@ -888,30 +887,29 @@ link_intrastage_shaders(void *mem_ctx,
- 
-    free(linking_shaders);
- 
--   /* Make a pass over all global variables to ensure that arrays with
-+   /* Make a pass over all variable declarations to ensure that arrays with
-     * unspecified sizes have a size specified.  The size is inferred from the
-     * max_array_access field.
-     */
-    if (linked != NULL) {
--      foreach_list(node, linked->ir) {
--	 ir_variable *const var = ((ir_instruction *) node)->as_variable();
--
--	 if (var == NULL)
--	    continue;
--
--	 if ((var->mode != ir_var_auto) && (var->mode != ir_var_temporary))
--	    continue;
--
--	 if (!var->type->is_array() || (var->type->length != 0))
--	    continue;
-+      class array_sizing_visitor : public ir_hierarchical_visitor {
-+      public:
-+	 virtual ir_visitor_status visit(ir_variable *var)
-+	 {
-+	    if (var->type->is_array() && (var->type->length == 0)) {
-+	       const glsl_type *type =
-+		  glsl_type::get_array_instance(var->type->fields.array,
-+						var->max_array_access);
-+
-+	       assert(type != NULL);
-+	       var->type = type;
-+	    }
- 
--	 const glsl_type *type =
--	    glsl_type::get_array_instance(var->type->fields.array,
--					  var->max_array_access);
-+	    return visit_continue;
-+	 }
-+      } v;
- 
--	 assert(type != NULL);
--	 var->type = type;
--      }
-+      v.run(linked->ir);
-    }
- 
-    return linked;
-@@ -991,7 +989,7 @@ add_uniform(void *mem_ctx, exec_list *uniforms, struct hash_table *ht,
-    if (type->is_record()) {
-       for (unsigned int i = 0; i < type->length; i++) {
- 	 const glsl_type *field_type = type->fields.structure[i].type;
--	 char *field_name = talloc_asprintf(mem_ctx, "%s.%s", name,
-+	 char *field_name = ralloc_asprintf(mem_ctx, "%s.%s", name,
- 					    type->fields.structure[i].name);
- 
- 	 add_uniform(mem_ctx, uniforms, ht, field_name, field_type,
-@@ -1007,7 +1005,7 @@ add_uniform(void *mem_ctx, exec_list *uniforms, struct hash_table *ht,
- 	 /* Array of structures. */
- 	 if (array_elem_type->is_record()) {
- 	    for (unsigned int i = 0; i < type->length; i++) {
--	       char *elem_name = talloc_asprintf(mem_ctx, "%s[%d]", name, i);
-+	       char *elem_name = ralloc_asprintf(mem_ctx, "%s[%d]", name, i);
- 	       add_uniform(mem_ctx, uniforms, ht, elem_name, array_elem_type,
- 			   shader_type, next_shader_pos, total_uniforms);
- 	    }
-@@ -1069,7 +1067,7 @@ assign_uniform_locations(struct gl_shader_program *prog)
-    unsigned total_uniforms = 0;
-    hash_table *ht = hash_table_ctor(32, hash_table_string_hash,
- 				    hash_table_string_compare);
--   void *mem_ctx = talloc_new(NULL);
-+   void *mem_ctx = ralloc_context(NULL);
- 
-    for (unsigned i = 0; i < MESA_SHADER_TYPES; i++) {
-       if (prog->_LinkedShaders[i] == NULL)
-@@ -1098,7 +1096,7 @@ assign_uniform_locations(struct gl_shader_program *prog)
-       }
-    }
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- 
-    gl_uniform_list *ul = (gl_uniform_list *)
-       calloc(1, sizeof(gl_uniform_list));
-@@ -1466,16 +1464,16 @@ assign_varying_locations(struct gl_shader_program *prog,
- void
- link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
- {
--   void *mem_ctx = talloc_init("temporary linker context");
-+   void *mem_ctx = ralloc_context(NULL); // temporary linker context
- 
-    prog->LinkStatus = false;
-    prog->Validated = false;
-    prog->_Used = false;
- 
-    if (prog->InfoLog != NULL)
--      talloc_free(prog->InfoLog);
-+      ralloc_free(prog->InfoLog);
- 
--   prog->InfoLog = talloc_strdup(NULL, "");
-+   prog->InfoLog = ralloc_strdup(NULL, "");
- 
-    /* Separate the shaders into groups based on their type.
-     */
-@@ -1670,5 +1668,5 @@ done:
-       reparent_ir(prog->_LinkedShaders[i]->ir, prog->_LinkedShaders[i]->ir);
-    }
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- }
-diff --git a/src/glsl/list.h b/src/glsl/list.h
-index 3197b03..1d46365 100644
---- a/src/glsl/list.h
-+++ b/src/glsl/list.h
-@@ -66,37 +66,33 @@
- 
- #ifndef __cplusplus
- #include <stddef.h>
--#include <talloc.h>
--#else
--extern "C" {
--#include <talloc.h>
--}
- #endif
--
- #include <assert.h>
- 
-+#include "ralloc.h"
-+
- struct exec_node {
-    struct exec_node *next;
-    struct exec_node *prev;
- 
- #ifdef __cplusplus
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_size(ctx, size);
-+      node = ralloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. */
-+    * ralloc_free in that case. */
-    static void operator delete(void *node)
-    {
--      talloc_free(node);
-+      ralloc_free(node);
-    }
- 
-    exec_node() : next(NULL), prev(NULL)
-@@ -289,23 +285,23 @@ struct exec_list {
-    struct exec_node *tail_pred;
- 
- #ifdef __cplusplus
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_size(ctx, size);
-+      node = ralloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-    }
- 
-    /* If the user *does* call delete, that's OK, we will just
--    * talloc_free in that case. */
-+    * ralloc_free in that case. */
-    static void operator delete(void *node)
-    {
--      talloc_free(node);
-+      ralloc_free(node);
-    }
- 
-    exec_list()
-diff --git a/src/glsl/loop_analysis.cpp b/src/glsl/loop_analysis.cpp
-index ff7adf0..a15f6e1 100644
---- a/src/glsl/loop_analysis.cpp
-+++ b/src/glsl/loop_analysis.cpp
-@@ -37,14 +37,14 @@ loop_state::loop_state()
- {
-    this->ht = hash_table_ctor(0, hash_table_pointer_hash,
- 			      hash_table_pointer_compare);
--   this->mem_ctx = talloc_init("loop state");
-+   this->mem_ctx = ralloc_context(NULL);
- }
- 
- 
- loop_state::~loop_state()
- {
-    hash_table_dtor(this->ht);
--   talloc_free(this->mem_ctx);
-+   ralloc_free(this->mem_ctx);
- }
- 
- 
-@@ -75,8 +75,8 @@ loop_variable_state::get(const ir_variable *ir)
- loop_variable *
- loop_variable_state::insert(ir_variable *var)
- {
--   void *mem_ctx = talloc_parent(this);
--   loop_variable *lv = talloc_zero(mem_ctx, loop_variable);
-+   void *mem_ctx = ralloc_parent(this);
-+   loop_variable *lv = rzalloc(mem_ctx, loop_variable);
- 
-    lv->var = var;
- 
-@@ -90,8 +90,8 @@ loop_variable_state::insert(ir_variable *var)
- loop_terminator *
- loop_variable_state::insert(ir_if *if_stmt)
- {
--   void *mem_ctx = talloc_parent(this);
--   loop_terminator *t = talloc_zero(mem_ctx, loop_terminator);
-+   void *mem_ctx = ralloc_parent(this);
-+   loop_terminator *t = rzalloc(mem_ctx, loop_terminator);
- 
-    t->ir = if_stmt;
-    this->terminators.push_tail(t);
-@@ -447,7 +447,7 @@ get_basic_induction_increment(ir_assignment *ir, hash_table *var_hash)
-    }
- 
-    if ((inc != NULL) && (rhs->operation == ir_binop_sub)) {
--      void *mem_ctx = talloc_parent(ir);
-+      void *mem_ctx = ralloc_parent(ir);
- 
-       inc = new(mem_ctx) ir_expression(ir_unop_neg,
- 				       inc->type,
-diff --git a/src/glsl/loop_controls.cpp b/src/glsl/loop_controls.cpp
-index b528810..9eaa50f 100644
---- a/src/glsl/loop_controls.cpp
-+++ b/src/glsl/loop_controls.cpp
-@@ -88,7 +88,7 @@ calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment,
-    if (from == NULL || to == NULL || increment == NULL)
-       return -1;
- 
--   void *mem_ctx = talloc_init("%s", __func__);
-+   void *mem_ctx = ralloc_context(NULL);
- 
-    ir_expression *const sub =
-       new(mem_ctx) ir_expression(ir_binop_sub, from->type, to, from);
-@@ -147,7 +147,7 @@ calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment,
-       }
-    }
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
-    return (valid_loop) ? iter_value : -1;
- }
- 
-diff --git a/src/glsl/loop_unroll.cpp b/src/glsl/loop_unroll.cpp
-index 4600052..5b84e10 100644
---- a/src/glsl/loop_unroll.cpp
-+++ b/src/glsl/loop_unroll.cpp
-@@ -150,7 +150,7 @@ loop_unroll_visitor::visit_leave(ir_loop *ir)
-           */
-          break_ir->remove();
- 
--         void *const mem_ctx = talloc_parent(ir);
-+         void *const mem_ctx = ralloc_parent(ir);
-          ir_instruction *ir_to_replace = ir;
- 
-          for (int i = 0; i < iterations; i++) {
-@@ -182,7 +182,7 @@ loop_unroll_visitor::visit_leave(ir_loop *ir)
-       }
-    }
- 
--   void *const mem_ctx = talloc_parent(ir);
-+   void *const mem_ctx = ralloc_parent(ir);
- 
-    for (int i = 0; i < iterations; i++) {
-       exec_list copy_list;
-diff --git a/src/glsl/lower_discard.cpp b/src/glsl/lower_discard.cpp
-index b95313d..cafd2dd 100644
---- a/src/glsl/lower_discard.cpp
-+++ b/src/glsl/lower_discard.cpp
-@@ -170,7 +170,7 @@ lower_discard_visitor::visit_leave(ir_if *ir)
-    if (then_discard == NULL && else_discard == NULL)
-       return visit_continue;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    ir_variable *temp = new(mem_ctx) ir_variable(glsl_type::bool_type,
- 						"discard_cond_temp",
-diff --git a/src/glsl/lower_if_to_cond_assign.cpp b/src/glsl/lower_if_to_cond_assign.cpp
-index 40ffc45..e3a1065 100644
---- a/src/glsl/lower_if_to_cond_assign.cpp
-+++ b/src/glsl/lower_if_to_cond_assign.cpp
-@@ -171,7 +171,7 @@ ir_if_to_cond_assign_visitor::visit_leave(ir_if *ir)
-    if (found_control_flow)
-       return visit_continue;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    /* Store the condition to a variable so the assignment conditions are
-     * simpler.
-diff --git a/src/glsl/lower_mat_op_to_vec.cpp b/src/glsl/lower_mat_op_to_vec.cpp
-index 7065fde..8cbbfa7 100644
---- a/src/glsl/lower_mat_op_to_vec.cpp
-+++ b/src/glsl/lower_mat_op_to_vec.cpp
-@@ -368,7 +368,7 @@ ir_mat_op_to_vec_visitor::visit_leave(ir_assignment *orig_assign)
- 
-    assert(orig_expr->get_num_operands() <= 2);
- 
--   mem_ctx = talloc_parent(orig_assign);
-+   mem_ctx = ralloc_parent(orig_assign);
- 
-    ir_dereference_variable *lhs_deref =
-       orig_assign->lhs->as_dereference_variable();
-diff --git a/src/glsl/lower_noise.cpp b/src/glsl/lower_noise.cpp
-index cb32d28..85f59b6 100644
---- a/src/glsl/lower_noise.cpp
-+++ b/src/glsl/lower_noise.cpp
-@@ -51,7 +51,7 @@ public:
-        * that implements noise.  No hardware has a noise instruction.
-        */
-       if (expr->operation == ir_unop_noise) {
--	 *rvalue = ir_constant::zero(talloc_parent(expr), expr->type);
-+	 *rvalue = ir_constant::zero(ralloc_parent(expr), expr->type);
- 	 this->progress = true;
-       }
-    }
-diff --git a/src/glsl/lower_texture_projection.cpp b/src/glsl/lower_texture_projection.cpp
-index 1fd26a7..6e3aaec 100644
---- a/src/glsl/lower_texture_projection.cpp
-+++ b/src/glsl/lower_texture_projection.cpp
-@@ -55,7 +55,7 @@ lower_texture_projection_visitor::visit_leave(ir_texture *ir)
-    if (!ir->projector)
-       return visit_continue;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    ir_variable *var = new(mem_ctx) ir_variable(ir->projector->type,
- 					       "projector", ir_var_auto);
-diff --git a/src/glsl/lower_variable_index_to_cond_assign.cpp b/src/glsl/lower_variable_index_to_cond_assign.cpp
-index 5f0dd73..147a6ae 100644
---- a/src/glsl/lower_variable_index_to_cond_assign.cpp
-+++ b/src/glsl/lower_variable_index_to_cond_assign.cpp
-@@ -42,6 +42,7 @@ struct assignment_generator
-    ir_instruction* base_ir;
-    ir_rvalue* array;
-    bool is_write;
-+   unsigned int write_mask;
-    ir_variable* var;
- 
-    assignment_generator()
-@@ -53,15 +54,19 @@ struct assignment_generator
-       /* Just clone the rest of the deref chain when trying to get at the
-        * underlying variable.
-        */
--      void *mem_ctx = talloc_parent(base_ir);
--      ir_rvalue *element =
-+      void *mem_ctx = ralloc_parent(base_ir);
-+      ir_dereference *element =
- 	 new(mem_ctx) ir_dereference_array(this->array->clone(mem_ctx, NULL),
- 					   new(mem_ctx) ir_constant(i));
-       ir_rvalue *variable = new(mem_ctx) ir_dereference_variable(this->var);
- 
--      ir_assignment *assignment = (is_write)
--	 ? new(mem_ctx) ir_assignment(element, variable, condition)
--	 : new(mem_ctx) ir_assignment(variable, element, condition);
-+      ir_assignment *assignment;
-+      if (is_write) {
-+	 assignment = new(mem_ctx) ir_assignment(element, variable, condition,
-+						 write_mask);
-+      } else {
-+	 assignment = new(mem_ctx) ir_assignment(variable, element, condition);
-+      }
- 
-       list->push_tail(assignment);
-    }
-@@ -86,7 +91,7 @@ struct switch_generator
- 	linear_sequence_max_length(linear_sequence_max_length),
- 	condition_components(condition_components)
-    {
--      this->mem_ctx = talloc_parent(index);
-+      this->mem_ctx = ralloc_parent(index);
-    }
- 
-    void linear_sequence(unsigned begin, unsigned end, exec_list *list)
-@@ -262,7 +267,7 @@ public:
-    }
- 
-    ir_variable *convert_dereference_array(ir_dereference_array *orig_deref,
--					  ir_rvalue* value)
-+					  ir_assignment* orig_assign)
-    {
-       assert(is_array_or_matrix(orig_deref->array));
- 
-@@ -270,17 +275,31 @@ public:
-          ? orig_deref->array->type->length
-          : orig_deref->array->type->matrix_columns;
- 
--      void *const mem_ctx = talloc_parent(base_ir);
--      ir_variable *var =
--	 new(mem_ctx) ir_variable(orig_deref->type, "dereference_array_value",
--				  ir_var_temporary);
--      base_ir->insert_before(var);
-+      void *const mem_ctx = ralloc_parent(base_ir);
-+
-+      /* Temporary storage for either the result of the dereference of
-+       * the array, or the RHS that's being assigned into the
-+       * dereference of the array.
-+       */
-+      ir_variable *var;
-+
-+      if (orig_assign) {
-+	 var = new(mem_ctx) ir_variable(orig_assign->rhs->type,
-+					"dereference_array_value",
-+					ir_var_temporary);
-+	 base_ir->insert_before(var);
- 
--      if (value) {
- 	 ir_dereference *lhs = new(mem_ctx) ir_dereference_variable(var);
--	 ir_assignment *assign = new(mem_ctx) ir_assignment(lhs, value, NULL);
-+	 ir_assignment *assign = new(mem_ctx) ir_assignment(lhs,
-+							    orig_assign->rhs,
-+							    NULL);
- 
-          base_ir->insert_before(assign);
-+      } else {
-+	 var = new(mem_ctx) ir_variable(orig_deref->type,
-+					"dereference_array_value",
-+					ir_var_temporary);
-+	 base_ir->insert_before(var);
-       }
- 
-       /* Store the index to a temporary to avoid reusing its tree. */
-@@ -298,7 +317,12 @@ public:
-       ag.array = orig_deref->array;
-       ag.base_ir = base_ir;
-       ag.var = var;
--      ag.is_write = !!value;
-+      if (orig_assign) {
-+	 ag.is_write = true;
-+	 ag.write_mask = orig_assign->write_mask;
-+      } else {
-+	 ag.is_write = false;
-+      }
- 
-       switch_generator sg(ag, index, 4, 4);
- 
-@@ -318,7 +342,7 @@ public:
-       if (needs_lowering(orig_deref)) {
-          ir_variable* var = convert_dereference_array(orig_deref, 0);
-          assert(var);
--         *pir = new(talloc_parent(base_ir)) ir_dereference_variable(var);
-+         *pir = new(ralloc_parent(base_ir)) ir_dereference_variable(var);
-          this->progress = true;
-       }
-    }
-@@ -331,7 +355,7 @@ public:
-       ir_dereference_array *orig_deref = ir->lhs->as_dereference_array();
- 
-       if (needs_lowering(orig_deref)) {
--         convert_dereference_array(orig_deref, ir->rhs);
-+         convert_dereference_array(orig_deref, ir);
-          ir->remove();
-          this->progress = true;
-       }
-diff --git a/src/glsl/lower_vec_index_to_cond_assign.cpp b/src/glsl/lower_vec_index_to_cond_assign.cpp
-index f8011a1..3c4d932 100644
---- a/src/glsl/lower_vec_index_to_cond_assign.cpp
-+++ b/src/glsl/lower_vec_index_to_cond_assign.cpp
-@@ -82,7 +82,7 @@ ir_vec_index_to_cond_assign_visitor::convert_vec_index_to_cond_assign(ir_rvalue
-        orig_deref->array->type->is_array())
-       return ir;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    assert(orig_deref->array_index->type->base_type == GLSL_TYPE_INT);
- 
-@@ -167,7 +167,7 @@ ir_vec_index_to_cond_assign_visitor::visit_leave(ir_assignment *ir)
-        orig_deref->array->type->is_array())
-       return visit_continue;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    assert(orig_deref->array_index->type->base_type == GLSL_TYPE_INT);
- 
-diff --git a/src/glsl/lower_vec_index_to_swizzle.cpp b/src/glsl/lower_vec_index_to_swizzle.cpp
-index 9ae43c0..c7630c2 100644
---- a/src/glsl/lower_vec_index_to_swizzle.cpp
-+++ b/src/glsl/lower_vec_index_to_swizzle.cpp
-@@ -74,7 +74,7 @@ ir_vec_index_to_swizzle_visitor::convert_vec_index_to_swizzle(ir_rvalue *ir)
-    if (!ir_constant)
-       return ir;
- 
--   void *ctx = talloc_parent(ir);
-+   void *ctx = ralloc_parent(ir);
-    this->progress = true;
-    return new(ctx) ir_swizzle(deref->array,
- 			      ir_constant->value.i[0], 0, 0, 0, 1);
-diff --git a/src/glsl/lower_vector.cpp b/src/glsl/lower_vector.cpp
-index 93c3763..57963a1 100644
---- a/src/glsl/lower_vector.cpp
-+++ b/src/glsl/lower_vector.cpp
-@@ -125,7 +125,7 @@ lower_vector_visitor::handle_rvalue(ir_rvalue **rvalue)
-    if (this->dont_lower_swz && is_extended_swizzle(expr))
-       return;
- 
--   /* FINISHME: Is this the right thing to use for the talloc context?
-+   /* FINISHME: Is this the right thing to use for the ralloc context?
-     */
-    void *const mem_ctx = expr;
- 
-diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
-index c8fc267..efb49f0 100644
---- a/src/glsl/main.cpp
-+++ b/src/glsl/main.cpp
-@@ -61,7 +61,7 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
-    (void) ctx;
- 
-    assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER);
--   shader = talloc_zero(NULL, struct gl_shader);
-+   shader = rzalloc(NULL, struct gl_shader);
-    if (shader) {
-       shader->Type = type;
-       shader->Name = name;
-@@ -105,7 +105,7 @@ initialize_context(struct gl_context *ctx, gl_api api)
-    ctx->Driver.NewShader = _mesa_new_shader;
- }
- 
--/* Returned string will have 'ctx' as its talloc owner. */
-+/* Returned string will have 'ctx' as its ralloc owner. */
- static char *
- load_text_file(void *ctx, const char *file_name)
- {
-@@ -119,7 +119,7 @@ load_text_file(void *ctx, const char *file_name)
- 	}
- 
- 	if (fstat(fd, & st) == 0) {
--	   text = (char *) talloc_size(ctx, st.st_size + 1);
-+	   text = (char *) ralloc_size(ctx, st.st_size + 1);
- 		if (text != NULL) {
- 			do {
- 				ssize_t bytes = read(fd, text + total_read,
-@@ -238,14 +238,14 @@ compile_shader(struct gl_context *ctx, struct gl_shader *shader)
-    shader->num_builtins_to_link = state->num_builtins_to_link;
- 
-    if (shader->InfoLog)
--      talloc_free(shader->InfoLog);
-+      ralloc_free(shader->InfoLog);
- 
-    shader->InfoLog = state->info_log;
- 
-    /* Retain any live IR, but trash the rest. */
-    reparent_ir(shader->ir, shader);
- 
--   talloc_free(state);
-+   ralloc_free(state);
- 
-    return;
- }
-@@ -270,16 +270,16 @@ main(int argc, char **argv)
- 
-    struct gl_shader_program *whole_program;
- 
--   whole_program = talloc_zero (NULL, struct gl_shader_program);
-+   whole_program = rzalloc (NULL, struct gl_shader_program);
-    assert(whole_program != NULL);
- 
-    for (/* empty */; argc > optind; optind++) {
--      whole_program->Shaders = (struct gl_shader **)
--	 talloc_realloc(whole_program, whole_program->Shaders,
--			struct gl_shader *, whole_program->NumShaders + 1);
-+      whole_program->Shaders =
-+	 reralloc(whole_program, whole_program->Shaders,
-+		  struct gl_shader *, whole_program->NumShaders + 1);
-       assert(whole_program->Shaders != NULL);
- 
--      struct gl_shader *shader = talloc_zero(whole_program, gl_shader);
-+      struct gl_shader *shader = rzalloc(whole_program, gl_shader);
- 
-       whole_program->Shaders[whole_program->NumShaders] = shader;
-       whole_program->NumShaders++;
-@@ -322,9 +322,9 @@ main(int argc, char **argv)
-    }
- 
-    for (unsigned i = 0; i < MESA_SHADER_TYPES; i++)
--      talloc_free(whole_program->_LinkedShaders[i]);
-+      ralloc_free(whole_program->_LinkedShaders[i]);
- 
--   talloc_free(whole_program);
-+   ralloc_free(whole_program);
-    _mesa_glsl_release_types();
-    _mesa_glsl_release_functions();
- 
-diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp
-index 20f6159..cade961 100644
---- a/src/glsl/opt_algebraic.cpp
-+++ b/src/glsl/opt_algebraic.cpp
-@@ -191,7 +191,7 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
-    }
- 
-    if (this->mem_ctx == NULL)
--      this->mem_ctx = talloc_parent(ir);
-+      this->mem_ctx = ralloc_parent(ir);
- 
-    switch (ir->operation) {
-    case ir_unop_logic_not: {
-diff --git a/src/glsl/opt_constant_propagation.cpp b/src/glsl/opt_constant_propagation.cpp
-index 6719fc8..e1f6889 100644
---- a/src/glsl/opt_constant_propagation.cpp
-+++ b/src/glsl/opt_constant_propagation.cpp
-@@ -78,13 +78,13 @@ public:
-    ir_constant_propagation_visitor()
-    {
-       progress = false;
--      mem_ctx = talloc_new(0);
-+      mem_ctx = ralloc_context(0);
-       this->acp = new(mem_ctx) exec_list;
-       this->kills = new(mem_ctx) exec_list;
-    }
-    ~ir_constant_propagation_visitor()
-    {
--      talloc_free(mem_ctx);
-+      ralloc_free(mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit_enter(class ir_loop *);
-@@ -195,7 +195,7 @@ ir_constant_propagation_visitor::handle_rvalue(ir_rvalue **rvalue)
-       }
-    }
- 
--   *rvalue = new(talloc_parent(deref)) ir_constant(type, &data);
-+   *rvalue = new(ralloc_parent(deref)) ir_constant(type, &data);
-    this->progress = true;
- }
- 
-diff --git a/src/glsl/opt_copy_propagation.cpp b/src/glsl/opt_copy_propagation.cpp
-index 8d07fef..4ab23bf 100644
---- a/src/glsl/opt_copy_propagation.cpp
-+++ b/src/glsl/opt_copy_propagation.cpp
-@@ -71,13 +71,13 @@ public:
-    ir_copy_propagation_visitor()
-    {
-       progress = false;
--      mem_ctx = talloc_new(0);
-+      mem_ctx = ralloc_context(0);
-       this->acp = new(mem_ctx) exec_list;
-       this->kills = new(mem_ctx) exec_list;
-    }
-    ~ir_copy_propagation_visitor()
-    {
--      talloc_free(mem_ctx);
-+      ralloc_free(mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit(class ir_dereference_variable *);
-@@ -325,7 +325,7 @@ ir_copy_propagation_visitor::add_copy(ir_assignment *ir)
- 	  * calling us.  Just flag it to not execute, and someone else
- 	  * will clean up the mess.
- 	  */
--	 ir->condition = new(talloc_parent(ir)) ir_constant(false);
-+	 ir->condition = new(ralloc_parent(ir)) ir_constant(false);
- 	 this->progress = true;
-       } else {
- 	 entry = new(this->mem_ctx) acp_entry(lhs_var, rhs_var);
-diff --git a/src/glsl/opt_dead_code_local.cpp b/src/glsl/opt_dead_code_local.cpp
-index 5689e7d..2610b69 100644
---- a/src/glsl/opt_dead_code_local.cpp
-+++ b/src/glsl/opt_dead_code_local.cpp
-@@ -190,7 +190,7 @@ dead_code_local_basic_block(ir_instruction *first,
-    bool *out_progress = (bool *)data;
-    bool progress = false;
- 
--   void *ctx = talloc_new(NULL);
-+   void *ctx = ralloc_context(NULL);
-    /* Safe looping, since process_assignment */
-    for (ir = first, ir_next = (ir_instruction *)first->next;;
- 	ir = ir_next, ir_next = (ir_instruction *)ir->next) {
-@@ -212,7 +212,7 @@ dead_code_local_basic_block(ir_instruction *first,
- 	 break;
-    }
-    *out_progress = progress;
--   talloc_free(ctx);
-+   ralloc_free(ctx);
- }
- 
- /**
-diff --git a/src/glsl/opt_dead_functions.cpp b/src/glsl/opt_dead_functions.cpp
-index cf91cb6..ceb7908 100644
---- a/src/glsl/opt_dead_functions.cpp
-+++ b/src/glsl/opt_dead_functions.cpp
-@@ -49,12 +49,12 @@
-  public:
-     ir_dead_functions_visitor()
-     {
--       this->mem_ctx = talloc_new(NULL);
-+       this->mem_ctx = ralloc_context(NULL);
-     }
- 
-     ~ir_dead_functions_visitor()
-     {
--       talloc_free(this->mem_ctx);
-+       ralloc_free(this->mem_ctx);
-     }
- 
-     virtual ir_visitor_status visit_enter(ir_function_signature *);
-diff --git a/src/glsl/opt_function_inlining.cpp b/src/glsl/opt_function_inlining.cpp
-index 169fd82..a0449a7 100644
---- a/src/glsl/opt_function_inlining.cpp
-+++ b/src/glsl/opt_function_inlining.cpp
-@@ -89,7 +89,7 @@ do_function_inlining(exec_list *instructions)
- static void
- replace_return_with_assignment(ir_instruction *ir, void *data)
- {
--   void *ctx = talloc_parent(ir);
-+   void *ctx = ralloc_parent(ir);
-    ir_variable *retval = (ir_variable *)data;
-    ir_return *ret = ir->as_return();
- 
-@@ -110,7 +110,7 @@ replace_return_with_assignment(ir_instruction *ir, void *data)
- ir_rvalue *
- ir_call::generate_inline(ir_instruction *next_ir)
- {
--   void *ctx = talloc_parent(this);
-+   void *ctx = ralloc_parent(this);
-    ir_variable **parameters;
-    int num_parameters;
-    int i;
-@@ -357,7 +357,7 @@ ir_sampler_replacement_visitor::replace_deref(ir_dereference **deref)
- {
-    ir_dereference_variable *deref_var = (*deref)->as_dereference_variable();
-    if (deref_var && deref_var->var == this->sampler) {
--      *deref = this->deref->clone(talloc_parent(*deref), NULL);
-+      *deref = this->deref->clone(ralloc_parent(*deref), NULL);
-    }
- }
- 
-diff --git a/src/glsl/opt_structure_splitting.cpp b/src/glsl/opt_structure_splitting.cpp
-index d619100..014407c 100644
---- a/src/glsl/opt_structure_splitting.cpp
-+++ b/src/glsl/opt_structure_splitting.cpp
-@@ -65,7 +65,7 @@ public:
- 
-    ir_variable **components;
- 
--   /** talloc_parent(this->var) -- the shader's talloc context. */
-+   /** ralloc_parent(this->var) -- the shader's ralloc context. */
-    void *mem_ctx;
- };
- 
-@@ -74,13 +74,13 @@ class ir_structure_reference_visitor : public ir_hierarchical_visitor {
- public:
-    ir_structure_reference_visitor(void)
-    {
--      this->mem_ctx = talloc_new(NULL);
-+      this->mem_ctx = ralloc_context(NULL);
-       this->variable_list.make_empty();
-    }
- 
-    ~ir_structure_reference_visitor(void)
-    {
--      talloc_free(mem_ctx);
-+      ralloc_free(mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit(ir_variable *);
-@@ -322,7 +322,7 @@ do_structure_splitting(exec_list *instructions)
-    if (refs.variable_list.is_empty())
-       return false;
- 
--   void *mem_ctx = talloc_new(NULL);
-+   void *mem_ctx = ralloc_context(NULL);
- 
-    /* Replace the decls of the structures to be split with their split
-     * components.
-@@ -331,14 +331,14 @@ do_structure_splitting(exec_list *instructions)
-       variable_entry2 *entry = (variable_entry2 *)iter.get();
-       const struct glsl_type *type = entry->var->type;
- 
--      entry->mem_ctx = talloc_parent(entry->var);
-+      entry->mem_ctx = ralloc_parent(entry->var);
- 
--      entry->components = talloc_array(mem_ctx,
-+      entry->components = ralloc_array(mem_ctx,
- 				       ir_variable *,
- 				       type->length);
- 
-       for (unsigned int i = 0; i < entry->var->type->length; i++) {
--	 const char *name = talloc_asprintf(mem_ctx, "%s_%s",
-+	 const char *name = ralloc_asprintf(mem_ctx, "%s_%s",
- 					    entry->var->name,
- 					    type->fields.structure[i].name);
- 
-@@ -355,7 +355,7 @@ do_structure_splitting(exec_list *instructions)
-    ir_structure_splitting_visitor split(&refs.variable_list);
-    visit_list_elements(&split, instructions);
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- 
-    return true;
- }
-diff --git a/src/glsl/ralloc.c b/src/glsl/ralloc.c
-new file mode 100644
-index 0000000..f7edff6
---- /dev/null
-+++ b/src/glsl/ralloc.c
-@@ -0,0 +1,442 @@
-+/*
-+ * Copyright © 2010 Intel Corporation
-+ *
-+ * 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 (including the next
-+ * paragraph) 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 <assert.h>
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdint.h>
-+
-+#include "ralloc.h"
-+
-+#ifdef __GNUC__
-+#define likely(x)       __builtin_expect(!!(x),1)
-+#define unlikely(x)     __builtin_expect(!!(x),0)
-+#else
-+#define likely(x)       !!(x)
-+#define unlikely(x)     !!(x)
-+#endif
-+
-+#define CANARY 0x5A1106
-+
-+struct ralloc_header
-+{
-+   /* A canary value used to determine whether a pointer is ralloc'd. */
-+   unsigned canary;
-+
-+   struct ralloc_header *parent;
-+
-+   /* The first child (head of a linked list) */
-+   struct ralloc_header *child;
-+
-+   /* Linked list of siblings */
-+   struct ralloc_header *prev;
-+   struct ralloc_header *next;
-+
-+   void (*destructor)(void *);
-+};
-+
-+typedef struct ralloc_header ralloc_header;
-+
-+static void unlink_block(ralloc_header *info);
-+static void unsafe_free(ralloc_header *info);
-+
-+static ralloc_header *
-+get_header(const void *ptr)
-+{
-+   ralloc_header *info = (ralloc_header *) (((char *) ptr) -
-+					    sizeof(ralloc_header));
-+   assert(info->canary == CANARY);
-+   return info;
-+}
-+
-+#define PTR_FROM_HEADER(info) (((char *) info) + sizeof(ralloc_header))
-+
-+static void
-+add_child(ralloc_header *parent, ralloc_header *info)
-+{
-+   if (parent != NULL) {
-+      info->parent = parent;
-+      info->next = parent->child;
-+      parent->child = info;
-+
-+      if (info->next != NULL)
-+	 info->next->prev = info;
-+   }
-+}
-+
-+void *
-+ralloc_context(const void *ctx)
-+{
-+   return ralloc_size(ctx, 0);
-+}
-+
-+void *
-+ralloc_size(const void *ctx, size_t size)
-+{
-+   void *block = calloc(1, size + sizeof(ralloc_header));
-+
-+   ralloc_header *info = (ralloc_header *) block;
-+   ralloc_header *parent = ctx != NULL ? get_header(ctx) : NULL;
-+
-+   add_child(parent, info);
-+
-+   info->canary = CANARY;
-+
-+   return PTR_FROM_HEADER(info);
-+}
-+
-+void *
-+rzalloc_size(const void *ctx, size_t size)
-+{
-+   void *ptr = ralloc_size(ctx, size);
-+   if (likely(ptr != NULL))
-+      memset(ptr, 0, size);
-+   return ptr;
-+}
-+
-+/* helper function - assumes ptr != NULL */
-+static void *
-+resize(void *ptr, size_t size)
-+{
-+   ralloc_header *child, *old, *info;
-+
-+   old = get_header(ptr);
-+   info = realloc(old, size + sizeof(ralloc_header));
-+
-+   if (info == NULL)
-+      return NULL;
-+
-+   /* Update parent and sibling's links to the reallocated node. */
-+   if (info != old && info->parent != NULL) {
-+      if (info->parent->child == old)
-+	 info->parent->child = info;
-+
-+      if (info->prev != NULL)
-+	 info->prev->next = info;
-+
-+      if (info->next != NULL)
-+	 info->next->prev = info;
-+   }
-+
-+   /* Update child->parent links for all children */
-+   for (child = info->child; child != NULL; child = child->next)
-+      child->parent = info;
-+
-+   return PTR_FROM_HEADER(info);
-+}
-+
-+void *
-+reralloc_size(const void *ctx, void *ptr, size_t size)
-+{
-+   if (unlikely(ptr == NULL))
-+      return ralloc_size(ctx, size);
-+
-+   assert(ralloc_parent(ptr) == ctx);
-+   return resize(ptr, size);
-+}
-+
-+void *
-+ralloc_array_size(const void *ctx, size_t size, unsigned count)
-+{
-+   if (count > SIZE_MAX/size)
-+      return NULL;
-+
-+   return ralloc_size(ctx, size * count);
-+}
-+
-+void *
-+rzalloc_array_size(const void *ctx, size_t size, unsigned count)
-+{
-+   if (count > SIZE_MAX/size)
-+      return NULL;
-+
-+   return rzalloc_size(ctx, size * count);
-+}
-+
-+void *
-+reralloc_array_size(const void *ctx, void *ptr, size_t size, unsigned count)
-+{
-+   if (count > SIZE_MAX/size)
-+      return NULL;
-+
-+   return reralloc_size(ctx, ptr, size * count);
-+}
-+
-+void
-+ralloc_free(void *ptr)
-+{
-+   ralloc_header *info;
-+
-+   if (ptr == NULL)
-+      return;
-+
-+   info = get_header(ptr);
-+   unlink_block(info);
-+   unsafe_free(info);
-+}
-+
-+static void
-+unlink_block(ralloc_header *info)
-+{
-+   /* Unlink from parent & siblings */
-+   if (info->parent != NULL) {
-+      if (info->parent->child == info)
-+	 info->parent->child = info->next;
-+
-+      if (info->prev != NULL)
-+	 info->prev->next = info->next;
-+
-+      if (info->next != NULL)
-+	 info->next->prev = info->prev;
-+   }
-+   info->parent = NULL;
-+   info->prev = NULL;
-+   info->next = NULL;
-+}
-+
-+static void
-+unsafe_free(ralloc_header *info)
-+{
-+   /* Recursively free any children...don't waste time unlinking them. */
-+   ralloc_header *temp;
-+   while (info->child != NULL) {
-+      temp = info->child;
-+      info->child = temp->next;
-+      unsafe_free(temp);
-+   }
-+
-+   /* Free the block itself.  Call the destructor first, if any. */
-+   if (info->destructor != NULL)
-+      info->destructor(PTR_FROM_HEADER(info));
-+
-+   free(info);
-+}
-+
-+void
-+ralloc_steal(const void *new_ctx, void *ptr)
-+{
-+   ralloc_header *info, *parent;
-+
-+   if (unlikely(ptr == NULL))
-+      return;
-+
-+   info = get_header(ptr);
-+   parent = get_header(new_ctx);
-+
-+   unlink_block(info);
-+
-+   add_child(parent, info);
-+}
-+
-+void *
-+ralloc_parent(const void *ptr)
-+{
-+   ralloc_header *info;
-+
-+   if (unlikely(ptr == NULL))
-+      return NULL;
-+
-+   info = get_header(ptr);
-+   return PTR_FROM_HEADER(info->parent);
-+}
-+
-+static void *autofree_context = NULL;
-+
-+static void
-+autofree(void)
-+{
-+   ralloc_free(autofree_context);
-+}
-+
-+void *
-+ralloc_autofree_context(void)
-+{
-+   if (unlikely(autofree_context == NULL)) {
-+      autofree_context = ralloc_context(NULL);
-+      atexit(autofree);
-+   }
-+   return autofree_context;
-+}
-+
-+void
-+ralloc_set_destructor(const void *ptr, void(*destructor)(void *))
-+{
-+   ralloc_header *info = get_header(ptr);
-+   info->destructor = destructor;
-+}
-+
-+char *
-+ralloc_strdup(const void *ctx, const char *str)
-+{
-+   size_t n;
-+   char *ptr;
-+
-+   if (unlikely(str == NULL))
-+      return NULL;
-+
-+   n = strlen(str);
-+   ptr = ralloc_array(ctx, char, n + 1);
-+   memcpy(ptr, str, n);
-+   ptr[n] = '\0';
-+   return ptr;
-+}
-+
-+char *
-+ralloc_strndup(const void *ctx, const char *str, size_t max)
-+{
-+   size_t n;
-+   char *ptr;
-+
-+   if (unlikely(str == NULL))
-+      return NULL;
-+
-+   n = strlen(str);
-+   if (n > max)
-+      n = max;
-+
-+   ptr = ralloc_array(ctx, char, n + 1);
-+   memcpy(ptr, str, n);
-+   ptr[n] = '\0';
-+   return ptr;
-+}
-+
-+/* helper routine for strcat/strncat - n is the exact amount to copy */
-+static bool
-+cat(char **dest, const char *str, size_t n)
-+{
-+   char *both;
-+   size_t existing_length;
-+   assert(dest != NULL && *dest != NULL);
-+
-+   existing_length = strlen(*dest);
-+   both = resize(*dest, existing_length + n + 1);
-+   if (unlikely(both == NULL))
-+      return false;
-+
-+   memcpy(both + existing_length, str, n);
-+   both[existing_length + n] = '\0';
-+
-+   *dest = both;
-+   return true;
-+}
-+
-+
-+bool
-+ralloc_strcat(char **dest, const char *str)
-+{
-+   return cat(dest, str, strlen(str));
-+}
-+
-+bool
-+ralloc_strncat(char **dest, const char *str, size_t n)
-+{
-+   /* Clamp n to the string length */
-+   size_t str_length = strlen(str);
-+   if (str_length < n)
-+      n = str_length;
-+
-+   return cat(dest, str, n);
-+}
-+
-+char *
-+ralloc_asprintf(const void *ctx, const char *fmt, ...)
-+{
-+   char *ptr;
-+   va_list args;
-+   va_start(args, fmt);
-+   ptr = ralloc_vasprintf(ctx, fmt, args);
-+   va_end(args);
-+   return ptr;
-+}
-+
-+/* Return the length of the string that would be generated by a printf-style
-+ * format and argument list, not including the \0 byte.
-+ */
-+static size_t
-+printf_length(const char *fmt, va_list untouched_args)
-+{
-+   int size;
-+   char junk;
-+
-+   /* Make a copy of the va_list so the original caller can still use it */
-+   va_list args;
-+   va_copy(args, untouched_args);
-+
-+   size = vsnprintf(&junk, 1, fmt, args);
-+   assert(size >= 0);
-+
-+   va_end(args);
-+
-+   return size;
-+}
-+
-+char *
-+ralloc_vasprintf(const void *ctx, const char *fmt, va_list args)
-+{
-+   size_t size = printf_length(fmt, args) + 1;
-+
-+   char *ptr = ralloc_size(ctx, size);
-+   if (ptr != NULL)
-+      vsnprintf(ptr, size, fmt, args);
-+
-+   return ptr;
-+}
-+
-+bool
-+ralloc_asprintf_append(char **str, const char *fmt, ...)
-+{
-+   bool success;
-+   va_list args;
-+   va_start(args, fmt);
-+   success = ralloc_vasprintf_append(str, fmt, args);
-+   va_end(args);
-+   return success;
-+}
-+
-+bool
-+ralloc_vasprintf_append(char **str, const char *fmt, va_list args)
-+{
-+   size_t existing_length, new_length;
-+   char *ptr;
-+
-+   assert(str != NULL);
-+
-+   if (unlikely(*str == NULL)) {
-+      // Assuming a NULL context is probably bad, but it's expected behavior.
-+      *str = ralloc_vasprintf(NULL, fmt, args);
-+      return true;
-+   }
-+
-+   existing_length = strlen(*str);
-+   new_length = printf_length(fmt, args);
-+
-+   ptr = resize(*str, existing_length + new_length + 1);
-+   if (unlikely(ptr == NULL))
-+      return false;
-+
-+   vsnprintf(ptr + existing_length, new_length + 1, fmt, args);
-+   *str = ptr;
-+   return true;
-+}
-diff --git a/src/glsl/ralloc.h b/src/glsl/ralloc.h
-new file mode 100644
-index 0000000..d533815
---- /dev/null
-+++ b/src/glsl/ralloc.h
-@@ -0,0 +1,345 @@
-+/*
-+ * Copyright © 2010 Intel Corporation
-+ *
-+ * 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 (including the next
-+ * paragraph) 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.
-+ */
-+
-+/**
-+ * \file ralloc.h
-+ *
-+ * ralloc: a recursive memory allocator
-+ *
-+ * The ralloc memory allocator creates a hierarchy of allocated
-+ * objects. Every allocation is in reference to some parent, and
-+ * every allocated object can in turn be used as the parent of a
-+ * subsequent allocation. This allows for extremely convenient
-+ * discarding of an entire tree/sub-tree of allocations by calling
-+ * ralloc_free on any particular object to free it and all of its
-+ * children.
-+ *
-+ * The conceptual working of ralloc was directly inspired by Andrew
-+ * Tridgell's talloc, but ralloc is an independent implementation
-+ * released under the MIT license and tuned for Mesa.
-+ *
-+ * The talloc implementation is available under the GNU Lesser
-+ * General Public License (GNU LGPL), version 3 or later. It is
-+ * more sophisticated than ralloc in that it includes reference
-+ * counting and debugging features. See: http://talloc.samba.org/
-+ */
-+
-+#ifndef RALLOC_H
-+#define RALLOC_H
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#include <stddef.h>
-+#include <stdarg.h>
-+#include <stdbool.h>
-+
-+/**
-+ * \def ralloc(ctx, type)
-+ * Allocate a new object chained off of the given context.
-+ *
-+ * This is equivalent to:
-+ * \code
-+ * ((type *) ralloc_size(ctx, sizeof(type))
-+ * \endcode
-+ */
-+#define ralloc(ctx, type)  ((type *) ralloc_size(ctx, sizeof(type)))
-+
-+/**
-+ * \def rzalloc(ctx, type)
-+ * Allocate a new object out of the given context and initialize it to zero.
-+ *
-+ * This is equivalent to:
-+ * \code
-+ * ((type *) rzalloc_size(ctx, sizeof(type))
-+ * \endcode
-+ */
-+#define rzalloc(ctx, type) ((type *) rzalloc_size(ctx, sizeof(type)))
-+
-+/**
-+ * Allocate a new ralloc context.
-+ *
-+ * While any ralloc'd pointer can be used as a context, sometimes it is useful
-+ * to simply allocate a context with no associated memory.
-+ *
-+ * It is equivalent to:
-+ * \code
-+ * ((type *) ralloc_size(ctx, 0)
-+ * \endcode
-+ */
-+void *ralloc_context(const void *ctx);
-+
-+/**
-+ * Allocate memory chained off of the given context.
-+ *
-+ * This is the core allocation routine which is used by all others.  It
-+ * simply allocates storage for \p size bytes and returns the pointer,
-+ * similar to \c malloc.
-+ */
-+void *ralloc_size(const void *ctx, size_t size);
-+
-+/**
-+ * Allocate zero-initialized memory chained off of the given context.
-+ *
-+ * This is similar to \c calloc with a size of 1.
-+ */
-+void *rzalloc_size(const void *ctx, size_t size);
-+
-+/**
-+ * Resize a piece of ralloc-managed memory, preserving data.
-+ *
-+ * Similar to \c realloc.  Unlike C89, passing 0 for \p size does not free the
-+ * memory.  Instead, it resizes it to a 0-byte ralloc context, just like
-+ * calling ralloc_size(ctx, 0).  This is different from talloc.
-+ *
-+ * \param ctx  The context to use for new allocation.  If \p ptr != NULL,
-+ *             it must be the same as ralloc_parent(\p ptr).
-+ * \param ptr  Pointer to the memory to be resized.  May be NULL.
-+ * \param size The amount of memory to allocate, in bytes.
-+ */
-+void *reralloc_size(const void *ctx, void *ptr, size_t size);
-+
-+/// \defgroup array Array Allocators @{
-+
-+/**
-+ * \def ralloc_array(ctx, type, count)
-+ * Allocate an array of objects chained off the given context.
-+ *
-+ * Similar to \c calloc, but does not initialize the memory to zero.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \c sizeof(type) and \p count.  This is necessary for security.
-+ *
-+ * This is equivalent to:
-+ * \code
-+ * ((type *) ralloc_array_size(ctx, sizeof(type), count)
-+ * \endcode
-+ */
-+#define ralloc_array(ctx, type, count) \
-+   ((type *) ralloc_array_size(ctx, sizeof(type), count))
-+
-+/**
-+ * \def rzalloc_array(ctx, type, count)
-+ * Allocate a zero-initialized array chained off the given context.
-+ *
-+ * Similar to \c calloc.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \c sizeof(type) and \p count.  This is necessary for security.
-+ *
-+ * This is equivalent to:
-+ * \code
-+ * ((type *) rzalloc_array_size(ctx, sizeof(type), count)
-+ * \endcode
-+ */
-+#define rzalloc_array(ctx, type, count) \
-+   ((type *) rzalloc_array_size(ctx, sizeof(type), count))
-+
-+/**
-+ * \def reralloc(ctx, ptr, type, count)
-+ * Resize a ralloc-managed array, preserving data.
-+ *
-+ * Similar to \c realloc.  Unlike C89, passing 0 for \p size does not free the
-+ * memory.  Instead, it resizes it to a 0-byte ralloc context, just like
-+ * calling ralloc_size(ctx, 0).  This is different from talloc.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \c sizeof(type) and \p count.  This is necessary for security.
-+ *
-+ * \param ctx   The context to use for new allocation.  If \p ptr != NULL,
-+ *              it must be the same as ralloc_parent(\p ptr).
-+ * \param ptr   Pointer to the array to be resized.  May be NULL.
-+ * \param type  The element type.
-+ * \param count The number of elements to allocate.
-+ */
-+#define reralloc(ctx, ptr, type, count) \
-+   ((type *) reralloc_array_size(ctx, ptr, sizeof(type), count))
-+
-+/**
-+ * Allocate memory for an array chained off the given context.
-+ *
-+ * Similar to \c calloc, but does not initialize the memory to zero.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \p size and \p count.  This is necessary for security.
-+ */
-+void *ralloc_array_size(const void *ctx, size_t size, unsigned count);
-+
-+/**
-+ * Allocate a zero-initialized array chained off the given context.
-+ *
-+ * Similar to \c calloc.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \p size and \p count.  This is necessary for security.
-+ */
-+void *rzalloc_array_size(const void *ctx, size_t size, unsigned count);
-+
-+/**
-+ * Resize a ralloc-managed array, preserving data.
-+ *
-+ * Similar to \c realloc.  Unlike C89, passing 0 for \p size does not free the
-+ * memory.  Instead, it resizes it to a 0-byte ralloc context, just like
-+ * calling ralloc_size(ctx, 0).  This is different from talloc.
-+ *
-+ * More than a convenience function, this also checks for integer overflow when
-+ * multiplying \c sizeof(type) and \p count.  This is necessary for security.
-+ *
-+ * \param ctx   The context to use for new allocation.  If \p ptr != NULL,
-+ *              it must be the same as ralloc_parent(\p ptr).
-+ * \param ptr   Pointer to the array to be resized.  May be NULL.
-+ * \param size  The size of an individual element.
-+ * \param count The number of elements to allocate.
-+ *
-+ * \return True unless allocation failed.
-+ */
-+void *reralloc_array_size(const void *ctx, void *ptr, size_t size,
-+			  unsigned count);
-+/// @}
-+
-+/**
-+ * Free a piece of ralloc-managed memory.
-+ *
-+ * This will also free the memory of any children allocated this context.
-+ */
-+void ralloc_free(void *ptr);
-+
-+/**
-+ * "Steal" memory from one context, changing it to another.
-+ *
-+ * This changes \p ptr's context to \p new_ctx.  This is quite useful if
-+ * memory is allocated out of a temporary context.
-+ */
-+void ralloc_steal(const void *new_ctx, void *ptr);
-+
-+/**
-+ * Return the given pointer's ralloc context.
-+ */
-+void *ralloc_parent(const void *ptr);
-+
-+/**
-+ * Return a context whose memory will be automatically freed at program exit.
-+ *
-+ * The first call to this function creates a context and registers a handler
-+ * to free it using \c atexit.  This may cause trouble if used in a library
-+ * loaded with \c dlopen.
-+ */
-+void *ralloc_autofree_context(void);
-+
-+/**
-+ * Set a callback to occur just before an object is freed.
-+ */
-+void ralloc_set_destructor(const void *ptr, void(*destructor)(void *));
-+
-+/// \defgroup array String Functions @{
-+/**
-+ * Duplicate a string, allocating the memory from the given context.
-+ */
-+char *ralloc_strdup(const void *ctx, const char *str);
-+
-+/**
-+ * Duplicate a string, allocating the memory from the given context.
-+ *
-+ * Like \c strndup, at most \p n characters are copied.  If \p str is longer
-+ * than \p n characters, \p n are copied, and a termining \c '\0' byte is added.
-+ */
-+char *ralloc_strndup(const void *ctx, const char *str, size_t n);
-+
-+/**
-+ * Concatenate two strings, allocating the necessary space.
-+ *
-+ * This appends \p str to \p *dest, similar to \c strcat, using ralloc_resize
-+ * to expand \p *dest to the appropriate size.  \p dest will be updated to the
-+ * new pointer unless allocation fails.
-+ *
-+ * The result will always be null-terminated.
-+ *
-+ * \return True unless allocation failed.
-+ */
-+bool ralloc_strcat(char **dest, const char *str);
-+
-+/**
-+ * Concatenate two strings, allocating the necessary space.
-+ *
-+ * This appends at most \p n bytes of \p str to \p *dest, using ralloc_resize
-+ * to expand \p *dest to the appropriate size.  \p dest will be updated to the
-+ * new pointer unless allocation fails.
-+ *
-+ * The result will always be null-terminated; \p str does not need to be null
-+ * terminated if it is longer than \p n.
-+ *
-+ * \return True unless allocation failed.
-+ */
-+bool ralloc_strncat(char **dest, const char *str, size_t n);
-+
-+/**
-+ * Print to a string.
-+ *
-+ * This is analogous to \c sprintf, but allocates enough space (using \p ctx
-+ * as the context) for the resulting string.
-+ *
-+ * \return The newly allocated string.
-+ */
-+char *ralloc_asprintf (const void *ctx, const char *fmt, ...);
-+
-+/**
-+ * Print to a string, given a va_list.
-+ *
-+ * This is analogous to \c vsprintf, but allocates enough space (using \p ctx
-+ * as the context) for the resulting string.
-+ *
-+ * \return The newly allocated string.
-+ */
-+char *ralloc_vasprintf(const void *ctx, const char *fmt, va_list args);
-+
-+/**
-+ * Append formatted text to the supplied string.
-+ *
-+ * \sa ralloc_asprintf
-+ * \sa ralloc_strcat
-+ *
-+ * \p str will be updated to the new pointer unless allocation fails.
-+ *
-+ * \return True unless allocation failed.
-+ */
-+bool ralloc_asprintf_append (char **str, const char *fmt, ...);
-+
-+/**
-+ * Append formatted text to the supplied string, given a va_list.
-+ *
-+ * \sa ralloc_vasprintf
-+ * \sa ralloc_strcat
-+ *
-+ * \p str will be updated to the new pointer unless allocation fails.
-+ *
-+ * \return True unless allocation failed.
-+ */
-+bool ralloc_vasprintf_append(char **str, const char *fmt, va_list args);
-+/// @}
-+
-+#ifdef __cplusplus
-+} /* end of extern "C" */
-+#endif
-+
-+#endif
-diff --git a/src/glsl/s_expression.cpp b/src/glsl/s_expression.cpp
-index e420cd6..7c45fb8 100644
---- a/src/glsl/s_expression.cpp
-+++ b/src/glsl/s_expression.cpp
-@@ -30,7 +30,7 @@
- 
- s_symbol::s_symbol(const char *tmp, size_t n)
- {
--   this->str = talloc_strndup (this, tmp, n);
-+   this->str = ralloc_strndup (this, tmp, n);
-    assert(this->str != NULL);
- }
- 
-diff --git a/src/glsl/s_expression.h b/src/glsl/s_expression.h
-index 29d800e..37f1d04 100644
---- a/src/glsl/s_expression.h
-+++ b/src/glsl/s_expression.h
-@@ -51,7 +51,7 @@ public:
-     * Read an S-Expression from the given string.
-     * Advances the supplied pointer to just after the expression read.
-     *
--    * Any allocation will be performed with 'ctx' as the talloc owner.
-+    * Any allocation will be performed with 'ctx' as the ralloc owner.
-     */
-    static s_expression *read_expression(void *ctx, const char *&src);
- 
-diff --git a/src/mesa/Makefile b/src/mesa/Makefile
-index 8b0756b..c41c38c 100644
---- a/src/mesa/Makefile
-+++ b/src/mesa/Makefile
-@@ -34,9 +34,9 @@ ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES)
- ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES)
- 
- # append include dirs
--MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
--ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
--ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
-+MESA_CPPFLAGS += $(INCLUDE_DIRS)
-+ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS)
-+ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS)
- 
- # tidy compiler flags
- CFLAGS := $(filter-out $(DEFINES), $(CFLAGS))
-diff --git a/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp b/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp
-index 35bea68..8574169 100644
---- a/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_cubemap_normalize.cpp
-@@ -51,7 +51,7 @@ brw_cubemap_normalize_visitor::visit_leave(ir_texture *ir)
-    if (ir->sampler->type->sampler_dimensionality != GLSL_SAMPLER_DIM_CUBE)
-       return visit_continue;
- 
--   void *mem_ctx = talloc_parent(ir);
-+   void *mem_ctx = ralloc_parent(ir);
- 
-    ir_variable *var = new(mem_ctx) ir_variable(ir->coordinate->type,
- 					       "coordinate", ir_var_auto);
-diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
-index 22e6e2e..f74fe03 100644
---- a/src/mesa/drivers/dri/i965/brw_fs.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
-@@ -41,7 +41,6 @@ extern "C" {
- #include "brw_context.h"
- #include "brw_eu.h"
- #include "brw_wm.h"
--#include "talloc.h"
- }
- #include "brw_fs.h"
- #include "../glsl/glsl_types.h"
-@@ -55,7 +54,7 @@ brw_new_shader(struct gl_context *ctx, GLuint name, GLuint type)
- {
-    struct brw_shader *shader;
- 
--   shader = talloc_zero(NULL, struct brw_shader);
-+   shader = rzalloc(NULL, struct brw_shader);
-    if (shader) {
-       shader->base.Type = type;
-       shader->base.Name = name;
-@@ -69,7 +68,7 @@ struct gl_shader_program *
- brw_new_shader_program(struct gl_context *ctx, GLuint name)
- {
-    struct brw_shader_program *prog;
--   prog = talloc_zero(NULL, struct brw_shader_program);
-+   prog = rzalloc(NULL, struct brw_shader_program);
-    if (prog) {
-       prog->base.Name = name;
-       _mesa_init_shader_program(ctx, &prog->base);
-@@ -95,11 +94,11 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
-    struct brw_shader *shader =
-       (struct brw_shader *)prog->_LinkedShaders[MESA_SHADER_FRAGMENT];
-    if (shader != NULL) {
--      void *mem_ctx = talloc_new(NULL);
-+      void *mem_ctx = ralloc_context(NULL);
-       bool progress;
- 
-       if (shader->ir)
--	 talloc_free(shader->ir);
-+	 ralloc_free(shader->ir);
-       shader->ir = new(shader) exec_list;
-       clone_ir_list(mem_ctx, shader->ir, shader->base.ir);
- 
-@@ -149,7 +148,7 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
-       validate_ir_tree(shader->ir);
- 
-       reparent_ir(shader->ir, shader->ir);
--      talloc_free(mem_ctx);
-+      ralloc_free(mem_ctx);
-    }
- 
-    if (!_mesa_ir_link_shader(ctx, prog))
-@@ -236,8 +235,8 @@ fs_visitor::virtual_grf_alloc(int size)
- 	 virtual_grf_array_size = 16;
-       else
- 	 virtual_grf_array_size *= 2;
--      virtual_grf_sizes = talloc_realloc(mem_ctx, virtual_grf_sizes,
--					 int, virtual_grf_array_size);
-+      virtual_grf_sizes = reralloc(mem_ctx, virtual_grf_sizes, int,
-+				   virtual_grf_array_size);
- 
-       /* This slot is always unused. */
-       virtual_grf_sizes[0] = 0;
-@@ -315,7 +314,6 @@ int
- fs_visitor::setup_uniform_values(int loc, const glsl_type *type)
- {
-    unsigned int offset = 0;
--   float *vec_values;
- 
-    if (type->is_matrix()) {
-       const glsl_type *column = glsl_type::get_instance(GLSL_TYPE_FLOAT,
-@@ -334,7 +332,6 @@ fs_visitor::setup_uniform_values(int loc, const glsl_type *type)
-    case GLSL_TYPE_UINT:
-    case GLSL_TYPE_INT:
-    case GLSL_TYPE_BOOL:
--      vec_values = fp->Base.Parameters->ParameterValues[loc];
-       for (unsigned int i = 0; i < type->vector_elements; i++) {
- 	 unsigned int param = c->prog_data.nr_params++;
- 
-@@ -358,8 +355,8 @@ fs_visitor::setup_uniform_values(int loc, const glsl_type *type)
- 	    c->prog_data.param_convert[param] = PARAM_NO_CONVERT;
- 	    break;
- 	 }
--
--	 c->prog_data.param[param] = &vec_values[i];
-+	 this->param_index[param] = loc;
-+	 this->param_offset[param] = i;
-       }
-       return 1;
- 
-@@ -430,7 +427,6 @@ fs_visitor::setup_builtin_uniform_values(ir_variable *ir)
- 	  */
- 	 int index = _mesa_add_state_reference(this->fp->Base.Parameters,
- 					       (gl_state_index *)tokens);
--	 float *vec_values = this->fp->Base.Parameters->ParameterValues[index];
- 
- 	 /* Add each of the unique swizzles of the element as a
- 	  * parameter.  This'll end up matching the expected layout of
-@@ -445,7 +441,9 @@ fs_visitor::setup_builtin_uniform_values(ir_variable *ir)
- 
- 	    c->prog_data.param_convert[c->prog_data.nr_params] =
- 	       PARAM_NO_CONVERT;
--	    c->prog_data.param[c->prog_data.nr_params++] = &vec_values[swiz];
-+	    this->param_index[c->prog_data.nr_params] = index;
-+	    this->param_offset[c->prog_data.nr_params] = swiz;
-+	    c->prog_data.nr_params++;
- 	 }
-       }
-    }
-@@ -534,25 +532,40 @@ fs_visitor::emit_general_interpolation(ir_variable *ir)
- 	    continue;
- 	 }
- 
--	 for (unsigned int c = 0; c < type->vector_elements; c++) {
--	    struct brw_reg interp = interp_reg(location, c);
--	    emit(fs_inst(FS_OPCODE_LINTERP,
--			 attr,
--			 this->delta_x,
--			 this->delta_y,
--			 fs_reg(interp)));
--	    attr.reg_offset++;
--	 }
--
--	 if (intel->gen < 6) {
--	    attr.reg_offset -= type->vector_elements;
-+	 if (c->key.flat_shade && (location == FRAG_ATTRIB_COL0 ||
-+				   location == FRAG_ATTRIB_COL1)) {
-+	    /* Constant interpolation (flat shading) case. The SF has
-+	     * handed us defined values in only the constant offset
-+	     * field of the setup reg.
-+	     */
- 	    for (unsigned int c = 0; c < type->vector_elements; c++) {
--	       emit(fs_inst(BRW_OPCODE_MUL,
--			    attr,
-+	       struct brw_reg interp = interp_reg(location, c);
-+	       interp = suboffset(interp, 3);
-+	       emit(fs_inst(FS_OPCODE_CINTERP, attr, fs_reg(interp)));
-+	       attr.reg_offset++;
-+	    }
-+	 } else {
-+	    /* Perspective interpolation case. */
-+	    for (unsigned int c = 0; c < type->vector_elements; c++) {
-+	       struct brw_reg interp = interp_reg(location, c);
-+	       emit(fs_inst(FS_OPCODE_LINTERP,
- 			    attr,
--			    this->pixel_w));
-+			    this->delta_x,
-+			    this->delta_y,
-+			    fs_reg(interp)));
- 	       attr.reg_offset++;
- 	    }
-+
-+	    if (intel->gen < 6) {
-+	       attr.reg_offset -= type->vector_elements;
-+	       for (unsigned int c = 0; c < type->vector_elements; c++) {
-+		  emit(fs_inst(BRW_OPCODE_MUL,
-+			       attr,
-+			       attr,
-+			       this->pixel_w));
-+		  attr.reg_offset++;
-+	       }
-+	    }
- 	 }
- 	 location++;
-       }
-@@ -859,6 +872,7 @@ fs_visitor::visit(ir_expression *ir)
-       break;
-    case ir_unop_abs:
-       op[0].abs = true;
-+      op[0].negate = false;
-       this->result = op[0];
-       break;
-    case ir_unop_sign:
-@@ -1353,10 +1367,13 @@ fs_visitor::visit(ir_texture *ir)
-       fs_reg scale_y = fs_reg(UNIFORM, c->prog_data.nr_params + 1);
-       GLuint index = _mesa_add_state_reference(params,
- 					       (gl_state_index *)tokens);
--      float *vec_values = this->fp->Base.Parameters->ParameterValues[index];
- 
--      c->prog_data.param[c->prog_data.nr_params++] = &vec_values[0];
--      c->prog_data.param[c->prog_data.nr_params++] = &vec_values[1];
-+      this->param_index[c->prog_data.nr_params] = index;
-+      this->param_offset[c->prog_data.nr_params] = 0;
-+      c->prog_data.nr_params++;
-+      this->param_index[c->prog_data.nr_params] = index;
-+      this->param_offset[c->prog_data.nr_params] = 1;
-+      c->prog_data.nr_params++;
- 
-       fs_reg dst = fs_reg(this, ir->coordinate->type);
-       fs_reg src = coordinate;
-@@ -2047,7 +2064,7 @@ fs_visitor::emit_fb_writes()
-    }
- 
-    for (int target = 0; target < c->key.nr_color_regions; target++) {
--      this->current_annotation = talloc_asprintf(this->mem_ctx,
-+      this->current_annotation = ralloc_asprintf(this->mem_ctx,
- 						 "FB write target %d",
- 						 target);
-       if (this->frag_color || this->frag_data) {
-@@ -2483,6 +2500,22 @@ fs_visitor::generate_pull_constant_load(fs_inst *inst, struct brw_reg dst)
-    }
- }
- 
-+/**
-+ * To be called after the last _mesa_add_state_reference() call, to
-+ * set up prog_data.param[] for assign_curb_setup() and
-+ * setup_pull_constants().
-+ */
-+void
-+fs_visitor::setup_paramvalues_refs()
-+{
-+   /* Set up the pointers to ParamValues now that that array is finalized. */
-+   for (unsigned int i = 0; i < c->prog_data.nr_params; i++) {
-+      c->prog_data.param[i] =
-+	 fp->Base.Parameters->ParameterValues[this->param_index[i]] +
-+	 this->param_offset[i];
-+   }
-+}
-+
- void
- fs_visitor::assign_curb_setup()
- {
-@@ -2556,12 +2589,15 @@ fs_visitor::assign_urb_setup()
-    foreach_iter(exec_list_iterator, iter, this->instructions) {
-       fs_inst *inst = (fs_inst *)iter.get();
- 
--      if (inst->opcode != FS_OPCODE_LINTERP)
--	 continue;
--
--      assert(inst->src[2].file == FIXED_HW_REG);
-+      if (inst->opcode == FS_OPCODE_LINTERP) {
-+	 assert(inst->src[2].file == FIXED_HW_REG);
-+	 inst->src[2].fixed_hw_reg.nr += urb_start;
-+      }
- 
--      inst->src[2].fixed_hw_reg.nr += urb_start;
-+      if (inst->opcode == FS_OPCODE_CINTERP) {
-+	 assert(inst->src[0].file == FIXED_HW_REG);
-+	 inst->src[0].fixed_hw_reg.nr += urb_start;
-+      }
-    }
- 
-    this->first_non_payload_grf = urb_start + c->prog_data.urb_read_length;
-@@ -2720,8 +2756,8 @@ void
- fs_visitor::calculate_live_intervals()
- {
-    int num_vars = this->virtual_grf_next;
--   int *def = talloc_array(mem_ctx, int, num_vars);
--   int *use = talloc_array(mem_ctx, int, num_vars);
-+   int *def = ralloc_array(mem_ctx, int, num_vars);
-+   int *use = ralloc_array(mem_ctx, int, num_vars);
-    int loop_depth = 0;
-    int loop_start = 0;
-    int bb_header_ip = 0;
-@@ -2801,8 +2837,8 @@ fs_visitor::calculate_live_intervals()
-       }
-    }
- 
--   talloc_free(this->virtual_grf_def);
--   talloc_free(this->virtual_grf_use);
-+   ralloc_free(this->virtual_grf_def);
-+   ralloc_free(this->virtual_grf_use);
-    this->virtual_grf_def = def;
-    this->virtual_grf_use = use;
- }
-@@ -3466,6 +3502,9 @@ fs_visitor::generate_code()
-       case FS_OPCODE_COS:
- 	 generate_math(inst, dst, src);
- 	 break;
-+      case FS_OPCODE_CINTERP:
-+	 brw_MOV(p, dst, src[0]);
-+	 break;
-       case FS_OPCODE_LINTERP:
- 	 generate_linterp(inst, dst, src);
- 	 break;
-@@ -3603,8 +3642,9 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c)
-       v.emit_fb_writes();
- 
-       v.split_virtual_grfs();
--      v.setup_pull_constants();
- 
-+      v.setup_paramvalues_refs();
-+      v.setup_pull_constants();
-       v.assign_curb_setup();
-       v.assign_urb_setup();
- 
-diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
-index 00a0008..c4d4308 100644
---- a/src/mesa/drivers/dri/i965/brw_fs.h
-+++ b/src/mesa/drivers/dri/i965/brw_fs.h
-@@ -41,7 +41,6 @@ extern "C" {
- #include "brw_context.h"
- #include "brw_eu.h"
- #include "brw_wm.h"
--#include "talloc.h"
- }
- #include "../glsl/glsl_types.h"
- #include "../glsl/ir.h"
-@@ -68,6 +67,7 @@ enum fs_opcodes {
-    FS_OPCODE_COS,
-    FS_OPCODE_DDX,
-    FS_OPCODE_DDY,
-+   FS_OPCODE_CINTERP,
-    FS_OPCODE_LINTERP,
-    FS_OPCODE_TEX,
-    FS_OPCODE_TXB,
-@@ -82,13 +82,13 @@ enum fs_opcodes {
- 
- class fs_reg {
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_size(ctx, size);
-+      node = ralloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-@@ -192,13 +192,13 @@ static const fs_reg reg_null_d(ARF, BRW_ARF_NULL, BRW_REGISTER_TYPE_D);
- 
- class fs_inst : public exec_node {
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_zero_size(ctx, size);
-+      node = rzalloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-@@ -341,7 +341,7 @@ public:
-       this->fp = brw->fragment_program;
-       this->intel = &brw->intel;
-       this->ctx = &intel->ctx;
--      this->mem_ctx = talloc_new(NULL);
-+      this->mem_ctx = ralloc_context(NULL);
-       this->shader = shader;
-       this->fail = false;
-       this->variable_ht = hash_table_ctor(0,
-@@ -384,7 +384,7 @@ public:
- 
-    ~fs_visitor()
-    {
--      talloc_free(this->mem_ctx);
-+      ralloc_free(this->mem_ctx);
-       hash_table_dtor(this->variable_ht);
-    }
- 
-@@ -410,6 +410,7 @@ public:
-    void visit(ir_function_signature *ir);
- 
-    fs_inst *emit(fs_inst inst);
-+   void setup_paramvalues_refs();
-    void assign_curb_setup();
-    void calculate_urb_setup();
-    void assign_urb_setup();
-@@ -474,6 +475,12 @@ public:
-    void *mem_ctx;
-    exec_list instructions;
- 
-+   /* Delayed setup of c->prog_data.params[] due to realloc of
-+    * ParamValues[] during compile.
-+    */
-+   int param_index[MAX_UNIFORMS * 4];
-+   int param_offset[MAX_UNIFORMS * 4];
-+
-    int *virtual_grf_sizes;
-    int virtual_grf_next;
-    int virtual_grf_array_size;
-diff --git a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp
-index 20bfa4c..7f3f528 100644
---- a/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp
-@@ -141,7 +141,7 @@ ir_channel_expressions_visitor::visit_leave(ir_assignment *ir)
-       return visit_continue;
- 
-    if (!this->mem_ctx)
--      this->mem_ctx = talloc_parent(ir);
-+      this->mem_ctx = ralloc_parent(ir);
- 
-    for (i = 0; i < expr->get_num_operands(); i++) {
-       if (expr->operands[i]->type->is_vector()) {
-diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
-index bbb210c..37e9c89 100644
---- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
-@@ -41,7 +41,6 @@ extern "C" {
- #include "brw_context.h"
- #include "brw_eu.h"
- #include "brw_wm.h"
--#include "talloc.h"
- }
- #include "brw_fs.h"
- #include "../glsl/glsl_types.h"
-@@ -232,8 +231,8 @@ fs_visitor::assign_regs()
-       }
- 
- 
--      talloc_free(g);
--      talloc_free(regs);
-+      ralloc_free(g);
-+      ralloc_free(regs);
- 
-       return false;
-    }
-@@ -271,8 +270,8 @@ fs_visitor::assign_regs()
- 
-    this->grf_used = last_grf + 1;
- 
--   talloc_free(g);
--   talloc_free(regs);
-+   ralloc_free(g);
-+   ralloc_free(regs);
- 
-    return true;
- }
-diff --git a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp
-index 2be6b08..530ffa2 100644
---- a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp
-+++ b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp
-@@ -69,7 +69,7 @@ public:
- 
-    ir_variable *components[4];
- 
--   /** talloc_parent(this->var) -- the shader's talloc context. */
-+   /** ralloc_parent(this->var) -- the shader's ralloc context. */
-    void *mem_ctx;
- };
- 
-@@ -77,13 +77,13 @@ class ir_vector_reference_visitor : public ir_hierarchical_visitor {
- public:
-    ir_vector_reference_visitor(void)
-    {
--      this->mem_ctx = talloc_new(NULL);
-+      this->mem_ctx = ralloc_context(NULL);
-       this->variable_list.make_empty();
-    }
- 
-    ~ir_vector_reference_visitor(void)
-    {
--      talloc_free(mem_ctx);
-+      ralloc_free(mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit(ir_variable *);
-@@ -358,7 +358,7 @@ brw_do_vector_splitting(exec_list *instructions)
-    if (refs.variable_list.is_empty())
-       return false;
- 
--   void *mem_ctx = talloc_new(NULL);
-+   void *mem_ctx = ralloc_context(NULL);
- 
-    /* Replace the decls of the vectors to be split with their split
-     * components.
-@@ -368,10 +368,10 @@ brw_do_vector_splitting(exec_list *instructions)
-       const struct glsl_type *type;
-       type = glsl_type::get_instance(entry->var->type->base_type, 1, 1);
- 
--      entry->mem_ctx = talloc_parent(entry->var);
-+      entry->mem_ctx = ralloc_parent(entry->var);
- 
-       for (unsigned int i = 0; i < entry->var->type->vector_elements; i++) {
--	 const char *name = talloc_asprintf(mem_ctx, "%s_%c",
-+	 const char *name = ralloc_asprintf(mem_ctx, "%s_%c",
- 					    entry->var->name,
- 					    "xyzw"[i]);
- 
-@@ -386,7 +386,7 @@ brw_do_vector_splitting(exec_list *instructions)
-    ir_vector_splitting_visitor split(&refs.variable_list);
-    visit_list_elements(&split, instructions);
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- 
-    return true;
- }
-diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c
-index 94efa79..7d65332 100644
---- a/src/mesa/drivers/dri/i965/brw_program.c
-+++ b/src/mesa/drivers/dri/i965/brw_program.c
-@@ -36,7 +36,7 @@
- #include "program/program.h"
- #include "program/programopt.h"
- #include "tnl/tnl.h"
--#include "talloc.h"
-+#include "../glsl/ralloc.h"
- 
- #include "brw_context.h"
- #include "brw_wm.h"
-@@ -115,7 +115,7 @@ shader_error(struct gl_context *ctx, struct gl_program *prog, const char *msg)
-    shader = _mesa_lookup_shader_program(ctx, prog->Id);
- 
-    if (shader) {
--      shader->InfoLog = talloc_strdup_append(shader->InfoLog, msg);
-+      ralloc_strcat(&shader->InfoLog, msg);
-       shader->LinkStatus = GL_FALSE;
-    }
- }
-diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
-index a64188a..0411ce0 100644
---- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
-+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
-@@ -1426,11 +1426,10 @@ static struct brw_reg get_arg( struct brw_vs_compile *c,
- 					  GET_SWZ(src->Swizzle, 1),
- 					  GET_SWZ(src->Swizzle, 2),
- 					  GET_SWZ(src->Swizzle, 3));
--   }
- 
--   /* Note this is ok for non-swizzle instructions: 
--    */
--   reg.negate = src->Negate ? 1 : 0;   
-+      /* Note this is ok for non-swizzle ARB_vp instructions */
-+      reg.negate = src->Negate ? 1 : 0;
-+   }
- 
-    return reg;
- }
-@@ -1943,6 +1942,7 @@ void brw_vs_emit(struct brw_vs_compile *c )
- 
-       switch (inst->Opcode) {
-       case OPCODE_ABS:
-+	 args[0].negate = false;
- 	 brw_MOV(p, dst, brw_abs(args[0]));
- 	 break;
-       case OPCODE_ADD:
-diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
-index 7f3b99c..4d7d8a4 100644
---- a/src/mesa/drivers/dri/intel/intel_fbo.c
-+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
-@@ -188,10 +188,15 @@ intel_alloc_renderbuffer_storage(struct gl_context * ctx, struct gl_renderbuffer
-    DBG("Allocating %d x %d Intel RBO\n", width, height);
- 
-    tiling = I915_TILING_NONE;
--
--   /* Gen6 requires depth must be tiling */
--   if (intel->gen >= 6 && rb->Format == MESA_FORMAT_S8_Z24)
--       tiling = I915_TILING_Y;
-+   if (intel->use_texture_tiling) {
-+      GLenum base_format = _mesa_get_format_base_format(rb->Format);
-+
-+      if (intel->gen >= 4 && (base_format == GL_DEPTH_COMPONENT ||
-+			      base_format == GL_DEPTH_STENCIL))
-+	 tiling = I915_TILING_Y;
-+      else
-+	 tiling = I915_TILING_X;
-+   }
- 
-    irb->region = intel_region_alloc(intel->intelScreen, tiling, cpp,
- 				    width, height, GL_TRUE);
-diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
-index e0d349b..1616306 100644
---- a/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
-+++ b/src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c
-@@ -124,7 +124,7 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
- 		/* This pass makes it easier for the scheduler to group TEX
- 		 * instructions and reduces the chances of creating too
- 		 * many texture indirections.*/
--		{"register rename",		1, !is_r500 || opt, rc_rename_regs,		NULL},
-+		{"register rename",		1, !is_r500,	rc_rename_regs,			NULL},
- 		{"pair translate",		1, 1,		rc_pair_translate,		NULL},
- 		{"pair scheduling",		1, 1,		rc_pair_schedule,		NULL},
- 		{"register allocation",		1, opt,		rc_pair_regalloc,		NULL},
-diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c
-index bee9c3b..024853c 100644
---- a/src/mesa/drivers/dri/r600/r700_assembler.c
-+++ b/src/mesa/drivers/dri/r600/r700_assembler.c
-@@ -481,6 +481,8 @@ unsigned int EG_GetNumOperands(GLuint opcode, GLuint nIsOp3)
-     case EG_OP2_INST_FLT_TO_INT:
-     case EG_OP2_INST_SIN:
-     case EG_OP2_INST_COS:
-+    case EG_OP2_INST_FLT_TO_INT_FLOOR:
-+    case EG_OP2_INST_MOVA_INT:
-         return 1;
-         
-     default: radeon_error(
-@@ -3297,23 +3299,76 @@ GLboolean assemble_ARL(r700_AssemblerBase *pAsm)
-         return GL_FALSE;
-     }
- 
--    pAsm->D.dst.opcode = SQ_OP2_INST_MOVA_FLOOR;
--    setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
--    pAsm->D.dst.rtype = DST_REG_TEMPORARY;
--    pAsm->D.dst.reg = 0;
--    pAsm->D.dst.writex = 0;
--    pAsm->D.dst.writey = 0;
--    pAsm->D.dst.writez = 0;
--    pAsm->D.dst.writew = 0;
--
--    if( GL_FALSE == assemble_src(pAsm, 0, -1) )
-+    if(8 == pAsm->unAsic)
-     {
--        return GL_FALSE;
--    }
-+        /* Evergreen */
- 
--    if( GL_FALSE == next_ins(pAsm) )
-+        /* Float to Signed Integer Using FLOOR */
-+        pAsm->D.dst.opcode = EG_OP2_INST_FLT_TO_INT_FLOOR;
-+        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
-+        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
-+        pAsm->D.dst.reg = 0;
-+        pAsm->D.dst.writex = 0;
-+        pAsm->D.dst.writey = 0;
-+        pAsm->D.dst.writez = 0;
-+        pAsm->D.dst.writew = 0;
-+
-+        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
-+        {
-+            return GL_FALSE;
-+        }
-+
-+        if( GL_FALSE == next_ins(pAsm) )
-+        {
-+            return GL_FALSE;
-+        }
-+
-+        /* Copy Signed Integer To Integer in AR and GPR */
-+        pAsm->D.dst.opcode = EG_OP2_INST_MOVA_INT;
-+        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
-+        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
-+        pAsm->D.dst.reg = 0;
-+        pAsm->D.dst.writex = 0;
-+        pAsm->D.dst.writey = 0;
-+        pAsm->D.dst.writez = 0;
-+        pAsm->D.dst.writew = 0;
-+
-+        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
-+        {
-+            return GL_FALSE;
-+        }
-+
-+        if( GL_FALSE == next_ins(pAsm) )
-+        {
-+            return GL_FALSE;
-+        }
-+    }
-+    else
-     {
--        return GL_FALSE;
-+        /* r6xx/r7xx */
-+
-+        /* Truncate floating-point to the nearest integer
-+           in the range [-256, +255], and copy to AR and
-+           to a GPR.
-+        */
-+        pAsm->D.dst.opcode = SQ_OP2_INST_MOVA_FLOOR;
-+        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
-+        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
-+        pAsm->D.dst.reg = 0;
-+        pAsm->D.dst.writex = 0;
-+        pAsm->D.dst.writey = 0;
-+        pAsm->D.dst.writez = 0;
-+        pAsm->D.dst.writew = 0;
-+
-+        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
-+        {
-+            return GL_FALSE;
-+        }
-+
-+        if( GL_FALSE == next_ins(pAsm) )
-+        {
-+            return GL_FALSE;
-+        }
-     }
- 
-     return GL_TRUE;
-diff --git a/src/mesa/drivers/osmesa/Makefile b/src/mesa/drivers/osmesa/Makefile
-index 50dd452..39ab09a 100644
---- a/src/mesa/drivers/osmesa/Makefile
-+++ b/src/mesa/drivers/osmesa/Makefile
-@@ -40,7 +40,7 @@ $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OBJECTS) $(CORE_MESA)
- 		-major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
- 		-install $(TOP)/$(LIB_DIR) -cplusplus $(MKLIB_OPTIONS) \
- 		-id $(INSTALL_LIB_DIR)/lib$(OSMESA_LIB).$(MESA_MAJOR).dylib \
--		$(OSMESA_LIB_DEPS) $(OBJECTS) $(CORE_MESA) $(TALLOC_LIBS)
-+		$(OSMESA_LIB_DEPS) $(OBJECTS) $(CORE_MESA)
- 
- 
- 
-diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
-index 96df58d..a84e545 100644
---- a/src/mesa/main/shaderapi.c
-+++ b/src/mesa/main/shaderapi.c
-@@ -46,7 +46,7 @@
- #include "program/program.h"
- #include "program/prog_parameter.h"
- #include "program/prog_uniform.h"
--#include "talloc.h"
-+#include "ralloc.h"
- #include <stdbool.h>
- 
- /** Define this to enable shader substitution (see below) */
-@@ -1134,9 +1134,9 @@ validate_program(struct gl_context *ctx, GLuint program)
-    if (!shProg->Validated) {
-       /* update info log */
-       if (shProg->InfoLog) {
--         talloc_free(shProg->InfoLog);
-+         ralloc_free(shProg->InfoLog);
-       }
--      shProg->InfoLog = talloc_strdup(shProg, errMsg);
-+      shProg->InfoLog = ralloc_strdup(shProg, errMsg);
-    }
- }
- 
-@@ -1814,7 +1814,7 @@ _mesa_CreateShaderProgramEXT(GLenum type, const GLchar *string)
- #endif
- 	 }
- 
--	 shProg->InfoLog = talloc_strdup_append(shProg->InfoLog, sh->InfoLog);
-+	 ralloc_strcat(&shProg->InfoLog, sh->InfoLog);
-       }
- 
-       delete_shader(ctx, shader);
-diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
-index 216bbce..82e5d87 100644
---- a/src/mesa/main/shaderobj.c
-+++ b/src/mesa/main/shaderobj.c
-@@ -36,7 +36,7 @@
- #include "program/program.h"
- #include "program/prog_parameter.h"
- #include "program/prog_uniform.h"
--#include "talloc.h"
-+#include "ralloc.h"
- 
- /**********************************************************************/
- /*** Shader object functions                                        ***/
-@@ -103,7 +103,7 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
-    struct gl_shader *shader;
-    assert(type == GL_FRAGMENT_SHADER || type == GL_VERTEX_SHADER ||
-           type == GL_GEOMETRY_SHADER_ARB);
--   shader = talloc_zero(NULL, struct gl_shader);
-+   shader = rzalloc(NULL, struct gl_shader);
-    if (shader) {
-       shader->Type = type;
-       shader->Name = name;
-@@ -123,7 +123,7 @@ _mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh)
-    if (sh->Source)
-       free((void *) sh->Source);
-    _mesa_reference_program(ctx, &sh->Program, NULL);
--   talloc_free(sh);
-+   ralloc_free(sh);
- }
- 
- 
-@@ -250,7 +250,7 @@ static struct gl_shader_program *
- _mesa_new_shader_program(struct gl_context *ctx, GLuint name)
- {
-    struct gl_shader_program *shProg;
--   shProg = talloc_zero(NULL, struct gl_shader_program);
-+   shProg = rzalloc(NULL, struct gl_shader_program);
-    if (shProg) {
-       shProg->Name = name;
-       _mesa_init_shader_program(ctx, shProg);
-@@ -314,7 +314,7 @@ _mesa_free_shader_program_data(struct gl_context *ctx,
-    }
- 
-    if (shProg->InfoLog) {
--      talloc_free(shProg->InfoLog);
-+      ralloc_free(shProg->InfoLog);
-       shProg->InfoLog = NULL;
-    }
- 
-@@ -345,7 +345,7 @@ _mesa_delete_shader_program(struct gl_context *ctx, struct gl_shader_program *sh
- {
-    _mesa_free_shader_program_data(ctx, shProg);
- 
--   talloc_free(shProg);
-+   ralloc_free(shProg);
- }
- 
- 
-diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
-index d61856d..ea63dd0 100644
---- a/src/mesa/main/uniforms.c
-+++ b/src/mesa/main/uniforms.c
-@@ -511,7 +511,7 @@ get_uniform_rows_cols(const struct gl_program_parameter *p,
-          *cols = p->Size;
-       }
-       else {
--         *rows = p->Size / 4 + 1;
-+         *rows = (p->Size + 3) / 4;
-          if (p->Size % 4 == 0)
-             *cols = 4;
-          else
-diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
-index c726428..6e10c83 100644
---- a/src/mesa/main/version.h
-+++ b/src/mesa/main/version.h
-@@ -34,8 +34,8 @@ struct gl_context;
- /* Mesa version */
- #define MESA_MAJOR 7
- #define MESA_MINOR 10
--#define MESA_PATCH 0
--#define MESA_VERSION_STRING "7.10"
-+#define MESA_PATCH 1
-+#define MESA_VERSION_STRING "7.10.1-devel"
- 
- /* To make version comparison easy */
- #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
-diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
-index c601ef6..6712a98 100644
---- a/src/mesa/program/ir_to_mesa.cpp
-+++ b/src/mesa/program/ir_to_mesa.cpp
-@@ -105,13 +105,13 @@ extern ir_to_mesa_src_reg ir_to_mesa_undef;
- 
- class ir_to_mesa_instruction : public exec_node {
- public:
--   /* Callers of this talloc-based new need not call delete. It's
--    * easier to just talloc_free 'ctx' (or any of its ancestors). */
-+   /* Callers of this ralloc-based new need not call delete. It's
-+    * easier to just ralloc_free 'ctx' (or any of its ancestors). */
-    static void* operator new(size_t size, void *ctx)
-    {
-       void *node;
- 
--      node = talloc_zero_size(ctx, size);
-+      node = rzalloc_size(ctx, size);
-       assert(node != NULL);
- 
-       return node;
-@@ -316,7 +316,7 @@ fail_link(struct gl_shader_program *prog, const char *fmt, ...)
- {
-    va_list args;
-    va_start(args, fmt);
--   prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, args);
-+   ralloc_vasprintf_append(&prog->InfoLog, fmt, args);
-    va_end(args);
- 
-    prog->LinkStatus = GL_FALSE;
-@@ -1542,7 +1542,7 @@ ir_to_mesa_visitor::visit(ir_dereference_array *ir)
- 			     this->result, src_reg_for_float(element_size));
-       }
- 
--      src_reg.reladdr = talloc(mem_ctx, ir_to_mesa_src_reg);
-+      src_reg.reladdr = ralloc(mem_ctx, ir_to_mesa_src_reg);
-       memcpy(src_reg.reladdr, &index_reg, sizeof(index_reg));
-    }
- 
-@@ -1899,7 +1899,7 @@ ir_to_mesa_visitor::get_function_signature(ir_function_signature *sig)
- 	 return entry;
-    }
- 
--   entry = talloc(mem_ctx, function_entry);
-+   entry = ralloc(mem_ctx, function_entry);
-    entry->sig = sig;
-    entry->sig_id = this->next_signature_id++;
-    entry->bgn_inst = NULL;
-@@ -2236,12 +2236,12 @@ ir_to_mesa_visitor::ir_to_mesa_visitor()
-    next_temp = 1;
-    next_signature_id = 1;
-    current_function = NULL;
--   mem_ctx = talloc_new(NULL);
-+   mem_ctx = ralloc_context(NULL);
- }
- 
- ir_to_mesa_visitor::~ir_to_mesa_visitor()
- {
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- }
- 
- static struct prog_src_register
-@@ -2290,8 +2290,8 @@ set_branchtargets(ir_to_mesa_visitor *v,
-       }
-    }
- 
--   if_stack = talloc_zero_array(v->mem_ctx, int, if_count);
--   loop_stack = talloc_zero_array(v->mem_ctx, int, loop_count);
-+   if_stack = rzalloc_array(v->mem_ctx, int, if_count);
-+   loop_stack = rzalloc_array(v->mem_ctx, int, loop_count);
- 
-    for (i = 0; i < num_instructions; i++) {
-       switch (mesa_instructions[i].Opcode) {
-@@ -2434,7 +2434,7 @@ add_uniforms_to_parameters_list(struct gl_shader_program *shader_program,
-    unsigned int next_sampler = 0, num_uniforms = 0;
-    struct uniform_sort *sorted_uniforms;
- 
--   sorted_uniforms = talloc_array(NULL, struct uniform_sort,
-+   sorted_uniforms = ralloc_array(NULL, struct uniform_sort,
- 				  shader_program->Uniforms->NumUniforms);
- 
-    for (i = 0; i < shader_program->Uniforms->NumUniforms; i++) {
-@@ -2513,7 +2513,7 @@ add_uniforms_to_parameters_list(struct gl_shader_program *shader_program,
-       }
-    }
- 
--   talloc_free(sorted_uniforms);
-+   ralloc_free(sorted_uniforms);
- }
- 
- static void
-@@ -2529,7 +2529,7 @@ set_uniform_initializer(struct gl_context *ctx, void *mem_ctx,
- 
-       for (unsigned int i = 0; i < type->length; i++) {
- 	 const glsl_type *field_type = type->fields.structure[i].type;
--	 const char *field_name = talloc_asprintf(mem_ctx, "%s.%s", name,
-+	 const char *field_name = ralloc_asprintf(mem_ctx, "%s.%s", name,
- 					    type->fields.structure[i].name);
- 	 set_uniform_initializer(ctx, mem_ctx, shader_program, field_name,
- 				 field_type, field_constant);
-@@ -2560,7 +2560,7 @@ set_uniform_initializer(struct gl_context *ctx, void *mem_ctx,
-       void *values;
- 
-       if (element_type->base_type == GLSL_TYPE_BOOL) {
--	 int *conv = talloc_array(mem_ctx, int, element_type->components());
-+	 int *conv = ralloc_array(mem_ctx, int, element_type->components());
- 	 for (unsigned int j = 0; j < element_type->components(); j++) {
- 	    conv[j] = element->value.b[j];
- 	 }
-@@ -2606,14 +2606,14 @@ set_uniform_initializers(struct gl_context *ctx,
- 	    continue;
- 
- 	 if (!mem_ctx)
--	    mem_ctx = talloc_new(NULL);
-+	    mem_ctx = ralloc_context(NULL);
- 
- 	 set_uniform_initializer(ctx, mem_ctx, shader_program, var->name,
- 				 var->type, var->constant_value);
-       }
-    }
- 
--   talloc_free(mem_ctx);
-+   ralloc_free(mem_ctx);
- }
- 
- 
-@@ -2712,7 +2712,7 @@ get_mesa_program(struct gl_context *ctx,
-    mesa_instructions =
-       (struct prog_instruction *)calloc(num_instructions,
- 					sizeof(*mesa_instructions));
--   mesa_instruction_annotation = talloc_array(v.mem_ctx, ir_instruction *,
-+   mesa_instruction_annotation = ralloc_array(v.mem_ctx, ir_instruction *,
- 					      num_instructions);
- 
-    /* Convert ir_mesa_instructions into prog_instructions.
-@@ -2967,7 +2967,7 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader)
-      _mesa_glsl_lexer_dtor(state);
-    }
- 
--   talloc_free(shader->ir);
-+   ralloc_free(shader->ir);
-    shader->ir = new(shader) exec_list;
-    if (!state->error && !state->translation_unit.is_empty())
-       _mesa_ast_to_hir(shader->ir, state);
-@@ -3014,7 +3014,7 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader)
-    /* Retain any live IR, but trash the rest. */
-    reparent_ir(shader->ir, shader->ir);
- 
--   talloc_free(state);
-+   ralloc_free(state);
- 
-    if (shader->CompileStatus) {
-       if (!ctx->Driver.CompileShader(ctx, shader))
-diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
-index ada6e35..7698687 100644
---- a/src/mesa/program/register_allocate.c
-+++ b/src/mesa/program/register_allocate.c
-@@ -30,7 +30,7 @@
-  * Graph-coloring register allocator.
-  */
- 
--#include <talloc.h>
-+#include <ralloc.h>
- 
- #include "main/imports.h"
- #include "main/macros.h"
-@@ -93,12 +93,12 @@ ra_alloc_reg_set(unsigned int count)
-    unsigned int i;
-    struct ra_regs *regs;
- 
--   regs = talloc_zero(NULL, struct ra_regs);
-+   regs = rzalloc(NULL, struct ra_regs);
-    regs->count = count;
--   regs->regs = talloc_zero_array(regs, struct ra_reg, count);
-+   regs->regs = rzalloc_array(regs, struct ra_reg, count);
- 
-    for (i = 0; i < count; i++) {
--      regs->regs[i].conflicts = talloc_zero_array(regs->regs, GLboolean, count);
-+      regs->regs[i].conflicts = rzalloc_array(regs->regs, GLboolean, count);
-       regs->regs[i].conflicts[i] = GL_TRUE;
-    }
- 
-@@ -117,14 +117,13 @@ ra_alloc_reg_class(struct ra_regs *regs)
- {
-    struct ra_class *class;
- 
--   regs->classes = talloc_realloc(regs, regs->classes,
--				  struct ra_class *,
--				  regs->class_count + 1);
-+   regs->classes = reralloc(regs->regs, regs->classes, struct ra_class *,
-+			    regs->class_count + 1);
- 
--   class = talloc_zero(regs, struct ra_class);
-+   class = rzalloc(regs, struct ra_class);
-    regs->classes[regs->class_count] = class;
- 
--   class->regs = talloc_zero_array(class, GLboolean, regs->count);
-+   class->regs = rzalloc_array(class, GLboolean, regs->count);
- 
-    return regs->class_count++;
- }
-@@ -148,7 +147,7 @@ ra_set_finalize(struct ra_regs *regs)
-    unsigned int b, c;
- 
-    for (b = 0; b < regs->class_count; b++) {
--      regs->classes[b]->q = talloc_array(regs, unsigned int, regs->class_count);
-+      regs->classes[b]->q = ralloc_array(regs, unsigned int, regs->class_count);
-    }
- 
-    /* Compute, for each class B and C, how many regs of B an
-@@ -184,15 +183,15 @@ ra_alloc_interference_graph(struct ra_regs *regs, unsigned int count)
-    struct ra_graph *g;
-    unsigned int i;
- 
--   g = talloc_zero(regs, struct ra_graph);
-+   g = rzalloc(regs, struct ra_graph);
-    g->regs = regs;
--   g->nodes = talloc_zero_array(g, struct ra_node, count);
-+   g->nodes = rzalloc_array(g, struct ra_node, count);
-    g->count = count;
- 
--   g->stack = talloc_zero_array(g, unsigned int, count);
-+   g->stack = rzalloc_array(g, unsigned int, count);
- 
-    for (i = 0; i < count; i++) {
--      g->nodes[i].adjacency = talloc_zero_array(g, GLboolean, count);
-+      g->nodes[i].adjacency = rzalloc_array(g, GLboolean, count);
-       g->nodes[i].adjacency[i] = GL_TRUE;
-       g->nodes[i].reg = ~0;
-    }
-diff --git a/src/mesa/program/sampler.cpp b/src/mesa/program/sampler.cpp
-index 9a813c8..12c4a40 100644
---- a/src/mesa/program/sampler.cpp
-+++ b/src/mesa/program/sampler.cpp
-@@ -40,7 +40,7 @@ static void fail_link(struct gl_shader_program *prog, const char *fmt, ...)
- {
-    va_list args;
-    va_start(args, fmt);
--   prog->InfoLog = talloc_vasprintf_append(prog->InfoLog, fmt, args);
-+   ralloc_vasprintf_append(&prog->InfoLog, fmt, args);
-    va_end(args);
- 
-    prog->LinkStatus = GL_FALSE;
-@@ -52,7 +52,7 @@ public:
-    get_sampler_name(ir_dereference *last,
- 		    struct gl_shader_program *shader_program)
-    {
--      this->mem_ctx = talloc_new(NULL);
-+      this->mem_ctx = ralloc_context(NULL);
-       this->shader_program = shader_program;
-       this->name = NULL;
-       this->offset = 0;
-@@ -61,7 +61,7 @@ public:
- 
-    ~get_sampler_name()
-    {
--      talloc_free(this->mem_ctx);
-+      ralloc_free(this->mem_ctx);
-    }
- 
-    virtual ir_visitor_status visit(ir_dereference_variable *ir)
-@@ -72,7 +72,7 @@ public:
- 
-    virtual ir_visitor_status visit_leave(ir_dereference_record *ir)
-    {
--      this->name = talloc_asprintf(mem_ctx, "%s.%s", name, ir->field);
-+      this->name = ralloc_asprintf(mem_ctx, "%s.%s", name, ir->field);
-       return visit_continue;
-    }
- 
-@@ -91,16 +91,14 @@ public:
- 	  * all that would work would be an unrolled loop counter that ends
- 	  * up being constant above.
- 	  */
--	 shader_program->InfoLog =
--	    talloc_asprintf_append(shader_program->InfoLog,
--				   "warning: Variable sampler array index "
--				   "unsupported.\nThis feature of the language "
--				   "was removed in GLSL 1.20 and is unlikely "
--				   "to be supported for 1.10 in Mesa.\n");
-+	 ralloc_strcat(&shader_program->InfoLog,
-+		       "warning: Variable sampler array index unsupported.\n"
-+		       "This feature of the language was removed in GLSL 1.20 "
-+		       "and is unlikely to be supported for 1.10 in Mesa.\n");
- 	 i = 0;
-       }
-       if (ir != last) {
--	 this->name = talloc_asprintf(mem_ctx, "%s[%d]", name, i);
-+	 this->name = ralloc_asprintf(mem_ctx, "%s[%d]", name, i);
-       } else {
- 	 offset = i;
-       }
diff --git a/meta/recipes-graphics/mesa/mesa-dri_7.10.bb b/meta/recipes-graphics/mesa/mesa-dri_7.10.2.bb
similarity index 85%
rename from meta/recipes-graphics/mesa/mesa-dri_7.10.bb
rename to meta/recipes-graphics/mesa/mesa-dri_7.10.2.bb
index 1865dd4..99d6066 100644
--- a/meta/recipes-graphics/mesa/mesa-dri_7.10.bb
+++ b/meta/recipes-graphics/mesa/mesa-dri_7.10.2.bb
@@ -8,14 +8,13 @@ LIB_DEPS = "libdrm virtual/libx11 libxext libxxf86vm libxdamage libxfixes expat
 
 DEPENDS = "${PROTO_DEPS}  ${LIB_DEPS} makedepend-native"
 
-PR = "r3"
+PR = "r0"
 
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
-           file://talloc-removal.patch \
            file://crossfix.patch"
 
-SRC_URI[md5sum] = "33fb94eccc02cbb4d8d1365615e38e46"
-SRC_URI[sha256sum] = "bcf28f43f39c28da271c0f5857fb32898d4ade3e035e80a0ceece1c2df6e0aca"
+SRC_URI[md5sum] = "f5de82852f1243f42cc004039e10b771"
+SRC_URI[sha256sum] = "8ced2678ce11cf30804694a92ea3ca6b82f158ae8995bdc626c7e85aac71c7c1"
 
 # most of our targets do not have DRI so will use mesa-xlib
 DEFAULT_PREFERENCE = "-1"
diff --git a/meta/recipes-graphics/mesa/mesa-xlib_7.10.bb b/meta/recipes-graphics/mesa/mesa-xlib_7.10.2.bb
similarity index 68%
rename from meta/recipes-graphics/mesa/mesa-xlib_7.10.bb
rename to meta/recipes-graphics/mesa/mesa-xlib_7.10.2.bb
index c8eb88f..b77df2c 100644
--- a/meta/recipes-graphics/mesa/mesa-xlib_7.10.bb
+++ b/meta/recipes-graphics/mesa/mesa-xlib_7.10.2.bb
@@ -1,11 +1,10 @@
 include mesa-common.inc
 
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
-           file://talloc-removal.patch \
            "
 
-SRC_URI[md5sum] = "33fb94eccc02cbb4d8d1365615e38e46"
-SRC_URI[sha256sum] = "bcf28f43f39c28da271c0f5857fb32898d4ade3e035e80a0ceece1c2df6e0aca"
+SRC_URI[md5sum] = "f5de82852f1243f42cc004039e10b771"
+SRC_URI[sha256sum] = "8ced2678ce11cf30804694a92ea3ca6b82f158ae8995bdc626c7e85aac71c7c1"
 
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
 
@@ -15,6 +14,6 @@ LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes libxml2-nativ
 DEPENDS = "${PROTO_DEPS}  ${LIB_DEPS} makedepend-native"
 
 PE = "1"
-PR = "r1"
+PR = "r0"
 
 EXTRA_OECONF += "--with-driver=xlib"
-- 
1.7.1.1




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

* [PATCH 41/58] xf86-input-mouse: upgrade from 1.6 to 1.7
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (39 preceding siblings ...)
  2011-04-16  6:54 ` [PATCH 40/58] mesa: upgrade to 7.10.2 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 42/58] pango: upgrade from 1.28.3 to 1.28.4 Saul Wold
                   ` (17 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../distro/include/preferred-xorg-versions.inc     |    2 +-
 .../xorg-driver/xf86-input-mouse/unbreak.patch     |    2 ++
 ...ut-mouse_1.6.0.bb => xf86-input-mouse_1.7.0.bb} |    4 ++--
 3 files changed, 5 insertions(+), 3 deletions(-)
 rename meta/recipes-graphics/xorg-driver/{xf86-input-mouse_1.6.0.bb => xf86-input-mouse_1.7.0.bb} (76%)

diff --git a/meta/conf/distro/include/preferred-xorg-versions.inc b/meta/conf/distro/include/preferred-xorg-versions.inc
index 109491f..23eaace 100644
--- a/meta/conf/distro/include/preferred-xorg-versions.inc
+++ b/meta/conf/distro/include/preferred-xorg-versions.inc
@@ -142,7 +142,7 @@ PREFERRED_VERSION_libxcb ?= "1.7"
 PREFERRED_VERSION_libxcb-nativesdk ?= "1.7"
 PREFERRED_VERSION_libpciaccess ?= "0.12.1"
 PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
-PREFERRED_VERSION_xf86-input-mouse ?= "1.6.0"
+PREFERRED_VERSION_xf86-input-mouse ?= "1.7.0"
 PREFERRED_VERSION_xf86-input-keyboard ?= "1.6.0"
 PREFERRED_VERSION_xf86-input-synaptics ?= "1.4.0"
 PREFERRED_VERSION_xf86-video-intel ?= "2.14.0"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
index 665b320..6930864 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse/unbreak.patch
@@ -2,6 +2,8 @@ Unbreak the linux mouse driver by using config.h
 
 RP - 4/11/07
 
+Upstream-Status: Pending
+
 Index: git/src/lnx_mouse.c
 ===================================================================
 --- git.orig/src/lnx_mouse.c	2008-11-04 23:46:05.000000000 +0000
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.6.0.bb b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb
similarity index 76%
rename from meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.6.0.bb
rename to meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb
index 61d73e1..fbc2c66 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.6.0.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-mouse_1.7.0.bb
@@ -10,5 +10,5 @@ driver."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=237eb1d1a602d29ef2af62d8fba60f19"
 
-SRC_URI[md5sum] = "cef849b1a2743d2e84de98422f372974"
-SRC_URI[sha256sum] = "c7ae245e5168276346145f196d1d1faed618f41d5174a2031c71fab6e1a2fbdb"
+SRC_URI[md5sum] = "7f31472689c15b6de62eff04d0fb57d7"
+SRC_URI[sha256sum] = "4e989542b5e9e0c5f9087288b18e70de1064dd27c83a4bc6dce58f3ea9d74994"
-- 
1.7.1.1




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

* [PATCH 42/58] pango: upgrade from 1.28.3 to 1.28.4
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (40 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 41/58] xf86-input-mouse: upgrade from 1.6 to 1.7 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 43/58] qemu: Fix the qemu GL application start failure Saul Wold
                   ` (16 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Yu Ke <ke.yu@intel.com>

Signed-off-by: Yu Ke <ke.yu@intel.com>
---
 .../{pango-1.28.3 => pango-1.28.4}/no-tests.patch  |    4 ++++
 .../pango/{pango_1.28.3.bb => pango_1.28.4.bb}     |    4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/pango/{pango-1.28.3 => pango-1.28.4}/no-tests.patch (72%)
 rename meta/recipes-graphics/pango/{pango_1.28.3.bb => pango_1.28.4.bb} (50%)

diff --git a/meta/recipes-graphics/pango/pango-1.28.3/no-tests.patch b/meta/recipes-graphics/pango/pango-1.28.4/no-tests.patch
similarity index 72%
rename from meta/recipes-graphics/pango/pango-1.28.3/no-tests.patch
rename to meta/recipes-graphics/pango/pango-1.28.4/no-tests.patch
index 4a74d8c..6d9e74b 100644
--- a/meta/recipes-graphics/pango/pango-1.28.3/no-tests.patch
+++ b/meta/recipes-graphics/pango/pango-1.28.4/no-tests.patch
@@ -1,3 +1,7 @@
+Upstream-Status: Inappropriate [ disable tests make sense in embedded, but not appropriate for upstream]
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
 Index: pango-1.22.2/Makefile.am
 ===================================================================
 --- pango-1.22.2.orig/Makefile.am
diff --git a/meta/recipes-graphics/pango/pango_1.28.3.bb b/meta/recipes-graphics/pango/pango_1.28.4.bb
similarity index 50%
rename from meta/recipes-graphics/pango/pango_1.28.3.bb
rename to meta/recipes-graphics/pango/pango_1.28.4.bb
index 228aae7..600f00b 100644
--- a/meta/recipes-graphics/pango/pango_1.28.3.bb
+++ b/meta/recipes-graphics/pango/pango_1.28.4.bb
@@ -6,7 +6,7 @@ PR = "r0"
 
 SRC_URI += "file://no-tests.patch"
 
-SRC_URI[archive.md5sum] = "caa74baea47e7e16bc73c89f9089d522"
-SRC_URI[archive.sha256sum] = "5e278bc9430cc7bb00270f183360d262c5006b51248e8b537ea904573f200632"
+SRC_URI[archive.md5sum] = "3f3989700f04e9117d30544a9078b3a0"
+SRC_URI[archive.sha256sum] = "7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f"
 
 #PARALLEL_MAKE = ""
-- 
1.7.1.1




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

* [PATCH 43/58] qemu: Fix the qemu GL application start failure.
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (41 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 42/58] pango: upgrade from 1.28.3 to 1.28.4 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 44/58] task-poky-lsb.bb:Add locale resoures which is needed by LSB Test Suite Saul Wold
                   ` (15 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Zhai Edwin <edwin.zhai@intel.com>

Some turn-on macro/variable are re-arranged, buffer pointer is extended to
support 32/64b combination of target/host.

[YOCTO #688] fixed.

[sgw: tweaked Upstream-Status format]
Signed-off-by:  Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 .../qemu/qemu-0.14.0/qemugl-fix.patch              |   73 ++++++++++++++++++++
 meta/recipes-devtools/qemu/qemu_0.14.0.bb          |    1 +
 2 files changed, 74 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

diff --git a/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
new file mode 100644
index 0000000..029aacf
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
@@ -0,0 +1,73 @@
+This patch fix GL application start failure on qemu 0.14.0.
+
+Some turn-on macro/variable are re-arranged, buffer pointer is extended to
+support 32/64b combination of target/host.
+
+This is not perfect fix, and we need consider other GL alternatives in future.
+
+Upstream-Status: other (logical part of qemu-git-qemugl-host.patch)
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Index: qemu-0.14.0/target-i386/opengl_func.h
+===================================================================
+--- qemu-0.14.0.orig/target-i386/opengl_func.h	2011-04-08 16:43:46.000000000 +0800
++++ qemu-0.14.0/target-i386/opengl_func.h	2011-04-08 16:45:55.000000000 +0800
+@@ -26,8 +26,9 @@
+ #include "mesa_glext.h"
+ 
+ /* Argument list are internally of a type that can hold a target pointer
+- * or a host pointer.  */
+-typedef target_phys_addr_t arg_t;
++ * or a host pointer. If 32b target runs on 64b host, it should be big enough
++ * to hold host pointer */
++typedef long unsigned int arg_t;
+ 
+ enum {
+     TYPE_NONE,
+Index: qemu-0.14.0/target-i386/translate.c
+===================================================================
+--- qemu-0.14.0.orig/target-i386/translate.c	2011-04-08 16:19:15.000000000 +0800
++++ qemu-0.14.0/target-i386/translate.c	2011-04-08 16:22:03.000000000 +0800
+@@ -2652,17 +2652,19 @@
+     s->is_jmp = DISAS_TB_JUMP;
+ }
+ 
+-int enable_gl = 0;
++extern int enable_gl;
+ 
+ /* an interrupt is different from an exception because of the
+    privilege checks */
+ static void gen_interrupt(DisasContext *s, int intno,
+                           target_ulong cur_eip, target_ulong next_eip)
+ {
++#if !defined(CONFIG_USER_ONLY)
+     if (enable_gl && intno == 0x99) {
+         gen_helper_opengl();
+         return;
+     }
++#endif
+ 
+     if (s->cc_op != CC_OP_DYNAMIC)
+         gen_op_set_cc_op(s->cc_op);
+Index: qemu-0.14.0/vl.c
+===================================================================
+--- qemu-0.14.0.orig/vl.c	2011-04-08 16:11:43.000000000 +0800
++++ qemu-0.14.0/vl.c	2011-04-08 16:20:05.000000000 +0800
+@@ -229,7 +229,7 @@
+ unsigned int nb_prom_envs = 0;
+ const char *prom_envs[MAX_PROM_ENVS];
+ int boot_menu;
+-extern int enable_gl;
++int enable_gl = 0;
+ 
+ typedef struct FWBootEntry FWBootEntry;
+ 
+@@ -1909,6 +1909,7 @@
+     return popt;
+ }
+ 
++#define TARGET_OPENGL_OK
+ int main(int argc, char **argv, char **envp)
+ {
+     const char *gdbstub_dev = NULL;
diff --git a/meta/recipes-devtools/qemu/qemu_0.14.0.bb b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
index d8535b2..e440759 100644
--- a/meta/recipes-devtools/qemu/qemu_0.14.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
@@ -24,6 +24,7 @@ SRC_URI = "\
     file://spice-qxl-locking-fix-for-qemu-kvm.patch \
     file://Detect-and-use-GCC-atomic-builtins-for-locking.patch \
     file://larger_default_ram_size.patch \
+    file://qemugl-fix.patch \
     "
 SRC_URI[md5sum] = "f9d145d5c09de9f0984ffe9bd1229970"
 SRC_URI[sha256sum] = "ba21e84d7853217830e167dae9999cdbff481189c6a0bb600ac7fb7201453108"
-- 
1.7.1.1




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

* [PATCH 44/58] task-poky-lsb.bb:Add locale resoures which is needed by LSB Test Suite
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (42 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 43/58] qemu: Fix the qemu GL application start failure Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 45/58] gcc: Add "--enable-clocale=gnu" option for LSB Saul Wold
                   ` (14 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

Owning to absent locale resources in lsb-image, I add them to task-poky-lsb.bb

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-extended/tasks/task-poky-lsb.bb |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/meta/recipes-extended/tasks/task-poky-lsb.bb b/meta/recipes-extended/tasks/task-poky-lsb.bb
index 6fea613..71a683a 100644
--- a/meta/recipes-extended/tasks/task-poky-lsb.bb
+++ b/meta/recipes-extended/tasks/task-poky-lsb.bb
@@ -186,15 +186,13 @@ RDEPENDS_task-poky-lsb-runtime-add = "\
     liburi-perl \
     libxml-parser-perl \
     libxml-perl \
+    eglibc-localedatas \
+    eglibc-gconvs \
+    eglibc-charmaps \
+    eglibc-binaries \
     eglibc-localedata-posix \
     eglibc-extra-nss \
     eglibc-pcprofile \
     eglibc-pic \
     eglibc-utils \
 "
-
-#    eglibc-localedatas \
-#    eglibc-gconvs \
-#    eglibc-charmaps \
-#    eglibc-binarys \
-#
-- 
1.7.1.1




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

* [PATCH 45/58] gcc: Add "--enable-clocale=gnu" option for LSB.
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (43 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 44/58] task-poky-lsb.bb:Add locale resoures which is needed by LSB Test Suite Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 46/58] poky-lsb: Add "largefile" feature for LSB distro Saul Wold
                   ` (13 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Jingdong Lu <jingdong.lu@windriver.com>

Add "--enable-clocale=gun" option for gcc configuration explicitly for LSB distro
in order to make sure C++ library can use correct locale module.
Fixes [YOCTO #796]

Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
---
 meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb
index 2127eb6..189c0b8 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb
+++ b/meta/recipes-devtools/gcc/gcc-runtime_4.5.1.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
 
 require gcc-${PV}.inc
 require gcc-configure-runtime.inc
@@ -9,3 +9,4 @@ SRC_URI_append = "file://fortran-cross-compile-hack.patch"
 ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
 
 EXTRA_OECONF += "--disable-libunwind-exceptions"
+EXTRA_OECONF_append_poky-lsb = " --enable-clocale=gnu"
-- 
1.7.1.1




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

* [PATCH 46/58] poky-lsb: Add "largefile" feature for LSB distro.
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (44 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 45/58] gcc: Add "--enable-clocale=gnu" option for LSB Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 47/58] setuptools: Make options for setup.py more flexible Saul Wold
                   ` (12 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Jingdong Lu <jingdong.lu@windriver.com>

Add "largefile" feature for LSB distro.
Fixes [YOCTO #794]

Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
---
 meta/conf/distro/poky-lsb.conf |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/meta/conf/distro/poky-lsb.conf b/meta/conf/distro/poky-lsb.conf
index 749c858..64603da 100644
--- a/meta/conf/distro/poky-lsb.conf
+++ b/meta/conf/distro/poky-lsb.conf
@@ -3,7 +3,7 @@ require conf/distro/poky.conf
 DISTRO = "poky-lsb"
 DISTROOVERRIDES = "poky:poky-lsb"
 
-DISTRO_FEATURES += "pam"
+DISTRO_FEATURES += "pam largefile"
 PREFERRED_PROVIDER_virtual/libx11 = "libx11"
 
 
-- 
1.7.1.1




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

* [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (45 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 46/58] poky-lsb: Add "largefile" feature for LSB distro Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16 12:11   ` Koen Kooi
  2011-04-16  6:55 ` [PATCH 48/58] libexif: upgrade to 0.6.20 Saul Wold
                   ` (11 subsequent siblings)
  58 siblings, 1 reply; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Gary Thomas <gary@mlbassoc.com>

The setuptools class uses hard-wired options for 'setup.py' during
the install step.  In particular, not all versions of setup.py
support the "--single-version-externally-managed" option.  This
patch allows for a recipe to easily override these options, while
leaving the majority (important) setup options intact.

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

From 0afbe6b9477c207e37009c8ef5aa47b3438640a9 Mon Sep 17 00:00:00 2001
From: Gary Thomas <gary@mlbassoc.com>
Date: Wed, 13 Apr 2011 15:12:57 -0600
Subject: [PATCH] setuptools: Make options for setup.py more flexible

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/classes/setuptools.bbclass |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
index ced9509..cf1c224 100644
--- a/meta/classes/setuptools.bbclass
+++ b/meta/classes/setuptools.bbclass
@@ -2,7 +2,8 @@ inherit distutils
 
 DEPENDS += "python-setuptools-native"
 
+DISTUTILS_INSTALL_OPTS ?= "--single-version-externally-managed "
 DISTUTILS_INSTALL_ARGS = "--root=${D} \
-    --single-version-externally-managed \
+    ${DISTUTILS_INSTALL_OPTS} \
     --prefix=${prefix} \
     --install-data=${datadir}"
-- 
1.7.1.1




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

* [PATCH 48/58] libexif: upgrade to 0.6.20
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (46 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 47/58] setuptools: Make options for setup.py more flexible Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 49/58] libxml2: upgrade to version 2.7.8 Saul Wold
                   ` (10 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Qing He <qing.he@intel.com>

[YOCTO #977]

fixes CVE-2007-6351, CVE-2007-6352, CVE-2009-3895

Signed-off-by: Qing He <qing.he@intel.com>
---
 .../{libexif_0.6.16.bb => libexif_0.6.20.bb}       |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-support/libexif/{libexif_0.6.16.bb => libexif_0.6.20.bb} (61%)

diff --git a/meta/recipes-support/libexif/libexif_0.6.16.bb b/meta/recipes-support/libexif/libexif_0.6.20.bb
similarity index 61%
rename from meta/recipes-support/libexif/libexif_0.6.16.bb
rename to meta/recipes-support/libexif/libexif_0.6.20.bb
index d9d1c5e..f233d3f 100644
--- a/meta/recipes-support/libexif/libexif_0.6.16.bb
+++ b/meta/recipes-support/libexif/libexif_0.6.20.bb
@@ -2,12 +2,12 @@ DESCRIPTION = "Library to read the extended image information (EXIF) from JPEG p
 HOMEPAGE = "http://sourceforge.net/projects/libexif"
 SECTION = "libs"
 LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/libexif/libexif-${PV}.tar.bz2"
 
-SRC_URI[md5sum] = "deee153b1ded5a944ea05d041d959eca"
-SRC_URI[sha256sum] = "db6885d5e40e3a273ff8bb9708ab739c8ace3c5abdd75509eec8ea31a31aac43"
+SRC_URI[md5sum] = "19844ce6b5d075af16f0d45de1e8a6a3"
+SRC_URI[sha256sum] = "a772d20bd8fb9802d7f0d70fde6ac8872f87d0c66c52b0d14026dafcaa83d715"
 
 inherit autotools gettext
 
-- 
1.7.1.1




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

* [PATCH 49/58] libxml2: upgrade to version 2.7.8
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (47 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 48/58] libexif: upgrade to 0.6.20 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 50/58] openssl: upgrade to version 0.9.8r Saul Wold
                   ` (9 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Qing He <qing.he@intel.com>

[YOCTO #978]

from 2.7.7
fixes CVE-2010-4008

Signed-off-by: Qing He <qing.he@intel.com>
---
 .../recipes-core/libxml/libxml2/libxml-64bit.patch |    2 ++
 meta/recipes-core/libxml/libxml2_2.7.7.bb          |    6 ------
 meta/recipes-core/libxml/libxml2_2.7.8.bb          |    6 ++++++
 3 files changed, 8 insertions(+), 6 deletions(-)
 delete mode 100644 meta/recipes-core/libxml/libxml2_2.7.7.bb
 create mode 100644 meta/recipes-core/libxml/libxml2_2.7.8.bb

diff --git a/meta/recipes-core/libxml/libxml2/libxml-64bit.patch b/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
index fcb7d34..1147017 100644
--- a/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
+++ b/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Backport [from debian: bugs.debian.org/439843]
+
 ---
  libxml.h |    3 +++
  1 file changed, 3 insertions(+)
diff --git a/meta/recipes-core/libxml/libxml2_2.7.7.bb b/meta/recipes-core/libxml/libxml2_2.7.7.bb
deleted file mode 100644
index 91f4ceb..0000000
--- a/meta/recipes-core/libxml/libxml2_2.7.7.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require libxml2.inc
-
-PR = "r4"
-
-SRC_URI[md5sum] = "9abc9959823ca9ff904f1fbcf21df066"
-SRC_URI[sha256sum] = "af5b781418ba4fff556fa43c50086658ea8a2f31909c2b625c2ce913a1d9eb68"
diff --git a/meta/recipes-core/libxml/libxml2_2.7.8.bb b/meta/recipes-core/libxml/libxml2_2.7.8.bb
new file mode 100644
index 0000000..616fd09
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2_2.7.8.bb
@@ -0,0 +1,6 @@
+require libxml2.inc
+
+PR = "r0"
+
+SRC_URI[md5sum] = "8127a65e8c3b08856093099b52599c86"
+SRC_URI[sha256sum] = "cda23bc9ebd26474ca8f3d67e7d1c4a1f1e7106364b690d822e009fdc3c417ec"
-- 
1.7.1.1




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

* [PATCH 50/58] openssl: upgrade to version 0.9.8r
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (48 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 49/58] libxml2: upgrade to version 2.7.8 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 51/58] rsync: upgrade to version 3.0.8 Saul Wold
                   ` (8 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Qing He <qing.he@intel.com>

[YOCTO #979]

from 0.9.8p
fixes CVE-2010-4180, CVE-2010-4252, CVE-2010-0014

Signed-off-by: Qing He <qing.he@intel.com>
---
 .../configure-targets.patch                        |    1 +
 .../debian/ca.patch                                |    0
 .../debian/config-hurd.patch                       |    0
 .../debian/debian-targets.patch                    |    0
 .../debian/engines-path.patch                      |    0
 .../debian/kfreebsd-pipe.patch                     |    0
 .../debian/make-targets.patch                      |    0
 .../debian/man-dir.patch                           |    0
 .../debian/man-section.patch                       |    0
 .../debian/no-rpath.patch                          |    0
 .../debian/no-symbolic.patch                       |    0
 .../debian/perl-path.diff                          |    0
 .../debian/pic.patch                               |    0
 .../debian/pkg-config.patch                        |    0
 .../debian/rc4-amd64.patch                         |    0
 .../debian/rehash-crt.patch                        |    0
 .../debian/rehash_pod.patch                        |    0
 .../debian/series                                  |    0
 .../debian/shared-lib-ext.patch                    |    0
 .../debian/stddef.patch                            |    0
 .../debian/version-script.patch                    |    0
 .../parallel-make-fix.patch                        |    2 ++
 .../shared-libs.patch                              |    2 ++
 meta/recipes-connectivity/openssl/openssl.inc      |    2 +-
 .../{openssl_0.9.8p.bb => openssl_0.9.8r.bb}       |    6 +++---
 25 files changed, 9 insertions(+), 4 deletions(-)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/configure-targets.patch (97%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/ca.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/config-hurd.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/debian-targets.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/engines-path.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/kfreebsd-pipe.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/make-targets.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/man-dir.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/man-section.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/no-rpath.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/no-symbolic.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/perl-path.diff (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/pic.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/pkg-config.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rc4-amd64.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rehash-crt.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/rehash_pod.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/series (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/shared-lib-ext.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/stddef.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/debian/version-script.patch (100%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/parallel-make-fix.patch (95%)
 rename meta/recipes-connectivity/openssl/{openssl-0.9.8p => openssl-0.9.8r}/shared-libs.patch (97%)
 rename meta/recipes-connectivity/openssl/{openssl_0.9.8p.bb => openssl_0.9.8r.bb} (86%)

diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/configure-targets.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/configure-targets.patch
similarity index 97%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/configure-targets.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/configure-targets.patch
index 6fd2769..2317949 100644
--- a/meta/recipes-connectivity/openssl/openssl-0.9.8p/configure-targets.patch
+++ b/meta/recipes-connectivity/openssl/openssl-0.9.8r/configure-targets.patch
@@ -1,3 +1,4 @@
+Upstream-Status: Inappropriate [embedded specific]
 
 The number of colons are important :)
 
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/ca.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/ca.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/ca.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/ca.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/config-hurd.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/config-hurd.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/config-hurd.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/config-hurd.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/debian-targets.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/debian-targets.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/debian-targets.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/debian-targets.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/engines-path.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/engines-path.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/engines-path.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/engines-path.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/kfreebsd-pipe.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/kfreebsd-pipe.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/kfreebsd-pipe.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/kfreebsd-pipe.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/make-targets.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/make-targets.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/make-targets.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/make-targets.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/man-dir.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/man-dir.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/man-dir.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/man-dir.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/man-section.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/man-section.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/man-section.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/man-section.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/no-rpath.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/no-rpath.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/no-rpath.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/no-rpath.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/no-symbolic.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/no-symbolic.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/no-symbolic.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/no-symbolic.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/perl-path.diff b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/perl-path.diff
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/perl-path.diff
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/perl-path.diff
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/pic.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/pic.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/pic.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/pic.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/pkg-config.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/pkg-config.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/pkg-config.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/pkg-config.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rc4-amd64.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rc4-amd64.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rc4-amd64.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rc4-amd64.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rehash-crt.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rehash-crt.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rehash-crt.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rehash-crt.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rehash_pod.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rehash_pod.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/rehash_pod.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/rehash_pod.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/series b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/series
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/series
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/series
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/shared-lib-ext.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/shared-lib-ext.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/shared-lib-ext.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/shared-lib-ext.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/stddef.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/stddef.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/stddef.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/stddef.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/version-script.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/version-script.patch
similarity index 100%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/debian/version-script.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/debian/version-script.patch
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/parallel-make-fix.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/parallel-make-fix.patch
similarity index 95%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/parallel-make-fix.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/parallel-make-fix.patch
index 60fab9d..bfddfc8 100644
--- a/meta/recipes-connectivity/openssl/openssl-0.9.8p/parallel-make-fix.patch
+++ b/meta/recipes-connectivity/openssl/openssl-0.9.8r/parallel-make-fix.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
 fix the parallel build regarding shared libraries.
 
 Signed-off-by: Qing He <qing.he@intel.com>
diff --git a/meta/recipes-connectivity/openssl/openssl-0.9.8p/shared-libs.patch b/meta/recipes-connectivity/openssl/openssl-0.9.8r/shared-libs.patch
similarity index 97%
rename from meta/recipes-connectivity/openssl/openssl-0.9.8p/shared-libs.patch
rename to meta/recipes-connectivity/openssl/openssl-0.9.8r/shared-libs.patch
index 10d9146..19de112 100644
--- a/meta/recipes-connectivity/openssl/openssl-0.9.8p/shared-libs.patch
+++ b/meta/recipes-connectivity/openssl/openssl-0.9.8r/shared-libs.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Inappropriate [configuration]
+
 diff --git a/Makefile.org b/Makefile.org
 index e87d623..25ff367 100644
 --- a/Makefile.org
diff --git a/meta/recipes-connectivity/openssl/openssl.inc b/meta/recipes-connectivity/openssl/openssl.inc
index 68b3d7b..fe168c3 100644
--- a/meta/recipes-connectivity/openssl/openssl.inc
+++ b/meta/recipes-connectivity/openssl/openssl.inc
@@ -6,7 +6,7 @@ SECTION = "libs/network"
 
 # "openssl | SSLeay" dual license
 LICENSE = "openssl"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=83d26c69f6f0172ee7f795790424b453"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8"
 
 DEPENDS = "perl-native"
 
diff --git a/meta/recipes-connectivity/openssl/openssl_0.9.8p.bb b/meta/recipes-connectivity/openssl/openssl_0.9.8r.bb
similarity index 86%
rename from meta/recipes-connectivity/openssl/openssl_0.9.8p.bb
rename to meta/recipes-connectivity/openssl/openssl_0.9.8r.bb
index f42b3cb..5fc38a3 100644
--- a/meta/recipes-connectivity/openssl/openssl_0.9.8p.bb
+++ b/meta/recipes-connectivity/openssl/openssl_0.9.8r.bb
@@ -1,6 +1,6 @@
 require openssl.inc
 
-PR = "r3"
+PR = "r0"
 SRC_URI += "file://debian/ca.patch \
             file://debian/config-hurd.patch;apply=no \
             file://debian/debian-targets.patch \
@@ -21,8 +21,8 @@ SRC_URI += "file://debian/ca.patch \
             file://debian/version-script.patch \
             file://debian/perl-path.diff"
 
-SRC_URI[md5sum] = "7f24047f70364c9eabc94899e356ce39"
-SRC_URI[sha256sum] = "b2645e2a2af221fa230b5ef6aa2b9388a875801b74cbddbb16be557f80f45242"
+SRC_URI[md5sum] = "0352932ea863bc02b056cda7c9ac5b79"
+SRC_URI[sha256sum] = "42b2368f786b05ed3be846838dce126b4e8e3dba8fb2e0ce83102df28c102fad"
 
 SRC_URI += "file://configure-targets.patch \
             file://shared-libs.patch"
-- 
1.7.1.1




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

* [PATCH 51/58] rsync: upgrade to version 3.0.8
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (49 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 50/58] openssl: upgrade to version 0.9.8r Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 52/58] documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly builds Saul Wold
                   ` (7 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Qing He <qing.he@intel.com>

[YOCTO #983]

from 3.0.7
fixes CVE-2011-1097

Signed-off-by: Qing He <qing.he@intel.com>
---
 .../rsync/{rsync_3.0.7.bb => rsync_3.0.8.bb}       |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-devtools/rsync/{rsync_3.0.7.bb => rsync_3.0.8.bb} (71%)

diff --git a/meta/recipes-devtools/rsync/rsync_3.0.7.bb b/meta/recipes-devtools/rsync/rsync_3.0.8.bb
similarity index 71%
rename from meta/recipes-devtools/rsync/rsync_3.0.7.bb
rename to meta/recipes-devtools/rsync/rsync_3.0.8.bb
index 971fd54..33ab271 100644
--- a/meta/recipes-devtools/rsync/rsync_3.0.7.bb
+++ b/meta/recipes-devtools/rsync/rsync_3.0.8.bb
@@ -1,11 +1,11 @@
 require rsync.inc
 
-PR = "r1"
+PR = "r0"
 
 SRC_URI += "file://acinclude.m4"
 
-SRC_URI[md5sum] = "b53525900817cf1ba7ad3a516ab5bfe9"
-SRC_URI[sha256sum] = "9ee00d16c023c486328cbb61f59928a954b24b7b7173c3517ebb0d6c3edfe7c8"
+SRC_URI[md5sum] = "0ee8346ce16bdfe4c88a236e94c752b4"
+SRC_URI[sha256sum] = "4b3fc271f4c96036b4c73fb019be078e4d8cce2defe1e7ae7cde1117859a2114"
 
 EXTRA_OECONF += "--disable-xattr-support --disable-acl-support"
 
-- 
1.7.1.1




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

* [PATCH 52/58] documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly builds
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (50 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 51/58] rsync: upgrade to version 3.0.8 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 53/58] documentation/adt-manual/adt-eclipse.xml: Fixed URL with pokylinux.org Saul Wold
                   ` (6 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Scott Rifenbark <scott.m.rifenbark@intel.com>

There was a stray "0.9" in an URL for the Yocto source downloads.
I changed it to 1.0.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
---
 documentation/adt-manual/adt-prepare.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/documentation/adt-manual/adt-prepare.xml b/documentation/adt-manual/adt-prepare.xml
index 1733141..f27f603 100644
--- a/documentation/adt-manual/adt-prepare.xml
+++ b/documentation/adt-manual/adt-prepare.xml
@@ -232,7 +232,7 @@
             architectures (x86, x86-64, mips, powerpc, and arm) that can be used 
             unaltered in the QEMU emulator.  
             These kernels and filesystem images reside in the Yocto Project release 
-            area - <ulink url='http://autobuilder.yoctoproject.org/downloads/yocto-0.9/'></ulink>
+            area - <ulink url='http://autobuilder.yoctoproject.org/downloads/yocto-1.0/'></ulink>
             and are ideal for experimentation within Yocto Project.
         </note>
     </para>
-- 
1.7.1.1




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

* [PATCH 53/58] documentation/adt-manual/adt-eclipse.xml: Fixed URL with pokylinux.org
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (51 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 52/58] documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly builds Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 54/58] documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux' with 'yoctoproject' Saul Wold
                   ` (5 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Scott Rifenbark <scott.m.rifenbark@intel.com>

Substituted 'pokylinux.org' with 'yoctoproject.org' in an URL
to locate the OProfile viewer and server.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
---
 documentation/adt-manual/adt-eclipse.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/documentation/adt-manual/adt-eclipse.xml b/documentation/adt-manual/adt-eclipse.xml
index a81929b..ee305fe 100644
--- a/documentation/adt-manual/adt-eclipse.xml
+++ b/documentation/adt-manual/adt-eclipse.xml
@@ -395,7 +395,7 @@
             oprofile-server must be installed on the remote target, respectively, in order 
             to use.  
             You can locate both the viewer and server from 
-            <ulink url='http://git.pokylinux.org/cgit/cgit.cgi/oprofileui/'></ulink>.  
+            <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/oprofileui/'></ulink>.  
             You need to compile and install the oprofile-viewer from the source code 
             on your local host machine.  
             The oprofile-server is installed by default in the image.</para></listitem>
-- 
1.7.1.1




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

* [PATCH 54/58] documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux' with 'yoctoproject'
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (52 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 53/58] documentation/adt-manual/adt-eclipse.xml: Fixed URL with pokylinux.org Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 55/58] netbase: automatically bring up eth0 Saul Wold
                   ` (4 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Scott Rifenbark <scott.m.rifenbark@intel.com>

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
---
 documentation/kernel-manual/kernel-how-to.xml |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml
index 79c8526..96325fe 100644
--- a/documentation/kernel-manual/kernel-how-to.xml
+++ b/documentation/kernel-manual/kernel-how-to.xml
@@ -1022,7 +1022,7 @@ That's it. Configure and build.
                     You can start with something in <filename>meta/conf/machine</filename> - <filename>
                     meta/conf/machine/atom-pc.conf</filename> for example.  Or, you can start with a machine 
                     configuration from any of the BSP layers in the meta-intel repository at 
-                    <ulink url='http://git.pokylinux.org/cgit/cgit.cgi/meta-intel/'></ulink>, such as 
+                    <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/'></ulink>, such as 
                     <filename>meta-intel/meta-emenlow/conf/machine/emenlow.conf</filename>.
                 </para>
                 
@@ -1073,7 +1073,7 @@ That's it. Configure and build.
                     To create this branch first create a bare clone of the Yocto Project git repository.
                     Next, create a local clone of that:
                     <literallayout class='monospaced'>
-     $ git clone --bare git://git.pokylinux.org/linux-yocto-2.6.37.git
+     $ git clone --bare git://git.yoctoproject.org/linux-yocto-2.6.37.git
      linux-yocto-2.6.37.git
      $ git clone linux-yocto-2.6.37.git linux-yocto-2.6.37
                     </literallayout>
-- 
1.7.1.1




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

* [PATCH 55/58] netbase: automatically bring up eth0
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (53 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 54/58] documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux' with 'yoctoproject' Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 56/58] netbase: add /etc/network/interfaces file for qemumips & qemuppc Saul Wold
                   ` (3 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Paul Eggleton <paul.eggleton@linux.intel.com>

This avoids manual configuration for those machines that do not override
the default /etc/network/interfaces file.

Fixes [YOCTO #875]

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 meta/recipes-core/netbase/netbase-4.45/interfaces |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/meta/recipes-core/netbase/netbase-4.45/interfaces b/meta/recipes-core/netbase/netbase-4.45/interfaces
index b06924f..0acf4cf 100644
--- a/meta/recipes-core/netbase/netbase-4.45/interfaces
+++ b/meta/recipes-core/netbase/netbase-4.45/interfaces
@@ -14,6 +14,7 @@ iface wlan0 inet dhcp
 iface atml0 inet dhcp
 
 # Wired or wireless interfaces
+auto eth0
 iface eth0 inet dhcp
 iface eth1 inet dhcp
 
-- 
1.7.1.1




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

* [PATCH 56/58] netbase: add /etc/network/interfaces file for qemumips & qemuppc
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (54 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 55/58] netbase: automatically bring up eth0 Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:55 ` [PATCH 57/58] slang: Update to 2.2.4 Saul Wold
                   ` (2 subsequent siblings)
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Paul Eggleton <paul.eggleton@linux.intel.com>

This fixes the network configuration for qemumips & qemuppc to match the
other qemu* machines.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 .../netbase/netbase-4.45/qemumips/interfaces       |    8 ++++++++
 .../netbase/netbase-4.45/qemuppc/interfaces        |    8 ++++++++
 2 files changed, 16 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-core/netbase/netbase-4.45/qemumips/interfaces
 create mode 100644 meta/recipes-core/netbase/netbase-4.45/qemuppc/interfaces

diff --git a/meta/recipes-core/netbase/netbase-4.45/qemumips/interfaces b/meta/recipes-core/netbase/netbase-4.45/qemumips/interfaces
new file mode 100644
index 0000000..f62b9a8
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase-4.45/qemumips/interfaces
@@ -0,0 +1,8 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+ 
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+
+
diff --git a/meta/recipes-core/netbase/netbase-4.45/qemuppc/interfaces b/meta/recipes-core/netbase/netbase-4.45/qemuppc/interfaces
new file mode 100644
index 0000000..f62b9a8
--- /dev/null
+++ b/meta/recipes-core/netbase/netbase-4.45/qemuppc/interfaces
@@ -0,0 +1,8 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+ 
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+
+
-- 
1.7.1.1




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

* [PATCH 57/58] slang: Update to 2.2.4
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (55 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 56/58] netbase: add /etc/network/interfaces file for qemumips & qemuppc Saul Wold
@ 2011-04-16  6:55 ` Saul Wold
  2011-04-16  6:56 ` [PATCH 58/58] jpeg: add link libjpeg.so.62 for LSB library test Saul Wold
  2011-04-18  4:54 ` [PATCH 00/58] Consolidated Updates and Bug Fixes Richard Purdie
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:55 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Saul Wold <sgw@linux.intel.com>

- Removed fix-uclibc.patch as it's no longer required by the upstream
- Removed requirment for png as we only need limited support for slang
- fix license
- disable Parallel Make

Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-extended/slang/slang/fix-uclibc.patch |   11 -----------
 .../slang/{slang_2.2.2.bb => slang_2.2.4.bb}       |   18 ++++++++++--------
 2 files changed, 10 insertions(+), 19 deletions(-)
 delete mode 100644 meta/recipes-extended/slang/slang/fix-uclibc.patch
 rename meta/recipes-extended/slang/{slang_2.2.2.bb => slang_2.2.4.bb} (61%)

diff --git a/meta/recipes-extended/slang/slang/fix-uclibc.patch b/meta/recipes-extended/slang/slang/fix-uclibc.patch
deleted file mode 100644
index c2b8225..0000000
--- a/meta/recipes-extended/slang/slang/fix-uclibc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- slang-2.1.3.orig/src/slcommon.c	2007-01-10 18:09:07.000000000 +0200
-+++ slang-2.1.3.orig/src/slcommon.c	2008-03-19 16:09:09.000000000 +0200
-@@ -191,7 +191,7 @@ 
-    return p;
- }
- 
--#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2)
-+#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2) && !defined(__UCLIBC__)
- extern int __libc_enable_secure;
- # define HAVE___LIBC_ENABLE_SECURE 1
- #endif
diff --git a/meta/recipes-extended/slang/slang_2.2.2.bb b/meta/recipes-extended/slang/slang_2.2.4.bb
similarity index 61%
rename from meta/recipes-extended/slang/slang_2.2.2.bb
rename to meta/recipes-extended/slang/slang_2.2.4.bb
index 29d9e46..2b000a4 100644
--- a/meta/recipes-extended/slang/slang_2.2.2.bb
+++ b/meta/recipes-extended/slang/slang_2.2.4.bb
@@ -10,23 +10,25 @@ to recode S-Lang procedures in C if you need to."
 SECTION = "libs"
 PRIORITY = "optional"
 DEPENDS = "pcre"
-PR = "r2"
+PR = "r5"
 
-LICENSE = "GPL Artistic"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02"
 
 
-SRC_URI = "ftp://space.mit.edu/pub/davis/slang/v2.2/OLD/slang-${PV}.tar.bz2 \
-           file://fix-uclibc.patch"
+SRC_URI = "ftp://space.mit.edu/pub/davis/slang/v2.2/slang-${PV}.tar.bz2 \
+          "
 
 inherit autotools
 
-SRC_URI[md5sum] = "974437602a781cfe92ab61433dd16d03"
-SRC_URI[sha256sum] = "cfaf8551fa3855f9b0043309bb553ef6d457f931b404df5a6ba6a5a69371fc42"
+SRC_URI[md5sum] = "7fcfd447e378f07dd0c0bae671fe6487"
+SRC_URI[sha256sum] = "9a8257a9a2a55099af858b13338dc8f3a06dd2069f46f0df2c9c3bb84a01d5db"
 
-EXTRA_OECONF += " --x-includes=${STAGING_DIR_HOST}/usr/X11/include"
+EXTRA_OECONF += " --without-png"
 do_install() {
 	oe_runmake install DESTDIR=${D} -e 'INST_LIB_DIR=${STAGING_DIR_HOST}/usr/lib'
 }
 
 FILES_${PN} += "${datadir}/slsh/"
+
+PARALLEL_MAKE = ""
-- 
1.7.1.1




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

* [PATCH 58/58] jpeg: add link libjpeg.so.62 for LSB library test
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (56 preceding siblings ...)
  2011-04-16  6:55 ` [PATCH 57/58] slang: Update to 2.2.4 Saul Wold
@ 2011-04-16  6:56 ` Saul Wold
  2011-04-18  4:54 ` [PATCH 00/58] Consolidated Updates and Bug Fixes Richard Purdie
  58 siblings, 0 replies; 82+ messages in thread
From: Saul Wold @ 2011-04-16  6:56 UTC (permalink / raw
  To: openembedded-core
  Cc: Scott Rifenbark, Paul Eggleton, Jingdong Lu, Kang Kai,
	Xiaofeng Yan

From: Kang Kai <kai.kang@windriver.com>

LSB test just test whether libjpeg.so.62 exists, and no more use of it.
So just make link to pass library check.

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
---
 meta/recipes-core/jpeg/jpeg_8b.bb |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-core/jpeg/jpeg_8b.bb b/meta/recipes-core/jpeg/jpeg_8b.bb
index 8e2c24d..78fabf1 100644
--- a/meta/recipes-core/jpeg/jpeg_8b.bb
+++ b/meta/recipes-core/jpeg/jpeg_8b.bb
@@ -14,7 +14,7 @@ PRIORITY = "required"
 DEPENDS = "libtool-cross"
 DEPENDS_virtclass-native = "libtool-native"
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://www.ijg.org/files/jpegsrc.v${PV}.tar.gz \
 	   file://debian-libjpeg7_7-1.diff;patch=1"
@@ -45,3 +45,14 @@ DESCRIPTION_jpeg-tools = "The jpeg-tools package includes the client programs fo
 FILES_jpeg-tools = 	"${bindir}/*"
 
 BBCLASSEXTEND = "native"
+
+pkg_postinst_${PN}_poky-lsb () {
+    if [ "$D" = "" ]; then
+        if [ ! -e ${libdir}/libjpeg.so.62 ]; then
+            JPEG=`find ${libdir} -type f -name libjpeg.so.\*.\*.\*`
+            ln -sf `basename $JPEG` ${libdir}/libjpeg.so.62
+        fi
+    else
+        exit 1
+    fi
+}
-- 
1.7.1.1




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

* Re: [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-16  6:55 ` [PATCH 47/58] setuptools: Make options for setup.py more flexible Saul Wold
@ 2011-04-16 12:11   ` Koen Kooi
  2011-04-16 19:46     ` Koen Kooi
  0 siblings, 1 reply; 82+ messages in thread
From: Koen Kooi @ 2011-04-16 12:11 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer
  Cc: Scott Rifenbark, Xiaofeng Yan, Paul Eggleton, Kang Kai,
	Jingdong Lu

As I said in my other mail, the reasoning behind this patch is wrong and will lead to broken output. The '--single-version-externally-managed' is needed to stop the python egg code from doing the wrong thing. People running into problems with this need to do 'inherit distutils' instead of 'inherit setuptools'.

Besides all that, 'DISTUTILS_INSTALL_EXTRA_ARGS' would be the correct name for such a thing.

Op 16 apr 2011, om 08:55 heeft Saul Wold het volgende geschreven:

> From: Gary Thomas <gary@mlbassoc.com>
> 
> The setuptools class uses hard-wired options for 'setup.py' during
> the install step.  In particular, not all versions of setup.py
> support the "--single-version-externally-managed" option.  This
> patch allows for a recipe to easily override these options, while
> leaving the majority (important) setup options intact.
> 
> --
> ------------------------------------------------------------
> Gary Thomas                 |  Consulting for the
> MLB Associates              |    Embedded world
> ------------------------------------------------------------
> 
>> From 0afbe6b9477c207e37009c8ef5aa47b3438640a9 Mon Sep 17 00:00:00 2001
> From: Gary Thomas <gary@mlbassoc.com>
> Date: Wed, 13 Apr 2011 15:12:57 -0600
> Subject: [PATCH] setuptools: Make options for setup.py more flexible
> 
> Signed-off-by: Gary Thomas <gary@mlbassoc.com>
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
> ---
> meta/classes/setuptools.bbclass |    3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
> index ced9509..cf1c224 100644
> --- a/meta/classes/setuptools.bbclass
> +++ b/meta/classes/setuptools.bbclass
> @@ -2,7 +2,8 @@ inherit distutils
> 
> DEPENDS += "python-setuptools-native"
> 
> +DISTUTILS_INSTALL_OPTS ?= "--single-version-externally-managed "
> DISTUTILS_INSTALL_ARGS = "--root=${D} \
> -    --single-version-externally-managed \
> +    ${DISTUTILS_INSTALL_OPTS} \
>     --prefix=${prefix} \
>     --install-data=${datadir}"
> -- 
> 1.7.1.1
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




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

* Re: [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-16 12:11   ` Koen Kooi
@ 2011-04-16 19:46     ` Koen Kooi
  2011-04-16 21:43       ` Saul Wold
  0 siblings, 1 reply; 82+ messages in thread
From: Koen Kooi @ 2011-04-16 19:46 UTC (permalink / raw
  To: Koen Kooi
  Cc: Scott Rifenbark, Xiaofeng Yan, Paul Eggleton,
	Patches and discussions about the oe-core layer, Jingdong Lu,
	Kang Kai

furthermore both distutils and setuptools use the classes in sysroot, so the 'some versions' part of the argument is bogus.

Op 16 apr. 2011 om 14:11 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:

> As I said in my other mail, the reasoning behind this patch is wrong and will lead to broken output. The '--single-version-externally-managed' is needed to stop the python egg code from doing the wrong thing. People running into problems with this need to do 'inherit distutils' instead of 'inherit setuptools'.
> 
> Besides all that, 'DISTUTILS_INSTALL_EXTRA_ARGS' would be the correct name for such a thing.
> 
> Op 16 apr 2011, om 08:55 heeft Saul Wold het volgende geschreven:
> 
>> From: Gary Thomas <gary@mlbassoc.com>
>> 
>> The setuptools class uses hard-wired options for 'setup.py' during
>> the install step.  In particular, not all versions of setup.py
>> support the "--single-version-externally-managed" option.  This
>> patch allows for a recipe to easily override these options, while
>> leaving the majority (important) setup options intact.
>> 
>> --
>> ------------------------------------------------------------
>> Gary Thomas                 |  Consulting for the
>> MLB Associates              |    Embedded world
>> ------------------------------------------------------------
>> 
>>> From 0afbe6b9477c207e37009c8ef5aa47b3438640a9 Mon Sep 17 00:00:00 2001
>> From: Gary Thomas <gary@mlbassoc.com>
>> Date: Wed, 13 Apr 2011 15:12:57 -0600
>> Subject: [PATCH] setuptools: Make options for setup.py more flexible
>> 
>> Signed-off-by: Gary Thomas <gary@mlbassoc.com>
>> Signed-off-by: Saul Wold <sgw@linux.intel.com>
>> ---
>> meta/classes/setuptools.bbclass |    3 ++-
>> 1 files changed, 2 insertions(+), 1 deletions(-)
>> 
>> diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
>> index ced9509..cf1c224 100644
>> --- a/meta/classes/setuptools.bbclass
>> +++ b/meta/classes/setuptools.bbclass
>> @@ -2,7 +2,8 @@ inherit distutils
>> 
>> DEPENDS += "python-setuptools-native"
>> 
>> +DISTUTILS_INSTALL_OPTS ?= "--single-version-externally-managed "
>> DISTUTILS_INSTALL_ARGS = "--root=${D} \
>> -    --single-version-externally-managed \
>> +    ${DISTUTILS_INSTALL_OPTS} \
>>    --prefix=${prefix} \
>>    --install-data=${datadir}"
>> -- 
>> 1.7.1.1
>> 
>> 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> 



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

* Re: [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-16 19:46     ` Koen Kooi
@ 2011-04-16 21:43       ` Saul Wold
  2011-04-17 13:26         ` Gary Thomas
  0 siblings, 1 reply; 82+ messages in thread
From: Saul Wold @ 2011-04-16 21:43 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer, Gary Thomas
  Cc: Scott Rifenbark, Xiaofeng Yan, Paul Eggleton, Koen Kooi,
	Jingdong Lu, Kang Kai

On 04/16/2011 12:46 PM, Koen Kooi wrote:
> furthermore both distutils and setuptools use the classes in sysroot, so the 'some versions' part of the argument is bogus.
>
Koen,

Thanks, I guess missed your comments on this issue, thanks for pointing 
them out.

Richard: Please disregard this patch.

Sau!

> Op 16 apr. 2011 om 14:11 heeft Koen Kooi<koen@dominion.thruhere.net>  het volgende geschreven:
>
>> As I said in my other mail, the reasoning behind this patch is wrong and will lead to broken output. The '--single-version-externally-managed' is needed to stop the python egg code from doing the wrong thing. People running into problems with this need to do 'inherit distutils' instead of 'inherit setuptools'.
>>
>> Besides all that, 'DISTUTILS_INSTALL_EXTRA_ARGS' would be the correct name for such a thing.
>>
>> Op 16 apr 2011, om 08:55 heeft Saul Wold het volgende geschreven:
>>
>>> From: Gary Thomas<gary@mlbassoc.com>
>>>
>>> The setuptools class uses hard-wired options for 'setup.py' during
>>> the install step.  In particular, not all versions of setup.py
>>> support the "--single-version-externally-managed" option.  This
>>> patch allows for a recipe to easily override these options, while
>>> leaving the majority (important) setup options intact.
>>>
>>> --
>>> ------------------------------------------------------------
>>> Gary Thomas                 |  Consulting for the
>>> MLB Associates              |    Embedded world
>>> ------------------------------------------------------------
>>>
>>>>  From 0afbe6b9477c207e37009c8ef5aa47b3438640a9 Mon Sep 17 00:00:00 2001
>>> From: Gary Thomas<gary@mlbassoc.com>
>>> Date: Wed, 13 Apr 2011 15:12:57 -0600
>>> Subject: [PATCH] setuptools: Make options for setup.py more flexible
>>>
>>> Signed-off-by: Gary Thomas<gary@mlbassoc.com>
>>> Signed-off-by: Saul Wold<sgw@linux.intel.com>
>>> ---
>>> meta/classes/setuptools.bbclass |    3 ++-
>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
>>> index ced9509..cf1c224 100644
>>> --- a/meta/classes/setuptools.bbclass
>>> +++ b/meta/classes/setuptools.bbclass
>>> @@ -2,7 +2,8 @@ inherit distutils
>>>
>>> DEPENDS += "python-setuptools-native"
>>>
>>> +DISTUTILS_INSTALL_OPTS ?= "--single-version-externally-managed "
>>> DISTUTILS_INSTALL_ARGS = "--root=${D} \
>>> -    --single-version-externally-managed \
>>> +    ${DISTUTILS_INSTALL_OPTS} \
>>>     --prefix=${prefix} \
>>>     --install-data=${datadir}"
>>> --
>>> 1.7.1.1
>>>
>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



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

* Re: [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-16 21:43       ` Saul Wold
@ 2011-04-17 13:26         ` Gary Thomas
  2011-04-17 17:02           ` Koen Kooi
  0 siblings, 1 reply; 82+ messages in thread
From: Gary Thomas @ 2011-04-17 13:26 UTC (permalink / raw
  To: Saul Wold
  Cc: Scott Rifenbark, Xiaofeng Yan, Paul Eggleton, Koen Kooi,
	Patches and discussions about the oe-core layer, Jingdong Lu,
	Kang Kai

On 04/16/2011 03:43 PM, Saul Wold wrote:
> On 04/16/2011 12:46 PM, Koen Kooi wrote:
>> furthermore both distutils and setuptools use the classes in sysroot, so the 'some versions' part of the argument is bogus.
>>
> Koen,
>
> Thanks, I guess missed your comments on this issue, thanks for pointing them out.
>
> Richard: Please disregard this patch.

Fair enough & indeed, using distutils does work for this package.  My follow up question would
be why are there two seemingly identical classes?  Just looking at a Python package which has
a 'setup.py' file, how can one one which to use and why??

>> Op 16 apr. 2011 om 14:11 heeft Koen Kooi<koen@dominion.thruhere.net> het volgende geschreven:
>>
>>> As I said in my other mail, the reasoning behind this patch is wrong and will lead to broken output. The '--single-version-externally-managed' is needed to stop the python egg
>>> code from doing the wrong thing. People running into problems with this need to do 'inherit distutils' instead of 'inherit setuptools'.
>>>
>>> Besides all that, 'DISTUTILS_INSTALL_EXTRA_ARGS' would be the correct name for such a thing.
>>>
>>> Op 16 apr 2011, om 08:55 heeft Saul Wold het volgende geschreven:
>>>
>>>> From: Gary Thomas<gary@mlbassoc.com>
>>>>
>>>> The setuptools class uses hard-wired options for 'setup.py' during
>>>> the install step. In particular, not all versions of setup.py
>>>> support the "--single-version-externally-managed" option. This
>>>> patch allows for a recipe to easily override these options, while
>>>> leaving the majority (important) setup options intact.
>>>>
>>>> --
>>>> ------------------------------------------------------------
>>>> Gary Thomas | Consulting for the
>>>> MLB Associates | Embedded world
>>>> ------------------------------------------------------------
>>>>
>>>>> From 0afbe6b9477c207e37009c8ef5aa47b3438640a9 Mon Sep 17 00:00:00 2001
>>>> From: Gary Thomas<gary@mlbassoc.com>
>>>> Date: Wed, 13 Apr 2011 15:12:57 -0600
>>>> Subject: [PATCH] setuptools: Make options for setup.py more flexible
>>>>
>>>> Signed-off-by: Gary Thomas<gary@mlbassoc.com>
>>>> Signed-off-by: Saul Wold<sgw@linux.intel.com>
>>>> ---
>>>> meta/classes/setuptools.bbclass | 3 ++-
>>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/meta/classes/setuptools.bbclass b/meta/classes/setuptools.bbclass
>>>> index ced9509..cf1c224 100644
>>>> --- a/meta/classes/setuptools.bbclass
>>>> +++ b/meta/classes/setuptools.bbclass
>>>> @@ -2,7 +2,8 @@ inherit distutils
>>>>
>>>> DEPENDS += "python-setuptools-native"
>>>>
>>>> +DISTUTILS_INSTALL_OPTS ?= "--single-version-externally-managed "
>>>> DISTUTILS_INSTALL_ARGS = "--root=${D} \
>>>> - --single-version-externally-managed \
>>>> + ${DISTUTILS_INSTALL_OPTS} \
>>>> --prefix=${prefix} \
>>>> --install-data=${datadir}"
>>>> --
>>>> 1.7.1.1
>>>>
>>>>
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



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

* Re: [PATCH 47/58] setuptools: Make options for setup.py more flexible
  2011-04-17 13:26         ` Gary Thomas
@ 2011-04-17 17:02           ` Koen Kooi
  0 siblings, 0 replies; 82+ messages in thread
From: Koen Kooi @ 2011-04-17 17:02 UTC (permalink / raw
  To: Gary Thomas
  Cc: Scott Rifenbark, Xiaofeng Yan, Paul Eggleton,
	Patches and discussions about the oe-core layer, Jingdong Lu,
	Kang Kai


Op 17 apr 2011, om 15:26 heeft Gary Thomas het volgende geschreven:

> On 04/16/2011 03:43 PM, Saul Wold wrote:
>> On 04/16/2011 12:46 PM, Koen Kooi wrote:
>>> furthermore both distutils and setuptools use the classes in sysroot, so the 'some versions' part of the argument is bogus.
>>> 
>> Koen,
>> 
>> Thanks, I guess missed your comments on this issue, thanks for pointing them out.
>> 
>> Richard: Please disregard this patch.
> 
> Fair enough & indeed, using distutils does work for this package.  My follow up question would
> be why are there two seemingly identical classes?

Because python people suck at agreeing on buildsystems.

>  Just looking at a Python package which has
> a 'setup.py' file, how can one one which to use and why??

That is an excellent questions! I sadly have no good answer to that :( Figuring out the problem your patch was trying to solve took me about 3 weeks. I started using it as a smoke test to see if it's setuptools or not. Usually you can get away with using distutils everywhere, but sometimes you really need setuptools. My workflow:

try setuptools, if that fails:
try distutils, if that fails:
tell people to stop using that python module

regards,

Koen


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-16  6:54 ` [PATCH 37/58] gnu-config-native: add dependency on perl-native Saul Wold
@ 2011-04-18  4:53   ` Richard Purdie
  2011-04-18  5:43     ` Cui, Dexuan
  0 siblings, 1 reply; 82+ messages in thread
From: Richard Purdie @ 2011-04-18  4:53 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer
  Cc: Paul Eggleton, Jingdong Lu, Xiaofeng Yan, Scott Rifenbark,
	Kang Kai

On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
> From: Dexuan Cui <dexuan.cui@intel.com>
> 
> Fixes [YOCTO #968]
> 
> Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
> ---
>  .../gnu-config/config-guess-uclibc.patch           |    2 ++
>  .../gnu-config/gnu-config_20080123.bb              |    6 ++++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
> index f820cef..f862c83 100644
> --- a/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
> +++ b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch
> @@ -1,3 +1,5 @@
> +Upstream-Status: Pending
> +
>  Patch courtesy gentoo-portage/sys-devel/gnuconfig/files/automake-1.8.5-config-guess-uclibc.patch.
>  
>  updated to 20050516 by Marcin 'Hrw' Juszkiewicz (by hand)
> diff --git a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
> index e0a8155..897984d 100644
> --- a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
> +++ b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU config.guess / config.sub into a direc
>  SECTION = "devel"
>  LICENSE = "GPLv1+"
>  LIC_FILES_CHKSUM = "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
> -DEPENDS = ""
> +
> +DEPENDS_virtclass-native = "perl-native"
> +
>  INHIBIT_DEFAULT_DEPS = "1"
>  


I haven't taken this. Having looked at the shear number of horrible
perl-native issues, I'd like to take the same approach we took with the
toolchain staging and place perl into its own bin directory we add to
PATH when needed. I commented on at least one of the bugs in this
respect.

Cheers,

Richard




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

* Re: [PATCH 00/58] Consolidated Updates and Bug Fixes
  2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
                   ` (57 preceding siblings ...)
  2011-04-16  6:56 ` [PATCH 58/58] jpeg: add link libjpeg.so.62 for LSB library test Saul Wold
@ 2011-04-18  4:54 ` Richard Purdie
  58 siblings, 0 replies; 82+ messages in thread
From: Richard Purdie @ 2011-04-18  4:54 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer
  Cc: Paul Eggleton, Jingdong Lu, Xiaofeng Yan, Scott Rifenbark,
	Kang Kai

On Fri, 2011-04-15 at 23:53 -0700, Saul Wold wrote:
> Folks have been busy while we were away at ELC!
> 
> There are package updates, patch classifications, and bug fixes 
> including some CVEs that need to be back ported to 1.0.1
> 
> I still don't have access to openembedded-core-contrib, so please 
> find these in the poky-contrib area.
> 
> Clutter-1.6 has a dependency on json-glib, which Joshua will be fixing
> next week, it's not an issue for most builds right now.
> 
> I did rejects some patches due to issue with build or patch classificiations.
> 
> Hope we can get these in for next week.

I took these with the exception of:

[PATCH 37/58] gnu-config-native: add dependency on perl-native

which I've commented on and:

[PATCH 47/58] setuptools: Make options for setup.py more flexible

which I agree shouldn't be merged.

Cheers,

Richard




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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-18  4:53   ` Richard Purdie
@ 2011-04-18  5:43     ` Cui, Dexuan
  2011-04-18  6:54       ` Richard Purdie
  0 siblings, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-04-18  5:43 UTC (permalink / raw
  To: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
>> From: Dexuan Cui <dexuan.cui@intel.com>
>> 
>> Fixes [YOCTO #968]
>> 
>> diff --git a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
>> b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb 
>> index e0a8155..897984d 100644
>> --- a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
>> +++ b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb
>> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU
>>  config.guess / config.sub into a direc  SECTION = "devel" LICENSE =
>>  "GPLv1+" LIC_FILES_CHKSUM =
>> "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
>> -DEPENDS = "" + +DEPENDS_virtclass-native = "perl-native"
>> +
>>  INHIBIT_DEFAULT_DEPS = "1"
>> 
> 
> 
> I haven't taken this. Having looked at the shear number of horrible
> perl-native issues, I'd like to take the same approach we took with
> the toolchain staging and place perl into its own bin directory we
> add to PATH when needed. 
Hi RP,
If a recipe does need perl-native but we fail to realize that, the host's perl (e.g. /usr/bin/perl) will be used -- this will further hinder us from realizing the recipe needs perl-native.

As to bug #968, the build failure happens because perl-native's do_populate_sysroot has begun but hasn't finished. If perl-native hasn't started to populate_sysroot, running gnu-configize won't fail since host's perl will be used.

so I've 3 questions:
1) in poky how to exclude host's perl from PATH? need to write a python function to filter out various possible host perl paths? e.g., ~/bin/perl, /usr/local/bin/perl, /usr/bin/perl, /bin/perl,... too many paths...

2) how to identify the recipes that need perl-native? I think we have to identify them manually one by one? This is time comsuming?

3) Even if we solve the above 2 issues, we still need to add perl-native into the recipes' (that need perl-native) DEPENDS, correct?

I'm not sure my above understanding is ok. Please correct me if I'm wrong.

Thanks,
-- Dexuan


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-18  5:43     ` Cui, Dexuan
@ 2011-04-18  6:54       ` Richard Purdie
  2011-04-18 14:18         ` Cui, Dexuan
  2011-05-05 14:18         ` Cui, Dexuan
  0 siblings, 2 replies; 82+ messages in thread
From: Richard Purdie @ 2011-04-18  6:54 UTC (permalink / raw
  To: Cui, Dexuan; +Cc: 'Patches and discussions about the oe-core layer'

On Mon, 2011-04-18 at 13:43 +0800, Cui, Dexuan wrote:
> Richard Purdie wrote:
> > On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
> >> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU
> >>  config.guess / config.sub into a direc  SECTION = "devel" LICENSE =
> >>  "GPLv1+" LIC_FILES_CHKSUM =
> >> "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
> >> -DEPENDS = "" + +DEPENDS_virtclass-native = "perl-native"
> >> +
> >>  INHIBIT_DEFAULT_DEPS = "1"
> > 
> > I haven't taken this. Having looked at the shear number of horrible
> > perl-native issues, I'd like to take the same approach we took with
> > the toolchain staging and place perl into its own bin directory we
> > add to PATH when needed. 
>
> If a recipe does need perl-native but we fail to realize that, the
> host's perl (e.g. /usr/bin/perl) will be used -- this will further
> hinder us from realizing the recipe needs perl-native.
> 
> As to bug #968, the build failure happens because perl-native's
> do_populate_sysroot has begun but hasn't finished. If perl-native
> hasn't started to populate_sysroot, running gnu-configize won't fail
> since host's perl will be used.
> 
> so I've 3 questions:
> 1) in poky how to exclude host's perl from PATH? need to write a
> python function to filter out various possible host perl paths? e.g.,
> ~/bin/perl, /usr/local/bin/perl, /usr/bin/perl, /bin/perl,... too many
> paths...
> 
> 2) how to identify the recipes that need perl-native? I think we have
> to identify them manually one by one? This is time comsuming?
> 
> 3) Even if we solve the above 2 issues, we still need to add
> perl-native into the recipes' (that need perl-native) DEPENDS,
> correct?
> 
> I'm not sure my above understanding is ok. Please correct me if I'm
> wrong.

What I'd like to do is have perl install into a bindir which isn't part
of our PATH by default. For anything which has DEPENDS = "perl-native",
we add this directory to PATH. Anything that doesn't have the DEPENDS
doesn't see it. We can probably make this a perlnative.bbclass or
something which just contains

PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
DEPENDS += "perl-native"

This should ensure that anything that really needs perl-native finds it
but we don't have *everything* depending on it unnecessarily.

Cheers,

Richard




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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-18  6:54       ` Richard Purdie
@ 2011-04-18 14:18         ` Cui, Dexuan
  2011-05-05 14:18         ` Cui, Dexuan
  1 sibling, 0 replies; 82+ messages in thread
From: Cui, Dexuan @ 2011-04-18 14:18 UTC (permalink / raw
  To: 'Richard Purdie'
  Cc: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Mon, 2011-04-18 at 13:43 +0800, Cui, Dexuan wrote:
>> Richard Purdie wrote:
>>> On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
>>>> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU
>>>>  config.guess / config.sub into a direc  SECTION = "devel" LICENSE
>>>> =  "GPLv1+" LIC_FILES_CHKSUM =
>>>> "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
>>>>  -DEPENDS = "" + +DEPENDS_virtclass-native = "perl-native" +
>>>> INHIBIT_DEFAULT_DEPS = "1" 
>>> 
>>> I haven't taken this. Having looked at the shear number of horrible
>>> perl-native issues, I'd like to take the same approach we took with
>>> the toolchain staging and place perl into its own bin directory we
>>> add to PATH when needed.
>> 
>> If a recipe does need perl-native but we fail to realize that, the
>> host's perl (e.g. /usr/bin/perl) will be used -- this will further
>> hinder us from realizing the recipe needs perl-native.
>> 
>> As to bug #968, the build failure happens because perl-native's
>> do_populate_sysroot has begun but hasn't finished. If perl-native
>> hasn't started to populate_sysroot, running gnu-configize won't fail
>> since host's perl will be used.
>> 
>> so I've 3 questions:
>> 1) in poky how to exclude host's perl from PATH? need to write a
>> python function to filter out various possible host perl paths? e.g.,
>> ~/bin/perl, /usr/local/bin/perl, /usr/bin/perl, /bin/perl,... too
>> many paths... 
>> 
>> 2) how to identify the recipes that need perl-native? I think we have
>> to identify them manually one by one? This is time comsuming?
>> 
>> 3) Even if we solve the above 2 issues, we still need to add
>> perl-native into the recipes' (that need perl-native) DEPENDS,
>> correct? 
>> 
>> I'm not sure my above understanding is ok. Please correct me if I'm
>> wrong.
> 
> What I'd like to do is have perl install into a bindir which isn't
> part of our PATH by default. For anything which has DEPENDS =
> "perl-native", we add this directory to PATH. Anything that doesn't
> have the DEPENDS doesn't see it. We can probably make this a
> perlnative.bbclass or something which just contains
> 
> PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
> DEPENDS += "perl-native"
> 
> This should ensure that anything that really needs perl-native finds
> it but we don't have *everything* depending on it unnecessarily.

Hi Richard,
Thanks very much for the detailed explanation!
Now I understand and will make changes accordingly.

Thanks,
-- Dexuan


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-04-18  6:54       ` Richard Purdie
  2011-04-18 14:18         ` Cui, Dexuan
@ 2011-05-05 14:18         ` Cui, Dexuan
  2011-05-05 22:34           ` Richard Purdie
  1 sibling, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-05 14:18 UTC (permalink / raw
  To: 'Richard Purdie'
  Cc: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Mon, 2011-04-18 at 13:43 +0800, Cui, Dexuan wrote:
>> Richard Purdie wrote:
>>> On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
>>>> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU
>>>>  config.guess / config.sub into a direc  SECTION = "devel" LICENSE
>>>> =  "GPLv1+" LIC_FILES_CHKSUM =
>>>> "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
>>>>  -DEPENDS = "" + +DEPENDS_virtclass-native = "perl-native" +
>>>> INHIBIT_DEFAULT_DEPS = "1" 
>>> 
>>> I haven't taken this. Having looked at the shear number of horrible
>>> perl-native issues, I'd like to take the same approach we took with
>>> the toolchain staging and place perl into its own bin directory we
>>> add to PATH when needed.
>> 
>> If a recipe does need perl-native but we fail to realize that, the
>> host's perl (e.g. /usr/bin/perl) will be used -- this will further
>> hinder us from realizing the recipe needs perl-native.
>> 
>> As to bug #968, the build failure happens because perl-native's
>> do_populate_sysroot has begun but hasn't finished. If perl-native
>> hasn't started to populate_sysroot, running gnu-configize won't fail
>> since host's perl will be used.
>> 
>> so I've 3 questions:
>> 1) in poky how to exclude host's perl from PATH? need to write a
>> python function to filter out various possible host perl paths? e.g.,
>> ~/bin/perl, /usr/local/bin/perl, /usr/bin/perl, /bin/perl,... too
>> many paths... 
>> 
>> 2) how to identify the recipes that need perl-native? I think we have
>> to identify them manually one by one? This is time comsuming?
>> 
>> 3) Even if we solve the above 2 issues, we still need to add
>> perl-native into the recipes' (that need perl-native) DEPENDS,
>> correct? 
>> 
>> I'm not sure my above understanding is ok. Please correct me if I'm
>> wrong.
> 
> What I'd like to do is have perl install into a bindir which isn't
> part of our PATH by default. For anything which has DEPENDS =
> "perl-native", we add this directory to PATH. Anything that doesn't
> have the DEPENDS doesn't see it. We can probably make this a
> perlnative.bbclass or something which just contains
> 
> PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
> DEPENDS += "perl-native"
> 
> This should ensure that anything that really needs perl-native finds
> it but we don't have *everything* depending on it unnecessarily.
Hi RP,
(Sorry for my delay for the task as I was working on other bugs...)
Recently I have been looking into it and I've made some commits (the
top 5 small commits) in
http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/master_perl-native 
BTW: the work is not done completely as some recipes don't build
with the changes. Please have a look anyway to see if I'm in the correct direction.

However, I've got some difficulties and hope to get your help:
1)  As you said, after we install perl-native into its own directory, any recipe not depending on perl-native doesn't see ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
However, if we keep the current code, what's the bad consequence if the recipe not depending on perl-native does see perl of perl-native? looks no?

2) In poky, I see many places hardcodedly use the system perl(i.e., /usr/bin/perl) explicitly or implicitly(e.g,  meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in contains /usr/bin/perl; another example,  in perl-5.12.3's source code, Cross/generate_config_sh also contains #!/usr/bin/perl). Should we fix all of them?
   And what's the relationship between the system perl and perl-native? Since perl-native is not less functional than the system perl, will we eliminate the system perl as a prerequisite to bitbake in future?

3) In gnu-config_20080123.bb's do_install, I don't understand this lines: here the "!=" should be "="?
    if [ "${BUILD_ARCH}" != "${TARGET_ARCH}" ]; then
        sed -i -e 's,/usr/bin/env,${bindir}/env,g' ${D}${bindir}/gnu-configize
    fi
e.g. when building gnu-config-native for MACHINE qemux86 on a 32-bit host,  BUILD_ARCH=TARGET_ARCH=i686-linux and the sed isn't invoked; when building gnu-config, the sed will be invoked, but bindir is just /usr/bin, so the replacement operation actually does nothing.

And for gnu-config-native, I think we need do a 
sed -i -e 's,/usr/bin/perl,${STAGING_BINDIR_NATIVE}/perl-native/perl,g' ${D}${bindir}/gnu-configize
Correct?

4) My last commit of the top 5 commits is a chaos... I'm trying to replace every "DEPENDS on perl-native" with "inherit perlnative".
I'm now stuck in fixing the build issues for libxml-parser-perl and libxml-parser-perl-native.
I don't know how to fix get_perl_version and perl_get_libdirs in cpan-base.bbclass -- for libxml-parser-perl-native, I have to manage to add a "/perl-native" into STAGING_LIBDIR and libdir, but for libxml-parser-perl, I can't change STAGING_LIBDIR and libdir. Can you please help me out?

Thanks!

-- Dexuan



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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-05 14:18         ` Cui, Dexuan
@ 2011-05-05 22:34           ` Richard Purdie
  2011-05-06  8:52             ` Cui, Dexuan
  2011-05-06 14:27             ` Tom Rini
  0 siblings, 2 replies; 82+ messages in thread
From: Richard Purdie @ 2011-05-05 22:34 UTC (permalink / raw
  To: Cui, Dexuan; +Cc: 'Patches and discussions about the oe-core layer'

On Thu, 2011-05-05 at 22:18 +0800, Cui, Dexuan wrote:
> (Sorry for my delay for the task as I was working on other bugs...)
> Recently I have been looking into it and I've made some commits (the
> top 5 small commits) in
> http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/master_perl-native 
> BTW: the work is not done completely as some recipes don't build
> with the changes. Please have a look anyway to see if I'm in the correct direction.
> 
> However, I've got some difficulties and hope to get your help:
> 1)  As you said, after we install perl-native into its own directory,
> any recipe not depending on perl-native doesn't see
> ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
> However, if we keep the current code, what's the bad consequence if
> the recipe not depending on perl-native does see perl of perl-native?
> looks no?

We have an assumption that perl is already on the system we're building
on. Perl is a relatively stable language with defined compatibility and
interoperability. Most recipes are therefore fine using perl from the
build system directly and don't need perl-native. I think we defined a
special name for the build system perl (perl-native-runtime?). Better
names are welcome but we should ensure we use the right dependency in
the right places.

The time to use perl-native instead of perl-native-runtime is where any
perl module is being built, perl itself is being built or anything that
has an explicit dependency on the perl version present.

> 2) In poky, I see many places hardcodedly use the system
> perl(i.e., /usr/bin/perl) explicitly or implicitly(e.g,
> meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in
> contains /usr/bin/perl; another example,  in perl-5.12.3's source
> code, Cross/generate_config_sh also contains #!/usr/bin/perl). Should
> we fix all of them?

Most of these should be generated locations and I think this is fine
since most of these are "perl-native-runtime" uses and its fine to use
the build system perl.

>    And what's the relationship between the system perl and
> perl-native? Since perl-native is not less functional than the system
> perl, will we eliminate the system perl as a prerequisite to bitbake
> in future?

No, I think you have this backwards. The intent is to have
"perl-native-runtime" denoting a requirement on the build system perl
and "perl-native" being a perl that exactly the same as the target perl
for cross purposes.

> 3) In gnu-config_20080123.bb's do_install, I don't understand this lines: here the "!=" should be "="?
>     if [ "${BUILD_ARCH}" != "${TARGET_ARCH}" ]; then
>         sed -i -e 's,/usr/bin/env,${bindir}/env,g' ${D}${bindir}/gnu-configize
>     fi

This means it only applies for non-native packages. (native has
BUILD_ARCH=TARGET_ARCH). The path to env is ${bindir} and this assists
with things like the nativesdk packages where bindir != "/usr/bin".

> e.g. when building gnu-config-native for MACHINE qemux86 on a 32-bit
> host,  BUILD_ARCH=TARGET_ARCH=i686-linux and the sed isn't invoked;
> when building gnu-config, the sed will be invoked, but bindir is
> just /usr/bin, so the replacement operation actually does nothing.

You can define a system where exec_prefix is "" and bindir is hence
"/bin" when it wouldn't do nothing.

> And for gnu-config-native, I think we need do a 
> sed -i -e 's,/usr/bin/perl,${STAGING_BINDIR_NATIVE}/perl-native/perl,g' ${D}${bindir}/gnu-configize
> Correct?

No, the whole point is to stop it seeing perl-native. Only perl itself
and modules should be using perl-native.

> 4) My last commit of the top 5 commits is a chaos... I'm trying to
> replace every "DEPENDS on perl-native" with "inherit perlnative".
> I'm now stuck in fixing the build issues for libxml-parser-perl and libxml-parser-perl-native.
> I don't know how to fix get_perl_version and perl_get_libdirs in
> cpan-base.bbclass -- for libxml-parser-perl-native, I have to manage
> to add a "/perl-native" into STAGING_LIBDIR and libdir, but for
> libxml-parser-perl, I can't change STAGING_LIBDIR and libdir. Can you
> please help me out?

I'd suggest splitting this into two steps:

a) Check through all perl-native references and correct the ones that 
   should be perl-native-runtime.
b) Replace all remaining perl-native references with the class 
   dependency.

In step a), gnu-config would have a dependency on perl-native-runtime so
wouldn't use the perlnative class.

Just for reference, using perl-native-runtime means that someone can
remove it from ASSUME_PROVIDED and provide a version of it themselves if
they so wish (using perl-native or otherwise).

I suspect you'll still have the libxml-parser-perl problem but lets take
this one step at a time! :)

Cheers,

Richard




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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-05 22:34           ` Richard Purdie
@ 2011-05-06  8:52             ` Cui, Dexuan
  2011-05-06 11:31               ` Richard Purdie
  2011-05-06 14:27             ` Tom Rini
  1 sibling, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-06  8:52 UTC (permalink / raw
  To: 'Richard Purdie'
  Cc: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Thu, 2011-05-05 at 22:18 +0800, Cui, Dexuan wrote:
>> Recently I have been looking into it and I've made some commits
>> ......
>> 1)  As you said, after we install perl-native into its own directory,
>> any recipe not depending on perl-native doesn't see
>> ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
>> However, if we keep the current code, what's the bad consequence if
>> the recipe not depending on perl-native does see perl of perl-native?
>> looks no?
> 
> We have an assumption that perl is already on the system we're
> building on. Perl is a relatively stable language with defined
> compatibility and interoperability. Most recipes are therefore fine
> using perl from the build system directly and don't need perl-native.
> I think we defined a special name for the build system perl
> (perl-native-runtime?). Better names are welcome but we should ensure
> we use the right dependency in the right places.
> 
> The time to use perl-native instead of perl-native-runtime is where
> any perl module is being built, perl itself is being built or
> anything that has an explicit dependency on the perl version present.
Thanks for all the clarification!

>> 3) In gnu-config_20080123.bb's do_install, I don't understand this
>>     lines: here the "!=" should be "="? if [ "${BUILD_ARCH}" !=
>>         "${TARGET_ARCH}" ]; then sed -i -e
>>     's,/usr/bin/env,${bindir}/env,g' ${D}${bindir}/gnu-configize fi
> 
> This means it only applies for non-native packages. (native has
> BUILD_ARCH=TARGET_ARCH). The path to env is ${bindir} and this assists
> with things like the nativesdk packages where bindir != "/usr/bin".
Thanks for the explanation!
My understanding about "non-native package" is target recipe (in this case bindir=/usr/bin)
and -nativesdk recipe.
gnu-config_20080123.bb doesn't have -nativesdk version(BBCLASSEXTEND doesn't
contain nativesdk), so looks the sed replacement is useless at present?


>> e.g. when building gnu-config-native for MACHINE qemux86 on a 32-bit
>> host,  BUILD_ARCH=TARGET_ARCH=i686-linux and the sed isn't invoked;
>> when building gnu-config, the sed will be invoked, but bindir is
>> just /usr/bin, so the replacement operation actually does nothing.
> 
> You can define a system where exec_prefix is "" and bindir is hence
> "/bin" when it wouldn't do nothing.
> 
>> And for gnu-config-native, I think we need do a
>> sed -i -e
>> 's,/usr/bin/perl,${STAGING_BINDIR_NATIVE}/perl-native/perl,g'
>> ${D}${bindir}/gnu-configize Correct? 
> 
> No, the whole point is to stop it seeing perl-native. Only perl itself
> and modules should be using perl-native.
So gnu-config-native should use perl-native-runtime(i.e., the system perl) and
shouldn't depend on perl-native.
Howeve, there is a sed replacement in gnu-config-native's do_install:
-e 's,@autom4te_perllibdir@,${datadir}/autoconf,g
and meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in is intened
to be run with "#! /usr/bin/env perl" -- this incurs some race conditions:
1) if perl-natvie does populate_sysroot later than
${STAGING_BINDIR_NATIVE}/gnu-configize is invoked, /usr/bin/perl is used
but perl-native's modules are used due to the "unshift @INC, $datadir" in gnu-configize.in.
This is just http://bugzilla.pokylinux.org/show_bug.cgi?id=941
2)  if perl-natvie does populate_sysroot earlier than the gnu-configize
is invokded, we don't meet bug 941.

The above is the current situation. If we install perl-native into its own
sysroot, in the gnu-configize, the system perl is always found and used,
and we always meet with bug 941.

How can we fix bug 941 then?

BTW: the 2 lines at the beginning of gnu-configize.in is suspicious:
eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac'
    if 0;
I'm new to the synax of perl, but I believe the string after the "eval" is
not executed due to "if 0".
Can we remove the 2 lines?

> 
>> 4) My last commit of the top 5 commits is a chaos... I'm trying to
>> replace every "DEPENDS on perl-native" with "inherit perlnative".
>> I'm now stuck in fixing the build issues for libxml-parser-perl and
>> libxml-parser-perl-native. 
>> I don't know how to fix get_perl_version and perl_get_libdirs in
>> cpan-base.bbclass -- for libxml-parser-perl-native, I have to manage
>> to add a "/perl-native" into STAGING_LIBDIR and libdir, but for
>> libxml-parser-perl, I can't change STAGING_LIBDIR and libdir. Can you
>> please help me out?
> 
> I'd suggest splitting this into two steps:
> 
> a) Check through all perl-native references and correct the ones that
>    should be perl-native-runtime.
> b) Replace all remaining perl-native references with the class
>    dependency.
Ok, I'm checking all the references.

> In step a), gnu-config would have a dependency on perl-native-runtime
> so wouldn't use the perlnative class.
Please see my above reply.

> Just for reference, using perl-native-runtime means that someone can
> remove it from ASSUME_PROVIDED and provide a version of it themselves
> if they so wish (using perl-native or otherwise).
> 
> I suspect you'll still have the libxml-parser-perl problem but lets
> take this one step at a time! :)
I'll continue to try to fix this. :-)

Richard, thanks a lot for your help!

-- Dexuan


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-06  8:52             ` Cui, Dexuan
@ 2011-05-06 11:31               ` Richard Purdie
  2011-05-06 12:02                 ` Koen Kooi
  2011-05-10 14:02                 ` Cui, Dexuan
  0 siblings, 2 replies; 82+ messages in thread
From: Richard Purdie @ 2011-05-06 11:31 UTC (permalink / raw
  To: Cui, Dexuan; +Cc: 'Patches and discussions about the oe-core layer'

On Fri, 2011-05-06 at 16:52 +0800, Cui, Dexuan wrote:
> Richard Purdie wrote:
> >> 3) In gnu-config_20080123.bb's do_install, I don't understand this
> >>     lines: here the "!=" should be "="? if [ "${BUILD_ARCH}" !=
> >>         "${TARGET_ARCH}" ]; then sed -i -e
> >>     's,/usr/bin/env,${bindir}/env,g' ${D}${bindir}/gnu-configize fi
> > 
> > This means it only applies for non-native packages. (native has
> > BUILD_ARCH=TARGET_ARCH). The path to env is ${bindir} and this assists
> > with things like the nativesdk packages where bindir != "/usr/bin".
> Thanks for the explanation!
> My understanding about "non-native package" is target recipe (in this case bindir=/usr/bin)
> and -nativesdk recipe.
> gnu-config_20080123.bb doesn't have -nativesdk version(BBCLASSEXTEND doesn't
> contain nativesdk), so looks the sed replacement is useless at present?

Not useless but not heavily used directly in Poky at this time.
DISTRO=minimal in OE for example sets exec_prefix="" so bindir
becomes /bin.

> >> e.g. when building gnu-config-native for MACHINE qemux86 on a 32-bit
> >> host,  BUILD_ARCH=TARGET_ARCH=i686-linux and the sed isn't invoked;
> >> when building gnu-config, the sed will be invoked, but bindir is
> >> just /usr/bin, so the replacement operation actually does nothing.
> > 
> > You can define a system where exec_prefix is "" and bindir is hence
> > "/bin" when it wouldn't do nothing.

As I mentioned here :)

> >> And for gnu-config-native, I think we need do a
> >> sed -i -e
> >> 's,/usr/bin/perl,${STAGING_BINDIR_NATIVE}/perl-native/perl,g'
> >> ${D}${bindir}/gnu-configize Correct? 
> > 
> > No, the whole point is to stop it seeing perl-native. Only perl itself
> > and modules should be using perl-native.
> So gnu-config-native should use perl-native-runtime(i.e., the system perl) and
> shouldn't depend on perl-native.

Correct.

> Howeve, there is a sed replacement in gnu-config-native's do_install:
> -e 's,@autom4te_perllibdir@,${datadir}/autoconf,g

Don't confuse the data files that autoconf installs and references with
a program that is mixing the perl-native binary and libraries with the
host system ones. I think the above change is harmless as its just
linking in some perl files.

> and meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in is intened
> to be run with "#! /usr/bin/env perl" -- this incurs some race conditions:

This is more problematic though as it does this but also references
perl's full path more directly further in the file. This is the real
problem as its mixing and matching two different perl versions.

> 1) if perl-natvie does populate_sysroot later than
> ${STAGING_BINDIR_NATIVE}/gnu-configize is invoked, /usr/bin/perl is used
> but perl-native's modules are used due to the "unshift @INC, $datadir" in gnu-configize.in.
> This is just http://bugzilla.pokylinux.org/show_bug.cgi?id=941
> 2)  if perl-natvie does populate_sysroot earlier than the gnu-configize
> is invokded, we don't meet bug 941.
> 
> The above is the current situation. If we install perl-native into its own
> sysroot, in the gnu-configize, the system perl is always found and used,
> and we always meet with bug 941.

It doesn't matter which perl we use but we do need to use the same perl
consistently.

> How can we fix bug 941 then?
> 
> BTW: the 2 lines at the beginning of gnu-configize.in is suspicious:
> eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac'
>     if 0;
> I'm new to the synax of perl, but I believe the string after the "eval" is
> not executed due to "if 0".
> Can we remove the 2 lines?

I ended up getting some other opinions on this code as it makes no sense
to me either. The best guess I've heard is its allowing the script to
work in shell and perl. I then looked at other autoconf scripts and they
use this same construct so its obviously copied from there. I agree the
style is pointless and we could remove it but it is at least consistent
with the rest of autoconf.

I went digging and was surprised to see many hardcoded paths to perl in
the autoconf scripts. It turns out path_prog_fixes.patch isn't being
applied to autoconf-native, only the target version. When we do apply
it, it turns out the patch is buggy in the native case and I had to
change @bindir@/env to /usr/bin/env to make it work since we don't have
a "env" in the STAGING_BINDIR_NATIVE.

My point is that we need to be consistent about which perl version we
use in these scripts. Either we use one from the environment using env
or we hardcode to /usr/bin/perl. Since the perl-native binary won't be
in the path for any of these, autodetecting and letting it hardcode is
probably fine. It has the advantage that if there are any binary modules
ever involved, they'll match the version of perl they were built for
regardless of whether perl-native is a dependency or not. If someone
adds a perl-native dependency to autoconf-native, it will also still
select the "correct" perl.

Whilst doing this we need to keep bug #968 in mind and ensure that if
perl-native is used, all of perl-native is in the sysroot. That bug is
where the perl binary was installed, the library was not and an error
occurred. If it is in its own directory which is only added to the PATH
for users with the correct dependency, we avoid this.

As for bug #941, the bottom line is that however autoconf-native selects
its perl version, the strings encoded in gnu-config should really match
those in the other autoconf-native scripts.

Cheers,

Richard





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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-06 11:31               ` Richard Purdie
@ 2011-05-06 12:02                 ` Koen Kooi
  2011-05-10 14:02                 ` Cui, Dexuan
  1 sibling, 0 replies; 82+ messages in thread
From: Koen Kooi @ 2011-05-06 12:02 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer


Op 6 mei 2011, om 13:31 heeft Richard Purdie het volgende geschreven:

> On Fri, 2011-05-06 at 16:52 +0800, Cui, Dexuan wrote:
>> Richard Purdie wrote:
>>>> 3) In gnu-config_20080123.bb's do_install, I don't understand this
>>>>    lines: here the "!=" should be "="? if [ "${BUILD_ARCH}" !=
>>>>        "${TARGET_ARCH}" ]; then sed -i -e
>>>>    's,/usr/bin/env,${bindir}/env,g' ${D}${bindir}/gnu-configize fi
>>> 
>>> This means it only applies for non-native packages. (native has
>>> BUILD_ARCH=TARGET_ARCH). The path to env is ${bindir} and this assists
>>> with things like the nativesdk packages where bindir != "/usr/bin".
>> Thanks for the explanation!
>> My understanding about "non-native package" is target recipe (in this case bindir=/usr/bin)
>> and -nativesdk recipe.
>> gnu-config_20080123.bb doesn't have -nativesdk version(BBCLASSEXTEND doesn't
>> contain nativesdk), so looks the sed replacement is useless at present?
> 
> Not useless but not heavily used directly in Poky at this time.
> DISTRO=minimal in OE for example sets exec_prefix="" so bindir
> becomes /bin.

Nitpick: that's DISTRO=micro


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-05 22:34           ` Richard Purdie
  2011-05-06  8:52             ` Cui, Dexuan
@ 2011-05-06 14:27             ` Tom Rini
  2011-05-10 14:09               ` Cui, Dexuan
  1 sibling, 1 reply; 82+ messages in thread
From: Tom Rini @ 2011-05-06 14:27 UTC (permalink / raw
  To: openembedded-core

On 05/05/2011 03:34 PM, Richard Purdie wrote:
> On Thu, 2011-05-05 at 22:18 +0800, Cui, Dexuan wrote:
>> (Sorry for my delay for the task as I was working on other bugs...)
>> Recently I have been looking into it and I've made some commits (the
>> top 5 small commits) in
>> http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/master_perl-native 
>> BTW: the work is not done completely as some recipes don't build
>> with the changes. Please have a look anyway to see if I'm in the correct direction.
>>
>> However, I've got some difficulties and hope to get your help:
>> 1)  As you said, after we install perl-native into its own directory,
>> any recipe not depending on perl-native doesn't see
>> ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
>> However, if we keep the current code, what's the bad consequence if
>> the recipe not depending on perl-native does see perl of perl-native?
>> looks no?
> 
> We have an assumption that perl is already on the system we're building
> on. Perl is a relatively stable language with defined compatibility and
> interoperability. Most recipes are therefore fine using perl from the
> build system directly and don't need perl-native. I think we defined a
> special name for the build system perl (perl-native-runtime?). Better
> names are welcome but we should ensure we use the right dependency in
> the right places.
> 
> The time to use perl-native instead of perl-native-runtime is where any
> perl module is being built, perl itself is being built or anything that
> has an explicit dependency on the perl version present.

The problem that follows up is that once we have built any sort of
perl-native we then have to go and be really really really careful that
nothing that's not (a) target perl (b) some perl module we built and
need to run uses it.  Otherwise we run into the problems I think that've
been hit here.  Problems like this are why for OE I just made
perl-native be the perl we rely on for everything.

I know we talked about this before and you had a strong desire to try
and do something else but I think this shows maybe we need to try going
down the perl-native everywhere path first and then see if we can't do
something different.

-- 
Tom Rini
Mentor Graphics Corporation



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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-06 11:31               ` Richard Purdie
  2011-05-06 12:02                 ` Koen Kooi
@ 2011-05-10 14:02                 ` Cui, Dexuan
  2011-05-10 14:10                   ` Richard Purdie
  1 sibling, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-10 14:02 UTC (permalink / raw
  To: 'Richard Purdie'
  Cc: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Fri, 2011-05-06 at 16:52 +0800, Cui, Dexuan wrote:
>> Howeve, there is a sed replacement in gnu-config-native's do_install:
>> -e 's,@autom4te_perllibdir@,${datadir}/autoconf,g
> 
> Don't confuse the data files that autoconf installs and references
> with a program that is mixing the perl-native binary and libraries
> with the host system ones. I think the above change is harmless as
> its just linking in some perl files.
Sorry, but I might not make me clear here(?) 
I meant:  due to the sed replacing and the 
"unshift @INC, $datadir"(@INC is a path list
from which a perl module is being searched for) in
${STAGING_BINDIR_NATIVE}/gnu-configize, /usr/bin/perl will try to use
perl modues in ${STAGING_DATADIR_NATIVE}/perl/ if the gnu-configize
is executed by /usr/bin/perl.
That's just bug 941, I think.
If we keep the sed replacing, I think we have to make gnu-config-native
depend on perl-native so we're sure gnu-config-native's do_configure will
find perl-native rather than /usr/bin/perl, but as you said, gnu-config-native
should not depend on perl-native. That's what confused me.

>> and meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in is
>> intened 
>> to be run with "#! /usr/bin/env perl" -- this incurs some race
>> conditions: 
> 
> This is more problematic though as it does this but also references
> perl's full path more directly further in the file. This is the real
> problem as its mixing and matching two different perl versions.
> 
>> 1) if perl-natvie does populate_sysroot later than
>> ${STAGING_BINDIR_NATIVE}/gnu-configize is invoked, /usr/bin/perl is
>> used 
>> but perl-native's modules are used due to the "unshift @INC,
>> $datadir" in gnu-configize.in. This is just
>> http://bugzilla.pokylinux.org/show_bug.cgi?id=941 2)  if perl-natvie
>> does populate_sysroot earlier than the gnu-configize 
>> is invokded, we don't meet bug 941.
>> 
>> The above is the current situation. If we install perl-native into
>> its own 
>> sysroot, in the gnu-configize, the system perl is always found and
>> used, 
>> and we always meet with bug 941.
> 
> It doesn't matter which perl we use but we do need to use the same
> perl consistently.
> 
>> How can we fix bug 941 then?
>> 
>> BTW: the 2 lines at the beginning of gnu-configize.in is suspicious:
>> eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec
>> /usr/bin/perl -S "$0" "$@";; esac'     if 0; I'm new to the synax of
>> perl, but I believe the string after the "eval" is 
>> not executed due to "if 0".
>> Can we remove the 2 lines?
> 
> I ended up getting some other opinions on this code as it makes no
> sense to me either. The best guess I've heard is its allowing the
> script to work in shell and perl. I then looked at other autoconf
> scripts and they use this same construct so its obviously copied from
> there. I agree the style is pointless and we could remove it but it
> is at least consistent with the rest of autoconf.
> 
> I went digging and was surprised to see many hardcoded paths to perl
> in the autoconf scripts. It turns out path_prog_fixes.patch isn't
> being applied to autoconf-native, only the target version. When we do
> apply it, it turns out the patch is buggy in the native case and I
> had to change @bindir@/env to /usr/bin/env to make it work since we
> don't have a "env" in the STAGING_BINDIR_NATIVE.
> 
> My point is that we need to be consistent about which perl version we
> use in these scripts. Either we use one from the environment using env
Yes, I agree.

> or we hardcode to /usr/bin/perl. Since the perl-native binary won't be
> in the path for any of these, autodetecting and letting it hardcode is
> probably fine. It has the advantage that if there are any binary
> modules ever involved, they'll match the version of perl they were
> built for regardless of whether perl-native is a dependency or not.
> If someone adds a perl-native dependency to autoconf-native, it will
> also still select the "correct" perl.
> 
> Whilst doing this we need to keep bug #968 in mind and ensure that if
> perl-native is used, all of perl-native is in the sysroot. That bug is
> where the perl binary was installed, the library was not and an error
> occurred. If it is in its own directory which is only added to the
> PATH for users with the correct dependency, we avoid this.
> 
> As for bug #941, the bottom line is that however autoconf-native
> selects its perl version, the strings encoded in gnu-config should
> really match those in the other autoconf-native scripts.
I saw a commit that was once suspended was pushed into poky
master yesterday:
http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=605141a93443df042634b2219a8628a9004be023
Actually it does fix(or at least workaround) bug #941 and bug #968.

Looks there are much work to do if we install perl-native to its own sysroot.
At present we can use the above commit as a workaround.

Thanks,
-- Dexuan



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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-06 14:27             ` Tom Rini
@ 2011-05-10 14:09               ` Cui, Dexuan
  2011-05-10 14:10                 ` Tom Rini
  0 siblings, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-10 14:09 UTC (permalink / raw
  To: 'Patches and discussions about the oe-core layer'

Tom Rini wrote:
> On 05/05/2011 03:34 PM, Richard Purdie wrote:
>> On Thu, 2011-05-05 at 22:18 +0800, Cui, Dexuan wrote:
>>> Recently I have been looking into it and I've made some commits (the
>>> top 5 small commits) in
>>> http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/master_perl-native
>>> BTW: the work is not done completely as some recipes don't build
>>> with the changes. Please have a look anyway to see if I'm in the
>>> correct direction. 
>>> 
>>> However, I've got some difficulties and hope to get your help:
>>> 1)  As you said, after we install perl-native into its own
>>> directory, 
>>> any recipe not depending on perl-native doesn't see
>>> ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
>>> However, if we keep the current code, what's the bad consequence if
>>> the recipe not depending on perl-native does see perl of
>>> perl-native? 
>>> looks no?
>> 
>> We have an assumption that perl is already on the system we're
>> building on. Perl is a relatively stable language with defined
>> compatibility and interoperability. Most recipes are therefore fine
>> using perl from the build system directly and don't need
>> perl-native. I think we defined a special name for the build system
>> perl (perl-native-runtime?). Better names are welcome but we should
>> ensure we use the right dependency in the right places. 
>> 
>> The time to use perl-native instead of perl-native-runtime is where
>> any perl module is being built, perl itself is being built or
>> anything that has an explicit dependency on the perl version present.
> 
> The problem that follows up is that once we have built any sort of
> perl-native we then have to go and be really really really careful
> that nothing that's not (a) target perl (b) some perl module we built
> and need to run uses it.  Otherwise we run into the problems I think
> that've been hit here.  Problems like this are why for OE I just made
> perl-native be the perl we rely on for everything.
> 
> I know we talked about this before and you had a strong desire to try
> and do something else but I think this shows maybe we need to try
> going down the perl-native everywhere path first and then see if we
> can't do something different.
Hi Tom, do you mean we should try to use perl-native first and try the
best to avoid using /usr/bin/perl?

Thanks,
-- Dexuan


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-10 14:09               ` Cui, Dexuan
@ 2011-05-10 14:10                 ` Tom Rini
  0 siblings, 0 replies; 82+ messages in thread
From: Tom Rini @ 2011-05-10 14:10 UTC (permalink / raw
  To: Cui, Dexuan; +Cc: 'Patches and discussions about the oe-core layer'

On 05/10/2011 07:09 AM, Cui, Dexuan wrote:
> Tom Rini wrote:
>> On 05/05/2011 03:34 PM, Richard Purdie wrote:
>>> On Thu, 2011-05-05 at 22:18 +0800, Cui, Dexuan wrote:
>>>> Recently I have been looking into it and I've made some commits (the
>>>> top 5 small commits) in
>>>> http://git.pokylinux.org/cgit/cgit.cgi/poky-contrib/log/?h=dcui/master_perl-native
>>>> BTW: the work is not done completely as some recipes don't build
>>>> with the changes. Please have a look anyway to see if I'm in the
>>>> correct direction. 
>>>>
>>>> However, I've got some difficulties and hope to get your help:
>>>> 1)  As you said, after we install perl-native into its own
>>>> directory, 
>>>> any recipe not depending on perl-native doesn't see
>>>> ${STAGING_BINDIR_NATIVE}/perl-native/perl unnecessarily.
>>>> However, if we keep the current code, what's the bad consequence if
>>>> the recipe not depending on perl-native does see perl of
>>>> perl-native? 
>>>> looks no?
>>>
>>> We have an assumption that perl is already on the system we're
>>> building on. Perl is a relatively stable language with defined
>>> compatibility and interoperability. Most recipes are therefore fine
>>> using perl from the build system directly and don't need
>>> perl-native. I think we defined a special name for the build system
>>> perl (perl-native-runtime?). Better names are welcome but we should
>>> ensure we use the right dependency in the right places. 
>>>
>>> The time to use perl-native instead of perl-native-runtime is where
>>> any perl module is being built, perl itself is being built or
>>> anything that has an explicit dependency on the perl version present.
>>
>> The problem that follows up is that once we have built any sort of
>> perl-native we then have to go and be really really really careful
>> that nothing that's not (a) target perl (b) some perl module we built
>> and need to run uses it.  Otherwise we run into the problems I think
>> that've been hit here.  Problems like this are why for OE I just made
>> perl-native be the perl we rely on for everything.
>>
>> I know we talked about this before and you had a strong desire to try
>> and do something else but I think this shows maybe we need to try
>> going down the perl-native everywhere path first and then see if we
>> can't do something different.
> Hi Tom, do you mean we should try to use perl-native first and try the
> best to avoid using /usr/bin/perl?

Yes.  Roughly, make automake-native/autoconf-native depend on
perl-native and perform a few changes to libtool-native and
gnu-config-native to make sure it uses /usr/bin/env perl.

-- 
Tom Rini
Mentor Graphics Corporation



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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-10 14:02                 ` Cui, Dexuan
@ 2011-05-10 14:10                   ` Richard Purdie
  2011-05-10 14:20                     ` Cui, Dexuan
  0 siblings, 1 reply; 82+ messages in thread
From: Richard Purdie @ 2011-05-10 14:10 UTC (permalink / raw
  To: Cui, Dexuan; +Cc: 'Patches and discussions about the oe-core layer'

On Tue, 2011-05-10 at 22:02 +0800, Cui, Dexuan wrote:
> > or we hardcode to /usr/bin/perl. Since the perl-native binary won't be
> > in the path for any of these, autodetecting and letting it hardcode is
> > probably fine. It has the advantage that if there are any binary
> > modules ever involved, they'll match the version of perl they were
> > built for regardless of whether perl-native is a dependency or not.
> > If someone adds a perl-native dependency to autoconf-native, it will
> > also still select the "correct" perl.
> > 
> > Whilst doing this we need to keep bug #968 in mind and ensure that if
> > perl-native is used, all of perl-native is in the sysroot. That bug is
> > where the perl binary was installed, the library was not and an error
> > occurred. If it is in its own directory which is only added to the
> > PATH for users with the correct dependency, we avoid this.
> > 
> > As for bug #941, the bottom line is that however autoconf-native
> > selects its perl version, the strings encoded in gnu-config should
> > really match those in the other autoconf-native scripts.
> I saw a commit that was once suspended was pushed into poky
> master yesterday:
> http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=605141a93443df042634b2219a8628a9004be023
> Actually it does fix(or at least workaround) bug #941 and bug #968.
> 
> Looks there are much work to do if we install perl-native to its own sysroot.
> At present we can use the above commit as a workaround.

Its merged as a workaround but I still think we need to clean this up
properly and we need to continue working on it.

Cheers,

Richard




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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-10 14:10                   ` Richard Purdie
@ 2011-05-10 14:20                     ` Cui, Dexuan
  2011-05-11  0:50                       ` Saul Wold
  0 siblings, 1 reply; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-10 14:20 UTC (permalink / raw
  To: 'Richard Purdie'
  Cc: 'Patches and discussions about the oe-core layer'

Richard Purdie wrote:
> On Tue, 2011-05-10 at 22:02 +0800, Cui, Dexuan wrote:
>>> or we hardcode to /usr/bin/perl. Since the perl-native binary won't
>>> be in the path for any of these, autodetecting and letting it
>>> hardcode is probably fine. It has the advantage that if there are
>>> any binary modules ever involved, they'll match the version of perl
>>> they were built for regardless of whether perl-native is a
>>> dependency or not. If someone adds a perl-native dependency to
>>> autoconf-native, it will also still select the "correct" perl.
>>> 
>>> Whilst doing this we need to keep bug #968 in mind and ensure that
>>> if perl-native is used, all of perl-native is in the sysroot. That
>>> bug is where the perl binary was installed, the library was not and
>>> an error occurred. If it is in its own directory which is only
>>> added to the PATH for users with the correct dependency, we avoid
>>> this. 
>>> 
>>> As for bug #941, the bottom line is that however autoconf-native
>>> selects its perl version, the strings encoded in gnu-config should
>>> really match those in the other autoconf-native scripts.
>> I saw a commit that was once suspended was pushed into poky
>> master yesterday:
>> http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=605141a93443df042634b2219a8628a9004be023
>> Actually it does fix(or at least workaround) bug #941 and bug #968.
>> 
>> Looks there are much work to do if we install perl-native to its own
>> sysroot. At present we can use the above commit as a workaround.
> 
> Its merged as a workaround but I still think we need to clean this up
> properly and we need to continue working on it.
I actually meant the priority could be lowered since we have a workaround. :-)
Surely, I'll continue to investigate it.

Thanks,
-- Dexuan


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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-10 14:20                     ` Cui, Dexuan
@ 2011-05-11  0:50                       ` Saul Wold
  2011-05-11  1:00                         ` Cui, Dexuan
  0 siblings, 1 reply; 82+ messages in thread
From: Saul Wold @ 2011-05-11  0:50 UTC (permalink / raw
  To: Patches and discussions about the oe-core layer

On 05/10/2011 07:20 AM, Cui, Dexuan wrote:
> Richard Purdie wrote:
>> On Tue, 2011-05-10 at 22:02 +0800, Cui, Dexuan wrote:
>>>> or we hardcode to /usr/bin/perl. Since the perl-native binary won't
>>>> be in the path for any of these, autodetecting and letting it
>>>> hardcode is probably fine. It has the advantage that if there are
>>>> any binary modules ever involved, they'll match the version of perl
>>>> they were built for regardless of whether perl-native is a
>>>> dependency or not. If someone adds a perl-native dependency to
>>>> autoconf-native, it will also still select the "correct" perl.
>>>>
>>>> Whilst doing this we need to keep bug #968 in mind and ensure that
>>>> if perl-native is used, all of perl-native is in the sysroot. That
>>>> bug is where the perl binary was installed, the library was not and
>>>> an error occurred. If it is in its own directory which is only
>>>> added to the PATH for users with the correct dependency, we avoid
>>>> this.
>>>>
>>>> As for bug #941, the bottom line is that however autoconf-native
>>>> selects its perl version, the strings encoded in gnu-config should
>>>> really match those in the other autoconf-native scripts.
>>> I saw a commit that was once suspended was pushed into poky
>>> master yesterday:
>>> http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=605141a93443df042634b2219a8628a9004be023
>>> Actually it does fix(or at least workaround) bug #941 and bug #968.
>>>
>>> Looks there are much work to do if we install perl-native to its own
>>> sysroot. At present we can use the above commit as a workaround.
>>
>> Its merged as a workaround but I still think we need to clean this up
>> properly and we need to continue working on it.
> I actually meant the priority could be lowered since we have a workaround. :-)
> Surely, I'll continue to investigate it.
>
Just to be clear, just because we have a work around does not mean we 
can lower the priority, this is still a valid bug that needs a proper 
patch in a timely manner.

941 is still a major bug and requires a fix before the milestone 1 
release stabilization period (May 20), which is 10 days from now.

Sau!


> Thanks,
> -- Dexuan
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>




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

* Re: [PATCH 37/58] gnu-config-native: add dependency on perl-native
  2011-05-11  0:50                       ` Saul Wold
@ 2011-05-11  1:00                         ` Cui, Dexuan
  0 siblings, 0 replies; 82+ messages in thread
From: Cui, Dexuan @ 2011-05-11  1:00 UTC (permalink / raw
  To: 'Saul Wold',
	Patches and discussions about the oe-core layer

Saul Wold wrote:
> On 05/10/2011 07:20 AM, Cui, Dexuan wrote:
>> Richard Purdie wrote:
>>> On Tue, 2011-05-10 at 22:02 +0800, Cui, Dexuan wrote:
>>>>> or we hardcode to /usr/bin/perl. Since the perl-native binary
>>>>> won't be in the path for any of these, autodetecting and letting
>>>>> it hardcode is probably fine. It has the advantage that if there
>>>>> are any binary modules ever involved, they'll match the version
>>>>> of perl they were built for regardless of whether perl-native is a
>>>>> dependency or not. If someone adds a perl-native dependency to
>>>>> autoconf-native, it will also still select the "correct" perl.
>>>>> 
>>>>> Whilst doing this we need to keep bug #968 in mind and ensure that
>>>>> if perl-native is used, all of perl-native is in the sysroot. That
>>>>> bug is where the perl binary was installed, the library was not
>>>>> and an error occurred. If it is in its own directory which is only
>>>>> added to the PATH for users with the correct dependency, we avoid
>>>>> this. 
>>>>> 
>>>>> As for bug #941, the bottom line is that however autoconf-native
>>>>> selects its perl version, the strings encoded in gnu-config should
>>>>> really match those in the other autoconf-native scripts.
>>>> I saw a commit that was once suspended was pushed into poky
>>>> master yesterday:
>>>> http://git.pokylinux.org/cgit/cgit.cgi/poky/commit/?id=605141a93443df042634b2219a8628a9004be023
>>>> Actually it does fix(or at least workaround) bug #941 and bug #968.
>>>> 
>>>> Looks there are much work to do if we install perl-native to its
>>>> own sysroot. At present we can use the above commit as a
>>>> workaround. 
>>> 
>>> Its merged as a workaround but I still think we need to clean this
>>> up properly and we need to continue working on it.
>> I actually meant the priority could be lowered since we have a
>> workaround. :-) Surely, I'll continue to investigate it.
>> 
> Just to be clear, just because we have a work around does not mean we
> can lower the priority, this is still a valid bug that needs a proper
> patch in a timely manner.
> 
> 941 is still a major bug and requires a fix before the milestone 1
> release stabilization period (May 20), which is 10 days from now.
OK, so I'll put more effort on this to get a complete fix.

Thanks,
-- Dexuan



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

end of thread, other threads:[~2011-05-11  1:03 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-16  6:53 [PATCH 00/58] Consolidated Updates and Bug Fixes Saul Wold
2011-04-16  6:53 ` [PATCH 01/58] gstreamer: upgrade to vesion 0.10.32 Saul Wold
2011-04-16  6:53 ` [PATCH 02/58] gst-plugins-base: upgrade to version 0.10.32 Saul Wold
2011-04-16  6:53 ` [PATCH 03/58] gst-plugins-good: upgrade to version 0.10.28 Saul Wold
2011-04-16  6:53 ` [PATCH 04/58] gst-plugins-bad: upgrade to version 0.10.21 Saul Wold
2011-04-16  6:53 ` [PATCH 05/58] gst-plugins-ugly: upgrade to version 0.10.17 Saul Wold
2011-04-16  6:53 ` [PATCH 06/58] ofono: upgrade to version 0.45 Saul Wold
2011-04-16  6:53 ` [PATCH 07/58] alsa-lib: upgrade to version 1.0.24.1 Saul Wold
2011-04-16  6:53 ` [PATCH 08/58] telepathy-glib: upgrade to version 0.14.3 Saul Wold
2011-04-16  6:53 ` [PATCH 09/58] telepathy-idle: upgrade to version 0.1.8 Saul Wold
2011-04-16  6:53 ` [PATCH 10/58] telepathy-mission-control: upgrade to version 5.7.9 Saul Wold
2011-04-16  6:53 ` [PATCH 11/58] gssdp: upgrade to version 0.10.0 Saul Wold
2011-04-16  6:53 ` [PATCH 12/58] gupnp: upgrade to version 0.16.0 Saul Wold
2011-04-16  6:53 ` [PATCH 13/58] distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib, etc Saul Wold
2011-04-16  6:53 ` [PATCH 14/58] documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools Saul Wold
2011-04-16  6:53 ` [PATCH 15/58] libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1) Saul Wold
2011-04-16  6:53 ` [PATCH 16/58] x11perf: Upgrade to 1.5.3 (from 1.5.2) Saul Wold
2011-04-16  6:53 ` [PATCH 17/58] libcanberry: Upgrade to 0.28 (from 0.26) Saul Wold
2011-04-16  6:53 ` [PATCH 18/58] xz: Upgrade to 5.0.2 (from 5.0.0) Saul Wold
2011-04-16  6:53 ` [PATCH 19/58] polkit-gnome: Upgrade to 0.101 (from 0.99) Saul Wold
2011-04-16  6:54 ` [PATCH 20/58] oprofileui: upgrade to latest git version Saul Wold
2011-04-16  6:54 ` [PATCH 21/58] libxt: update from 1.0.9 to the latest version 1.1.1 Saul Wold
2011-04-16  6:54 ` [PATCH 22/58] libxi: upgrade from 1.4.0 to the latest version 1.4.2 Saul Wold
2011-04-16  6:54 ` [PATCH 23/58] fixesproto: upgrade from 4.1.2 to the latest version 5.0 Saul Wold
2011-04-16  6:54 ` [PATCH 24/58] xproto: upgrade from 7.0.20 to the latest version 7.0.21 Saul Wold
2011-04-16  6:54 ` [PATCH 25/58] gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5 Saul Wold
2011-04-16  6:54 ` [PATCH 26/58] xextproto: upgrade from 7.1.2 to the latest version 7.2.0 Saul Wold
2011-04-16  6:54 ` [PATCH 27/58] libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1 Saul Wold
2011-04-16  6:54 ` [PATCH 28/58] cronie: upgrade from 1.4.6 to the latest version 1.4.7 Saul Wold
2011-04-16  6:54 ` [PATCH 29/58] preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto, xextproto and libpciaccess Saul Wold
2011-04-16  6:54 ` [PATCH 30/58] distro_tracking_fields.inc: update the info for the following recipes Saul Wold
2011-04-16  6:54 ` [PATCH 31/58] xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0 Saul Wold
2011-04-16  6:54 ` [PATCH 32/58] xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0 Saul Wold
2011-04-16  6:54 ` [PATCH 33/58] evieext: upgrade from 1.1.0 to 1.1.1 Saul Wold
2011-04-16  6:54 ` [PATCH 34/58] xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0 Saul Wold
2011-04-16  6:54 ` [PATCH 35/58] xkbcomp: upgrade from 1.2.0 to 1.2.1 Saul Wold
2011-04-16  6:54 ` [PATCH 36/58] clutter-1.6: fix tarball md5sum and add json-glib to dependencies Saul Wold
2011-04-16  6:54 ` [PATCH 37/58] gnu-config-native: add dependency on perl-native Saul Wold
2011-04-18  4:53   ` Richard Purdie
2011-04-18  5:43     ` Cui, Dexuan
2011-04-18  6:54       ` Richard Purdie
2011-04-18 14:18         ` Cui, Dexuan
2011-05-05 14:18         ` Cui, Dexuan
2011-05-05 22:34           ` Richard Purdie
2011-05-06  8:52             ` Cui, Dexuan
2011-05-06 11:31               ` Richard Purdie
2011-05-06 12:02                 ` Koen Kooi
2011-05-10 14:02                 ` Cui, Dexuan
2011-05-10 14:10                   ` Richard Purdie
2011-05-10 14:20                     ` Cui, Dexuan
2011-05-11  0:50                       ` Saul Wold
2011-05-11  1:00                         ` Cui, Dexuan
2011-05-06 14:27             ` Tom Rini
2011-05-10 14:09               ` Cui, Dexuan
2011-05-10 14:10                 ` Tom Rini
2011-04-16  6:54 ` [PATCH 38/58] libnewt: fix parallel-make issue Saul Wold
2011-04-16  6:54 ` [PATCH 39/58] libdrm: upgrade from 2.4.23 to 2.4.25 Saul Wold
2011-04-16  6:54 ` [PATCH 40/58] mesa: upgrade to 7.10.2 Saul Wold
2011-04-16  6:55 ` [PATCH 41/58] xf86-input-mouse: upgrade from 1.6 to 1.7 Saul Wold
2011-04-16  6:55 ` [PATCH 42/58] pango: upgrade from 1.28.3 to 1.28.4 Saul Wold
2011-04-16  6:55 ` [PATCH 43/58] qemu: Fix the qemu GL application start failure Saul Wold
2011-04-16  6:55 ` [PATCH 44/58] task-poky-lsb.bb:Add locale resoures which is needed by LSB Test Suite Saul Wold
2011-04-16  6:55 ` [PATCH 45/58] gcc: Add "--enable-clocale=gnu" option for LSB Saul Wold
2011-04-16  6:55 ` [PATCH 46/58] poky-lsb: Add "largefile" feature for LSB distro Saul Wold
2011-04-16  6:55 ` [PATCH 47/58] setuptools: Make options for setup.py more flexible Saul Wold
2011-04-16 12:11   ` Koen Kooi
2011-04-16 19:46     ` Koen Kooi
2011-04-16 21:43       ` Saul Wold
2011-04-17 13:26         ` Gary Thomas
2011-04-17 17:02           ` Koen Kooi
2011-04-16  6:55 ` [PATCH 48/58] libexif: upgrade to 0.6.20 Saul Wold
2011-04-16  6:55 ` [PATCH 49/58] libxml2: upgrade to version 2.7.8 Saul Wold
2011-04-16  6:55 ` [PATCH 50/58] openssl: upgrade to version 0.9.8r Saul Wold
2011-04-16  6:55 ` [PATCH 51/58] rsync: upgrade to version 3.0.8 Saul Wold
2011-04-16  6:55 ` [PATCH 52/58] documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly builds Saul Wold
2011-04-16  6:55 ` [PATCH 53/58] documentation/adt-manual/adt-eclipse.xml: Fixed URL with pokylinux.org Saul Wold
2011-04-16  6:55 ` [PATCH 54/58] documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux' with 'yoctoproject' Saul Wold
2011-04-16  6:55 ` [PATCH 55/58] netbase: automatically bring up eth0 Saul Wold
2011-04-16  6:55 ` [PATCH 56/58] netbase: add /etc/network/interfaces file for qemumips & qemuppc Saul Wold
2011-04-16  6:55 ` [PATCH 57/58] slang: Update to 2.2.4 Saul Wold
2011-04-16  6:56 ` [PATCH 58/58] jpeg: add link libjpeg.so.62 for LSB library test Saul Wold
2011-04-18  4:54 ` [PATCH 00/58] Consolidated Updates and Bug Fixes Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.