Kernel & Multi-lib updates
Richard:
Here are some fixes including the PPC xserver issue
Sau!
The following changes since commit 7163ebd92a799b8f000b2b6f303b20de468b5f90:
Revert "kmod: Use base_libdir for installing libkmod" (2012-05-17 21:12:33 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib sgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage
Bruce Ashfield (3):
linux-yocto: intel BSP config changes
kern-tools: update LICENSE field to GPLv2
linux-yocto: policy cleanups
Gary Thomas (1):
xserver-kdrive: Fix X server on PowerPC when built with GCC 4.7.x
Jiajun Xu (1):
test-reexec: Add script to address issues when task re-execution
Lianhao Lu (3):
(libc-)package.bbclass: Added MLPREFIX to locale packages. multilib.conf: Added multilib support for kmod. multilib.bbclass: Added multilib specific package QA.
Mark Hatle (1):
sstate.bbclass: Make sure we don't have an empty fixmepath file
meta/classes/libc-package.bbclass | 4 +- meta/classes/multilib.bbclass | 31 +++ meta/classes/package.bbclass | 5 +- meta/classes/sstate.bbclass | 17 +- meta/conf/multilib.conf | 1 + .../fix-bogus-stack-variables.patch | 233 ++++++++++++++++++++ .../xorg-xserver/xserver-kdrive_1.7.99.2.bb | 3 +- .../kern-tools/kern-tools-native_git.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 +- scripts/test-reexec | 123 ++++++++++ 12 files changed, 411 insertions(+), 14 deletions(-) create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch create mode 100755 scripts/test-reexec
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 1/9] (libc-)package.bbclass: Added MLPREFIX to locale packages.
From: Lianhao Lu <[email protected]>
Added multilib prefix to the locale related package names/dependencies.
--- meta/classes/libc-package.bbclass | 4 ++-- meta/classes/package.bbclass | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)
meta/classes/libc-package.bbclass +2 -2
@@ -308,10 +308,10 @@ python package_do_split_gconvs () { pkgname = d.getVar('MLPREFIX') + 'locale-base-' + legitimize_package_name(name) d.setVar('ALLOW_EMPTY_%s' % pkgname, '1') d.setVar('PACKAGES', '%s %s' % (pkgname, d.getVar('PACKAGES', True))) - rprovides = ' virtual-locale-%s' % legitimize_package_name(name) + rprovides = ' %svirtual-locale-%s' % (mlprefix, legitimize_package_name(name)) m = re.match("(.*)_(.*)", name) if m: - rprovides += ' virtual-locale-%s' % m.group(1) + rprovides += ' %svirtual-locale-%s' % (mlprefix, m.group(1)) d.setVar('RPROVIDES_%s' % pkgname, rprovides) if use_bin == "compile":
meta/classes/package.bbclass +3 -2
@@ -400,13 +400,14 @@ python package_do_split_locales() { summary = d.getVar('SUMMARY', True) or pn description = d.getVar('DESCRIPTION', True) or "" locale_section = d.getVar('LOCALE_SECTION', True) + mlprefix = d.getVar('MLPREFIX', True) or "" for l in sorted(locales): ln = legitimize_package_name(l) pkg = pn + '-locale-' + ln packages.append(pkg) d.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l)) - d.setVar('RDEPENDS_' + pkg, '%s virtual-locale-%s' % (pn, ln)) - d.setVar('RPROVIDES_' + pkg, '%s-locale %s-translation' % (pn, ln)) + d.setVar('RDEPENDS_' + pkg, '%s %svirtual-locale-%s' % (pn, mlprefix, ln)) + d.setVar('RPROVIDES_' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln)) d.setVar('SUMMARY_' + pkg, '%s - %s translations' % (summary, l)) d.setVar('DESCRIPTION_' + pkg, '%s This package contains language translation files for the %s locale.' % (description, l)) if locale_section:
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 2/9] multilib.conf: Added multilib support for kmod.
In reply to Saul WoldFrom: Lianhao Lu <[email protected]>
--- meta/conf/multilib.conf | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
meta/conf/multilib.conf +1 -0
@@ -470,6 +470,7 @@ BBCLASSEXTEND_append_pn-mktemp = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-mobile-broadband-provider-info = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-module-init-tools-cross = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-module-init-tools = " ${MULTILIBS}" +BBCLASSEXTEND_append_pn-kmod = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-modutils-initscripts = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-mpeg2dec = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-mpfr = " ${MULTILIBS}"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 3/9] multilib.bbclass: Added multilib specific package QA.
In reply to Saul WoldFrom: Lianhao Lu <[email protected]>
Added a new PACKAGEFUNCS function to check the multilib packages' dependency.
--- meta/classes/multilib.bbclass | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-)
meta/classes/multilib.bbclass +31 -0
@@ -66,3 +66,34 @@ python __anonymous () { clsextend.map_variable("PACKAGE_INSTALL") clsextend.map_variable("INITSCRIPT_PACKAGES") } + +PACKAGEFUNCS_append = "do_package_qa_multilib" + +python do_package_qa_multilib() { + + def check_mlprefix(pkg, var, mlprefix): + values = bb.utils.explode_dep_versions(d.getVar('%s_%s' % (var, pkg), True) or d.getVar(var, True) or "") + candidates = [] + for i in values.keys(): + if i.startswith('virtual/'): + i = i[len('virtual/'):] + if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)): + candidates.append(i) + if len(candidates) > 0: + bb.warn("Multilib QA Issue: %s package %s - suspicious values '%s' in %s" + % (d.getVar('PN', True), pkg, ' '.join(candidates), var)) + + ml = d.getVar('MLPREFIX', True) + if not ml: + return + + packages = d.getVar('PACKAGES', True) + for pkg in packages.split(): + check_mlprefix(pkg, 'RDEPENDS', ml) + check_mlprefix(pkg, 'RPROVIDES', ml) + check_mlprefix(pkg, 'RRECOMMENDS', ml) + check_mlprefix(pkg, 'RSUGGESTS', ml) + check_mlprefix(pkg, 'RREPLACES', ml) + check_mlprefix(pkg, 'RCONFLICTS', ml) +} +
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 4/9] test-reexec: Add script to address issues when task re-execution
In reply to Saul WoldFrom: Jiajun Xu <[email protected]>
The script is used to address build issues when tasks of different recipes are re-executed. The script goes through all available recipes and their tasks. The test results are saved in ./reexeclogs. Force build logs are saved with prefix "force". Build failure logs are saved with prefix "failed".
[YOCTO #2123]
--- scripts/test-reexec | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) create mode 100755 scripts/test-reexec
scripts/test-reexec new file +123 -0
@@ -0,0 +1,123 @@ +#!/bin/bash + +# Test Script for task re-execution +# +# Copyright 2012 Intel Corporation +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# DESCRIPTION +# This script is intended to address issues for re-execution of +# tasks. The test results are saved in ./reexeclogs. Force build +# logs are saved with prefix "force". Build failure logs are saved with +# prefix "failed". Log files with prefix "initial" are used to save +# initial build logs for each recipe. Log files with prefix "clean" are +# used to save logs of clean task after testing for a recipe is finished. +# + +targets=`bitbake -s | cut -d " " -f 1` + +LOGS=./reexeclogs + +mkdir -p $LOGS + +# Clear sstate files for specified recipe +function clearsstate { + target=$1 + + sstate_dir=`bitbake $target -e | grep "^SSTATE_DIR" | cut -d "\"" -f 2` + sstate_pkgspec=`bitbake $target -e | grep "^SSTATE_PKGSPEC" | cut -d "\"" -f 2` + sstasks=`bitbake $target -e | grep "^SSTATETASKS" | cut -d "\"" -f 2` + + for sstask in $sstasks + do + sstask=${sstask:3} + case $sstask in + populate_sysroot) sstask="populate-sysroot" + ;; + populate_lic) sstask="populate-lic" + ;; + package_write_ipk) sstask="deploy-ipk" + ;; + package_write_deb) sstask="deploy-deb" + ;; + package_write_rpm) sstask="deploy-rpm" + ;; + package) sstask="package" + ;; + deploy) sstask="deploy" + ;; + *) + ;; + esac + + echo "Removing ${sstate_dir}/${sstate_pkgspec}*_${sstask}.tgz* for $target" + rm -rf ${sstate_dir}/${sstate_pkgspec}*_${sstask}.tgz* + done +} + +# Function to re-execute specified task of recipe +function testit { + target=$1 + task=$2 + + task=`echo $task | sed 's/_setscene//'` + + if [ -f $LOGS/force.$target.$task ]; then + return + fi + + case $task in + clean|build|cleansstate|cleanall|package|cleansstate2|package_write|package_write_ipk|package_write_rpm|package_write_deb|fetch|populate_lic) return;; + fetchall|devshell|buildall|listtasks|checkuri|checkuriall) return;; + esac + + echo "Attempting target $target, task $task" + echo "Initial build" + bitbake $target -c cleansstate > $LOGS/initial.$target.$task + bitbake $target >> $LOGS/initial.$target.$task + clearsstate $target >> $LOGS/initial.$target.$task + echo "Re-execution build" + bitbake $target -c $task -f > $LOGS/force.$target.$task + if [ "$?" != 0 ]; then + echo "FAILURE for $target $task" + cp $LOGS/force.$target.$task $LOGS/failed.$target.$task + bitbake $target -c clean > $LOGS/clean.$target.$task + else + bitbake $target >> $LOGS/force.$target.$task + if [ "$?" != 0 ]; then + echo "FAILURE2 for $target $task" + cp $LOGS/force.$target.$task $LOGS/failed.$target.$task + bitbake $target -c clean > $LOGS/clean.$target.$task + fi + fi + echo "Done" +} + +# Go through the recipe list and these recipes' task list +# Then re-execute them +for target in $targets; do + # Remove log messages from bitbake output + case $target in + Summary*|WARNING*|Loading*|Loaded*|Package*|=====*) continue;; + esac + tasks=`bitbake $target -c listtasks | grep ^do_ | sed s/do_//` + for task in $tasks; do + testit $target $task + done +done + +
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 7/9] linux-yocto: policy cleanups
In reply to Saul WoldFrom: Bruce Ashfield <[email protected]>
Updating the meta SRCREVs to pickup configuration policy cleanups:
49f931b meta/fishriver: remove redundant features and options 51a6d3f meta/emenlow: remove redundant features and options 101dd7f meta/crownbay: remove redundant features and options 4110ecd meta/sugarbay: remove redundant features and options 0f1304a meta/jasperforest: remove redundant features and options 0a56a3b meta/common-pc-64: factor out SCSI CDROM option b71938a meta/common-pc-64: use usb-mass-storage feature 0724f40 meta: add scsi cdrom feature
438bca8 meta/common-pc: use usb-mass-storage feature c970881 meta: factor out SCSI options from the usb-mass-storage feature 4c8135e meta: add scsi disk feature
6872a81 meta: add scsi feature
e706ec5 meta/sugarbay: factor out policy-related options 8b7fbc2 meta/jasperforest: factor out policy-related options fea1b0e meta/fishriver: factor out policy-related options 13bf9ab meta/emenlow: factor out policy-related options 4748d50 meta/crownbay: factor out policy-related options 44f592f meta/common-pc-64: factor out policy-related options 5a3f5c7 meta/common-pc: factor out policy-related options 1f5a10b meta/common-pc-64: use usb features
4b87723 meta/common-pc: use usb features
594ba05 meta: add ROOT_HUB_TT config option to the usb/ehci-hcd feature
--- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb +1 -1
@@ -18,7 +18,7 @@ KMETA = "meta" SRCREV_machine ?= "3ebf4d172cf4a41d2abf09e4036f0850e08064e7" SRCREV_machine_qemuppc ?= "7cebfe717987f4ffa9ae90558c28f45049847c1c" -SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" +SRCREV_meta ?= "49f931bc294d5b6be60502bbd448cff5aa766235" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.2.bb +1 -1
@@ -12,7 +12,7 @@ KCONFIG_MODE = "--allnoconfig" LINUX_VERSION ?= "3.2.11" SRCREV_machine ?= "61960ba8e910d54b5525d5e9b6a7469bc399c246" -SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" +SRCREV_meta ?= "49f931bc294d5b6be60502bbd448cff5aa766235" PR = "r0" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.2.bb +1 -1
@@ -23,7 +23,7 @@ SRCREV_machine_qemuppc ?= "cf3e188cf2a18c48a0e6f9ca54c36e6ac39512ec" SRCREV_machine_qemux86 ?= "46f1007ad22b6790224c66a8dc4e80fdbd21eea1" SRCREV_machine_qemux86-64 ?= "00e5ec2393bada6723bd9a07ded3d001c02fa727" SRCREV_machine ?= "f4f8ba730e7783e09413872414d0a17c142c816d" -SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" +SRCREV_meta ?= "49f931bc294d5b6be60502bbd448cff5aa766235" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 5/9] linux-yocto: intel BSP config changes
In reply to Saul WoldFrom: Bruce Ashfield <[email protected]>
Updating the meta SRCREV for the following fixes:
1dfd60f meta/fishriver: move smp options from recipe-space 012780a meta/emenlow: move smp options from recipe-space b59b1a5 meta/crownbay: move smp options from recipe-space 74dc6ac meta/sugarbay: remove boot-live options a4bedcb meta/jasperforest: remove boot-live options 4ae7b81 meta/sugarbay: use usb features
30e7e8c meta/jasperforest: use usb features 22d0c5d meta/fishriver: use usb features
e262965 meta/emenlow: use usb features
--- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_3.2.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb +1 -1
@@ -18,7 +18,7 @@ KMETA = "meta" SRCREV_machine ?= "3ebf4d172cf4a41d2abf09e4036f0850e08064e7" SRCREV_machine_qemuppc ?= "7cebfe717987f4ffa9ae90558c28f45049847c1c" -SRCREV_meta ?= "6b3d4e09aa2531e9649f3f03827b7efbccfcec03" +SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.2.bb +1 -1
@@ -12,7 +12,7 @@ KCONFIG_MODE = "--allnoconfig" LINUX_VERSION ?= "3.2.11" SRCREV_machine ?= "61960ba8e910d54b5525d5e9b6a7469bc399c246" -SRCREV_meta ?= "6b3d4e09aa2531e9649f3f03827b7efbccfcec03" +SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" PR = "r0" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.2.bb +1 -1
@@ -23,7 +23,7 @@ SRCREV_machine_qemuppc ?= "cf3e188cf2a18c48a0e6f9ca54c36e6ac39512ec" SRCREV_machine_qemux86 ?= "46f1007ad22b6790224c66a8dc4e80fdbd21eea1" SRCREV_machine_qemux86-64 ?= "00e5ec2393bada6723bd9a07ded3d001c02fa727" SRCREV_machine ?= "f4f8ba730e7783e09413872414d0a17c142c816d" -SRCREV_meta ?= "6b3d4e09aa2531e9649f3f03827b7efbccfcec03" +SRCREV_meta ?= "1dfd60fa1250259eed38ae5b2840eb37e3758a1b" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 9/9] sstate.bbclass: Make sure we don't have an empty fixmepath file
In reply to Saul WoldFrom: Mark Hatle <[email protected]>
Jason Wessel noticed that a package without any fixmepath entries would generate a sed warning about no input files. This patch resolves that by ensuring that an empty fixmepath file never gets written into the sstate archive. Also we avoid a second message by only doing xargs if we got input.
--- meta/classes/sstate.bbclass | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-)
meta/classes/sstate.bbclass +12 -5
@@ -330,20 +330,27 @@ def sstate_hardcode_path(d): sstate_grep_cmd = "grep -l -e '%s'" % (staging_host) sstate_sed_cmd = "sed -i -e 's:%s:FIXMESTAGINGDIRHOST:g'" % (staging_host) + fixmefn = sstate_builddir + "fixmepath" + sstate_scan_cmd = d.getVar('SSTATE_SCAN_CMD', True) - sstate_filelist_cmd = "tee %sfixmepath" % (sstate_builddir) + sstate_filelist_cmd = "tee %s" % (fixmefn) # fixmepath file needs relative paths, drop sstate_builddir prefix - sstate_filelist_relative_cmd = "sed -i -e 's:^%s::g' %sfixmepath" % (sstate_builddir, sstate_builddir) + sstate_filelist_relative_cmd = "sed -i -e 's:^%s::g' %s" % (sstate_builddir, fixmefn) # Limit the fixpaths and sed operations based on the initial grep search # This has the side effect of making sure the vfs cache is hot - sstate_hardcode_cmd = "%s | xargs %s | %s | xargs %s" % (sstate_scan_cmd, sstate_grep_cmd, sstate_filelist_cmd, sstate_sed_cmd) + sstate_hardcode_cmd = "%s | xargs %s | %s | xargs --no-run-if-empty %s" % (sstate_scan_cmd, sstate_grep_cmd, sstate_filelist_cmd, sstate_sed_cmd) print "Removing hardcoded paths from sstate package: '%s'" % (sstate_hardcode_cmd) os.system(sstate_hardcode_cmd) - print "Replacing absolute paths in fixmepath file: '%s'" % (sstate_filelist_relative_cmd) - os.system(sstate_filelist_relative_cmd) + + # If the fixmefn is empty, remove it.. + if os.stat(fixmefn).st_size == 0: + os.remove(fixmefn) + else: + print "Replacing absolute paths in fixmepath file: '%s'" % (sstate_filelist_relative_cmd) + os.system(sstate_filelist_relative_cmd) def sstate_package(ss, d): import oe.path
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 6/9] kern-tools: update LICENSE field to GPLv2
In reply to Saul WoldFrom: Bruce Ashfield <[email protected]>
The LICENSE field for kern-tools was generic and leads to QA warnings from the license classs:
"No generic license file exists for: GPL in any provider"
Updating to a specific GPL version that matches the source fixes the warning.
--- .../kern-tools/kern-tools-native_git.bb | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +1 -1
@@ -1,5 +1,5 @@ DESCRIPTION = "Scripts and utilities for managing Yocto branched kernels." -LICENSE = "GPL" +LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=e2bf4415f3d843f43d2e22b0d91a6fee" DEPENDS = "git-native guilt-native"
Signature · 1 line
1.7.7.6
[CONSOLIDATED PULL 8/9] xserver-kdrive: Fix X server on PowerPC when built with GCC 4.7.x
In reply to Saul WoldFrom: Gary Thomas <[email protected]>
Newer versions of GCC uncovered illegal code practice which can cause runtime failures in the Xext/xace.c code. This problem has been fixed upstream:
http://cgit.freedesktop.org/xorg/xserver/patch/Xext/xace.c?id=6dae7f3792611aace1df0cca63bf50c50d93de43
Subject: xace: Invalid reference to out-of-scope data.
Incorporate this patch into the recipe, with a PR bump.
--- .../fix-bogus-stack-variables.patch | 233 ++++++++++++++++++++ .../xorg-xserver/xserver-kdrive_1.7.99.2.bb | 3 +- 2 files changed, 235 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch
meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/fix-bogus-stack-variables.patch new file +233 -0
@@ -0,0 +1,233 @@ +From 6dae7f3792611aace1df0cca63bf50c50d93de43 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <[email protected]> +Date: Tue, 10 Aug 2010 18:30:20 +0000 +Subject: xace: Invalid reference to out-of-scope data. + +The callback data passed by reference to the hook was allocated on stack +within the scope of the case statement. The compiler is free to reuse +any of that stack space whilst making the function call so we may end up +passing garbage into the callback. + +References: + + Bug 18451 - Xorg server 1.5.2 SEGV during XFixesGetCursorImage() + https://bugs.freedesktop.org/show_bug.cgi?id=18451 + +v2: Drop the unrelated hunk that snuck in when ammending the commit +message. + +Signed-off-by: Chris Wilson <[email protected]> +Reviewed-by: Alan Coopersmith <[email protected]> +Signed-off-by: Keith Packard <[email protected]> + +Upstream-Status: accepted +--- +(limited to 'Xext/xace.c') + +diff --git a/Xext/xace.c b/Xext/xace.c +index e10d837..c757cad 100644 +--- a/Xext/xace.c ++++ b/Xext/xace.c +@@ -87,7 +87,18 @@ void XaceHookAuditEnd(ClientPtr ptr, int result) + */ + int XaceHook(int hook, ...) + { +- pointer calldata; /* data passed to callback */ ++ union { ++ XaceResourceAccessRec res; ++ XaceDeviceAccessRec dev; ++ XaceSendAccessRec send; ++ XaceReceiveAccessRec recv; ++ XaceClientAccessRec client; ++ XaceExtAccessRec ext; ++ XaceServerAccessRec server; ++ XaceScreenAccessRec screen; ++ XaceAuthAvailRec auth; ++ XaceKeyAvailRec key; ++ } u; + int *prv = NULL; /* points to return value from callback */ + va_list ap; /* argument list */ + va_start(ap, hook); +@@ -99,117 +110,86 @@ int XaceHook(int hook, ...) + */ + switch (hook) + { +- case XACE_RESOURCE_ACCESS: { +- XaceResourceAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.id = va_arg(ap, XID); +- rec.rtype = va_arg(ap, RESTYPE); +- rec.res = va_arg(ap, pointer); +- rec.ptype = va_arg(ap, RESTYPE); +- rec.parent = va_arg(ap, pointer); +- rec.access_mode = va_arg(ap, Mask); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_RESOURCE_ACCESS: ++ u.res.client = va_arg(ap, ClientPtr); ++ u.res.id = va_arg(ap, XID); ++ u.res.rtype = va_arg(ap, RESTYPE); ++ u.res.res = va_arg(ap, pointer); ++ u.res.ptype = va_arg(ap, RESTYPE); ++ u.res.parent = va_arg(ap, pointer); ++ u.res.access_mode = va_arg(ap, Mask); ++ u.res.status = Success; /* default allow */ ++ prv = &u.res.status; + break; +- } +- case XACE_DEVICE_ACCESS: { +- XaceDeviceAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.dev = va_arg(ap, DeviceIntPtr); +- rec.access_mode = va_arg(ap, Mask); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_DEVICE_ACCESS: ++ u.dev.client = va_arg(ap, ClientPtr); ++ u.dev.dev = va_arg(ap, DeviceIntPtr); ++ u.dev.access_mode = va_arg(ap, Mask); ++ u.dev.status = Success; /* default allow */ ++ prv = &u.dev.status; + break; +- } +- case XACE_SEND_ACCESS: { +- XaceSendAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.dev = va_arg(ap, DeviceIntPtr); +- rec.pWin = va_arg(ap, WindowPtr); +- rec.events = va_arg(ap, xEventPtr); +- rec.count = va_arg(ap, int); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_SEND_ACCESS: ++ u.send.client = va_arg(ap, ClientPtr); ++ u.send.dev = va_arg(ap, DeviceIntPtr); ++ u.send.pWin = va_arg(ap, WindowPtr); ++ u.send.events = va_arg(ap, xEventPtr); ++ u.send.count = va_arg(ap, int); ++ u.send.status = Success; /* default allow */ ++ prv = &u.send.status; + break; +- } +- case XACE_RECEIVE_ACCESS: { +- XaceReceiveAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.pWin = va_arg(ap, WindowPtr); +- rec.events = va_arg(ap, xEventPtr); +- rec.count = va_arg(ap, int); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_RECEIVE_ACCESS: ++ u.recv.client = va_arg(ap, ClientPtr); ++ u.recv.pWin = va_arg(ap, WindowPtr); ++ u.recv.events = va_arg(ap, xEventPtr); ++ u.recv.count = va_arg(ap, int); ++ u.recv.status = Success; /* default allow */ ++ prv = &u.recv.status; + break; +- } +- case XACE_CLIENT_ACCESS: { +- XaceClientAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.target = va_arg(ap, ClientPtr); +- rec.access_mode = va_arg(ap, Mask); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_CLIENT_ACCESS: ++ u.client.client = va_arg(ap, ClientPtr); ++ u.client.target = va_arg(ap, ClientPtr); ++ u.client.access_mode = va_arg(ap, Mask); ++ u.client.status = Success; /* default allow */ ++ prv = &u.client.status; + break; +- } +- case XACE_EXT_ACCESS: { +- XaceExtAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.ext = va_arg(ap, ExtensionEntry*); +- rec.access_mode = DixGetAttrAccess; +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_EXT_ACCESS: ++ u.ext.client = va_arg(ap, ClientPtr); ++ u.ext.ext = va_arg(ap, ExtensionEntry*); ++ u.ext.access_mode = DixGetAttrAccess; ++ u.ext.status = Success; /* default allow */ ++ prv = &u.ext.status; + break; +- } +- case XACE_SERVER_ACCESS: { +- XaceServerAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.access_mode = va_arg(ap, Mask); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_SERVER_ACCESS: ++ u.server.client = va_arg(ap, ClientPtr); ++ u.server.access_mode = va_arg(ap, Mask); ++ u.server.status = Success; /* default allow */ ++ prv = &u.server.status; + break; +- } + case XACE_SCREEN_ACCESS: +- case XACE_SCREENSAVER_ACCESS: { +- XaceScreenAccessRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.screen = va_arg(ap, ScreenPtr); +- rec.access_mode = va_arg(ap, Mask); +- rec.status = Success; /* default allow */ +- calldata = &rec; +- prv = &rec.status; ++ case XACE_SCREENSAVER_ACCESS: ++ u.screen.client = va_arg(ap, ClientPtr); ++ u.screen.screen = va_arg(ap, ScreenPtr); ++ u.screen.access_mode = va_arg(ap, Mask); ++ u.screen.status = Success; /* default allow */ ++ prv = &u.screen.status; + break; +- } +- case XACE_AUTH_AVAIL: { +- XaceAuthAvailRec rec; +- rec.client = va_arg(ap, ClientPtr); +- rec.authId = va_arg(ap, XID); +- calldata = &rec; ++ case XACE_AUTH_AVAIL: ++ u.auth.client = va_arg(ap, ClientPtr); ++ u.auth.authId = va_arg(ap, XID); + break; +- } +- case XACE_KEY_AVAIL: { +- XaceKeyAvailRec rec; +- rec.event = va_arg(ap, xEventPtr); +- rec.keybd = va_arg(ap, DeviceIntPtr); +- rec.count = va_arg(ap, int); +- calldata = &rec; ++ case XACE_KEY_AVAIL: ++ u.key.event = va_arg(ap, xEventPtr); ++ u.key.keybd = va_arg(ap, DeviceIntPtr); ++ u.key.count = va_arg(ap, int); + break; +- } +- default: { ++ default: + va_end(ap); + return 0; /* unimplemented hook number */ +- } + } + va_end(ap); + + /* call callbacks and return result, if any. */ +- CallCallbacks(&XaceHooks[hook], calldata); ++ CallCallbacks(&XaceHooks[hook], &u); + return prv ? *prv : Success; + } + +-- +cgit v0.9.0.2-2-gbebe
meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb +2 -1
@@ -7,7 +7,7 @@ RDEPENDS_${PN} += "xkeyboard-config" EXTRA_OECONF += "--disable-glx" PE = "1" -PR = "r29" +PR = "r30" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://extra-kmodes.patch \
@@ -20,6 +20,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://fix-newer-xorg-headers.patch \ file://crosscompile.patch \ file://error-address-work-around.patch \ + file://fix-bogus-stack-variables.patch \ file://nodolt.patch" # file://kdrive-evdev.patch # file://kdrive-use-evdev.patch
Signature · 1 line
1.7.7.6
Richard Purdie
AppliedQuoted 26 lines · Saul Wold
Richard:
Here are some fixes including the PPC xserver issue
Sau!
The following changes since commit
7163ebd92a799b8f000b2b6f303b20de468b5f90:Revert "kmod: Use
base_libdirfor installing libkmod" (2012-05-17 21:12:33 +0100)are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribsgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stageBruce Ashfield (3):
linux-yocto: intel BSP config changes
kern-tools: update LICENSE field to GPLv2
linux-yocto: policy cleanupsGary Thomas (1):
xserver-kdrive: Fix X server on PowerPC when built with GCC 4.7.xJiajun Xu (1):
test-reexec: Add script to address issues when task re-execution
Quoted 7 lines
Lianhao Lu (3):
(libc-)package.bbclass: Added MLPREFIX to locale packages. multilib.conf: Added multilib support for kmod. multilib.bbclass: Added multilib specific package QA.Mark Hatle (1):
sstate.bbclass: Make sure we don't have an empty fixmepath file
Merged to master, thanks.
Richard