Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
@ 2012-09-06 22:32 Khem Raj
  2012-09-06 22:32 ` [PATCH 1/6] eglibc-2.16: Add kconfig infrastructure Khem Raj
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

This patchset updates qemu to 1.2 release
Adds kconfig to eglibc, kconfig is of interest for
eglibc upstream which is next step.
Removes nptl and enable-tls configure options from 
x86 machine configurations

The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:

  adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)

are available in the git repository at:

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

Khem Raj (6):
  eglibc-2.16: Add kconfig infrastructure
  eglibc: Enable kconfig for option management
  kconfig-frontends: Create symlinks for conf and mconf
  qemu-git: Move to tip of git past 1.2 release
  qemu: Update from 0.15 to 1.2
  machines/x86: Drop redundant glibc configure knobs

 meta/conf/machine/include/ia32-base.inc            |    5 -
 meta/conf/machine/qemux86-64.conf                  |    3 -
 meta/conf/machine/qemux86.conf                     |    4 -
 .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
 ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
 ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
 meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
 meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
 meta/recipes-core/eglibc/eglibc.inc                |    4 +
 meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
 .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
 .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
 .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
 ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
 .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
 .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
 .../enable-i386-linux-user.patch                   |    0
 .../fallback-to-safe-mmap_min_addr.patch           |    0
 .../fix-configure-checks.patch                     |   18 +-
 .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
 .../larger_default_ram_size.patch                  |    0
 .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
 .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
 .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
 .../qemu-vmware-vga-depth.patch                    |   70 +-
 .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
 .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
 meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
 28 files changed, 1431 insertions(+), 868 deletions(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
 create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
 rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)

-- 
1.7.9.5




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

* [PATCH 1/6] eglibc-2.16: Add kconfig infrastructure
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-06 22:32 ` [PATCH 2/6] eglibc: Enable kconfig for option management Khem Raj
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

This will let eglibc use kernel like option
management through kconfig

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
 ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
 ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
 meta/recipes-core/eglibc/eglibc_2.16.bb            |    5 +-
 4 files changed, 1356 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
 create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch

diff --git a/meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch b/meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
new file mode 100644
index 0000000..6243926
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
@@ -0,0 +1,1007 @@
+Pulled from
+http://www.eglibc.org/archives/patches/msg01042.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+Hi,
+
+This patch adds 'make menuconfig' support to EGLIBC.
+
+
+EGLIBC can re-use the Linux kernel kconfig host tools ('conf' and 'mconf') unmodified, by passing appropriate environment variables and with some pre- and post-processing on the input/output config files.
+
+There are three new make targets supported, which all are defined in the new libc/options-config/Makefile, which is included by the top-level libc/Makefile:
+
+- 'make defconfig'. This passes 'libc/option-groups.defaults' to 'conf' as a default config, and outputs 'option-groups.config' to the top-level build directory, which will be the same as the default config.
+
+- 'make config'. This is the same line-oriented interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory.
+
+- 'make menuconfig'. This is the same menu-based interface as in the Linux kernel. Input and output is 'option-groups.config' in the top-level build directory.
+
+
+Pre-Processing:
+
+
+The Linux kernel kconfig tools expect a prefix of "CONFIG_" on all config option names, but EGLIBC expects a prefix of "OPTION_". The pre-processing script, libc/options-config/config-preproc.pl, simply replaces "CONFIG_ with "OPTION_" in the given config file. The libc/options-config/Makefile passes the script output to a temporary config file, which is then passed to 'conf' or 'mconf'.
+
+Post-Processing (libc/options-config/config-postproc.pl):
+
+
+- Disabled options are output as a comment line of the form "# CONFIG_FOO is not set". This needs to be changed to an explicit "CONFIG_FOO=n" in order to be compatible with 'option-groups.awk' which generates the option-groups.h header.
+
+- "CONFIG_" prefix is changed back to "OPTION_".
+
+
+- The kconfig tools will not output anything for options that depend on a parent option, when the parent option is disabled. This implicit disable must be converted to an explicit "CONFIG_FOO=n" in order to be compatible with the way EGLIBC overrides the default option settings in 'libc/option-groups.defaults' with those in 'option-groups.config'.
+
+
+A new configure option, '--with-kconfig=<PATH>', tells EGLIBC where to find the pre-built 'conf' and 'mconf' host tools from Linux kernel builds.
+
+libc/EGLIBC.cross-building is updated to include instructions for using '--with-kconfig' for the final EGLIBC build, and shows how and when to run 'make *config'.
+
+libc/EGLIBC.option-groups is updated to include new information on the menuconfig support.
+
+Thanks,
+
+attached is the updated patch to address above issues.
+
+Steve
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+Index: libc/EGLIBC.cross-building
+===================================================================
+--- libc.orig/EGLIBC.cross-building	2012-08-21 22:25:49.000000000 -0700
++++ libc/EGLIBC.cross-building	2012-09-05 21:44:09.749577576 -0700
+@@ -243,9 +243,29 @@
+     > $src/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
++    >     --with-kconfig=$obj/linux/scripts/kconfig \
+     >     --build=$build \
+     >     --host=$target \
+     >     --disable-profile --without-gd --without-cvs --enable-add-ons
++
++Note the additional '--with-kconfig' option. This tells EGLIBC where to
++find the host config tools used by the kernel 'make config' and 'make
++menuconfig'.  These tools can be re-used by EGLIBC for its own 'make
++*config' support, which will create 'option-groups.config' for you.
++But first make sure those tools have been built by running some
++dummy 'make *config' calls in the kernel directory:
++
++    $ cd $obj/linux
++    $ PATH=$tools/bin:$PATH make config \
++    >      ARCH=$linux_arch CROSS_COMPILE=$target- \
++    $ PATH=$tools/bin:$PATH make menuconfig \
++    >      ARCH=$linux_arch CROSS_COMPILE=$target- \
++
++Now we can configure and build the full EGLIBC:
++
++    $ cd $obj/eglibc
++    $ PATH=$tools/bin:$PATH make defconfig
++    $ PATH=$tools/bin:$PATH make menuconfig
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install install_root=$sysroot
+ 
+Index: libc/configure.in
+===================================================================
+--- libc.orig/configure.in	2012-09-05 21:40:19.000000000 -0700
++++ libc/configure.in	2012-09-05 21:44:09.769577577 -0700
+@@ -96,6 +96,16 @@
+ 	    [sysheaders=$withval],
+ 	    [sysheaders=''])
+ 
++AC_ARG_WITH([kconfig],
++	    AC_HELP_STRING([--with-kconfig=PATH],
++			   [location of kconfig tools to use (from Linux
++			    kernel builds) to re-use for configuring EGLIBC
++			    option groups]),
++	    [KCONFIG_TOOLS=$withval],
++	    [KCONFIG_TOOLS=''])
++AC_SUBST(KCONFIG_TOOLS)
++
++
+ AC_SUBST(use_default_link)
+ AC_ARG_WITH([default-link],
+ 	    AC_HELP_STRING([--with-default-link],
+Index: libc/config.make.in
+===================================================================
+--- libc.orig/config.make.in	2012-08-21 22:25:55.000000000 -0700
++++ libc/config.make.in	2012-09-05 21:45:16.253579810 -0700
+@@ -48,6 +48,8 @@
+ c++-sysincludes = @CXX_SYSINCLUDES@
+ all-warnings = @all_warnings@
+ 
++kconfig_tools = @KCONFIG_TOOLS@
++
+ have-z-combreloc = @libc_cv_z_combreloc@
+ have-z-execstack = @libc_cv_z_execstack@
+ have-Bgroup = @libc_cv_Bgroup@
+Index: libc/options-config/config-postproc.pl
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/config-postproc.pl	2012-09-05 21:44:09.769577577 -0700
+@@ -0,0 +1,54 @@
++#!/usr/bin/perl
++
++$usage = "usage: $0 <default config file> <config file>\n";
++
++die "$usage" unless @ARGV;
++$defaults = shift @ARGV;
++die "$usage" unless @ARGV;
++die "Could not open $ARGV[0]" unless -T $ARGV[0];
++
++sub yank {
++    @option = grep($_ ne $_[0], @option);
++}
++
++open(DEFAULTS, $defaults) || die "Could not open $defaults\n";
++
++# get the full list of available options using the default config file
++$i = 0;
++while (<DEFAULTS>) {
++    if (/^\s*OPTION_(\w+)\s*=/) {
++	$option[$i++] = $1;
++    }
++}
++
++# now go through the config file, making the necessary changes
++while (<>) {
++    if (/Linux Kernel Configuration/) {
++	# change title
++	s/Linux Kernel/Option Groups/;
++	print;
++    } elsif (/^\s*CONFIG_(\w+)\s*=/) {
++	# this is an explicit option set line, change CONFIG_ to OPTION_
++	# before printing and remove this option from option list
++	$opt = $1;
++	yank($opt);
++	s/CONFIG_/OPTION_/g;
++	print;
++    } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) {
++	# this is a comment line, change CONFIG_ to OPTION_, remove this
++	# option from option list, and convert to explicit OPTION_FOO=n
++	$opt = $1;
++	yank($opt);
++	s/CONFIG_/OPTION_/g;
++	print "OPTION_$opt=n\n";
++    } else {
++	print;
++    }
++}
++
++# any options left in @options, are options that were not mentioned in
++# the config file, and implicitly that means the option must be set =n,
++# so do that here.
++foreach $opt (@option) {
++    print "OPTION_$opt=n\n";
++}
+Index: libc/options-config/config-preproc.pl
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/config-preproc.pl	2012-09-05 21:44:09.769577577 -0700
+@@ -0,0 +1,8 @@
++#!/usr/bin/perl
++
++if (@ARGV) {
++    while (<>) {
++	s/OPTION_/CONFIG_/g;
++	print;
++    }
++}
+Index: libc/options-config/Makefile
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ libc/options-config/Makefile	2012-09-05 21:44:09.769577577 -0700
+@@ -0,0 +1,55 @@
++# ===========================================================================
++# EGLIBC option-groups configuration targets
++# These targets are included from top-level makefile
++
++ifneq ($(kconfig_tools),)
++ifneq (no,$(PERL))
++
++ocdir := options-config
++
++OconfigDefaults     := option-groups.defaults
++OconfigDefaults_tmp := $(common-objpfx).tmp.defconfig
++OconfigDef          := option-groups.def
++Oconfig             := $(common-objpfx)option-groups.config
++Oconfig_tmp         := $(common-objpfx).tmp.config
++
++conf  := $(kconfig_tools)/conf
++mconf := $(kconfig_tools)/mconf
++
++preproc  := $(PERL) $(ocdir)/config-preproc.pl
++postproc := $(PERL) $(ocdir)/config-postproc.pl
++
++PHONY += defconfig config menuconfig
++
++defconfig: $(conf) $(OconfigDefaults) $(OconfigDef)
++	rm -f $(OconfigDefaults_tmp)
++	rm -f $(Oconfig_tmp)
++	$(preproc) $(OconfigDefaults) > $(OconfigDefaults_tmp)
++	KCONFIG_CONFIG=$(Oconfig_tmp) $< --defconfig=$(OconfigDefaults_tmp) \
++				$(OconfigDef)
++	$(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++	rm $(Oconfig_tmp)
++	rm $(OconfigDefaults_tmp)
++
++config: $(conf) $(OconfigDefaults) $(OconfigDef)
++	rm -f $(Oconfig_tmp)
++	$(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp)
++	KCONFIG_CONFIG=$(Oconfig_tmp) $< --oldaskconfig $(OconfigDef)
++	$(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++	rm $(Oconfig_tmp)
++
++menuconfig: $(mconf) $(OconfigDefaults) $(OconfigDef)
++	rm -f $(Oconfig_tmp)
++	$(preproc) $(wildcard $(Oconfig)) > $(Oconfig_tmp)
++	KCONFIG_CONFIG=$(Oconfig_tmp) $< $(OconfigDef)
++	$(postproc) $(OconfigDefaults) $(Oconfig_tmp) > $(Oconfig)
++	rm $(Oconfig_tmp)
++
++# Help text used by make help
++help:
++	@echo  '  defconfig	  - New config with default from default config'
++	@echo  '  config	  - Update current config utilising a line-oriented program'
++	@echo  '  menuconfig	  - Update current config utilising a menu based program'
++
++endif
++endif
+Index: libc/option-groups.defaults
+===================================================================
+--- libc.orig/option-groups.defaults	2012-08-21 22:26:18.000000000 -0700
++++ libc/option-groups.defaults	2012-09-05 21:44:09.769577577 -0700
+@@ -8,41 +8,41 @@
+ # are to be changed.
+ #
+ # By default, all option groups are enabled.
+-OPTION_EGLIBC_ADVANCED_INET6 = y
+-OPTION_EGLIBC_BACKTRACE = y
+-OPTION_EGLIBC_BIG_MACROS = y
+-OPTION_EGLIBC_BSD = y
+-OPTION_EGLIBC_CXX_TESTS = y
+-OPTION_EGLIBC_CATGETS = y
+-OPTION_EGLIBC_CHARSETS = y
+-OPTION_EGLIBC_CRYPT = y
+-OPTION_EGLIBC_CRYPT_UFC = y
+-OPTION_EGLIBC_DB_ALIASES = y
+-OPTION_EGLIBC_ENVZ = y
+-OPTION_EGLIBC_FCVT = y
+-OPTION_EGLIBC_FMTMSG = y
+-OPTION_EGLIBC_FSTAB = y
+-OPTION_EGLIBC_FTRAVERSE = y
+-OPTION_EGLIBC_GETLOGIN = y
+-OPTION_EGLIBC_IDN = y
+-OPTION_EGLIBC_INET = y
+-OPTION_EGLIBC_INET_ANL = y
+-OPTION_EGLIBC_LIBM = y
+-OPTION_EGLIBC_LIBM_BIG = y
+-OPTION_EGLIBC_LOCALES = y
+-OPTION_EGLIBC_LOCALE_CODE = y
+-OPTION_EGLIBC_MEMUSAGE = y
+-OPTION_EGLIBC_NIS = y
+-OPTION_EGLIBC_NSSWITCH = y
+-OPTION_EGLIBC_RCMD = y
+-OPTION_EGLIBC_RTLD_DEBUG = y
+-OPTION_EGLIBC_SPAWN = y
+-OPTION_EGLIBC_STREAMS = y
+-OPTION_EGLIBC_SUNRPC = y
+-OPTION_EGLIBC_UTMP = y
+-OPTION_EGLIBC_UTMPX = y
+-OPTION_EGLIBC_WORDEXP = y
+-OPTION_POSIX_C_LANG_WIDE_CHAR = y
+-OPTION_POSIX_REGEXP = y
+-OPTION_POSIX_REGEXP_GLIBC = y
+-OPTION_POSIX_WIDE_CHAR_DEVICE_IO = y
++OPTION_EGLIBC_ADVANCED_INET6=y
++OPTION_EGLIBC_BACKTRACE=y
++OPTION_EGLIBC_BIG_MACROS=y
++OPTION_EGLIBC_BSD=y
++OPTION_EGLIBC_CXX_TESTS=y
++OPTION_EGLIBC_CATGETS=y
++OPTION_EGLIBC_CHARSETS=y
++OPTION_EGLIBC_CRYPT=y
++OPTION_EGLIBC_CRYPT_UFC=y
++OPTION_EGLIBC_DB_ALIASES=y
++OPTION_EGLIBC_ENVZ=y
++OPTION_EGLIBC_FCVT=y
++OPTION_EGLIBC_FMTMSG=y
++OPTION_EGLIBC_FSTAB=y
++OPTION_EGLIBC_FTRAVERSE=y
++OPTION_EGLIBC_GETLOGIN=y
++OPTION_EGLIBC_IDN=y
++OPTION_EGLIBC_INET=y
++OPTION_EGLIBC_INET_ANL=y
++OPTION_EGLIBC_LIBM=y
++OPTION_EGLIBC_LIBM_BIG=y
++OPTION_EGLIBC_LOCALES=y
++OPTION_EGLIBC_LOCALE_CODE=y
++OPTION_EGLIBC_MEMUSAGE=y
++OPTION_EGLIBC_NIS=y
++OPTION_EGLIBC_NSSWITCH=y
++OPTION_EGLIBC_RCMD=y
++OPTION_EGLIBC_RTLD_DEBUG=y
++OPTION_EGLIBC_SPAWN=y
++OPTION_EGLIBC_STREAMS=y
++OPTION_EGLIBC_SUNRPC=y
++OPTION_EGLIBC_UTMP=y
++OPTION_EGLIBC_UTMPX=y
++OPTION_EGLIBC_WORDEXP=y
++OPTION_POSIX_C_LANG_WIDE_CHAR=y
++OPTION_POSIX_REGEXP=y
++OPTION_POSIX_REGEXP_GLIBC=y
++OPTION_POSIX_WIDE_CHAR_DEVICE_IO=y
+Index: libc/option-groups.def
+===================================================================
+--- libc.orig/option-groups.def	2012-08-21 22:25:45.000000000 -0700
++++ libc/option-groups.def	2012-09-05 21:44:09.773577578 -0700
+@@ -4,19 +4,19 @@
+ #
+ # An entry of the form:
+ #
+-#   config OPTION_GROUP_NAME
++#   config GROUP_NAME
+ #       bool "one-line explanation of what this option group controls"
+ #       help
+ #           Multi-line help explaining the option group's meaning in
+ #           some detail, terminated by indentation level.
+ #
+-# defines an option group whose variable is OPTION_GROUP_NAME, with
++# defines an option group whose variable is GROUP_NAME, with
+ # meaningful values 'y' (enabled) and 'n' (disabled).  The
+ # documentation is formatted to be consumed by some sort of
+ # interactive configuration interface, but EGLIBC doesn't have such an
+ # interface yet.
+ #
+-# An option may have a 'depends' line, indicating which other options
++# An option may have a 'depends on' line, indicating which other options
+ # must also be enabled if this option is.  At present, EGLIBC doesn't
+ # check that these dependencies are satisfied.
+ # 
+@@ -41,9 +41,9 @@
+ # although this simply reestablishes the value already set by
+ # 'option-groups.defaults'.
+ 
+-config OPTION_EGLIBC_ADVANCED_INET6
++config EGLIBC_ADVANCED_INET6
+    bool "IPv6 Advanced Sockets API support (RFC3542)"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+        This option group includes the functions specified by RFC 3542,
+        "Advanced Sockets Application Program Interface (API) for
+@@ -71,7 +71,7 @@
+          inet6_rth_segments
+          inet6_rth_space
+ 
+-config OPTION_EGLIBC_BACKTRACE
++config EGLIBC_BACKTRACE
+    bool "Functions for producing backtraces"
+    help
+        This option group includes functions for producing a list of
+@@ -85,7 +85,7 @@
+          backtrace_symbols
+          backtrace_symbols_fd
+ 
+-config OPTION_EGLIBC_BIG_MACROS
++config EGLIBC_BIG_MACROS
+    bool "Use extensive inline code"
+    help
+        This option group specifies whether certain pieces of code
+@@ -93,7 +93,7 @@
+        group is not selected, function calls will be used instead,
+        hence reducing the library footprint.
+ 
+-config OPTION_EGLIBC_BSD
++config EGLIBC_BSD
+    bool "BSD-specific functions, and their compatibility stubs"
+    help
+        This option group includes functions specific to BSD kernels.
+@@ -109,10 +109,9 @@
+          revoke
+          setlogin
+ 
+-config OPTION_EGLIBC_CXX_TESTS
++config EGLIBC_CXX_TESTS
+    bool "Tests that link against the standard C++ library."
+-   depends OPTION_POSIX_WIDE_CHAR_DEVICE_IO
+-   depends OPTION_EGLIBC_LIBM
++   depends on POSIX_WIDE_CHAR_DEVICE_IO && EGLIBC_LIBM
+    help
+        This option group does not include any C library functions;
+        instead, it controls which EGLIBC tests an ordinary 'make
+@@ -121,23 +120,22 @@
+        run.
+ 
+        The standard C++ library depends on the math library 'libm' and
+-       the wide character I/O functions included in EGLIBC.  If those
+-       option groups are disabled, this test must also be disabled.
++       the wide character I/O functions included in EGLIBC.  So those
++       option groups must be enabled if this test is enabled.
+ 
+-config OPTION_EGLIBC_CATGETS
++config EGLIBC_CATGETS
+    bool "Functions for accessing message catalogs"
+-   depends OPTION_EGLIBC_LOCALE_CODE
++   depends on EGLIBC_LOCALE_CODE
+    help
+        This option group includes functions for accessing message
+        catalogs: catopen, catclose, and catgets.
+ 
+-       This option group depends on the OPTION_EGLIBC_LOCALE_CODE
+-       option group; if you disable that, you must also disable this.
++       This option group depends on the EGLIBC_LOCALE_CODE
++       option group.
+ 
+-config OPTION_EGLIBC_CHARSETS
++config EGLIBC_CHARSETS
+    bool "iconv/gconv character set conversion libraries"
+    help
+-
+        This option group includes support for character sets other
+        than ASCII (ANSI_X3.4-1968) and Unicode and ISO-10646 in their
+        various encodings.  This affects both the character sets
+@@ -198,16 +196,16 @@
+           WCHAR_T           - EGLIBC's internal form (target-endian,
+                               32-bit ISO 10646)
+ 
+-config OPTION_EGLIBC_CRYPT
++config EGLIBC_CRYPT
+    bool "Encryption library"
+    help
+        This option group includes the `libcrypt' library which
+        provides functions for one-way encryption.  Supported
+        encryption algorithms include MD5, SHA-256, SHA-512 and DES.
+ 
+-config OPTION_EGLIBC_CRYPT_UFC
++config EGLIBC_CRYPT_UFC
+    bool "Ultra fast `crypt' implementation"
+-   depends OPTION_EGLIBC_CRYPT
++   depends on EGLIBC_CRYPT
+    help
+        This option group provides ultra fast DES-based implementation of
+        the `crypt' function.  When this option group is disabled,
+@@ -216,7 +214,7 @@
+        errno to ENOSYS if /salt/ passed does not correspond to either MD5,
+        SHA-256 or SHA-512 algorithm.
+ 
+-config OPTION_EGLIBC_DB_ALIASES
++config EGLIBC_DB_ALIASES
+    bool "Functions for accessing the mail aliases database"
+    help
+        This option group includues functions for looking up mail
+@@ -233,7 +231,7 @@
+        When this option group is disabled, the NSS service libraries
+        also lack support for querying their mail alias tables.
+ 
+-config OPTION_EGLIBC_ENVZ
++config EGLIBC_ENVZ
+    bool "Functions for handling envz-style environment vectors."
+    help
+        This option group contains functions for creating and operating
+@@ -248,7 +246,7 @@
+         envz_entry      envz_remove
+         envz_get        envz_strip 
+ 
+-config OPTION_EGLIBC_FCVT
++config EGLIBC_FCVT
+    bool "Functions for converting floating-point numbers to strings"
+    help
+        This option group includes functions for converting
+@@ -262,14 +260,14 @@
+ 	 fcvt_r		qfcvt_r
+          gcvt		qgcvt
+ 
+-config OPTION_EGLIBC_FMTMSG
++config EGLIBC_FMTMSG
+    bool "Functions for formatting messages"
+    help
+        This option group includes the following functions:
+ 
+          addseverity    fmtmsg
+ 
+-config OPTION_EGLIBC_FSTAB
++config EGLIBC_FSTAB
+    bool "Access functions for 'fstab'"
+    help
+        This option group includes functions for reading the mount
+@@ -283,7 +281,7 @@
+          getfsent       setfsent
+          getfsfile
+ 
+-config OPTION_EGLIBC_FTRAVERSE
++config EGLIBC_FTRAVERSE
+    bool "Functions for traversing file hierarchies"
+    help
+        This option group includes functions for traversing file
+@@ -297,9 +295,9 @@
+ 	 fts_set	nftw64
+          fts_close
+ 
+-config OPTION_EGLIBC_GETLOGIN
++config EGLIBC_GETLOGIN
+    bool "The getlogin function"
+-   depends OPTION_EGLIBC_UTMP
++   depends on EGLIBC_UTMP
+    help
+        This function group includes the 'getlogin' and 'getlogin_r'
+        functions, which return the user name associated by the login
+@@ -309,17 +307,17 @@
+        fall back on 'getlogin' to find the user's login name for tilde
+        expansion when the 'HOME' environment variable is not set.
+ 
+-config OPTION_EGLIBC_IDN
++config EGLIBC_IDN
+    bool "International domain names support"
+    help
+        This option group includes the `libcidn' library which
+        provides support for international domain names.
+ 
+-config OPTION_EGLIBC_INET
++config EGLIBC_INET
+    bool "Networking support"
+    help
+        This option group includes networking-specific functions and
+-       data.  With OPTION_EGLIBC_INET disabled, the EGLIBC
++       data.  With EGLIBC_INET disabled, the EGLIBC
+        installation and API changes as follows:
+ 
+        - The following libraries are not installed:
+@@ -439,14 +437,14 @@
+        use Unix-domain sockets to communicate with the syslog daemon;
+        syslog is valuable in non-networked contexts.
+ 
+-config OPTION_EGLIBC_INET_ANL
++config EGLIBC_INET_ANL
+    bool "Asynchronous name lookup"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+        This option group includes the `libanl' library which
+        provides support for asynchronous name lookup.
+ 
+-config OPTION_EGLIBC_LIBM
++config EGLIBC_LIBM
+    bool "libm (math library)"
+    help
+        This option group includes the 'libm' library, containing
+@@ -464,8 +462,9 @@
+        group, you will not be able to build 'libstdc++' against the
+        resulting EGLIBC installation.
+ 
+-config OPTION_EGLIBC_LIBM_BIG
++config EGLIBC_LIBM_BIG
+    bool "Math library size"
++   depends on EGLIBC_LIBM
+    help
+        This option group enables default configuration of the math library.
+        Not selecting this option group removes most of the extended and
+@@ -477,7 +476,7 @@
+        This option group is useful for systems that do not rely on precise
+        floating point math.
+ 
+-config OPTION_EGLIBC_LOCALES
++config EGLIBC_LOCALES
+    bool "Locale definitions"
+    help
+        This option group includes all locale definitions other than
+@@ -485,17 +484,17 @@
+        only the "C" locale is supported.
+ 
+ 
+-config OPTION_EGLIBC_LOCALE_CODE
++config EGLIBC_LOCALE_CODE
+    bool "Locale functions"
+-   depends OPTION_POSIX_C_LANG_WIDE_CHAR
++   depends on POSIX_C_LANG_WIDE_CHAR
+    help
+        This option group includes locale support functions, programs,
+-       and libraries.  With OPTION_EGLIBC_LOCALE_FUNCTIONS disabled,
++       and libraries.  With EGLIBC_LOCALE_CODE disabled,
+        EGLIBC supports only the 'C' locale (also known as 'POSIX'),
+        and ignores the settings of the 'LANG' and 'LC_*' environment
+        variables.
+ 
+-       With OPTION_EGLIBC_LOCALE_CODE disabled, the following
++       With EGLIBC_LOCALE_CODE disabled, the following
+        functions are omitted from libc:
+ 
+          duplocale   localeconv  nl_langinfo    rpmatch  strfmon_l
+@@ -504,46 +503,43 @@
+        Furthermore, only the LC_CTYPE and LC_TIME categories of the
+        standard "C" locale are available.
+ 
+-       The OPTION_EGLIBC_CATGETS option group depends on this option
+-       group; if you disable OPTION_EGLIBC_LOCALE_CODE, you must also
+-       disable OPTION_EGLIBC_CATGETS.
++       The EGLIBC_CATGETS option group depends on this option group.
++
+ 
+-config OPTION_EGLIBC_MEMUSAGE
++config EGLIBC_MEMUSAGE
+    bool "Memory profiling library"
+    help
+        This option group includes the `libmemusage' library and
+        the `memusage' and `memusagestat' utilities.
+        These components provide memory profiling functions.
+ 
+-     OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
++       EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+ 
+        Libmemusage library buffers the profiling data in memory
+        before writing it out to disk.  By default, the library
+        allocates 1.5M buffer, which can be substantial for some
+-       systems.  OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option
++       systems.  EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE option
+        allows to change the default buffer size.  It specifies
+        the number of entries the buffer should have.
+        On most architectures one buffer entry amounts to 48 bytes,
+        so setting this option to the value of 512 will reduce the size of
+        the memory buffer to 24K.
+ 
+-config OPTION_EGLIBC_NIS
++config EGLIBC_NIS
+    bool "Support for NIS, NIS+, and the special 'compat' services."
+-   depends OPTION_EGLIBC_INET
+-   depends OPTION_EGLIBC_SUNRPC
++   depends on EGLIBC_INET && EGLIBC_SUNRPC
+    help
+        This option group includes the NIS, NIS+, and 'compat' Name
+        Service Switch service libraries.  When it is disabled, those
+        services libraries are not installed; you should remove any
+        references to them from your 'nsswitch.conf' file.
+ 
+-       This option group depends on the OPTION_EGLIBC_INET option
++       This option group depends on the EGLIBC_INET option
+        group; you must enable that to enable this option group.
+ 
+-config OPTION_EGLIBC_NSSWITCH
++config EGLIBC_NSSWITCH
+    bool "Name service switch (nsswitch) support"
+    help
+-
+        This option group includes support for the 'nsswitch' facility.
+        With this option group enabled, all EGLIBC functions for
+        accessing various system databases (passwords and groups;
+@@ -557,12 +553,12 @@
+        'option-groups.config' file must set the following two
+        variables:
+ 
+-       OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
++       EGLIBC_NSSWITCH_FIXED_CONFIG
+ 
+           Set this to the name of a file whose contents observe the
+           same syntax as an ordinary '/etc/nsswitch.conf' file.  The
+           EGLIBC build process parses this file just as EGLIBC would
+-          at run time if OPTION_EGLIBC_NSSWITCH were enabled, and
++          at run time if EGLIBC_NSSWITCH were enabled, and
+           produces a C library that uses the nsswitch service
+           libraries to search for database entries as this file
+           specifies, instead of consulting '/etc/nsswitch.conf' at run
+@@ -580,7 +576,7 @@
+           you will probably want to delete references to databases not
+           needed on your system.
+ 
+-       OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS
++       EGLIBC_NSSWITCH_FIXED_FUNCTIONS
+ 
+           The EGLIBC build process uses this file to decide which
+           functions to make available from which service libraries.
+@@ -598,28 +594,28 @@
+           Be sure to mention each function in each service you wish to
+           use.  If you do not mention a service's function here, the
+           EGLIBC database access functions will not find it, even if
+-          it is listed in the OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG
++          it is listed in the EGLIBC_NSSWITCH_FIXED_CONFIG
+           file.
+ 
+-       In this arrangement, EGLIBC will not use the 'dlopen' and
+-       'dlsym' functions to find database access functions.  Instead,
+-       libc hard-codes references to the service libraries' database
+-       access functions.  You must explicitly link your program
+-       against the name service libraries (those whose names start
+-       with 'libnss_', in the sysroot's '/lib' directory) whose
+-       functions you intend to use.  This arrangement helps
+-       system-wide static analysis tools decide which functions a
+-       system actually uses.
+-
+-       Note that some nsswitch service libraries require other option
+-       groups to be enabled; for example, the OPTION_EGLIBC_INET
+-       option group must be enabled to use the 'libnss_dns.so.2'
+-       service library, which uses the Domain Name System network
+-       protocol to answer queries.
++          In this arrangement, EGLIBC will not use the 'dlopen' and
++          'dlsym' functions to find database access functions.  Instead,
++          libc hard-codes references to the service libraries' database
++          access functions.  You must explicitly link your program
++          against the name service libraries (those whose names start
++          with 'libnss_', in the sysroot's '/lib' directory) whose
++          functions you intend to use.  This arrangement helps
++          system-wide static analysis tools decide which functions a
++          system actually uses.
++
++          Note that some nsswitch service libraries require other option
++          groups to be enabled; for example, the EGLIBC_INET
++          option group must be enabled to use the 'libnss_dns.so.2'
++          service library, which uses the Domain Name System network
++          protocol to answer queries.
+ 
+-config OPTION_EGLIBC_RCMD
++config EGLIBC_RCMD
+    bool "Support for 'rcmd' and related library functions"
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+       This option group includes functions for running commands on
+       remote machines via the 'rsh' protocol, and doing authentication
+@@ -635,7 +631,7 @@
+         rresvport       ruserpass
+         rresvport_af
+         
+-config OPTION_EGLIBC_RTLD_DEBUG
++config EGLIBC_RTLD_DEBUG
+    bool "Runtime linker debug print outs"
+    help
+       This option group enables debug output of the runtime linker
+@@ -646,7 +642,7 @@
+       the `ldd' utility which may also be used by the prelinker.
+       In particular, the `--unused' ldd option will not work correctly.
+ 
+-config OPTION_EGLIBC_SPAWN
++config EGLIBC_SPAWN
+    bool "Support for POSIX posix_spawn functions"
+    help
+       This option group includes the POSIX functions for executing
+@@ -682,7 +678,7 @@
+       disabled, those programs will only operate on uncompressed
+       charmap files.
+ 
+-config OPTION_EGLIBC_STREAMS
++config EGLIBC_STREAMS
+    bool "Support for accessing STREAMS."
+    help
+       This option group includes functions for reading and writing
+@@ -698,14 +694,14 @@
+         isastream       fdetach
+         putmsg
+ 
+-config OPTION_EGLIBC_SUNRPC
++config EGLIBC_SUNRPC
+    bool "Support for the Sun 'RPC' protocol."
+-   depends OPTION_EGLIBC_INET
++   depends on EGLIBC_INET
+    help
+       This option group includes support for the Sun RPC protocols,
+       including the 'rpcgen' and 'rpcinfo' programs.
+ 
+-config OPTION_EGLIBC_UTMP
++config EGLIBC_UTMP
+     bool "Older access functions for 'utmp' login records"
+     help
+        This option group includes the older 'utent' family of
+@@ -732,9 +728,9 @@
+ 
+          libutil.so (and libutil.a)
+ 
+-config OPTION_EGLIBC_UTMPX
++config EGLIBC_UTMPX
+     bool "POSIX access functions for 'utmp' login records"
+-    depends OPTION_EGLIBC_UTMP    
++    depends on EGLIBC_UTMP
+     help
+        This option group includes the POSIX functions for reading and
+        writing user login records in the 'utmp' file (usually
+@@ -755,21 +751,21 @@
+          updwtmpx
+          utmpxname
+ 
+-config OPTION_EGLIBC_WORDEXP
++config EGLIBC_WORDEXP
+     bool "Shell-style word expansion"
+     help
+         This option group includes the 'wordexp' function for
+         performing word expansion in the manner of the shell, and the
+         accompanying 'wordfree' function.
+ 
+-config OPTION_POSIX_C_LANG_WIDE_CHAR
++config POSIX_C_LANG_WIDE_CHAR
+     bool "ISO C library wide character functions, excluding I/O"
+     help
+         This option group includes the functions defined by the ISO C
+         standard for working with wide and multibyte characters in
+         memory.  Functions for reading and writing wide and multibyte
+         characters from and to files call in the
+-        OPTION_POSIX_WIDE_CHAR_DEVICE_IO option group.
++        POSIX_WIDE_CHAR_DEVICE_IO option group.
+ 
+         This option group includes the following functions:
+ 
+@@ -791,14 +787,14 @@
+           mbrlen        wcscoll       wcstol
+           mbrtowc       wcscpy        wcstold
+ 
+-config OPTION_POSIX_REGEXP
++config POSIX_REGEXP
+     bool "Regular expressions"
+     help
+         This option group includes the POSIX regular expression
+         functions, and the associated non-POSIX extensions and
+         compatibility functions.
+ 
+-        With OPTION_POSIX_REGEXP disabled, the following functions are
++        With POSIX_REGEXP disabled, the following functions are
+         omitted from libc:
+ 
+           re_comp                 re_max_failures         regcomp
+@@ -812,9 +808,9 @@
+         <regexp.h> header file, 'compile', 'step', and 'advance', is
+         omitted.
+ 
+-config OPTION_POSIX_REGEXP_GLIBC
++config POSIX_REGEXP_GLIBC
+     bool "Regular expressions from GLIBC"
+-    depends OPTION_POSIX_REGEXP
++    depends on POSIX_REGEXP
+     help
+ 	This option group specifies which regular expression
+         library to use.  The choice is between regex
+@@ -823,9 +819,9 @@
+         optimized for speed; regex from libiberty is more than twice
+         as small while still is enough for most practical purposes.
+ 
+-config OPTION_POSIX_WIDE_CHAR_DEVICE_IO
++config POSIX_WIDE_CHAR_DEVICE_IO
+     bool "Input and output functions for wide characters"
+-    depends OPTION_POSIX_C_LANG_WIDE_CHAR
++    depends on POSIX_C_LANG_WIDE_CHAR
+     help
+         This option group includes functions for reading and writing
+         wide characters to and from <stdio.h> streams.
+Index: libc/Makefile
+===================================================================
+--- libc.orig/Makefile	2012-08-21 22:25:54.000000000 -0700
++++ libc/Makefile	2012-09-05 21:44:09.773577578 -0700
+@@ -24,6 +24,7 @@
+ 
+ include Makeconfig
+ 
++include options-config/Makefile
+ 
+ # This is the default target; it makes everything except the tests.
+ .PHONY: all
+Index: libc/configure
+===================================================================
+--- libc.orig/configure	2012-09-05 21:40:19.000000000 -0700
++++ libc/configure	2012-09-05 21:44:09.777577578 -0700
+@@ -628,6 +628,7 @@
+ libc_cv_have_bash2
+ BASH_SHELL
+ libc_cv_gcc_static_libgcc
++KCONFIG_TOOLS
+ CXX_SYSINCLUDES
+ SYSINCLUDES
+ AUTOCONF
+@@ -735,6 +736,7 @@
+ with_binutils
+ with_selinux
+ with_headers
++with_kconfig
+ with_default_link
+ enable_sanity_checks
+ enable_shared
+@@ -1425,6 +1427,9 @@
+   --with-selinux          if building with SELinux support
+   --with-headers=PATH     location of system headers to use (for example
+                           /usr/src/linux/include) [default=compiler default]
++  --with-kconfig=PATH     location of kconfig tools to use (from Linux kernel
++                          builds) to re-use for configuring EGLIBC option
++                          groups
+   --with-default-link     do not use explicit linker scripts
+   --with-pkgversion=PKG   Use PKG in the version string in place of "EGLIBC"
+   --with-bugurl=URL       Direct users to URL to report a bug
+@@ -3485,6 +3490,14 @@
+ 
+ 
+ 
++# Check whether --with-kconfig was given.
++if test "${with_kconfig+set}" = set; then
++  withval=$with_kconfig; KCONFIG_TOOLS=$withval
++else
++  KCONFIG_TOOLS=''
++fi
++
++
+ 
+ # Check whether --with-default-link was given.
+ if test "${with_default_link+set}" = set; then :
+Index: libc/EGLIBC.option-groups
+===================================================================
+--- libc.orig/EGLIBC.option-groups	2012-08-21 22:26:20.000000000 -0700
++++ libc/EGLIBC.option-groups	2012-09-05 21:44:09.777577578 -0700
+@@ -56,33 +56,9 @@
+ 
+ The Option Groups
+ 
+-EGLIBC currently implements the following option groups, also
+-documented in the file 'option-groups.def':
+-
+-OPTION_EGLIBC_CATGETS
+-       This option group includes functions for accessing message
+-       catalogs: catopen, catclose, and catgets.
+-
+-OPTION_EGLIBC_LOCALES
+-       This option group includes all locale definitions other than
+-       those for the "C" locale.  If this option group is omitted, then
+-       only the "C" locale is supported.
+-
+-OPTION_EGLIBC_LIBM
+-       This option group includes the 'libm' library, containing
+-       mathematical functions.  If this option group is omitted, then
+-       an EGLIBC installation does not include shared or unshared versions
+-       of the math library.
+-
+-       Note that this does not remove all floating-point related
+-       functionality from EGLIBC; for example, 'printf' and 'scanf'
+-       can still print and read floating-point values with this option
+-       group disabled.
+-
+-       Note that the ISO Standard C++ library 'libstdc++' depends on
+-       EGLIBC's math library 'libm'.  If you disable this option
+-       group, you will not be able to build 'libstdc++' against the
+-       resulting EGLIBC installation.
++To see the current full list of implemented option groups, refer to the
++file 'option-groups.def' at the top of the source tree, or run
++'make menuconfig' from the top-level build directory.
+ 
+ The POSIX.1-2001 specification includes a suggested partition of all
+ the functions in the POSIX C API into option groups: math functions
+@@ -110,6 +86,18 @@
+    OPTION_EGLIBC_LOCALES = n
+    OPTION_EGLIBC_LIBM = y
+ 
++Like the Linux kernel, EGLIBC supports a similar set of '*config' make
++targets to make it easier to create 'option-groups.config', with all
++dependencies between option groups automatically satisfied.  Run
++'make help' to see the list of supported make config targets.  For
++example, 'make menuconfig' will update the current config utilising a
++menu based program.
++
++The option group names and their type (boolean, int, hex, string), help
++description, and dependencies with other option groups, are described by
++'option-groups.def' at the top of the source tree, analogous to the
++'Kconfig' files in the Linux kernel.
++
+ In general, each option group variable controls whether a given set of
+ object files in EGLIBC is compiled and included in the final
+ libraries, or omitted from the build.
+@@ -132,22 +120,3 @@
+ 
+ We have used the system to subset some portions of EGLIBC's
+ functionality.  It needs to be extended to cover more of the library.
+-
+-At the moment, EGLIBC performs no sanity checks on the contents of
+-'option-groups.config'; if an option group's name is mistyped, the
+-option group is silently included in the build.  EGLIBC should check
+-that all variables set in 'option-groups.config' are proper option
+-group names, and that their values are appropriate.
+-
+-Some portions of EGLIBC depend on others; for example, the Sun Remote
+-Procedure Call functions in 'sunrpc' depend on the networking
+-functions in 'inet'.  The sanity checking described above should check
+-that the selection configuration satisfies dependencies within EGLIBC,
+-and produce a legible error message if it does not.  At the moment,
+-inconsistent configurations produce link errors late in the build
+-process.
+-
+-The Linux kernel's configuration system provides interactive
+-interfaces for creating and modifying configuration files (which also
+-perform the sanity checking and dependency tracking described above).
+-EGLIBC should provide similar interfaces.
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch b/meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
new file mode 100644
index 0000000..7caba48
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
@@ -0,0 +1,169 @@
+pulled from
+
+http://www.eglibc.org/archives/patches/msg01043.html
+
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+
+This patch builds on the menuconfig patch for EGLIBC.
+
+
+There are a few options that have non-boolean types, that would benefit from the new 'make *config' support:
+
+EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE (int)
+EGLIBC_NSSWITCH_FIXED_CONFIG (string)
+EGLIBC_NSSWITCH_FIXED_FUNCTIONS (string)
+
+
+The patch converts these to real options in libc/option-groups.def. Also, libc/scripts/option-groups.awk is modified to output a '#define' line for int, hex, or string options encountered in the config file.
+
+In the post-processing script config-postproc.pl, a small change is needed: for any boolean option FOO that is implicitly disabled in the kconfig output, make sure that option is indeed a boolean before printing the explicit OPTION_FOO=n.
+
+Finally, libc/malloc/Makefile passes __OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE as a CPPFLAGS, which is not necessary anymore because this macro will now be present in the generated header.
+
+attached is the updated patch to address above issues.
+
+Steve
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+Index: libc/malloc/Makefile
+===================================================================
+--- libc.orig/malloc/Makefile	2012-01-04 22:06:18.000000000 -0800
++++ libc/malloc/Makefile	2012-05-09 19:35:28.598682105 -0700
+@@ -48,10 +48,6 @@
+ ifeq ($(OPTION_EGLIBC_MEMUSAGE),y)
+ extra-libs = libmemusage
+ extra-libs-others = $(extra-libs)
+-
+-ifdef OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+-CPPFLAGS-memusage += -D__OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE=$(OPTION_EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE)
+-endif
+ endif
+ 
+ libmemusage-routines = memusage
+Index: libc/option-groups.def
+===================================================================
+--- libc.orig/option-groups.def	2012-05-09 19:33:48.398677256 -0700
++++ libc/option-groups.def	2012-05-09 19:35:28.610682107 -0700
+@@ -513,8 +513,11 @@
+        the `memusage' and `memusagestat' utilities.
+        These components provide memory profiling functions.
+ 
+-       EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
+-
++config EGLIBC_MEMUSAGE_DEFAULT_BUFFER_SIZE
++   int "Memory profiling library buffer size"
++   depends on EGLIBC_MEMUSAGE
++   default "32768"
++   help
+        Libmemusage library buffers the profiling data in memory
+        before writing it out to disk.  By default, the library
+        allocates 1.5M buffer, which can be substantial for some
+@@ -553,8 +556,11 @@
+        'option-groups.config' file must set the following two
+        variables:
+ 
+-       EGLIBC_NSSWITCH_FIXED_CONFIG
+-
++config EGLIBC_NSSWITCH_FIXED_CONFIG
++   string "Nsswitch fixed config filename"
++   depends on !EGLIBC_NSSWITCH
++   default ""
++   help
+           Set this to the name of a file whose contents observe the
+           same syntax as an ordinary '/etc/nsswitch.conf' file.  The
+           EGLIBC build process parses this file just as EGLIBC would
+@@ -576,8 +582,11 @@
+           you will probably want to delete references to databases not
+           needed on your system.
+ 
+-       EGLIBC_NSSWITCH_FIXED_FUNCTIONS
+-
++config EGLIBC_NSSWITCH_FIXED_FUNCTIONS
++   string "Nsswitch fixed functions filename"
++   depends on !EGLIBC_NSSWITCH
++   default ""
++   help
+           The EGLIBC build process uses this file to decide which
+           functions to make available from which service libraries.
+           The file 'nss/fixed-nsswitch.functions' serves as a sample
+Index: libc/options-config/config-postproc.pl
+===================================================================
+--- libc.orig/options-config/config-postproc.pl	2012-05-09 19:33:36.530676681 -0700
++++ libc/options-config/config-postproc.pl	2012-05-09 19:35:28.610682107 -0700
+@@ -8,7 +8,7 @@
+ die "Could not open $ARGV[0]" unless -T $ARGV[0];
+ 
+ sub yank {
+-    @option = grep($_ ne $_[0], @option);
++    @option = grep(!($_ =~ /$_[0]\s*=/), @option);
+ }
+ 
+ open(DEFAULTS, $defaults) || die "Could not open $defaults\n";
+@@ -16,7 +16,7 @@
+ # get the full list of available options using the default config file
+ $i = 0;
+ while (<DEFAULTS>) {
+-    if (/^\s*OPTION_(\w+)\s*=/) {
++    if (/^\s*OPTION_(\w+\s*=.*$)/) {
+ 	$option[$i++] = $1;
+     }
+ }
+@@ -35,8 +35,9 @@
+ 	s/CONFIG_/OPTION_/g;
+ 	print;
+     } elsif (/^\s*#\s+CONFIG_(\w+) is not set/) {
+-	# this is a comment line, change CONFIG_ to OPTION_, remove this
+-	# option from option list, and convert to explicit OPTION_FOO=n
++	# this is a comment line for an unset boolean option, change CONFIG_
++	# to OPTION_, remove this option from option list, and convert to
++	# explicit OPTION_FOO=n
+ 	$opt = $1;
+ 	yank($opt);
+ 	s/CONFIG_/OPTION_/g;
+@@ -46,9 +47,12 @@
+     }
+ }
+ 
+-# any options left in @options, are options that were not mentioned in
++# any boolean options left in @options, are options that were not mentioned in
+ # the config file, and implicitly that means the option must be set =n,
+ # so do that here.
+ foreach $opt (@option) {
+-    print "OPTION_$opt=n\n";
++    if ($opt =~ /=\s*[yn]/) {
++	$opt =~ s/=\s*[yn]/=n/;
++	print "OPTION_$opt\n";
++    }
+ }
+Index: libc/scripts/option-groups.awk
+===================================================================
+--- libc.orig/scripts/option-groups.awk	2012-01-04 22:06:00.000000000 -0800
++++ libc/scripts/option-groups.awk	2012-05-09 19:35:28.610682107 -0700
+@@ -46,9 +46,15 @@
+                 print "#define __" var " 1"
+             else if (vars[var] == "n")
+                 print "/* #undef __" var " */"
+-            # Ignore variables that don't have boolean values.
+-            # Ideally, this would be driven by the types given in
+-            # option-groups.def.
++	    else if (vars[var] ~ /^[0-9]+/ ||
++		     vars[var] ~ /^0x[0-9aAbBcCdDeEfF]+/ ||
++		     vars[var] ~ /^\"/)
++		 print "#define __" var " " vars[var]
++	    else
++		print "/* #undef __" var " */"
++            # Ignore variables that don't have boolean, int, hex, or
++	    # string values. Ideally, this would be driven by the types
++	    # given in option-groups.def.
+         }
+     }
+ 
diff --git a/meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch b/meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
new file mode 100644
index 0000000..d137f5b
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
@@ -0,0 +1,176 @@
+Pulled from
+
+http://www.eglibc.org/archives/patches/msg01035.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem
+
+As part of the menuconfig development, I encountered some outdated information in the cross-build instructions, libc/EGLIBC.cross-building. This patch updates the file with new (and tested) instructions. It is unrelated to the menuconfig support, but applies after.
+
+My testing was done with an ARM target, and an x86_64 Linux host, so I converted the instructions to use those host/target types from the original i686/powerpc. Hope that's ok.
+
+
+Thanks,
+
+--
+Steve Longerbeam | Senior Embedded Engineer, ESD Services
+Mentor Embedded(tm) | 46871 Bayside Parkway, Fremont, CA 94538
+P 510.354.5838 | M 408.410.2735
+Nucleus(r) | Linux(r) | Android(tm) | Services | UI | Multi-OS
+
+
+ EGLIBC.cross-building |   59 +++++++++++++++++++++++++++++---------------------
+ 1 file changed, 35 insertions(+), 24 deletions(-)
+
+Index: libc/EGLIBC.cross-building
+===================================================================
+--- libc.orig/EGLIBC.cross-building	2012-05-09 19:33:36.522676681 -0700
++++ libc/EGLIBC.cross-building	2012-05-09 19:36:13.918684298 -0700
+@@ -47,31 +47,34 @@
+ EGLIBC requires recent versions of the GNU binutils, GCC, and the
+ Linux kernel.  The web page <http://www.eglibc.org/prerequisites>
+ documents the current requirements, and lists patches needed for
+-certain target architectures.  As of this writing, EGLIBC required
+-binutils 2.17, GCC 4.1, and Linux 2.6.19.1.
++certain target architectures.  As of this writing, these build
++instructions have been tested with binutils 2.22.51, GCC 4.6.2,
++and Linux 3.1.
+ 
+ First, let's set some variables, to simplify later commands.  We'll
+-build EGLIBC and GCC for a PowerPC target, known to the Linux kernel
+-as 'powerpc', and we'll do the build on an Intel Linux box:
++build EGLIBC and GCC for an ARM target, known to the Linux kernel
++as 'arm', and we'll do the build on an Intel x86_64 Linux box:
+ 
+-    $ build=i686-pc-linux-gnu
++    $ build=x86_64-pc-linux-gnu
+     $ host=$build
+-    $ target=powerpc-none-linux-gnu
+-    $ linux_arch=powerpc
++    $ target=arm-none-linux-gnueabi
++    $ linux_arch=arm
+ 
+ We're using the aforementioned versions of Binutils, GCC, and Linux:
+ 
+-    $ binutilsv=binutils-2.17
+-    $ gccv=gcc-4.1.1
+-    $ linuxv=linux-2.6.20
++    $ binutilsv=binutils-2.22.51
++    $ gccv=gcc-4.6.2
++    $ linuxv=linux-3.1
+ 
+ We're carrying out the entire process under '~/cross-build', which
+-contains unpacked source trees:
++contains unpacked source trees for binutils, gcc, and linux kernel,
++along with EGLIBC svn trunk (which can be checked-out with
++'svn co http://www.eglibc.org/svn/trunk eglibc'):
+ 
+-    $ top=$HOME/cross-build/ppc
++    $ top=$HOME/cross-build/$target
+     $ src=$HOME/cross-build/src
+     $ ls $src
+-    binutils-2.17  gcc-4.1.1  libc  linux-2.6.20
++    binutils-2.22.51  eglibc  gcc-4.6.2  linux-3.1
+ 
+ We're going to place our build directories in a subdirectory 'obj',
+ we'll install the cross-development toolchain in 'tools', and we'll
+@@ -99,7 +102,7 @@
+ 
+ The First GCC
+ 
+-For our work, we need a cross-compiler targeting a PowerPC Linux
++For our work, we need a cross-compiler targeting an ARM Linux
+ system.  However, that configuration includes the shared library
+ 'libgcc_s.so', which is compiled against the EGLIBC headers (which we
+ haven't installed yet) and linked against 'libc.so' (which we haven't
+@@ -125,7 +128,8 @@
+     >     --prefix=$tools \
+     >     --without-headers --with-newlib \
+     >     --disable-shared --disable-threads --disable-libssp \
+-    >     --disable-libgomp --disable-libmudflap \
++    >     --disable-libgomp --disable-libmudflap --disable-libquadmath \
++    >     --disable-decimal-float --disable-libffi \
+     >     --enable-languages=c
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install
+@@ -162,12 +166,13 @@
+     > CXX=$tools/bin/$target-g++ \
+     > AR=$tools/bin/$target-ar \
+     > RANLIB=$tools/bin/$target-ranlib \
+-    > $src/libc/configure \
++    > $src/eglibc/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
+     >     --build=$build \
+     >     --host=$target \
+-    >     --disable-profile --without-gd --without-cvs --enable-add-ons
++    >     --disable-profile --without-gd --without-cvs \
++    >     --enable-add-ons=nptl,libidn,../ports
+ 
+ The option '--prefix=/usr' may look strange, but you should never
+ configure EGLIBC with a prefix other than '/usr': in various places,
+@@ -181,6 +186,11 @@
+ The '--with-headers' option tells EGLIBC where the Linux headers have
+ been installed.  
+ 
++The '--enable-add-ons=nptl,libidn,../ports' option tells EGLIBC to look
++for the listed glibc add-ons. Most notably the ports add-on (located
++just above the libc sources in the EGLIBC svn tree) is required to
++support ARM targets.
++
+ We can now use the 'install-headers' makefile target to install the
+ headers:
+ 
+@@ -223,6 +233,7 @@
+     >     --prefix=$tools \
+     >     --with-sysroot=$sysroot \
+     >     --disable-libssp --disable-libgomp --disable-libmudflap \
++    >     --disable-libffi --disable-libquadmath \
+     >     --enable-languages=c
+     $ PATH=$tools/bin:$PATH make
+     $ PATH=$tools/bin:$PATH make install
+@@ -240,13 +251,14 @@
+     > CXX=$tools/bin/$target-g++ \
+     > AR=$tools/bin/$target-ar \
+     > RANLIB=$tools/bin/$target-ranlib \
+-    > $src/libc/configure \
++    > $src/eglibc/libc/configure \
+     >     --prefix=/usr \
+     >     --with-headers=$sysroot/usr/include \
+     >     --with-kconfig=$obj/linux/scripts/kconfig \
+     >     --build=$build \
+     >     --host=$target \
+-    >     --disable-profile --without-gd --without-cvs --enable-add-ons
++    >     --disable-profile --without-gd --without-cvs \
++    >     --enable-add-ons=nptl,libidn,../ports
+ 
+ Note the additional '--with-kconfig' option. This tells EGLIBC where to
+ find the host config tools used by the kernel 'make config' and 'make
+@@ -337,15 +349,15 @@
+     ELF Header:
+     ...
+       Type:                              EXEC (Executable file)
+-      Machine:                           PowerPC
++      Machine:                           ARM
+ 
+     ...
+     Program Headers:
+       Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
+       PHDR           0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4
+-      INTERP         0x000134 0x10000134 0x10000134 0x0000d 0x0000d R   0x1
+-          [Requesting program interpreter: /lib/ld.so.1]
+-      LOAD           0x000000 0x10000000 0x10000000 0x008f0 0x008f0 R E 0x10000
++      INTERP         0x000134 0x00008134 0x00008134 0x00013 0x00013 R   0x1
++          [Requesting program interpreter: /lib/ld-linux.so.3]
++      LOAD           0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000
+     ...
+ 
+ Looking at the dynamic section of the installed 'libgcc_s.so', we see
+@@ -357,7 +369,6 @@
+     Dynamic section at offset 0x1083c contains 24 entries:
+       Tag        Type                         Name/Value
+      0x00000001 (NEEDED)                     Shared library: [libc.so.6]
+-     0x00000001 (NEEDED)                     Shared library: [ld.so.1]
+      0x0000000e (SONAME)                     Library soname: [libgcc_s.so.1]
+     ...
+ 
diff --git a/meta/recipes-core/eglibc/eglibc_2.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb
index c4bc18c..5a10387 100644
--- a/meta/recipes-core/eglibc/eglibc_2.16.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.16.bb
@@ -3,7 +3,7 @@ require eglibc.inc
 SRCREV = "20393"
 
 DEPENDS += "gperf-native"
-PR = "r7"
+PR = "r8"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_16"
@@ -26,6 +26,9 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};protocol=h
            file://add_resource_h_to_wait_h.patch \
            file://0001-Avoid-use-of-libgcc_s-and-libgcc_eh-when-building-gl.patch \
            file://0001-Add-ARM-specific-static-stubs.c.patch \
+           file://0001-eglibc-menuconfig-support.patch \
+           file://0002-eglibc-menuconfig-hex-string-options.patch \
+           file://0003-eglibc-menuconfig-build-instructions.patch \
           "
 LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
       file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
-- 
1.7.9.5




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

* [PATCH 2/6] eglibc: Enable kconfig for option management
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
  2012-09-06 22:32 ` [PATCH 1/6] eglibc-2.16: Add kconfig infrastructure Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-06 22:32 ` [PATCH 3/6] kconfig-frontends: Create symlinks for conf and mconf Khem Raj
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/eglibc/eglibc-initial.inc |    1 +
 meta/recipes-core/eglibc/eglibc-options.inc |    4 ++--
 meta/recipes-core/eglibc/eglibc.inc         |    4 ++++
 meta/recipes-core/eglibc/eglibc_2.16.bb     |    3 ++-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-core/eglibc/eglibc-initial.inc b/meta/recipes-core/eglibc/eglibc-initial.inc
index 3b99ac2..f44db0c 100644
--- a/meta/recipes-core/eglibc/eglibc-initial.inc
+++ b/meta/recipes-core/eglibc/eglibc-initial.inc
@@ -19,6 +19,7 @@ do_configure () {
 		--prefix=/usr \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${includedir} \
+		--with-kconfig=${STAGING_BINDIR_NATIVE} \
 		--enable-hacker-mode --enable-addons
 }
 
diff --git a/meta/recipes-core/eglibc/eglibc-options.inc b/meta/recipes-core/eglibc/eglibc-options.inc
index 6009278..8a8b364 100644
--- a/meta/recipes-core/eglibc/eglibc-options.inc
+++ b/meta/recipes-core/eglibc/eglibc-options.inc
@@ -2,10 +2,10 @@ def eglibc_cfg(feature, features, tokens, cnf):
     if type(tokens) == type(""):
         tokens = [tokens]
     if type(features) == type([]) and feature in features:
-        cnf.extend([token + ' = y' for token in tokens])
+        cnf.extend([token + '=y' for token in tokens])
     else:
         for token in tokens:
-            cnf.extend([token + ' = n'])
+            cnf.extend([token + '=n'])
             if token == 'OPTION_EGLIBC_NSSWITCH':
                 cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG = ${S}/nss/nsswitch.conf"])
                 cnf.extend(["OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS = ${S}/nss/fixed-nsswitch.functions"])
diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
index 02f3c7a..29e303f 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -56,6 +56,10 @@ do_configure_prepend() {
 	echo '${OE_FEATURES}' > ${B}/option-groups.config
 }
 
+do_configure_append() {
+	oe_runmake config
+}
+
 GLIBC_ADDONS ?= "ports,nptl,libidn"
 SDK_GLIBC_ADDONS ?= "ports,nptl,libidn"
 GLIBC_ADDONS_virtclass-nativesdk = "${SDK_GLIBC_ADDONS}"
diff --git a/meta/recipes-core/eglibc/eglibc_2.16.bb b/meta/recipes-core/eglibc/eglibc_2.16.bb
index 5a10387..030b235 100644
--- a/meta/recipes-core/eglibc/eglibc_2.16.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.16.bb
@@ -2,7 +2,7 @@ require eglibc.inc
 
 SRCREV = "20393"
 
-DEPENDS += "gperf-native"
+DEPENDS += "gperf-native kconfig-frontends-native"
 PR = "r8"
 PR_append = "+svnr${SRCPV}"
 
@@ -79,6 +79,7 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
                 --with-headers=${STAGING_INCDIR} \
                 --without-selinux \
                 --enable-obsolete-rpc \
+                --with-kconfig=${STAGING_BINDIR_NATIVE} \
                 ${GLIBC_EXTRA_OECONF}"
 
 EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
-- 
1.7.9.5




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

* [PATCH 3/6] kconfig-frontends: Create symlinks for conf and mconf
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
  2012-09-06 22:32 ` [PATCH 1/6] eglibc-2.16: Add kconfig infrastructure Khem Raj
  2012-09-06 22:32 ` [PATCH 2/6] eglibc: Enable kconfig for option management Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-06 22:32 ` [PATCH 4/6] qemu-git: Move to tip of git past 1.2 release Khem Raj
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

eglibc calls out mconf and conf directly so lets create
symlinks to point to their kconfig- counterparts

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.5.bb b/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.5.bb
index 277de03..96899b8 100644
--- a/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.5.bb
+++ b/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.5.bb
@@ -11,7 +11,7 @@ LICENSE = "GPL-2.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
 SECTION = "devel"
 DEPENDS += "ncurses flex bison gperf"
-PR = "r0"
+PR = "r1"
 PV = "3.5.0"
 SPIN = "0"
 SRC_URI = "http://ymorin.is-a-geek.org/download/${BPN}/${BPN}-${PV}-${SPIN}.tar.xz"
@@ -24,6 +24,12 @@ inherit autotools
 do_configure_prepend () {
 	mkdir -p scripts/.autostuff/m4
 }
+
+do_install_append() {
+	ln -s kconfig-conf ${D}${bindir}/conf
+	ln -s kconfig-mconf ${D}${bindir}/mconf
+}
+
 EXTRA_OECONF += "--disable-gconf --disable-qconf"
 
 # Some packages have the version preceeding the .so instead properly
-- 
1.7.9.5




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

* [PATCH 4/6] qemu-git: Move to tip of git past 1.2 release
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
                   ` (2 preceding siblings ...)
  2012-09-06 22:32 ` [PATCH 3/6] kconfig-frontends: Create symlinks for conf and mconf Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-06 22:32 ` [PATCH 5/6] qemu: Update from 0.15 to 1.2 Khem Raj
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

There are a lot of armv7 and sh4 fixes that
its worth moving to latest version. The patch
forward porting can happen later.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
 meta/recipes-devtools/qemu/qemu_git.bb             |   15 +++++----------
 2 files changed, 5 insertions(+), 10 deletions(-)
 create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin

diff --git a/meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin b/meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
new file mode 100644
index 0000000000000000000000000000000000000000..c4044296c51529878f5d2a46230949d09ef1d4e2
GIT binary patch
literal 4096
zcmeHJQEMDk6h4#Pn8Z}5VUd7UHb$_7oo16ZWvl_Wq7bx}RV;`Ib~1CD44Ivo&djz(
z20DZ^Sm;B1^P!YL$|?xr50Dxx<W1-=Nb#jAB1A;VL+N<VoqKm?mo4n8m<wmm`OZ1_
zyXT&{cV+<&$6*H!JMdrW!2M?){{b*MgY{|vBVVIFj`A$ZQ4}1?4fK1d-SMjkR6spQ
z_GQ*+=6p}1edN8j-n~$%zt8GvfO5${M!BlzGeJ!LBFYOW#4B+{V8!s70opWVtXD3@
zDYsT7E6WA+<uUG+56Lw@`umUh__@Kqf6n8Nx^M%7WfVF8S{METF%22NokAEuO`<ed
z!}V9WmvV;4>hcYvi`OX{&F6WBRnw|kl?KhhA=dzmNj!qa7`0aw&RpKS@@VUVz<iB3
zMpQ$|xW4%zN%nJ?dQI!dwdlD}J%p)_T~Q;N05Shf4N8(@M;Ibka{YvEauGg?vIjtA
zbqtD8FaGQiqq(Cfl+!&ZM!lezVg)+I$)>XgU6}SL_e61d_GCWQDdT+4h>0J6J|vY6
z?n%vooL{&VPxp1(X12&CZmJJ@_@6`fnCE!)^YzN9>I}3^S{w(>9Y>+QAbsI`)YLe%
zhsb^kg>uN3pwJm3OoIDU=pIs8v?nECzNOo>lb47s&EaP<^|yU5q9tpZ%W9g#!{`Jv
zr|0H!wb2^S$51#BeALr<I95i*YdC^h)=oK8XTDy_e`39s6Efd#dZB8#PUySXQy=qb
zi2XtSc~LLG(q`vgB_qvg-;s)C8L6AkMN@f2<h+bp)Cgs?d9P4!Wp?qtu*JH{JmPj=
z9X5+MwRTe6R?5lm8zJYFbLBH3ET5Y^zkF@UH=8!Po3GplAFV<2I`~fY=BxF=C+}Vd
z-|60b7yIC&+PdqT)q3&`#C`C|bJS5^Z@xl5eDtl8^${oMHJ06gIf&9&36H?r)A;V4
z#+S@==jEcgSd;QG&rb6RyBX$`vA~Dw|Jwn1zD7)T#WL6@;i|`=;hOjXG2Diyht{Ia
zU{W_tp9O(xFxw7bGO#{l!uHt`7`AJysF!?pxyc-36&9O84uw{OE$RWwxh&Ptjb*0V
zmcvvc1M`U<9+ne0ptr1=y`Obs#c{9N%v@sN>&_Cx0<&mZafTbZr#AFp1v*?A3Nlm0
zZzgj>xMKNXQ@2&xYBnqPS-@>HKdpGnx?^IqQWS)y+YFH+ToxY7u|nTegHZRwP8V}b
zSae+sEb;%K*M1#ny}qNsYkLXA5B@1?u>#SJLhH*7Xlm<8f;#-X1y`fH6W_i8$-egB
zukYdwC~E6a_+TB*MCN`S^Bz_3)<>=KiD-M`L~SkEkMBZtb6dHCdSP>WD2n&sT(mn?
z+PpV(Q@b~GE4~eH#;xQaDju($jbT{3o+O+D*Tz`w>>7;I`r2-i+`I$ItrjS_{sHo6
zTN_Ym=RSmE(Ze$(%wLGV!aq8Lpw!l&igq#Dm@1(jj;@#MaSO(y^{Eo=O`A-R1mJvJ
aoLIp7h<sDgFE5ple~0izly{QHzx@jx&XA}8

literal 0
HcmV?d00001

diff --git a/meta/recipes-devtools/qemu/qemu_git.bb b/meta/recipes-devtools/qemu/qemu_git.bb
index e75f240..15cd008 100644
--- a/meta/recipes-devtools/qemu/qemu_git.bb
+++ b/meta/recipes-devtools/qemu/qemu_git.bb
@@ -1,25 +1,20 @@
 require qemu.inc
 
-SRCREV = "56a60dd6d619877e9957ba06b92d2f276e3c229d"
+SRCREV = "6e4c0d1f03d6ab407509c32fab7cb4b8230f57ff"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
                     file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
 
-PV = "0.14.0"
-PR = "r4"
+PV = "1.2+git"
+PR = "r0"
 
 FILESPATH = "${FILE_DIRNAME}/qemu-${PV}/:${FILE_DIRNAME}/qemu-git/"
 FILESDIR = "${WORKDIR}"
 
 SRC_URI = "\
     git://git.qemu.org/qemu.git;protocol=git \
-    file://no-strip.patch \
-    file://linker-flags.patch \
-    file://qemu-vmware-vga-depth.patch \
-    file://enable-i386-linux-user.patch"
-
+    file://powerpc_rom.bin \
+    "
 S = "${WORKDIR}/git"
 
 DEFAULT_PREFERENCE = "-1"
-
-
-- 
1.7.9.5




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

* [PATCH 5/6] qemu: Update from 0.15 to 1.2
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
                   ` (3 preceding siblings ...)
  2012-09-06 22:32 ` [PATCH 4/6] qemu-git: Move to tip of git past 1.2 release Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-06 22:32 ` [PATCH 6/6] machines/x86: Drop redundant glibc configure knobs Khem Raj
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

Forward port the patches which were not applied upstream

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 --
 .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 ---
 ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 --
 .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 --------------------
 .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
 .../enable-i386-linux-user.patch                   |    0
 .../fallback-to-safe-mmap_min_addr.patch           |    0
 .../fix-configure-checks.patch                     |   18 +-
 .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
 .../larger_default_ram_size.patch                  |    0
 .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
 .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
 .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
 .../qemu-vmware-vga-depth.patch                    |   70 +--
 .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
 15 files changed, 54 insertions(+), 841 deletions(-)
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
 delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
 rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
 rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)

diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
deleted file mode 100644
index d64d76f..0000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Upstream-Status: Backport
-
-From 7c0a3409627604c111d5c5e1ce4e0224c2b56315 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
-Date: Tue, 4 Oct 2011 05:14:52 +0000
-Subject: [PATCH] ppc64: Fix linker script
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Since commit 8733f609 (Fix linker scripts) linking on Linux/ppc64 fails:
-
-  LINK  ppc64-linux-user/qemu-ppc64
-/usr/lib64/gcc/powerpc64-suse-linux/4.3/../../../../powerpc64-suse-linux/bin/ld:/home/afaerber/qemu/ppc64.ld:84: syntax error
-collect2: ld gab 1 als Ende-Status zurück
-make[1]: *** [qemu-ppc64] Fehler 1
-make: *** [subdir-ppc64-linux-user] Fehler 2
-
-Fix by removing a leftover line in the ppc64 linker script.
-
-Cc: Gerd Hoffmann <kraxel@redhat.com>
-Cc: Blue Swirl <blauwirbel@gmail.com>
-Signed-off-by: Andreas Färber <afaerber@suse.de>
-Signed-off-by: Alexander Graf <agraf@suse.de>
----
- ppc64.ld |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/ppc64.ld b/ppc64.ld
-index 0059ee5..0a7c0dd 100644
---- a/ppc64.ld
-+++ b/ppc64.ld
-@@ -81,8 +81,8 @@ SECTIONS
-   .sdata2         : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
-   .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
-   .eh_frame_hdr : { *(.eh_frame_hdr) }
--*(.gcc_except_table.*) } /* Adjust the address for the data segment.  We want to
--adjust up to +     the same address within the page on the next page up.  */
-+  /* Adjust the address for the data segment.  We want to adjust up to
-+     the same address within the page on the next page up.  */
-   . = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN
- (0x10000, 0x1000);   /* Exception handling  */
-   .eh_frame       : { KEEP (*(.eh_frame)) }
--- 
-1.7.10
-
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
deleted file mode 100644
index 405d557..0000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From a4d1f142542935b90d2eb30f3aead4edcf455fe6 Mon Sep 17 00:00:00 2001
-From: Aurelien Jarno <aurelien@aurel32.net>
-Date: Sat, 7 Jan 2012 15:20:11 +0100
-Subject: [PATCH 1/1] target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions
-
-minpd, minps, minsd, minss and maxpd, maxps, maxsd, maxss SSE2
-instructions have been broken when switching target-i386 to softfloat.
-It's not possible to use comparison instructions on float types anymore
-to softfloat, so use the floatXX_lt function instead, as the
-float_XX_min and float_XX_max functions can't be used due to the Intel
-specific behaviour.
-
-As it implements the correct NaNs behaviour, let's remove the
-corresponding entry from the TODO.
-
-It fixes GDM screen display on Debian Lenny.
-
-Thanks to Peter Maydell and Jason Wessel for their analysis of the
-problem.
-
-Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
----
- target-i386/TODO      |    1 -
- target-i386/ops_sse.h |    9 +++++++--
- 2 files changed, 7 insertions(+), 3 deletions(-)
-
-This fixes scrollbar issues in matchbox-terminal/vte on qemux86-64 and
-files not appearing in pcmanfm, as well as glib/gobject errors to do with gdoubles
-on the console [YOCTO #1906]
-
-Upstream-Status: Backport
-
-Index: qemu-0.15.1/target-i386/TODO
-===================================================================
---- qemu-0.15.1.orig/target-i386/TODO	2011-10-12 16:41:43.000000000 +0000
-+++ qemu-0.15.1/target-i386/TODO	2012-04-19 07:30:38.704073075 +0000
-@@ -15,7 +15,6 @@
- - DRx register support
- - CR0.AC emulation
- - SSE alignment checks
--- fix SSE min/max with nans
- 
- Optimizations/Features:
- 
-Index: qemu-0.15.1/target-i386/ops_sse.h
-===================================================================
---- qemu-0.15.1.orig/target-i386/ops_sse.h	2011-10-12 16:41:43.000000000 +0000
-+++ qemu-0.15.1/target-i386/ops_sse.h	2012-04-19 07:30:38.712073076 +0000
-@@ -584,10 +584,15 @@
- #define FPU_SUB(size, a, b) float ## size ## _sub(a, b, &env->sse_status)
- #define FPU_MUL(size, a, b) float ## size ## _mul(a, b, &env->sse_status)
- #define FPU_DIV(size, a, b) float ## size ## _div(a, b, &env->sse_status)
--#define FPU_MIN(size, a, b) (a) < (b) ? (a) : (b)
--#define FPU_MAX(size, a, b) (a) > (b) ? (a) : (b)
- #define FPU_SQRT(size, a, b) float ## size ## _sqrt(b, &env->sse_status)
- 
-+/* Note that the choice of comparison op here is important to get the
-+ * special cases right: for min and max Intel specifies that (-0,0),
-+ * (NaN, anything) and (anything, NaN) return the second argument.
-+ */
-+#define FPU_MIN(size, a, b) float ## size ## _lt(a, b, &env->sse_status) ? (a) : (b)
-+#define FPU_MAX(size, a, b) float ## size ## _lt(b, a, &env->sse_status) ? (a) : (b)
-+
- SSE_HELPER_S(add, FPU_ADD)
- SSE_HELPER_S(sub, FPU_SUB)
- SSE_HELPER_S(mul, FPU_MUL)
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
deleted file mode 100644
index 2ccc663..0000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Upstream-Status: Backport
-commit 13a16f1d91fc7a46b65b22a33f6ffea1b826a097 
-in git://git.qemu.org/qemu.git master
-
-From 13a16f1d91fc7a46b65b22a33f6ffea1b826a097 Mon Sep 17 00:00:00 2001
-From: Peter Maydell <peter.maydell@linaro.org>
-Date: Thu, 16 Feb 2012 09:56:10 +0000
-Subject: [PATCH] hw/pl031: Actually raise interrupt on timer expiry
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fix a typo in pl031_interrupt() which meant we were setting a bit
-in the interrupt mask rather than the interrupt status register
-and thus not actually raising an interrupt. This fix allows the
-rtctest program from the kernel's Documentation/rtc.txt to pass
-rather than hanging.
-
-Reported-by: Daniel Forsgren <daniel.forsgren@enea.com>
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-Acked-by: Andreas Färber <afaerber@suse.de>
----
- hw/pl031.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/hw/pl031.c b/hw/pl031.c
-index 05b5b11..69abc4f 100644
---- a/hw/pl031.c
-+++ b/hw/pl031.c
-@@ -76,7 +76,7 @@ static void pl031_interrupt(void * opaque)
- {
-     pl031_state *s = (pl031_state *)opaque;
- 
--    s->im = 1;
-+    s->is = 1;
-     DPRINTF("Alarm raised\n");
-     pl031_update(s);
- }
--- 
-1.7.4.1
-
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
deleted file mode 100644
index 4c2134b..0000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
+++ /dev/null
@@ -1,610 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-X-Git-Url: http://git.qemu.org/?p=qemu.git;a=blobdiff_plain;f=target-ppc%2Ftranslate.c;h=99e995c7b6094b0651d176f9b813525b44b7a74e;hp=1e362fc2385faeca53d0c1de37ccd7a7379202da;hb=70560da79d5be611bd7867f9c590847702c61fb5;hpb=bdcf9d6cd4ff987e58ba4f311ba7b1a33cf3ce5e
-
-Index: qemu-0.15.1/target-ppc/translate.c
-===================================================================
---- qemu-0.15.1.orig/target-ppc/translate.c	2011-10-12 09:41:43.000000000 -0700
-+++ qemu-0.15.1/target-ppc/translate.c	2012-07-20 08:14:33.192405920 -0700
-@@ -196,8 +196,10 @@
- } DisasContext;
- 
- struct opc_handler_t {
--    /* invalid bits */
--    uint32_t inval;
-+    /* invalid bits for instruction 1 (Rc(opcode) == 0) */
-+    uint32_t inval1;
-+    /* invalid bits for instruction 2 (Rc(opcode) == 1) */
-+    uint32_t inval2;
-     /* instruction type */
-     uint64_t type;
-     /* extended instruction type */
-@@ -469,7 +471,23 @@
-     .opc3 = op3,                                                              \
-     .pad  = { 0, },                                                           \
-     .handler = {                                                              \
--        .inval   = invl,                                                      \
-+        .inval1  = invl,                                                      \
-+        .type = _typ,                                                         \
-+        .type2 = _typ2,                                                       \
-+        .handler = &gen_##name,                                               \
-+        .oname = stringify(name),                                             \
-+    },                                                                        \
-+    .oname = stringify(name),                                                 \
-+}
-+#define GEN_OPCODE_DUAL(name, op1, op2, op3, invl1, invl2, _typ, _typ2)       \
-+{                                                                             \
-+    .opc1 = op1,                                                              \
-+    .opc2 = op2,                                                              \
-+    .opc3 = op3,                                                              \
-+    .pad  = { 0, },                                                           \
-+    .handler = {                                                              \
-+        .inval1  = invl1,                                                     \
-+        .inval2  = invl2,                                                     \
-         .type = _typ,                                                         \
-         .type2 = _typ2,                                                       \
-         .handler = &gen_##name,                                               \
-@@ -484,7 +502,7 @@
-     .opc3 = op3,                                                              \
-     .pad  = { 0, },                                                           \
-     .handler = {                                                              \
--        .inval   = invl,                                                      \
-+        .inval1  = invl,                                                      \
-         .type = _typ,                                                         \
-         .type2 = _typ2,                                                       \
-         .handler = &gen_##name,                                               \
-@@ -500,7 +518,22 @@
-     .opc3 = op3,                                                              \
-     .pad  = { 0, },                                                           \
-     .handler = {                                                              \
--        .inval   = invl,                                                      \
-+        .inval1  = invl,                                                      \
-+        .type = _typ,                                                         \
-+        .type2 = _typ2,                                                       \
-+        .handler = &gen_##name,                                               \
-+    },                                                                        \
-+    .oname = stringify(name),                                                 \
-+}
-+#define GEN_OPCODE_DUAL(name, op1, op2, op3, invl1, invl2, _typ, _typ2)       \
-+{                                                                             \
-+    .opc1 = op1,                                                              \
-+    .opc2 = op2,                                                              \
-+    .opc3 = op3,                                                              \
-+    .pad  = { 0, },                                                           \
-+    .handler = {                                                              \
-+        .inval1  = invl1,                                                     \
-+        .inval2  = invl2,                                                     \
-         .type = _typ,                                                         \
-         .type2 = _typ2,                                                       \
-         .handler = &gen_##name,                                               \
-@@ -514,7 +547,7 @@
-     .opc3 = op3,                                                              \
-     .pad  = { 0, },                                                           \
-     .handler = {                                                              \
--        .inval   = invl,                                                      \
-+        .inval1  = invl,                                                      \
-         .type = _typ,                                                         \
-         .type2 = _typ2,                                                       \
-         .handler = &gen_##name,                                               \
-@@ -541,7 +574,8 @@
- }
- 
- static opc_handler_t invalid_handler = {
--    .inval   = 0xFFFFFFFF,
-+    .inval1  = 0xFFFFFFFF,
-+    .inval2  = 0xFFFFFFFF,
-     .type    = PPC_NONE,
-     .type2   = PPC_NONE,
-     .handler = gen_invalid,
-@@ -6672,7 +6706,7 @@
- #endif
- }
- 
--#define GEN_SPE(name0, name1, opc2, opc3, inval, type)                        \
-+#define GEN_SPE(name0, name1, opc2, opc3, inval0, inval1, type)         \
- static void glue(gen_, name0##_##name1)(DisasContext *ctx)                    \
- {                                                                             \
-     if (Rc(ctx->opcode))                                                      \
-@@ -7395,35 +7429,35 @@
-     tcg_temp_free_i64(tmp);
- }
- 
--GEN_SPE(evaddw,         speundef,      0x00, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evaddiw,        speundef,      0x01, 0x08, 0x00000000, PPC_SPE);
--GEN_SPE(evsubfw,        speundef,      0x02, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evsubifw,       speundef,      0x03, 0x08, 0x00000000, PPC_SPE);
--GEN_SPE(evabs,          evneg,         0x04, 0x08, 0x0000F800, PPC_SPE); ////
--GEN_SPE(evextsb,        evextsh,       0x05, 0x08, 0x0000F800, PPC_SPE); ////
--GEN_SPE(evrndw,         evcntlzw,      0x06, 0x08, 0x0000F800, PPC_SPE); ////
--GEN_SPE(evcntlsw,       brinc,         0x07, 0x08, 0x00000000, PPC_SPE); //
--GEN_SPE(evmra,          speundef,      0x02, 0x13, 0x0000F800, PPC_SPE);
--GEN_SPE(speundef,       evand,         0x08, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evandc,         speundef,      0x09, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evxor,          evor,          0x0B, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evnor,          eveqv,         0x0C, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evmwumi,        evmwsmi,       0x0C, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwumia,       evmwsmia,      0x1C, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwumiaa,      evmwsmiaa,     0x0C, 0x15, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evorc,         0x0D, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evnand,         speundef,      0x0F, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evsrwu,         evsrws,        0x10, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evsrwiu,        evsrwis,       0x11, 0x08, 0x00000000, PPC_SPE);
--GEN_SPE(evslw,          speundef,      0x12, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evslwi,         speundef,      0x13, 0x08, 0x00000000, PPC_SPE);
--GEN_SPE(evrlw,          evsplati,      0x14, 0x08, 0x00000000, PPC_SPE); //
--GEN_SPE(evrlwi,         evsplatfi,     0x15, 0x08, 0x00000000, PPC_SPE);
--GEN_SPE(evmergehi,      evmergelo,     0x16, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evmergehilo,    evmergelohi,   0x17, 0x08, 0x00000000, PPC_SPE); ////
--GEN_SPE(evcmpgtu,       evcmpgts,      0x18, 0x08, 0x00600000, PPC_SPE); ////
--GEN_SPE(evcmpltu,       evcmplts,      0x19, 0x08, 0x00600000, PPC_SPE); ////
--GEN_SPE(evcmpeq,        speundef,      0x1A, 0x08, 0x00600000, PPC_SPE); ////
-+GEN_SPE(evaddw,      speundef,    0x00, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////
-+GEN_SPE(evaddiw,     speundef,    0x01, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(evsubfw,     speundef,    0x02, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////
-+GEN_SPE(evsubifw,    speundef,    0x03, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(evabs,       evneg,       0x04, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////
-+GEN_SPE(evextsb,     evextsh,     0x05, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////
-+GEN_SPE(evrndw,      evcntlzw,    0x06, 0x08, 0x0000F800, 0x0000F800, PPC_SPE); ////
-+GEN_SPE(evcntlsw,    brinc,       0x07, 0x08, 0x0000F800, 0x00000000, PPC_SPE); //
-+GEN_SPE(evmra,       speundef,    0x02, 0x13, 0x0000F800, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(speundef,    evand,       0x08, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evandc,      speundef,    0x09, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////
-+GEN_SPE(evxor,       evor,        0x0B, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evnor,       eveqv,       0x0C, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evmwumi,     evmwsmi,     0x0C, 0x11, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwumia,    evmwsmia,    0x1C, 0x11, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwumiaa,   evmwsmiaa,   0x0C, 0x15, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,    evorc,       0x0D, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evnand,      speundef,    0x0F, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////
-+GEN_SPE(evsrwu,      evsrws,      0x10, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evsrwiu,     evsrwis,     0x11, 0x08, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(evslw,       speundef,    0x12, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE); ////
-+GEN_SPE(evslwi,      speundef,    0x13, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(evrlw,       evsplati,    0x14, 0x08, 0x00000000, 0x0000F800, PPC_SPE); //
-+GEN_SPE(evrlwi,      evsplatfi,   0x15, 0x08, 0x00000000, 0x0000F800, PPC_SPE);
-+GEN_SPE(evmergehi,   evmergelo,   0x16, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evmergehilo, evmergelohi, 0x17, 0x08, 0x00000000, 0x00000000, PPC_SPE); ////
-+GEN_SPE(evcmpgtu,    evcmpgts,    0x18, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////
-+GEN_SPE(evcmpltu,    evcmplts,    0x19, 0x08, 0x00600000, 0x00600000, PPC_SPE); ////
-+GEN_SPE(evcmpeq,     speundef,    0x1A, 0x08, 0x00600000, 0xFFFFFFFF, PPC_SPE); ////
- 
- /* SPE load and stores */
- static inline void gen_addr_spe_imm_index(DisasContext *ctx, TCGv EA, int sh)
-@@ -7782,74 +7816,74 @@
- 
- /* Multiply and add - TODO */
- #if 0
--GEN_SPE(speundef,       evmhessf,      0x01, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhossf,      0x03, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(evmheumi,       evmhesmi,      0x04, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhesmf,      0x05, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(evmhoumi,       evmhosmi,      0x06, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhosmf,      0x07, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhessfa,     0x11, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhossfa,     0x13, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(evmheumia,      evmhesmia,     0x14, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhesmfa,     0x15, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(evmhoumia,      evmhosmia,     0x16, 0x10, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhosmfa,     0x17, 0x10, 0x00000000, PPC_SPE);
--
--GEN_SPE(speundef,       evmwhssf,      0x03, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwlumi,       speundef,      0x04, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwhumi,       evmwhsmi,      0x06, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwhsmf,      0x07, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwssf,       0x09, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwsmf,       0x0D, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwhssfa,     0x13, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwlumia,      speundef,      0x14, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(evmwhumia,      evmwhsmia,     0x16, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwhsmfa,     0x17, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwssfa,      0x19, 0x11, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwsmfa,      0x1D, 0x11, 0x00000000, PPC_SPE);
--
--GEN_SPE(evadduiaaw,     evaddsiaaw,    0x00, 0x13, 0x0000F800, PPC_SPE);
--GEN_SPE(evsubfusiaaw,   evsubfssiaaw,  0x01, 0x13, 0x0000F800, PPC_SPE);
--GEN_SPE(evaddumiaaw,    evaddsmiaaw,   0x04, 0x13, 0x0000F800, PPC_SPE);
--GEN_SPE(evsubfumiaaw,   evsubfsmiaaw,  0x05, 0x13, 0x0000F800, PPC_SPE);
--GEN_SPE(evdivws,        evdivwu,       0x06, 0x13, 0x00000000, PPC_SPE);
--
--GEN_SPE(evmheusiaaw,    evmhessiaaw,   0x00, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhessfaaw,   0x01, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(evmhousiaaw,    evmhossiaaw,   0x02, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhossfaaw,   0x03, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(evmheumiaaw,    evmhesmiaaw,   0x04, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhesmfaaw,   0x05, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(evmhoumiaaw,    evmhosmiaaw,   0x06, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhosmfaaw,   0x07, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(evmhegumiaa,    evmhegsmiaa,   0x14, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhegsmfaa,   0x15, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(evmhogumiaa,    evmhogsmiaa,   0x16, 0x14, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhogsmfaa,   0x17, 0x14, 0x00000000, PPC_SPE);
--
--GEN_SPE(evmwlusiaaw,    evmwlssiaaw,   0x00, 0x15, 0x00000000, PPC_SPE);
--GEN_SPE(evmwlumiaaw,    evmwlsmiaaw,   0x04, 0x15, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwssfaa,     0x09, 0x15, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwsmfaa,     0x0D, 0x15, 0x00000000, PPC_SPE);
--
--GEN_SPE(evmheusianw,    evmhessianw,   0x00, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhessfanw,   0x01, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(evmhousianw,    evmhossianw,   0x02, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhossfanw,   0x03, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(evmheumianw,    evmhesmianw,   0x04, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhesmfanw,   0x05, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(evmhoumianw,    evmhosmianw,   0x06, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhosmfanw,   0x07, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(evmhegumian,    evmhegsmian,   0x14, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhegsmfan,   0x15, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(evmhigumian,    evmhigsmian,   0x16, 0x16, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmhogsmfan,   0x17, 0x16, 0x00000000, PPC_SPE);
--
--GEN_SPE(evmwlusianw,    evmwlssianw,   0x00, 0x17, 0x00000000, PPC_SPE);
--GEN_SPE(evmwlumianw,    evmwlsmianw,   0x04, 0x17, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwssfan,     0x09, 0x17, 0x00000000, PPC_SPE);
--GEN_SPE(evmwumian,      evmwsmian,     0x0C, 0x17, 0x00000000, PPC_SPE);
--GEN_SPE(speundef,       evmwsmfan,     0x0D, 0x17, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhessf,      0x01, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);//
-+GEN_SPE(speundef,       evmhossf,      0x03, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmheumi,       evmhesmi,      0x04, 0x10, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhesmf,      0x05, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhoumi,       evmhosmi,      0x06, 0x10, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhosmf,      0x07, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhessfa,     0x11, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhossfa,     0x13, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmheumia,      evmhesmia,     0x14, 0x10, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhesmfa,     0x15, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhoumia,      evmhosmia,     0x16, 0x10, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhosmfa,     0x17, 0x10, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(speundef,       evmwhssf,      0x03, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwlumi,       speundef,      0x04, 0x11, 0x00000000, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(evmwhumi,       evmwhsmi,      0x06, 0x11, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwhsmf,      0x07, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwssf,       0x09, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwsmf,       0x0D, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwhssfa,     0x13, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwlumia,      speundef,      0x14, 0x11, 0x00000000, 0xFFFFFFFF, PPC_SPE);
-+GEN_SPE(evmwhumia,      evmwhsmia,     0x16, 0x11, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwhsmfa,     0x17, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwssfa,      0x19, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwsmfa,      0x1D, 0x11, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(evadduiaaw,     evaddsiaaw,    0x00, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);
-+GEN_SPE(evsubfusiaaw,   evsubfssiaaw,  0x01, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);
-+GEN_SPE(evaddumiaaw,    evaddsmiaaw,   0x04, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);
-+GEN_SPE(evsubfumiaaw,   evsubfsmiaaw,  0x05, 0x13, 0x0000F800, 0x0000F800, PPC_SPE);
-+GEN_SPE(evdivws,        evdivwu,       0x06, 0x13, 0x00000000, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(evmheusiaaw,    evmhessiaaw,   0x00, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhessfaaw,   0x01, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhousiaaw,    evmhossiaaw,   0x02, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhossfaaw,   0x03, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmheumiaaw,    evmhesmiaaw,   0x04, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhesmfaaw,   0x05, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhoumiaaw,    evmhosmiaaw,   0x06, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhosmfaaw,   0x07, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhegumiaa,    evmhegsmiaa,   0x14, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhegsmfaa,   0x15, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhogumiaa,    evmhogsmiaa,   0x16, 0x14, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhogsmfaa,   0x17, 0x14, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(evmwlusiaaw,    evmwlssiaaw,   0x00, 0x15, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwlumiaaw,    evmwlsmiaaw,   0x04, 0x15, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwssfaa,     0x09, 0x15, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwsmfaa,     0x0D, 0x15, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(evmheusianw,    evmhessianw,   0x00, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhessfanw,   0x01, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhousianw,    evmhossianw,   0x02, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhossfanw,   0x03, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmheumianw,    evmhesmianw,   0x04, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhesmfanw,   0x05, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhoumianw,    evmhosmianw,   0x06, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhosmfanw,   0x07, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhegumian,    evmhegsmian,   0x14, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhegsmfan,   0x15, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmhigumian,    evmhigsmian,   0x16, 0x16, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmhogsmfan,   0x17, 0x16, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+
-+GEN_SPE(evmwlusianw,    evmwlssianw,   0x00, 0x17, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwlumianw,    evmwlsmianw,   0x04, 0x17, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwssfan,     0x09, 0x17, 0xFFFFFFFF, 0x00000000, PPC_SPE);
-+GEN_SPE(evmwumian,      evmwsmian,     0x0C, 0x17, 0x00000000, 0x00000000, PPC_SPE);
-+GEN_SPE(speundef,       evmwsmfan,     0x0D, 0x17, 0xFFFFFFFF, 0x00000000, PPC_SPE);
- #endif
- 
- /***                      SPE floating-point extension                     ***/
-@@ -8110,20 +8144,20 @@
- GEN_SPEFPUOP_COMP_64(evfststeq);
- 
- /* Opcodes definitions */
--GEN_SPE(evfsadd,        evfssub,       0x00, 0x0A, 0x00000000, PPC_SPE_SINGLE); //
--GEN_SPE(evfsabs,        evfsnabs,      0x02, 0x0A, 0x0000F800, PPC_SPE_SINGLE); //
--GEN_SPE(evfsneg,        speundef,      0x03, 0x0A, 0x0000F800, PPC_SPE_SINGLE); //
--GEN_SPE(evfsmul,        evfsdiv,       0x04, 0x0A, 0x00000000, PPC_SPE_SINGLE); //
--GEN_SPE(evfscmpgt,      evfscmplt,     0x06, 0x0A, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(evfscmpeq,      speundef,      0x07, 0x0A, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(evfscfui,       evfscfsi,      0x08, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfscfuf,       evfscfsf,      0x09, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfsctui,       evfsctsi,      0x0A, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfsctuf,       evfsctsf,      0x0B, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfsctuiz,      speundef,      0x0C, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfsctsiz,      speundef,      0x0D, 0x0A, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(evfststgt,      evfststlt,     0x0E, 0x0A, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(evfststeq,      speundef,      0x0F, 0x0A, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsadd,   evfssub,   0x00, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsabs,   evfsnabs,  0x02, 0x0A, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsneg,   speundef,  0x03, 0x0A, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsmul,   evfsdiv,   0x04, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfscmpgt, evfscmplt, 0x06, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfscmpeq, speundef,  0x07, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(evfscfui,  evfscfsi,  0x08, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfscfuf,  evfscfsf,  0x09, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsctui,  evfsctsi,  0x0A, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsctuf,  evfsctsf,  0x0B, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsctuiz, speundef,  0x0C, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(evfsctsiz, speundef,  0x0D, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(evfststgt, evfststlt, 0x0E, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(evfststeq, speundef,  0x0F, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
- 
- /* Single precision floating-point operations */
- /* Arithmetic */
-@@ -8178,20 +8212,20 @@
- GEN_SPEFPUOP_COMP_32(efststeq);
- 
- /* Opcodes definitions */
--GEN_SPE(efsadd,         efssub,        0x00, 0x0B, 0x00000000, PPC_SPE_SINGLE); //
--GEN_SPE(efsabs,         efsnabs,       0x02, 0x0B, 0x0000F800, PPC_SPE_SINGLE); //
--GEN_SPE(efsneg,         speundef,      0x03, 0x0B, 0x0000F800, PPC_SPE_SINGLE); //
--GEN_SPE(efsmul,         efsdiv,        0x04, 0x0B, 0x00000000, PPC_SPE_SINGLE); //
--GEN_SPE(efscmpgt,       efscmplt,      0x06, 0x0B, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(efscmpeq,       efscfd,        0x07, 0x0B, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(efscfui,        efscfsi,       0x08, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efscfuf,        efscfsf,       0x09, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efsctui,        efsctsi,       0x0A, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efsctuf,        efsctsf,       0x0B, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efsctuiz,       speundef,      0x0C, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efsctsiz,       speundef,      0x0D, 0x0B, 0x00180000, PPC_SPE_SINGLE); //
--GEN_SPE(efststgt,       efststlt,      0x0E, 0x0B, 0x00600000, PPC_SPE_SINGLE); //
--GEN_SPE(efststeq,       speundef,      0x0F, 0x0B, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(efsadd,   efssub,   0x00, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //
-+GEN_SPE(efsabs,   efsnabs,  0x02, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE); //
-+GEN_SPE(efsneg,   speundef, 0x03, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(efsmul,   efsdiv,   0x04, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE); //
-+GEN_SPE(efscmpgt, efscmplt, 0x06, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(efscmpeq, efscfd,   0x07, 0x0B, 0x00600000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(efscfui,  efscfsi,  0x08, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(efscfuf,  efscfsf,  0x09, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(efsctui,  efsctsi,  0x0A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(efsctuf,  efsctsf,  0x0B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE); //
-+GEN_SPE(efsctuiz, speundef, 0x0C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(efsctsiz, speundef, 0x0D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
-+GEN_SPE(efststgt, efststlt, 0x0E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE); //
-+GEN_SPE(efststeq, speundef, 0x0F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE); //
- 
- /* Double precision floating-point operations */
- /* Arithmetic */
-@@ -8265,22 +8299,22 @@
- GEN_SPEFPUOP_COMP_64(efdtsteq);
- 
- /* Opcodes definitions */
--GEN_SPE(efdadd,         efdsub,        0x10, 0x0B, 0x00000000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdcfuid,       efdcfsid,      0x11, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdabs,         efdnabs,       0x12, 0x0B, 0x0000F800, PPC_SPE_DOUBLE); //
--GEN_SPE(efdneg,         speundef,      0x13, 0x0B, 0x0000F800, PPC_SPE_DOUBLE); //
--GEN_SPE(efdmul,         efddiv,        0x14, 0x0B, 0x00000000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdctuidz,      efdctsidz,     0x15, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdcmpgt,       efdcmplt,      0x16, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdcmpeq,       efdcfs,        0x17, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdcfui,        efdcfsi,       0x18, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdcfuf,        efdcfsf,       0x19, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdctui,        efdctsi,       0x1A, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdctuf,        efdctsf,       0x1B, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdctuiz,       speundef,      0x1C, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdctsiz,       speundef,      0x1D, 0x0B, 0x00180000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdtstgt,       efdtstlt,      0x1E, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
--GEN_SPE(efdtsteq,       speundef,      0x1F, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdadd,    efdsub,    0x10, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdcfuid,  efdcfsid,  0x11, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdabs,    efdnabs,   0x12, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdneg,    speundef,  0x13, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdmul,    efddiv,    0x14, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdctuidz, efdctsidz, 0x15, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdcmpgt,  efdcmplt,  0x16, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdcmpeq,  efdcfs,    0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdcfui,   efdcfsi,   0x18, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdcfuf,   efdcfsf,   0x19, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdctui,   efdctsi,   0x1A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdctuf,   efdctsf,   0x1B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdctuiz,  speundef,  0x1C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdctsiz,  speundef,  0x1D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdtstgt,  efdtstlt,  0x1E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE); //
-+GEN_SPE(efdtsteq,  speundef,  0x1F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_DOUBLE); //
- 
- static opcode_t opcodes[] = {
- GEN_HANDLER(invalid, 0x00, 0x00, 0x00, 0xFFFFFFFF, PPC_NONE),
-@@ -9049,84 +9083,84 @@
- GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23),
- 
- #undef GEN_SPE
--#define GEN_SPE(name0, name1, opc2, opc3, inval, type)                        \
--GEN_HANDLER(name0##_##name1, 0x04, opc2, opc3, inval, type)
--GEN_SPE(evaddw,         speundef,      0x00, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evaddiw,        speundef,      0x01, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evsubfw,        speundef,      0x02, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evsubifw,       speundef,      0x03, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evabs,          evneg,         0x04, 0x08, 0x0000F800, PPC_SPE),
--GEN_SPE(evextsb,        evextsh,       0x05, 0x08, 0x0000F800, PPC_SPE),
--GEN_SPE(evrndw,         evcntlzw,      0x06, 0x08, 0x0000F800, PPC_SPE),
--GEN_SPE(evcntlsw,       brinc,         0x07, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evmra,          speundef,      0x02, 0x13, 0x0000F800, PPC_SPE),
--GEN_SPE(speundef,       evand,         0x08, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evandc,         speundef,      0x09, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evxor,          evor,          0x0B, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evnor,          eveqv,         0x0C, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evmwumi,        evmwsmi,       0x0C, 0x11, 0x00000000, PPC_SPE),
--GEN_SPE(evmwumia,       evmwsmia,      0x1C, 0x11, 0x00000000, PPC_SPE),
--GEN_SPE(evmwumiaa,      evmwsmiaa,     0x0C, 0x15, 0x00000000, PPC_SPE),
--GEN_SPE(speundef,       evorc,         0x0D, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evnand,         speundef,      0x0F, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evsrwu,         evsrws,        0x10, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evsrwiu,        evsrwis,       0x11, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evslw,          speundef,      0x12, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evslwi,         speundef,      0x13, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evrlw,          evsplati,      0x14, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evrlwi,         evsplatfi,     0x15, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evmergehi,      evmergelo,     0x16, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evmergehilo,    evmergelohi,   0x17, 0x08, 0x00000000, PPC_SPE),
--GEN_SPE(evcmpgtu,       evcmpgts,      0x18, 0x08, 0x00600000, PPC_SPE),
--GEN_SPE(evcmpltu,       evcmplts,      0x19, 0x08, 0x00600000, PPC_SPE),
--GEN_SPE(evcmpeq,        speundef,      0x1A, 0x08, 0x00600000, PPC_SPE),
--
--GEN_SPE(evfsadd,        evfssub,       0x00, 0x0A, 0x00000000, PPC_SPE_SINGLE),
--GEN_SPE(evfsabs,        evfsnabs,      0x02, 0x0A, 0x0000F800, PPC_SPE_SINGLE),
--GEN_SPE(evfsneg,        speundef,      0x03, 0x0A, 0x0000F800, PPC_SPE_SINGLE),
--GEN_SPE(evfsmul,        evfsdiv,       0x04, 0x0A, 0x00000000, PPC_SPE_SINGLE),
--GEN_SPE(evfscmpgt,      evfscmplt,     0x06, 0x0A, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(evfscmpeq,      speundef,      0x07, 0x0A, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(evfscfui,       evfscfsi,      0x08, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfscfuf,       evfscfsf,      0x09, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfsctui,       evfsctsi,      0x0A, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfsctuf,       evfsctsf,      0x0B, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfsctuiz,      speundef,      0x0C, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfsctsiz,      speundef,      0x0D, 0x0A, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(evfststgt,      evfststlt,     0x0E, 0x0A, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(evfststeq,      speundef,      0x0F, 0x0A, 0x00600000, PPC_SPE_SINGLE),
--
--GEN_SPE(efsadd,         efssub,        0x00, 0x0B, 0x00000000, PPC_SPE_SINGLE),
--GEN_SPE(efsabs,         efsnabs,       0x02, 0x0B, 0x0000F800, PPC_SPE_SINGLE),
--GEN_SPE(efsneg,         speundef,      0x03, 0x0B, 0x0000F800, PPC_SPE_SINGLE),
--GEN_SPE(efsmul,         efsdiv,        0x04, 0x0B, 0x00000000, PPC_SPE_SINGLE),
--GEN_SPE(efscmpgt,       efscmplt,      0x06, 0x0B, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(efscmpeq,       efscfd,        0x07, 0x0B, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(efscfui,        efscfsi,       0x08, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efscfuf,        efscfsf,       0x09, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efsctui,        efsctsi,       0x0A, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efsctuf,        efsctsf,       0x0B, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efsctuiz,       speundef,      0x0C, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efsctsiz,       speundef,      0x0D, 0x0B, 0x00180000, PPC_SPE_SINGLE),
--GEN_SPE(efststgt,       efststlt,      0x0E, 0x0B, 0x00600000, PPC_SPE_SINGLE),
--GEN_SPE(efststeq,       speundef,      0x0F, 0x0B, 0x00600000, PPC_SPE_SINGLE),
--
--GEN_SPE(efdadd,         efdsub,        0x10, 0x0B, 0x00000000, PPC_SPE_DOUBLE),
--GEN_SPE(efdcfuid,       efdcfsid,      0x11, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdabs,         efdnabs,       0x12, 0x0B, 0x0000F800, PPC_SPE_DOUBLE),
--GEN_SPE(efdneg,         speundef,      0x13, 0x0B, 0x0000F800, PPC_SPE_DOUBLE),
--GEN_SPE(efdmul,         efddiv,        0x14, 0x0B, 0x00000000, PPC_SPE_DOUBLE),
--GEN_SPE(efdctuidz,      efdctsidz,     0x15, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdcmpgt,       efdcmplt,      0x16, 0x0B, 0x00600000, PPC_SPE_DOUBLE),
--GEN_SPE(efdcmpeq,       efdcfs,        0x17, 0x0B, 0x00600000, PPC_SPE_DOUBLE),
--GEN_SPE(efdcfui,        efdcfsi,       0x18, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdcfuf,        efdcfsf,       0x19, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdctui,        efdctsi,       0x1A, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdctuf,        efdctsf,       0x1B, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdctuiz,       speundef,      0x1C, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdctsiz,       speundef,      0x1D, 0x0B, 0x00180000, PPC_SPE_DOUBLE),
--GEN_SPE(efdtstgt,       efdtstlt,      0x1E, 0x0B, 0x00600000, PPC_SPE_DOUBLE),
--GEN_SPE(efdtsteq,       speundef,      0x1F, 0x0B, 0x00600000, PPC_SPE_DOUBLE),
-+#define GEN_SPE(name0, name1, opc2, opc3, inval0, inval1, type) \
-+    GEN_OPCODE_DUAL(name0##_##name1, 0x04, opc2, opc3, inval0, inval1, type, PPC_NONE)
-+GEN_SPE(evaddw,      speundef,    0x00, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evaddiw,     speundef,    0x01, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evsubfw,     speundef,    0x02, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evsubifw,    speundef,    0x03, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evabs,       evneg,       0x04, 0x08, 0x0000F800, 0x0000F800, PPC_SPE),
-+GEN_SPE(evextsb,     evextsh,     0x05, 0x08, 0x0000F800, 0x0000F800, PPC_SPE),
-+GEN_SPE(evrndw,      evcntlzw,    0x06, 0x08, 0x0000F800, 0x0000F800, PPC_SPE),
-+GEN_SPE(evcntlsw,    brinc,       0x07, 0x08, 0x0000F800, 0x00000000, PPC_SPE),
-+GEN_SPE(evmra,       speundef,    0x02, 0x13, 0x0000F800, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(speundef,    evand,       0x08, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE),
-+GEN_SPE(evandc,      speundef,    0x09, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evxor,       evor,        0x0B, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evnor,       eveqv,       0x0C, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evmwumi,     evmwsmi,     0x0C, 0x11, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evmwumia,    evmwsmia,    0x1C, 0x11, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evmwumiaa,   evmwsmiaa,   0x0C, 0x15, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(speundef,    evorc,       0x0D, 0x08, 0xFFFFFFFF, 0x00000000, PPC_SPE),
-+GEN_SPE(evnand,      speundef,    0x0F, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evsrwu,      evsrws,      0x10, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evsrwiu,     evsrwis,     0x11, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evslw,       speundef,    0x12, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evslwi,      speundef,    0x13, 0x08, 0x00000000, 0xFFFFFFFF, PPC_SPE),
-+GEN_SPE(evrlw,       evsplati,    0x14, 0x08, 0x00000000, 0x0000F800, PPC_SPE),
-+GEN_SPE(evrlwi,      evsplatfi,   0x15, 0x08, 0x00000000, 0x0000F800, PPC_SPE),
-+GEN_SPE(evmergehi,   evmergelo,   0x16, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evmergehilo, evmergelohi, 0x17, 0x08, 0x00000000, 0x00000000, PPC_SPE),
-+GEN_SPE(evcmpgtu,    evcmpgts,    0x18, 0x08, 0x00600000, 0x00600000, PPC_SPE),
-+GEN_SPE(evcmpltu,    evcmplts,    0x19, 0x08, 0x00600000, 0x00600000, PPC_SPE),
-+GEN_SPE(evcmpeq,     speundef,    0x1A, 0x08, 0x00600000, 0xFFFFFFFF, PPC_SPE),
-+
-+GEN_SPE(evfsadd,     evfssub,     0x00, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE),
-+GEN_SPE(evfsabs,     evfsnabs,    0x02, 0x0A, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE),
-+GEN_SPE(evfsneg,     speundef,    0x03, 0x0A, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(evfsmul,     evfsdiv,     0x04, 0x0A, 0x00000000, 0x00000000, PPC_SPE_SINGLE),
-+GEN_SPE(evfscmpgt,   evfscmplt,   0x06, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE),
-+GEN_SPE(evfscmpeq,   speundef,    0x07, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(evfscfui,    evfscfsi,    0x08, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(evfscfuf,    evfscfsf,    0x09, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(evfsctui,    evfsctsi,    0x0A, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(evfsctuf,    evfsctsf,    0x0B, 0x0A, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(evfsctuiz,   speundef,    0x0C, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(evfsctsiz,   speundef,    0x0D, 0x0A, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(evfststgt,   evfststlt,   0x0E, 0x0A, 0x00600000, 0x00600000, PPC_SPE_SINGLE),
-+GEN_SPE(evfststeq,   speundef,    0x0F, 0x0A, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+
-+GEN_SPE(efsadd,      efssub,      0x00, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE),
-+GEN_SPE(efsabs,      efsnabs,     0x02, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_SINGLE),
-+GEN_SPE(efsneg,      speundef,    0x03, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(efsmul,      efsdiv,      0x04, 0x0B, 0x00000000, 0x00000000, PPC_SPE_SINGLE),
-+GEN_SPE(efscmpgt,    efscmplt,    0x06, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE),
-+GEN_SPE(efscmpeq,    efscfd,      0x07, 0x0B, 0x00600000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(efscfui,     efscfsi,     0x08, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(efscfuf,     efscfsf,     0x09, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(efsctui,     efsctsi,     0x0A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(efsctuf,     efsctsf,     0x0B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_SINGLE),
-+GEN_SPE(efsctuiz,    speundef,    0x0C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(efsctsiz,    speundef,    0x0D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+GEN_SPE(efststgt,    efststlt,    0x0E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_SINGLE),
-+GEN_SPE(efststeq,    speundef,    0x0F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_SINGLE),
-+
-+GEN_SPE(efdadd,      efdsub,      0x10, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdcfuid,    efdcfsid,    0x11, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdabs,      efdnabs,     0x12, 0x0B, 0x0000F800, 0x0000F800, PPC_SPE_DOUBLE),
-+GEN_SPE(efdneg,      speundef,    0x13, 0x0B, 0x0000F800, 0xFFFFFFFF, PPC_SPE_DOUBLE),
-+GEN_SPE(efdmul,      efddiv,      0x14, 0x0B, 0x00000000, 0x00000000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdctuidz,   efdctsidz,   0x15, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdcmpgt,    efdcmplt,    0x16, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdcmpeq,    efdcfs,      0x17, 0x0B, 0x00600000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdcfui,     efdcfsi,     0x18, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdcfuf,     efdcfsf,     0x19, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdctui,     efdctsi,     0x1A, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdctuf,     efdctsf,     0x1B, 0x0B, 0x00180000, 0x00180000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdctuiz,    speundef,    0x1C, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE),
-+GEN_SPE(efdctsiz,    speundef,    0x1D, 0x0B, 0x00180000, 0xFFFFFFFF, PPC_SPE_DOUBLE),
-+GEN_SPE(efdtstgt,    efdtstlt,    0x1E, 0x0B, 0x00600000, 0x00600000, PPC_SPE_DOUBLE),
-+GEN_SPE(efdtsteq,    speundef,    0x1F, 0x0B, 0x00600000, 0xFFFFFFFF, PPC_SPE_DOUBLE),
- 
- #undef GEN_SPEOP_LDST
- #define GEN_SPEOP_LDST(name, opc2, sh)                                        \
-@@ -9456,11 +9490,19 @@
-                          opc3(ctx.opcode), ctx.opcode, ctx.nip - 4, (int)msr_ir);
-             }
-         } else {
--            if (unlikely((ctx.opcode & handler->inval) != 0)) {
-+            uint32_t inval;
-+
-+            if (unlikely(handler->type & (PPC_SPE | PPC_SPE_SINGLE | PPC_SPE_DOUBLE) && Rc(ctx.opcode))) {
-+                inval = handler->inval2;
-+            } else {
-+                inval = handler->inval1;
-+            }
-+
-+            if (unlikely((ctx.opcode & inval) != 0)) {
-                 if (qemu_log_enabled()) {
-                     qemu_log("invalid bits: %08x for opcode: "
-                              "%02x - %02x - %02x (%08x) " TARGET_FMT_lx "\n",
--                             ctx.opcode & handler->inval, opc1(ctx.opcode),
-+                             ctx.opcode & inval, opc1(ctx.opcode),
-                              opc2(ctx.opcode), opc3(ctx.opcode),
-                              ctx.opcode, ctx.nip - 4);
-                 }
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/arm-bgr.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/arm-bgr.patch
similarity index 75%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/arm-bgr.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/arm-bgr.patch
index a8fe65a..f3ebde6 100644
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/arm-bgr.patch
+++ b/meta/recipes-devtools/qemu/qemu-1.2.0/arm-bgr.patch
@@ -11,20 +11,20 @@ RP 16/9/2011
 
 Upstream-Status: Pending
 
-Index: qemu-0.14.0/hw/pl110.c
+Index: qemu-1.2.0/hw/pl110.c
 ===================================================================
---- qemu-0.14.0.orig/hw/pl110.c	2011-09-16 14:45:34.228668514 +0100
-+++ qemu-0.14.0/hw/pl110.c	2011-09-16 15:17:22.458671206 +0100
-@@ -141,7 +141,11 @@
+--- qemu-1.2.0.orig/hw/pl110.c	2012-09-06 14:07:27.619821133 -0700
++++ qemu-1.2.0/hw/pl110.c	2012-09-06 14:12:07.699829648 -0700
+@@ -168,7 +168,11 @@
          fprintf(stderr, "pl110: Bad color depth\n");
          exit(1);
      }
 -    if (s->cr & PL110_CR_BGR)
 +
-+    if (s->versatile && s->bpp == BPP_16)
++    if (s->version && s->bpp == BPP_16)
 +        /* Code assumes BPP_16 == 565 and BGR is never set on the versatile in 565 mode */
 +        bpp_offset = 0;
 +    else if (s->cr & PL110_CR_BGR)
          bpp_offset = 0;
      else
-         bpp_offset = 18;
+         bpp_offset = 24;
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/enable-i386-linux-user.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/enable-i386-linux-user.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/enable-i386-linux-user.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/enable-i386-linux-user.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/fallback-to-safe-mmap_min_addr.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/fallback-to-safe-mmap_min_addr.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/fallback-to-safe-mmap_min_addr.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/fallback-to-safe-mmap_min_addr.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/fix-configure-checks.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/fix-configure-checks.patch
similarity index 59%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/fix-configure-checks.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/fix-configure-checks.patch
index 96881bb..ef77c92 100644
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/fix-configure-checks.patch
+++ b/meta/recipes-devtools/qemu/qemu-1.2.0/fix-configure-checks.patch
@@ -8,15 +8,15 @@ Patch from Paul Eggleton, Comments by RP 28/11/10
 
 Upstream-Status: Inappropriate [embedded specific]
 
-Index: qemu-0.14.0/configure
+Index: qemu-1.2.0/configure
 ===================================================================
---- qemu-0.14.0.orig/configure
-+++ qemu-0.14.0/configure
-@@ -229,6 +229,7 @@ QEMU_CFLAGS="-Wstrict-prototypes -Wredun
+--- qemu-1.2.0.orig/configure	2012-09-05 07:03:06.000000000 -0700
++++ qemu-1.2.0/configure	2012-09-06 13:55:07.007793823 -0700
+@@ -281,6 +281,7 @@
+ QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
  QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
- QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
- QEMU_INCLUDES="-I. -I\$(SRC_PATH)"
+ QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
 +QEMU_CFLAGS="$QEMU_CFLAGS $CFLAGS"
- LDFLAGS="-g $LDFLAGS"
- 
- # make source path absolute
+ if test "$debug_info" = "yes"; then
+     CFLAGS="-g $CFLAGS"
+     LDFLAGS="-g $LDFLAGS"
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/init-info.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/init-info.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/init-info.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/init-info.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/larger_default_ram_size.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/larger_default_ram_size.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/larger_default_ram_size.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/larger_default_ram_size.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/linker-flags.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/linker-flags.patch
similarity index 64%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/linker-flags.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/linker-flags.patch
index c0d1e55..0106ae2 100644
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/linker-flags.patch
+++ b/meta/recipes-devtools/qemu/qemu-1.2.0/linker-flags.patch
@@ -10,14 +10,14 @@ JL - 15/06/10
 
 Upstream-Status: Inappropriate [configuration]
 
-Index: qemu-0.14.0/Makefile.target
+Index: qemu-1.2.0/Makefile.target
 ===================================================================
---- qemu-0.14.0.orig/Makefile.target
-+++ qemu-0.14.0/Makefile.target
-@@ -218,7 +218,7 @@ obj-$(CONFIG_REALLY_VIRTFS) += virtio-9p
- obj-y += rwhandler.o
- obj-$(CONFIG_KVM) += kvm.o kvm-all.o
- obj-$(CONFIG_NO_KVM) += kvm-stub.o
+--- qemu-1.2.0.orig/Makefile.target	2012-09-05 07:03:06.000000000 -0700
++++ qemu-1.2.0/Makefile.target	2012-09-06 13:42:24.819764288 -0700
+@@ -130,7 +130,7 @@
+ obj-$(CONFIG_HAVE_CORE_DUMP) += dump.o
+ obj-$(CONFIG_NO_GET_MEMORY_MAPPING) += memory_mapping-stub.o
+ obj-$(CONFIG_NO_CORE_DUMP) += dump-stub.o
 -LIBS+=-lz
 +LIBS+=-lz -lX11 -ldl
  
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/no-strip.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/no-strip.patch
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/no-strip.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/no-strip.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/powerpc_rom.bin b/meta/recipes-devtools/qemu/qemu-1.2.0/powerpc_rom.bin
similarity index 100%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/powerpc_rom.bin
rename to meta/recipes-devtools/qemu/qemu-1.2.0/powerpc_rom.bin
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch b/meta/recipes-devtools/qemu/qemu-1.2.0/qemu-vmware-vga-depth.patch
similarity index 61%
rename from meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch
rename to meta/recipes-devtools/qemu/qemu-1.2.0/qemu-vmware-vga-depth.patch
index c4c5424..a1b8035 100644
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch
+++ b/meta/recipes-devtools/qemu/qemu-1.2.0/qemu-vmware-vga-depth.patch
@@ -4,11 +4,11 @@
 
 Upstream-Status: Pending
 
-Index: qemu-0.14.0/console.h
+Index: qemu-1.2.0/console.h
 ===================================================================
---- qemu-0.14.0.orig/console.h
-+++ qemu-0.14.0/console.h
-@@ -171,6 +171,12 @@ struct DisplayAllocator {
+--- qemu-1.2.0.orig/console.h	2012-09-06 14:12:23.371832381 -0700
++++ qemu-1.2.0/console.h	2012-09-06 14:12:23.627832390 -0700
+@@ -171,6 +171,12 @@
      void (*free_displaysurface)(DisplaySurface *surface);
  };
  
@@ -21,7 +21,7 @@ Index: qemu-0.14.0/console.h
  struct DisplayState {
      struct DisplaySurface *surface;
      void *opaque;
-@@ -178,6 +184,7 @@ struct DisplayState {
+@@ -178,6 +184,7 @@
  
      struct DisplayAllocator* allocator;
      struct DisplayChangeListener* listeners;
@@ -29,7 +29,7 @@ Index: qemu-0.14.0/console.h
  
      void (*mouse_set)(int x, int y, int on);
      void (*cursor_define)(QEMUCursor *cursor);
-@@ -229,6 +236,12 @@ static inline void register_displaychang
+@@ -233,6 +240,12 @@
      ds->listeners = dcl;
  }
  
@@ -42,47 +42,35 @@ Index: qemu-0.14.0/console.h
  static inline void dpy_update(DisplayState *s, int x, int y, int w, int h)
  {
      struct DisplayChangeListener *dcl = s->listeners;
-Index: qemu-0.14.0/hw/vmware_vga.c
+Index: qemu-1.2.0/hw/vmware_vga.c
 ===================================================================
---- qemu-0.14.0.orig/hw/vmware_vga.c
-+++ qemu-0.14.0/hw/vmware_vga.c
-@@ -1001,8 +1001,9 @@ static void vmsvga_update_display(void *
-     }
- }
- 
--static void vmsvga_reset(struct vmsvga_state_s *s)
-+static void vmsvga_reset(void *parm)
- {
-+    struct vmsvga_state_s *s = (struct vmsvga_state_s *)parm;
-     s->index = 0;
-     s->enable = 0;
-     s->config = 0;
-@@ -1207,6 +1208,8 @@ static const VMStateDescription vmstate_
- 
- static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
+--- qemu-1.2.0.orig/hw/vmware_vga.c	2012-09-06 14:12:23.371832381 -0700
++++ qemu-1.2.0/hw/vmware_vga.c	2012-09-06 14:18:05.595845288 -0700
+@@ -1081,6 +1081,8 @@
+ static void vmsvga_init(struct vmsvga_state_s *s,
+                         MemoryRegion *address_space, MemoryRegion *io)
  {
 +    DisplayPostCallback *dpc;
 +
      s->scratch_size = SVGA_SCRATCH_SIZE;
-     s->scratch = qemu_malloc(s->scratch_size * 4);
+     s->scratch = g_malloc(s->scratch_size * 4);
  
-@@ -1224,7 +1227,10 @@ static void vmsvga_init(struct vmsvga_st
-     vga_init(&s->vga);
+@@ -1098,6 +1100,10 @@
+     vga_common_init(&s->vga);
+     vga_init(&s->vga, address_space, io, true);
      vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
- 
--    vmsvga_reset(s);
-+    dpc = qemu_mallocz(sizeof(DisplayPostCallback));
++    dpc = g_malloc0(sizeof(DisplayPostCallback));
 +    dpc->postcall = vmsvga_reset;
 +    dpc->parm = s;
 +    register_displaypostcallback(s->vga.ds, dpc);
- }
  
- static void pci_vmsvga_map_ioport(PCIDevice *pci_dev, int region_num,
-Index: qemu-0.14.0/qemu-common.h
+     s->depth = ds_get_bits_per_pixel(s->vga.ds);
+     s->bypp = ds_get_bytes_per_pixel(s->vga.ds);
+Index: qemu-1.2.0/qemu-common.h
 ===================================================================
---- qemu-0.14.0.orig/qemu-common.h
-+++ qemu-0.14.0/qemu-common.h
-@@ -241,6 +241,7 @@ typedef struct DisplayState DisplayState
+--- qemu-1.2.0.orig/qemu-common.h	2012-09-06 14:12:23.371832381 -0700
++++ qemu-1.2.0/qemu-common.h	2012-09-06 14:12:23.643832391 -0700
+@@ -250,6 +250,7 @@
  typedef struct DisplayChangeListener DisplayChangeListener;
  typedef struct DisplaySurface DisplaySurface;
  typedef struct DisplayAllocator DisplayAllocator;
@@ -90,19 +78,19 @@ Index: qemu-0.14.0/qemu-common.h
  typedef struct PixelFormat PixelFormat;
  typedef struct TextConsole TextConsole;
  typedef TextConsole QEMUConsole;
-Index: qemu-0.14.0/vl.c
+Index: qemu-1.2.0/vl.c
 ===================================================================
---- qemu-0.14.0.orig/vl.c
-+++ qemu-0.14.0/vl.c
-@@ -1920,6 +1920,7 @@ int main(int argc, char **argv, char **e
+--- qemu-1.2.0.orig/vl.c	2012-09-06 14:12:23.371832381 -0700
++++ qemu-1.2.0/vl.c	2012-09-06 14:17:32.635844142 -0700
+@@ -2352,6 +2352,7 @@
      char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */
      DisplayState *ds;
      DisplayChangeListener *dcl;
 +    DisplayPostCallback *dpc;
      int cyls, heads, secs, translation;
-     QemuOpts *hda_opts = NULL, *opts;
+     QemuOpts *hda_opts = NULL, *opts, *machine_opts;
      QemuOptsList *olist;
-@@ -3101,6 +3102,13 @@ int main(int argc, char **argv, char **e
+@@ -3699,6 +3700,13 @@
  
      /* display setup */
      dpy_resize(ds);
diff --git a/meta/recipes-devtools/qemu/qemu_0.15.1.bb b/meta/recipes-devtools/qemu/qemu_1.2.0.bb
similarity index 57%
rename from meta/recipes-devtools/qemu/qemu_0.15.1.bb
rename to meta/recipes-devtools/qemu/qemu_1.2.0.bb
index f4c86f0..55ac532 100644
--- a/meta/recipes-devtools/qemu/qemu_0.15.1.bb
+++ b/meta/recipes-devtools/qemu/qemu_1.2.0.bb
@@ -3,13 +3,8 @@ require qemu.inc
 LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
                     file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
 
-PR = "r11"
-
-FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
-FILESDIR = "${WORKDIR}"
-
 SRC_URI = "\
-    http://wiki.qemu.org/download/qemu-${PV}.tar.gz \
+    http://wiki.qemu.org/download/qemu-${PV}.tar.bz2 \
     file://powerpc_rom.bin \
     file://no-strip.patch \
     file://linker-flags.patch \
@@ -18,16 +13,9 @@ SRC_URI = "\
     file://fallback-to-safe-mmap_min_addr.patch \
     file://larger_default_ram_size.patch \
     file://arm-bgr.patch \
-    file://a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch \
-    file://0001-ppc64-Fix-linker-script.patch \
-    file://ppc-s500-set-invalid-mask.patch \
-    file://hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch \
     "
-
-SRC_URI[md5sum] = "34f17737baaf1b3495c89cd6d4a607ed"
-SRC_URI[sha256sum] = "7705b14d9b8e4df4a0b1790980e618084261e8daef0672a1aa7a830a0f3db5ba"
-
-S = "${WORKDIR}/qemu-${PV}"
+SRC_URI[md5sum] = "78eb1e984f4532aa9f2bdd3c127b5b61"
+SRC_URI[sha256sum] = "c8b84420d9f4869397f84cad2dabd9a475b7723d619a924a873740353e9df936"
 
 do_configure_prepend_virtclass-nativesdk() {
 	if [ "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "" ] ; then
-- 
1.7.9.5




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

* [PATCH 6/6] machines/x86: Drop redundant glibc configure knobs
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
                   ` (4 preceding siblings ...)
  2012-09-06 22:32 ` [PATCH 5/6] qemu: Update from 0.15 to 1.2 Khem Raj
@ 2012-09-06 22:32 ` Khem Raj
  2012-09-07  8:06 ` [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
  2012-09-10 15:56 ` Saul Wold
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-06 22:32 UTC (permalink / raw)
  To: openembedded-core

nptl and thereby tls are not optional anymore

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/machine/include/ia32-base.inc |    5 -----
 meta/conf/machine/qemux86-64.conf       |    3 ---
 meta/conf/machine/qemux86.conf          |    4 ----
 3 files changed, 12 deletions(-)

diff --git a/meta/conf/machine/include/ia32-base.inc b/meta/conf/machine/include/ia32-base.inc
index af583ae..78d4458 100644
--- a/meta/conf/machine/include/ia32-base.inc
+++ b/meta/conf/machine/include/ia32-base.inc
@@ -18,11 +18,6 @@ KERNEL_IMAGETYPE ?= "bzImage"
 SERIAL_CONSOLE ?= "115200 ttyS0"
 
 #
-# glibc-related variables
-#
-GLIBC_ADDONS ?= "nptl"
-
-#
 # kernel-related variables
 #
 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
diff --git a/meta/conf/machine/qemux86-64.conf b/meta/conf/machine/qemux86-64.conf
index 285054a..8d4bd6f 100644
--- a/meta/conf/machine/qemux86-64.conf
+++ b/meta/conf/machine/qemux86-64.conf
@@ -26,7 +26,4 @@ require conf/machine/include/qemu.inc
 
 MACHINE_FEATURES += "x86"
 
-GLIBC_ADDONS = "nptl"
-GLIBC_EXTRA_OECONF = "--with-tls"
-
 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf
index c81afe5..6edf386 100644
--- a/meta/conf/machine/qemux86.conf
+++ b/meta/conf/machine/qemux86.conf
@@ -26,8 +26,4 @@ require conf/machine/include/qemu.inc
 
 MACHINE_FEATURES += "x86"
 
-GLIBC_ADDONS = "nptl"
-GLIBC_EXTRA_OECONF = "--with-tls"
-
 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "v86d"
-
-- 
1.7.9.5




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

* Re: [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
                   ` (5 preceding siblings ...)
  2012-09-06 22:32 ` [PATCH 6/6] machines/x86: Drop redundant glibc configure knobs Khem Raj
@ 2012-09-07  8:06 ` Khem Raj
  2012-09-10 15:56 ` Saul Wold
  7 siblings, 0 replies; 12+ messages in thread
From: Khem Raj @ 2012-09-07  8:06 UTC (permalink / raw)
  To: openembedded-core

On Thu, Sep 6, 2012 at 3:32 PM, Khem Raj <raj.khem@gmail.com> wrote:
> This patchset updates qemu to 1.2 release
> Adds kconfig to eglibc, kconfig is of interest for
> eglibc upstream which is next step.
> Removes nptl and enable-tls configure options from
> x86 machine configurations

I missed to push a patch to runqemu-internal script to pull branch
now the branch has that additional patch along with these 6

>
> The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:
>
>   adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)
>
> are available in the git repository at:
>
>   git://git.openembedded.org/openembedded-core-contrib kraj/qemu-eglibc-updates
>   http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/qemu-eglibc-updates
>
> Khem Raj (6):
>   eglibc-2.16: Add kconfig infrastructure
>   eglibc: Enable kconfig for option management
>   kconfig-frontends: Create symlinks for conf and mconf
>   qemu-git: Move to tip of git past 1.2 release
>   qemu: Update from 0.15 to 1.2
>   machines/x86: Drop redundant glibc configure knobs
>
>  meta/conf/machine/include/ia32-base.inc            |    5 -
>  meta/conf/machine/qemux86-64.conf                  |    3 -
>  meta/conf/machine/qemux86.conf                     |    4 -
>  .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
>  ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
>  ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
>  meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
>  meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
>  meta/recipes-core/eglibc/eglibc.inc                |    4 +
>  meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
>  .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
>  .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
>  .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
>  ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
>  .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
>  .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
>  .../enable-i386-linux-user.patch                   |    0
>  .../fallback-to-safe-mmap_min_addr.patch           |    0
>  .../fix-configure-checks.patch                     |   18 +-
>  .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
>  .../larger_default_ram_size.patch                  |    0
>  .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
>  .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
>  .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
>  .../qemu-vmware-vga-depth.patch                    |   70 +-
>  .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
>  .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
>  meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
>  28 files changed, 1431 insertions(+), 868 deletions(-)
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
>  create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
>  delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
>  rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
>  create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
>  rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)
>
> --
> 1.7.9.5
>



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

* Re: [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
  2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
                   ` (6 preceding siblings ...)
  2012-09-07  8:06 ` [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
@ 2012-09-10 15:56 ` Saul Wold
  2012-09-10 15:58   ` Martin Jansa
  7 siblings, 1 reply; 12+ messages in thread
From: Saul Wold @ 2012-09-10 15:56 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-core

On 09/06/2012 03:32 PM, Khem Raj wrote:
> This patchset updates qemu to 1.2 release
> Adds kconfig to eglibc, kconfig is of interest for
> eglibc upstream which is next step.
> Removes nptl and enable-tls configure options from
> x86 machine configurations
>
> The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:
>
>    adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)
>
> are available in the git repository at:
>
>    git://git.openembedded.org/openembedded-core-contrib kraj/qemu-eglibc-updates
>    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/qemu-eglibc-updates
>
> Khem Raj (6):
>    eglibc-2.16: Add kconfig infrastructure
>    eglibc: Enable kconfig for option management
>    kconfig-frontends: Create symlinks for conf and mconf
>    qemu-git: Move to tip of git past 1.2 release
>    qemu: Update from 0.15 to 1.2
>    machines/x86: Drop redundant glibc configure knobs
>
>   meta/conf/machine/include/ia32-base.inc            |    5 -
>   meta/conf/machine/qemux86-64.conf                  |    3 -
>   meta/conf/machine/qemux86.conf                     |    4 -
>   .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
>   ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
>   ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
>   meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
>   meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
>   meta/recipes-core/eglibc/eglibc.inc                |    4 +
>   meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
>   .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
>   .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
>   .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
>   ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
>   .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
>   .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
>   .../enable-i386-linux-user.patch                   |    0
>   .../fallback-to-safe-mmap_min_addr.patch           |    0
>   .../fix-configure-checks.patch                     |   18 +-
>   .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
>   .../larger_default_ram_size.patch                  |    0
>   .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
>   .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
>   .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
>   .../qemu-vmware-vga-depth.patch                    |   70 +-
>   .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
>   .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
>   meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
>   28 files changed, 1431 insertions(+), 868 deletions(-)
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
>   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
>   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
>   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
>   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
>   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
>   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
>   create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
>   rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)
>

Merged to OE-Core (along with the runqemu fix)

Thanks
	Sau!




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

* Re: [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
  2012-09-10 15:56 ` Saul Wold
@ 2012-09-10 15:58   ` Martin Jansa
  2012-09-10 15:59     ` Saul Wold
  2012-09-10 16:25     ` Richard Purdie
  0 siblings, 2 replies; 12+ messages in thread
From: Martin Jansa @ 2012-09-10 15:58 UTC (permalink / raw)
  To: Saul Wold; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 5222 bytes --]

On Mon, Sep 10, 2012 at 08:56:16AM -0700, Saul Wold wrote:
> On 09/06/2012 03:32 PM, Khem Raj wrote:
> > This patchset updates qemu to 1.2 release
> > Adds kconfig to eglibc, kconfig is of interest for
> > eglibc upstream which is next step.
> > Removes nptl and enable-tls configure options from
> > x86 machine configurations
> >
> > The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:
> >
> >    adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)
> >
> > are available in the git repository at:
> >
> >    git://git.openembedded.org/openembedded-core-contrib kraj/qemu-eglibc-updates
> >    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/qemu-eglibc-updates
> >
> > Khem Raj (6):
> >    eglibc-2.16: Add kconfig infrastructure
> >    eglibc: Enable kconfig for option management
> >    kconfig-frontends: Create symlinks for conf and mconf
> >    qemu-git: Move to tip of git past 1.2 release
> >    qemu: Update from 0.15 to 1.2
> >    machines/x86: Drop redundant glibc configure knobs
> >
> >   meta/conf/machine/include/ia32-base.inc            |    5 -
> >   meta/conf/machine/qemux86-64.conf                  |    3 -
> >   meta/conf/machine/qemux86.conf                     |    4 -
> >   .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
> >   ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
> >   ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
> >   meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
> >   meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
> >   meta/recipes-core/eglibc/eglibc.inc                |    4 +
> >   meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
> >   .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
> >   .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
> >   .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
> >   ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
> >   .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
> >   .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
> >   .../enable-i386-linux-user.patch                   |    0
> >   .../fallback-to-safe-mmap_min_addr.patch           |    0
> >   .../fix-configure-checks.patch                     |   18 +-
> >   .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
> >   .../larger_default_ram_size.patch                  |    0
> >   .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
> >   .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
> >   .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
> >   .../qemu-vmware-vga-depth.patch                    |   70 +-
> >   .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
> >   .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
> >   meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
> >   28 files changed, 1431 insertions(+), 868 deletions(-)
> >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
> >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
> >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
> >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
> >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
> >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
> >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
> >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
> >   create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
> >   rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)
> >
> 
> Merged to OE-Core (along with the runqemu fix)

Please merge
http://patchwork.openembedded.org/patch/36205/
to fix eglibc-initial build

Cheers,
-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

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

* Re: [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
  2012-09-10 15:58   ` Martin Jansa
@ 2012-09-10 15:59     ` Saul Wold
  2012-09-10 16:25     ` Richard Purdie
  1 sibling, 0 replies; 12+ messages in thread
From: Saul Wold @ 2012-09-10 15:59 UTC (permalink / raw)
  To: Martin Jansa; +Cc: openembedded-core

On 09/10/2012 08:58 AM, Martin Jansa wrote:
> On Mon, Sep 10, 2012 at 08:56:16AM -0700, Saul Wold wrote:
>> On 09/06/2012 03:32 PM, Khem Raj wrote:
>>> This patchset updates qemu to 1.2 release
>>> Adds kconfig to eglibc, kconfig is of interest for
>>> eglibc upstream which is next step.
>>> Removes nptl and enable-tls configure options from
>>> x86 machine configurations
>>>
>>> The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:
>>>
>>>     adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)
>>>
>>> are available in the git repository at:
>>>
>>>     git://git.openembedded.org/openembedded-core-contrib kraj/qemu-eglibc-updates
>>>     http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/qemu-eglibc-updates
>>>
>>> Khem Raj (6):
>>>     eglibc-2.16: Add kconfig infrastructure
>>>     eglibc: Enable kconfig for option management
>>>     kconfig-frontends: Create symlinks for conf and mconf
>>>     qemu-git: Move to tip of git past 1.2 release
>>>     qemu: Update from 0.15 to 1.2
>>>     machines/x86: Drop redundant glibc configure knobs
>>>
>>>    meta/conf/machine/include/ia32-base.inc            |    5 -
>>>    meta/conf/machine/qemux86-64.conf                  |    3 -
>>>    meta/conf/machine/qemux86.conf                     |    4 -
>>>    .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
>>>    ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
>>>    ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
>>>    meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
>>>    meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
>>>    meta/recipes-core/eglibc/eglibc.inc                |    4 +
>>>    meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
>>>    .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
>>>    .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
>>>    .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
>>>    ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
>>>    .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
>>>    .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
>>>    .../enable-i386-linux-user.patch                   |    0
>>>    .../fallback-to-safe-mmap_min_addr.patch           |    0
>>>    .../fix-configure-checks.patch                     |   18 +-
>>>    .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
>>>    .../larger_default_ram_size.patch                  |    0
>>>    .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
>>>    .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
>>>    .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
>>>    .../qemu-vmware-vga-depth.patch                    |   70 +-
>>>    .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
>>>    .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
>>>    meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
>>>    28 files changed, 1431 insertions(+), 868 deletions(-)
>>>    create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
>>>    create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
>>>    create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
>>>    delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
>>>    delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
>>>    delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
>>>    delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
>>>    rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
>>>    create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
>>>    rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)
>>>
>>
>> Merged to OE-Core (along with the runqemu fix)
>
> Please merge
> http://patchwork.openembedded.org/patch/36205/
> to fix eglibc-initial build
>
I just queued it in master_under_test will be merged soon.

Sau!

> Cheers,
>



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

* Re: [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig
  2012-09-10 15:58   ` Martin Jansa
  2012-09-10 15:59     ` Saul Wold
@ 2012-09-10 16:25     ` Richard Purdie
  1 sibling, 0 replies; 12+ messages in thread
From: Richard Purdie @ 2012-09-10 16:25 UTC (permalink / raw)
  To: Martin Jansa; +Cc: openembedded-core

On Mon, 2012-09-10 at 17:58 +0200, Martin Jansa wrote:
> On Mon, Sep 10, 2012 at 08:56:16AM -0700, Saul Wold wrote:
> > On 09/06/2012 03:32 PM, Khem Raj wrote:
> > > This patchset updates qemu to 1.2 release
> > > Adds kconfig to eglibc, kconfig is of interest for
> > > eglibc upstream which is next step.
> > > Removes nptl and enable-tls configure options from
> > > x86 machine configurations
> > >
> > > The following changes since commit 610f8c0c0cab8e258919689fd641faec28b58caf:
> > >
> > >    adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:27:31 +0100)
> > >
> > > are available in the git repository at:
> > >
> > >    git://git.openembedded.org/openembedded-core-contrib kraj/qemu-eglibc-updates
> > >    http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/qemu-eglibc-updates
> > >
> > > Khem Raj (6):
> > >    eglibc-2.16: Add kconfig infrastructure
> > >    eglibc: Enable kconfig for option management
> > >    kconfig-frontends: Create symlinks for conf and mconf
> > >    qemu-git: Move to tip of git past 1.2 release
> > >    qemu: Update from 0.15 to 1.2
> > >    machines/x86: Drop redundant glibc configure knobs
> > >
> > >   meta/conf/machine/include/ia32-base.inc            |    5 -
> > >   meta/conf/machine/qemux86-64.conf                  |    3 -
> > >   meta/conf/machine/qemux86.conf                     |    4 -
> > >   .../0001-eglibc-menuconfig-support.patch           | 1007 ++++++++++++++++++++
> > >   ...0002-eglibc-menuconfig-hex-string-options.patch |  169 ++++
> > >   ...0003-eglibc-menuconfig-build-instructions.patch |  176 ++++
> > >   meta/recipes-core/eglibc/eglibc-initial.inc        |    1 +
> > >   meta/recipes-core/eglibc/eglibc-options.inc        |    4 +-
> > >   meta/recipes-core/eglibc/eglibc.inc                |    4 +
> > >   meta/recipes-core/eglibc/eglibc_2.16.bb            |    8 +-
> > >   .../kconfig-frontends/kconfig-frontends_3.5.bb     |    8 +-
> > >   .../qemu-0.15.1/0001-ppc64-Fix-linker-script.patch |   46 -
> > >   .../a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch |   66 --
> > >   ...-Actually-raise-interrupt-on-timer-expiry.patch |   41 -
> > >   .../qemu-0.15.1/ppc-s500-set-invalid-mask.patch    |  610 ------------
> > >   .../qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch |   12 +-
> > >   .../enable-i386-linux-user.patch                   |    0
> > >   .../fallback-to-safe-mmap_min_addr.patch           |    0
> > >   .../fix-configure-checks.patch                     |   18 +-
> > >   .../{qemu-0.15.1 => qemu-1.2.0}/init-info.patch    |    0
> > >   .../larger_default_ram_size.patch                  |    0
> > >   .../{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch |   14 +-
> > >   .../{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch     |    0
> > >   .../{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin    |  Bin 4096 -> 4096 bytes
> > >   .../qemu-vmware-vga-depth.patch                    |   70 +-
> > >   .../recipes-devtools/qemu/qemu-git/powerpc_rom.bin |  Bin 0 -> 4096 bytes
> > >   .../qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb}         |   18 +-
> > >   meta/recipes-devtools/qemu/qemu_git.bb             |   15 +-
> > >   28 files changed, 1431 insertions(+), 868 deletions(-)
> > >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0001-eglibc-menuconfig-support.patch
> > >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0002-eglibc-menuconfig-hex-string-options.patch
> > >   create mode 100644 meta/recipes-core/eglibc/eglibc-2.16/0003-eglibc-menuconfig-build-instructions.patch
> > >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/0001-ppc64-Fix-linker-script.patch
> > >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/a4d1f142542935b90d2eb30f3aead4edcf455fe6.patch
> > >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/hw-pl031-Actually-raise-interrupt-on-timer-expiry.patch
> > >   delete mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/ppc-s500-set-invalid-mask.patch
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/arm-bgr.patch (75%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/enable-i386-linux-user.patch (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fallback-to-safe-mmap_min_addr.patch (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/fix-configure-checks.patch (59%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/init-info.patch (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/larger_default_ram_size.patch (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/linker-flags.patch (64%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/no-strip.patch (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/powerpc_rom.bin (100%)
> > >   rename meta/recipes-devtools/qemu/{qemu-0.15.1 => qemu-1.2.0}/qemu-vmware-vga-depth.patch (61%)
> > >   create mode 100644 meta/recipes-devtools/qemu/qemu-git/powerpc_rom.bin
> > >   rename meta/recipes-devtools/qemu/{qemu_0.15.1.bb => qemu_1.2.0.bb} (57%)
> > >
> > 
> > Merged to OE-Core (along with the runqemu fix)
> 
> Please merge
> http://patchwork.openembedded.org/patch/36205/
> to fix eglibc-initial build

It also merged around the time you sent this message :)

Cheers,

Richard




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

end of thread, other threads:[~2012-09-10 16:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-06 22:32 [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
2012-09-06 22:32 ` [PATCH 1/6] eglibc-2.16: Add kconfig infrastructure Khem Raj
2012-09-06 22:32 ` [PATCH 2/6] eglibc: Enable kconfig for option management Khem Raj
2012-09-06 22:32 ` [PATCH 3/6] kconfig-frontends: Create symlinks for conf and mconf Khem Raj
2012-09-06 22:32 ` [PATCH 4/6] qemu-git: Move to tip of git past 1.2 release Khem Raj
2012-09-06 22:32 ` [PATCH 5/6] qemu: Update from 0.15 to 1.2 Khem Raj
2012-09-06 22:32 ` [PATCH 6/6] machines/x86: Drop redundant glibc configure knobs Khem Raj
2012-09-07  8:06 ` [PATCH 0/6] Upgrade qemu to 1.2 and eglibc with kconfig Khem Raj
2012-09-10 15:56 ` Saul Wold
2012-09-10 15:58   ` Martin Jansa
2012-09-10 15:59     ` Saul Wold
2012-09-10 16:25     ` Richard Purdie

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