From e73ee51e1fa8059c25f838fe32302b96200910846b3dcce1d3c9e5a4e7ca41bc Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Sun, 23 Nov 2008 07:54:06 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kernel-source?expand=0&rev=37 --- build-source-timestamp | 4 +- built-in-where | 4 +- config.tar.bz2 | 4 +- find-provides | 29 +-- kabi-checks | 235 ------------------------ kabi.tar.bz2 | 4 +- kernel-debug.changes | 50 +++++ kernel-debug.spec | 144 ++++++++------- kernel-default.changes | 50 +++++ kernel-default.spec | 144 ++++++++------- kernel-dummy.changes | 50 +++++ kernel-dummy.spec | 35 +++- kernel-kdump.changes | 50 +++++ kernel-kdump.spec | 144 ++++++++------- kernel-maxcpus.changes | 50 +++++ kernel-maxcpus.spec | 144 ++++++++------- kernel-pae.changes | 50 +++++ kernel-pae.spec | 144 ++++++++------- kernel-ppc64.changes | 50 +++++ kernel-ppc64.spec | 144 ++++++++------- kernel-ps3.changes | 50 +++++ kernel-ps3.spec | 144 ++++++++------- kernel-s390.changes | 50 +++++ kernel-s390.spec | 144 ++++++++------- kernel-source.changes | 50 +++++ kernel-source.spec | 41 ++++- kernel-syms.changes | 50 +++++ kernel-syms.spec | 35 +++- kernel-trace.changes | 50 +++++ kernel-trace.spec | 144 ++++++++------- kernel-vanilla.changes | 50 +++++ kernel-vanilla.spec | 144 ++++++++------- kernel-xen.changes | 50 +++++ kernel-xen.spec | 144 ++++++++------- list-exported-symbols | 57 ------ patches.addon.tar.bz2 | 4 +- patches.drivers.tar.bz2 | 4 +- patches.fixes.tar.bz2 | 4 +- patches.rt.tar.bz2 | 4 +- series.conf | 2 + split-into-symsets | 40 ---- symsets.pl | 392 ++++++++++++++++++++++++++++++++++++++++ 42 files changed, 2082 insertions(+), 1100 deletions(-) delete mode 100644 kabi-checks delete mode 100644 list-exported-symbols delete mode 100644 split-into-symsets create mode 100644 symsets.pl diff --git a/build-source-timestamp b/build-source-timestamp index 9bd3d05..1bff093 100644 --- a/build-source-timestamp +++ b/build-source-timestamp @@ -1,2 +1,2 @@ -2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 diff --git a/built-in-where b/built-in-where index b85f0d6..c85a6da 100644 --- a/built-in-where +++ b/built-in-where @@ -21,14 +21,14 @@ built_in_exports() { for obj in $(find -name built-in.o -printf '%d %P\n' \ | sort -r \ | awk '{ print $2 }'); do - $sourcedir/list-exported-symbols -n ${obj%.o} $obj + $sourcedir/symsets.pl --list-exported-symbols $obj done # We could go through the libraries as well, but those functions # are so unlikely to change that this wouldn't help. # (All remaining symbols will end up in the vmlinux set.) #for archive in $(find -name '*.a'); do - # $sourcedir/list-exported-symbols -n ${archive%.a} $archive + # $sourcedir/symsets.pl --list-exported-symbols $archive #done } diff --git a/config.tar.bz2 b/config.tar.bz2 index 2c65dfb..1fb0ff8 100644 --- a/config.tar.bz2 +++ b/config.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c470ea05dd6571fe53400908fba191d935ee539de199754e60ac8330e7383fb1 -size 138642 +oid sha256:e1b0edb65a7bb6996cd82ed63b362a08d55ccb6ee5f5ed5a4ad932fcb6947cda +size 135207 diff --git a/find-provides b/find-provides index b968ab7..b6296ac 100644 --- a/find-provides +++ b/find-provides @@ -5,27 +5,30 @@ filelist=($(cat)) printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides "$@" +# these two are updated by the spec file sourcedir=${0%/*} +builddir="$sourcedir/../BUILD" + flavor=${1##*-} -tmpdir=$(mktemp -dt ${0##*/}.XXXXXXXXXX) -trap "rm -rf $tmpdir" EXIT +modlist=$(mktemp -t ${0##*/}.XXXXXXXXXX) +trap "rm -rf $modlist" EXIT +symvers= for file in "${filelist[@]}"; do case "$file" in - */boot/symvers-*.gz) - zcat "$file" \ - | awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' + */Module.symvers) + symvers="--symvers-file=$file" ;; *.ko) - $sourcedir/list-exported-symbols $file + echo "$file" >>"$modlist" ;; esac -done \ -| $sourcedir/split-into-symsets $tmpdir - -shopt -s nullglob -for symset in $tmpdir/*; do - class=${symset##*/} ; class=${class%.*} - echo "kernel($flavor:$class) = ${symset##*.}" done + +reference= +# TODO +# reference="--reference=$builddir/kabi/..." +$sourcedir/symsets.pl --list-symsets --modules=$modlist $symvers $reference |\ + sed -rn 's/^(.+)\.([a-z0-9]{16})/kernel('$flavor':\1) = \2/p' + diff --git a/kabi-checks b/kabi-checks deleted file mode 100644 index 558113c..0000000 --- a/kabi-checks +++ /dev/null @@ -1,235 +0,0 @@ -#!/bin/bash -# Tool to do kABI checks. -# (c) Kurt Garloff , GNU GPL, 11/2005 -# $Id$ -# -# This tool looks at the generated symvers and compares it to the -# reference file (if existent). It prints warnings for changed symbol -# versions. -# -# Return value: -# 0 -- no changes -# 1 -- usage/input error -# 2 -- internal error -# 4 -- only additions -# >= 8 -- removed or changed symbols (see below) -# -# Severity classification: -# - 8 -- 15: if it's not found in a list (commonsyms or usedsyms) -# The score depends on the source; symbols in vmlinux are more -# likely to be used by anyone. -# - 16 -- 23: symbol is found in the list usedsyms -# - 24 -- 31: symbol is found in the list commonsyms - -severities=" -# unimportant ---. .--- important -# v v - -drivers/base/* 13 -drivers/char/ipmi/* 10 -drivers/char/tpm/tpm 9 -drivers/hwmon/* 10 -drivers/i2c/i2c-core 9 -drivers/md/* 13 -drivers/message/fusion/* 6 -drivers/pci/* 12 -drivers/pci/hotplug/pci_hotplug 10 -drivers/scsi/libata 12 -drivers/scsi/scsi* 12 -drivers/scsi/*/scsi_transport_* 12 -drivers/scsi/libiscsi* 12 -drivers/ide/ide-core 11 -drivers/usb/core/usbcore 10 -drivers/usb/serial/usbserial 9 -fs/dmapi/dmapi 11 -fs/fat/fat 11 -fs/jbd/jbd 11 -net/ipv4/netfilter/ip_tables 9 -vmlinux 15 -" - -# Turning off UTF-8 processing provides a major speedup. -export LC_ALL=C - -echo "${0##*/} $@" - -unset quiet verbose -if [ "$1" = "-q" ]; then - shift - quiet=1 -fi -if [ "$1" = "-v" ]; then - shift - verbose=1 -fi - -if [ $# -lt 2 -o $# -gt 4 ]; then - echo "Usage: ${0##*/} [-q] [-v] reference symvers [commonsyms [usedsyms]]" >&2 - exit 1 -fi -for file in "$@"; do - [ -r "$file" ] && continue - echo "Cannot read from '$file'" >&2 - exit 1 -done - -declare_symbol_severity() { - declare severity=$1 - - while [ $# -ge 2 ]; do - if ! eval "severity_of_${2//[^a-zA-Z0-9_]/_}=$severity"; then - echo "Internal error" >&2 - exit 2 - fi - shift - done -} - -consistency_check() { - declare_symbol_severity 16 consistency_check_foo - check_modified_symbols >/dev/null <<-EOF - consistency_check_foo -0x12345678 consistency/check/foo +0x98765432 consistency/check/foo - EOF - if [ $? -ne 31 ]; then - echo "Internal error" >&2 - exit 2 - fi -} - -#set -x -eval ' -severity() { - case $2 in -'"$( - - ( echo "$severities" - echo "consistency/check/* 15" # For the consistency test - ) \ - | sed -e '/^#/d' -e '/^$/d' \ - | while read glob severity; do - echo " ($glob) _rc=$severity ;;" - done - -)"' - (*) _rc=8 ;; - esac - - # Is a particular severity defined for this symbol? - declare severity=severity_of_$1 - if [ -n "${!severity}" ]; then - ((_rc += ${!severity})) - fi - - return $_rc -}' -#set +x - -grab_symvers_from_rpm() {( - # (Run in subshell to make trap work.) - - tmpdir=$(mktemp -t -d ${0##*/}.XXXXXX) - trap "cd /; rm -rf $tmpdir" EXIT - cd $tmpdir - rpm2cpio "$file" \ - | cpio -dim --quiet './boot/symvers-*.gz' - set -- boot/symvers-*.gz - if ! [ -e "$1" ]; then - echo "Failed to extract symvers-*.gz from $file" >&2 - exit 1 - fi - zcat "$1" -)} - -grab_symvers() { - declare tag=$1 file=$2 pwd tmpdir - - case "$(file -b - <"$file")" in - gzip*) - zcat "$file" - ;; - RPM*) - grab_symvers_from_rpm "$file" - ;; - *) - cat "$file" - ;; - esac \ - | sed -e "/^#/d" -e "s/^/$tag/" \ - | sort -k 2 -} - -filter_out_identical_symbols() { - # This expression works no matter how many columns the files have. - grep -v -P '^\S+ -(\S+)( \S+)+ \+\1( \S+)+$' -} - -check_modified_symbols() { - declare -i RC=0 _rc - declare ignored - - while read symbol tail; do - # Split in half no matter how many columns the files have. - set -- $tail ; half=$(($#/2+1)) - version1=$1 ; version2=${!half} ; shift - source1=$1 ; source2=${!half} ; shift - - case "$version1$version2" in - -\#*) - continue - ;; - -*+* | -*) - ignored= - case "$version1" in - *=\>*) - if [ "${version1#*=>}" = "${version2#+}" ]; then - version1="${version1%=>*}" - ignored="; ignored" - fi - ;; - esac - severity $symbol $source1 && continue - _rc=$? - if [ -z "$quiet" ]; then - echo -n "Warning: $source1: $symbol(${version1#-}) " - if [ -n "$version2" ]; then - echo -n "changed to $symbol(${version2#+})" - [ "$source1" != "$source2" ] && - echo -n " and moved to $source2" - else - echo -n "removed" - fi - echo " (badness ${_rc}$ignored)" - fi - [ -n "$ignored" ] && _rc=0 - ;; - *) - if [ -n "$verbose" ]; then - echo " new symbol $symbol: ${version1#+}" - fi - _rc=4 - ;; - esac - if [ ${_rc} -gt $RC ]; then RC=${_rc}; fi - done - return $RC -} - -sort_by_badness() { - sed -e 's/.*(badness \([0-9]\+\)).*/\1 &/' -e 't' -e 's/^/0 /' \ - | sort -n -r \ - | sed -e 's/^[0-9]* //' -} - -consistency_check - -[ -n "$4" ] && declare_symbol_severity 8 $(< $4) -[ -n "$3" ] && declare_symbol_severity 16 $(< $3) - -join -j 2 -a 1 -a 2 <(grab_symvers - $1) <(grab_symvers + $2) \ -| filter_out_identical_symbols \ -| check_modified_symbols \ -| sort_by_badness - -RC=${PIPESTATUS[2]} -echo "kABI verdict: $RC" -exit $RC diff --git a/kabi.tar.bz2 b/kabi.tar.bz2 index 53943f8..c8fe579 100644 --- a/kabi.tar.bz2 +++ b/kabi.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06dc16bcf243d23dd1d0ebb0ae961a714108769196a67fb4033e1219c59821c4 -size 2274 +oid sha256:870770cdcde4eb01d819adbe6f319721074ff8fecc58902cfc87534796fae656 +size 2758 diff --git a/kernel-debug.changes b/kernel-debug.changes index 22a410e..da836b2 100644 --- a/kernel-debug.changes +++ b/kernel-debug.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-debug.spec b/kernel-debug.spec index a02015a..63933e1 100644 --- a/kernel-debug.spec +++ b/kernel-debug.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-debug kernel-debug $(case debug in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/debug$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-debug Summary: A Debug Version of the Kernel Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -139,14 +139,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -196,7 +194,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -210,8 +208,8 @@ Only use this kernel when investigating problems. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -279,6 +277,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -305,7 +307,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -485,34 +487,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-debug ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-debug \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-debug -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -584,31 +558,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-debug/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-debug.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-debug -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -616,7 +600,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -716,8 +699,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -758,8 +741,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -787,8 +770,8 @@ Only use this kernel when investigating problems. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-debug-man %defattr(-,root,root) @@ -797,6 +780,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-default.changes b/kernel-default.changes index 22a410e..da836b2 100644 --- a/kernel-default.changes +++ b/kernel-default.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-default.spec b/kernel-default.spec index c36eeef..5e2466b 100644 --- a/kernel-default.spec +++ b/kernel-default.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-default kernel-default $(case default in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/default$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-default Summary: The Standard Kernel Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -158,14 +158,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -215,7 +213,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -228,8 +226,8 @@ The standard kernel for both uniprocessor and multiprocessor systems. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -297,6 +295,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -323,7 +325,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -503,34 +505,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-default ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-default \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-default -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -602,31 +576,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-default/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-default.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-default -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -634,7 +618,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -733,8 +716,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -774,8 +757,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -802,8 +785,8 @@ The standard kernel for both uniprocessor and multiprocessor systems. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-default-man %defattr(-,root,root) @@ -812,6 +795,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-dummy.changes b/kernel-dummy.changes index 22a410e..da836b2 100644 --- a/kernel-dummy.changes +++ b/kernel-dummy.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-dummy.spec b/kernel-dummy.spec index 707ce3f..b7ede1f 100644 --- a/kernel-dummy.spec +++ b/kernel-dummy.spec @@ -23,7 +23,7 @@ Url: http://www.kernel.org/ Name: kernel-dummy Summary: Internal dummy package for synchronizing release numbers Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel AutoReqProv: off @@ -36,8 +36,8 @@ Authors: -------- Andreas Gruenbacher -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %install rm -rf %buildroot @@ -49,6 +49,35 @@ echo dummy > %buildroot/etc/dummy /etc/dummy %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-kdump.changes b/kernel-kdump.changes index 22a410e..da836b2 100644 --- a/kernel-kdump.changes +++ b/kernel-kdump.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-kdump.spec b/kernel-kdump.spec index 7fdb95c..1fc15b1 100644 --- a/kernel-kdump.spec +++ b/kernel-kdump.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-kdump kernel-kdump $(case kdump in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/kdump$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-kdump Summary: kernel for kdump Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -136,14 +136,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -193,7 +191,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -209,8 +207,8 @@ crashed kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -278,6 +276,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -304,7 +306,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -484,34 +486,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-kdump ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-kdump \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-kdump -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -583,31 +557,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-kdump/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-kdump.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-kdump -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -615,7 +599,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -717,8 +700,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -761,8 +744,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -792,8 +775,8 @@ crashed kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-kdump-man %defattr(-,root,root) @@ -802,6 +785,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-maxcpus.changes b/kernel-maxcpus.changes index 22a410e..da836b2 100644 --- a/kernel-maxcpus.changes +++ b/kernel-maxcpus.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-maxcpus.spec b/kernel-maxcpus.spec index 1b2736b..70cbf2c 100644 --- a/kernel-maxcpus.spec +++ b/kernel-maxcpus.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-maxcpus kernel-maxcpus $(case maxcpus in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/maxcpus$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-maxcpus Summary: Kernel With Support For Many Processors Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -131,14 +131,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -188,7 +186,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -201,8 +199,8 @@ Kernel for multiprocessor systems with more than 128 processors. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -270,6 +268,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -296,7 +298,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -476,34 +478,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-maxcpus ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-maxcpus \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-maxcpus -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -575,31 +549,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-maxcpus/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-maxcpus.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-maxcpus -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -607,7 +591,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -704,8 +687,8 @@ Kernel for multiprocessor systems with more than 128 processors. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -743,8 +726,8 @@ Kernel for multiprocessor systems with more than 128 processors. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -771,8 +754,8 @@ Kernel for multiprocessor systems with more than 128 processors. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-maxcpus-man %defattr(-,root,root) @@ -781,6 +764,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-pae.changes b/kernel-pae.changes index 22a410e..da836b2 100644 --- a/kernel-pae.changes +++ b/kernel-pae.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-pae.spec b/kernel-pae.spec index 838ac65..a74680e 100644 --- a/kernel-pae.spec +++ b/kernel-pae.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-pae kernel-pae $(case pae in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/pae$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-pae Summary: Kernel with PAE Support Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -133,14 +133,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -190,7 +188,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -210,8 +208,8 @@ that support it, regardless of the amount of main memory. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -279,6 +277,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -305,7 +307,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -485,34 +487,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-pae ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-pae \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-pae -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -584,31 +558,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-pae/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-pae.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-pae -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -616,7 +600,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -722,8 +705,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -770,8 +753,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -805,8 +788,8 @@ that support it, regardless of the amount of main memory. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-pae-man %defattr(-,root,root) @@ -815,6 +798,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-ppc64.changes b/kernel-ppc64.changes index 22a410e..da836b2 100644 --- a/kernel-ppc64.changes +++ b/kernel-ppc64.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-ppc64.spec b/kernel-ppc64.spec index 2294110..03e1e61 100644 --- a/kernel-ppc64.spec +++ b/kernel-ppc64.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-ppc64 kernel-ppc64 $(case ppc64 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ppc64$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-ppc64 Summary: Kernel for ppc64 Systems Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -138,14 +138,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -195,7 +193,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -222,8 +220,8 @@ Authors: Tom Gall see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -291,6 +289,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -317,7 +319,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -497,34 +499,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-ppc64 ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-ppc64 \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-ppc64 -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -596,31 +570,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-ppc64/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-ppc64.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-ppc64 -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -628,7 +612,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -741,8 +724,8 @@ Authors: Tom Gall see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -796,8 +779,8 @@ Authors: Tom Gall see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -838,8 +821,8 @@ Authors: Tom Gall see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-ppc64-man %defattr(-,root,root) @@ -848,6 +831,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-ps3.changes b/kernel-ps3.changes index 22a410e..da836b2 100644 --- a/kernel-ps3.changes +++ b/kernel-ps3.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-ps3.spec b/kernel-ps3.spec index b462daa..b60e3e6 100644 --- a/kernel-ps3.spec +++ b/kernel-ps3.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-ps3 kernel-ps3 $(case ps3 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ps3$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-ps3 Summary: kernel for ps3 bootloader Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -131,14 +131,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -188,7 +186,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -204,8 +202,8 @@ final system. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -273,6 +271,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -299,7 +301,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -479,34 +481,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-ps3 ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-ps3 \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-ps3 -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -578,31 +552,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-ps3/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-ps3.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-ps3 -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -610,7 +594,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -709,8 +692,8 @@ needs to be as small as possible. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -750,8 +733,8 @@ needs to be as small as possible. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -781,8 +764,8 @@ final system. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-ps3-man %defattr(-,root,root) @@ -791,6 +774,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-s390.changes b/kernel-s390.changes index 22a410e..da836b2 100644 --- a/kernel-s390.changes +++ b/kernel-s390.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-s390.spec b/kernel-s390.spec index fa5d8c3..915bab9 100644 --- a/kernel-s390.spec +++ b/kernel-s390.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-s390 kernel-s390 $(case s390 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/s390$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-s390 Summary: The Standard Kernel Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -133,14 +133,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -190,7 +188,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -203,8 +201,8 @@ The standard kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -272,6 +270,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -298,7 +300,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -478,34 +480,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-s390 ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-s390 \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-s390 -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -577,31 +551,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-s390/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-s390.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-s390 -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -609,7 +593,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -708,8 +691,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -749,8 +732,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -777,8 +760,8 @@ The standard kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-s390-man %defattr(-,root,root) @@ -787,6 +770,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-source.changes b/kernel-source.changes index 22a410e..da836b2 100644 --- a/kernel-source.changes +++ b/kernel-source.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-source.spec b/kernel-source.spec index 7ad7d14..44294f1 100644 --- a/kernel-source.spec +++ b/kernel-source.spec @@ -30,7 +30,7 @@ Url: http://www.kernel.org/ Name: kernel-source Summary: The Linux Kernel Sources Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -63,17 +63,15 @@ Source30: config-subst Source33: check-for-config-changes Source34: check-supported-list Source37: README.SUSE -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions Source47: extract-modaliases Source48: macros.kernel-source Source49: kernel-module-subpackage +Source50: symsets.pl Source50: kernel-syms.spec Source51: kernel-debug.spec Source52: kernel-default.spec @@ -105,7 +103,7 @@ Prefix: /usr/src # extensions like <(...). %define _buildshell /bin/bash %define my_builddir %_builddir/%{name}-%{version} -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,symsets.pl}) %define symbols %(set -- $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define tolerate_unknown_new_config_options 0 @@ -120,8 +118,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -277,6 +275,35 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ %files -f kernel-source.files %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-syms.changes b/kernel-syms.changes index 22a410e..da836b2 100644 --- a/kernel-syms.changes +++ b/kernel-syms.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-syms.spec b/kernel-syms.spec index cb8459f..b70fe90 100644 --- a/kernel-syms.spec +++ b/kernel-syms.spec @@ -29,7 +29,7 @@ Url: http://www.kernel.org/ Name: kernel-syms Summary: Kernel Symbol Versions (modversions) Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -94,8 +94,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep echo "Architecture symbol(s):" %symbols @@ -152,6 +152,35 @@ done /lib/modules/*/build %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-trace.changes b/kernel-trace.changes index 22a410e..da836b2 100644 --- a/kernel-trace.changes +++ b/kernel-trace.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-trace.spec b/kernel-trace.spec index 6d13075..1eae63a 100644 --- a/kernel-trace.spec +++ b/kernel-trace.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-trace kernel-trace $(case trace in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/trace$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-trace Summary: The Realtime Linux Kernel Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -139,14 +139,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -196,7 +194,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -215,8 +213,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -284,6 +282,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -310,7 +312,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -490,34 +492,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-trace ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-trace \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-trace -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -589,31 +563,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-trace/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-trace.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-trace -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -621,7 +605,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -724,8 +707,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -769,8 +752,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -803,8 +786,8 @@ Authors: see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-trace-man %defattr(-,root,root) @@ -813,6 +796,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-vanilla.changes b/kernel-vanilla.changes index 22a410e..da836b2 100644 --- a/kernel-vanilla.changes +++ b/kernel-vanilla.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-vanilla.spec b/kernel-vanilla.spec index 9d8751f..0217ea3 100644 --- a/kernel-vanilla.spec +++ b/kernel-vanilla.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-vanilla kernel-vanilla $(case vanilla in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/vanilla$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-vanilla Summary: The Standard Kernel - without any SUSE patches Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -155,14 +155,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -212,7 +210,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -225,8 +223,8 @@ The standard kernel - without any SUSE patches -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -294,6 +292,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -320,7 +322,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -500,34 +502,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-vanilla ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-vanilla \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-vanilla -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -599,31 +573,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-vanilla/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-vanilla.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-vanilla -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -631,7 +615,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -728,8 +711,8 @@ The standard kernel - without any SUSE patches -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -767,8 +750,8 @@ The standard kernel - without any SUSE patches -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -795,8 +778,8 @@ The standard kernel - without any SUSE patches -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-vanilla-man %defattr(-,root,root) @@ -805,6 +788,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/kernel-xen.changes b/kernel-xen.changes index 22a410e..da836b2 100644 --- a/kernel-xen.changes +++ b/kernel-xen.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Fri Nov 21 20:17:09 CET 2008 - agruen@suse.de + +- config/x86_64/maxcpus: Delete. + +------------------------------------------------------------------- +Fri Nov 21 20:06:08 CET 2008 - mmarek@suse.cz + +- rpm/kernel-binary.spec.in: s/CVS/GIT/ + +------------------------------------------------------------------- +Fri Nov 21 20:04:05 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) + +------------------------------------------------------------------- +Fri Nov 21 20:03:17 CET 2008 - agruen@suse.de + +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. + +------------------------------------------------------------------- +Fri Nov 21 18:13:58 CET 2008 - mmarek@suse.cz + +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl + +------------------------------------------------------------------- +Fri Nov 21 17:06:39 CET 2008 - kkeil@suse.de + +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) + +------------------------------------------------------------------- +Fri Nov 21 16:50:40 CET 2008 - kkeil@suse.de + +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) + ------------------------------------------------------------------- Fri Nov 21 16:10:08 CET 2008 - jjolly@suse.de diff --git a/kernel-xen.spec b/kernel-xen.spec index 72edf49..3327675 100644 --- a/kernel-xen.spec +++ b/kernel-xen.spec @@ -38,7 +38,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl}) %define symbols %(set -- kernel-xen kernel-xen $(case xen in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define cpu_arch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/xen$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -59,7 +59,7 @@ Name: kernel-xen Summary: The Xen Kernel Version: 2.6.27.7 -Release: 1 +Release: 2 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -136,14 +136,12 @@ Source31: guards Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: list-exported-symbols -Source43: split-into-symsets Source44: find-provides Source45: module-renames Source46: modversions +Source47: symsets.pl Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -193,7 +191,7 @@ Obsoletes: ralink-rt2860-kmp # extensions like <(...). %define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" -%define __find_provides %_sourcedir/find-provides %name +%define __find_provides %my_builddir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? %define supported_modules_check 0 %define tolerate_unknown_new_config_options 0 @@ -209,8 +207,8 @@ unprivileged ("xenU") kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -278,6 +276,10 @@ MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs +sed 's:^sourcedir=.*:sourcedir="%_sourcedir":; + s:^builddir=.*:builddir="%my_builddir":' \ + %_sourcedir/find-provides >%my_builddir/find-provides +chmod +x %my_builddir/find-provides %build source .rpm-defs @@ -304,7 +306,7 @@ export KBUILD_BUILD_VERSION="$(grep SHA1_ID %_sourcedir/build-source-timestamp | export KBUILD_BUILD_TIMESTAMP="$(head -n 1 %_sourcedir/build-source-timestamp)" # The following branch/timestamp will end up in Oopses. export OOPS_TIMESTAMP="$( - echo -n $(sed -ne 's/^CVS Branch: \(.*\)/\1-/p' \ + echo -n $(sed -ne 's/^GIT Branch: \(.*\)/\1-/p' \ %_sourcedir/build-source-timestamp) head -n 1 %_sourcedir/build-source-timestamp \ | tr -dc 0-9)" @@ -484,34 +486,6 @@ if [ $CONFIG_MODULES = y ]; then # $(uname -m) to the ARCH directory. [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $cpu_arch %buildroot/$obj_dir/%_target_cpu - # Check for kABI changes - KABI=0 - if [ -e %my_builddir/kabi/$cpu_arch/symvers-xen ]; then - %_sourcedir/kabi-checks \ - %my_builddir/kabi/$cpu_arch/symvers-xen \ - Module.symvers \ - %my_builddir/kabi/commonsyms \ - %my_builddir/kabi/usedsyms \ - || KABI=$? - fi - if [ $KABI -gt %tolerate_kabi_changes ]; then - echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ - "of %tolerate_kabi_changes. Please try to avoid the kABI changes." - if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-xen -a \ - ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then - echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ - "directory to build this kernel even though its badness is" \ - "higher than allowed for an official kernel." - exit 1 - fi - # Indicate the ABI badness in build result emails. - echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag - fi - if [ $KABI -ge 8 ]; then - echo "To find out which types have changed relative to the reference" \ - "symbols, diff the symtypes.gz files of the reference kernel" \ - "against the symtypes.gz file from this build." - fi # We were building in %my_builddir/linux-2.6.27, but the sources will # later be installed in /usr/src/linux-2.6.27-%source_rel. Fix up the # build symlink. @@ -583,31 +557,41 @@ if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif - exported_by_modules() { - local module - while read module; do - %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module - done - } + # generate symsets and check for kabi changes + KABI=0 mkdir %my_builddir/{base,main,extra} - ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers - exported_by_modules < %my_builddir/base-modules - ) | %_sourcedir/split-into-symsets %my_builddir/base + %_sourcedir/symsets.pl --generate-symsets \ + --symvers=Module.symvers \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/base-modules) \ + --output-dir=%my_builddir/base + # TODO: + # --reference=%my_builddir/kabi/$cpu_arch/symsets-xen/base \ + # --check-kabi \ + # --commonsyms=%my_builddir/kabi/commonsyms \ + # --usedsyms=%my_builddir/kabi/usedsyms + # --severities=%my_builddir/kabi/severities \ + # --max-badness=%tolerate_kabi_changes || KABI=? %if %split_packages - exported_by_modules < %my_builddir/main-modules \ - | %_sourcedir/split-into-symsets %my_builddir/main - exported_by_modules < %my_builddir/unsupported-modules \ - | %_sourcedir/split-into-symsets %my_builddir/extra + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/main-modules) \ + --output-dir=%my_builddir/main + %_sourcedir/symsets.pl --generate-symsets \ + --modules=<(sed 's:^/:%buildroot/:' %my_builddir/unsupported-modules) \ + --output-dir=%my_builddir/extra %endif - # Notes: - # - We rely on list-exported-symbols to correctly extract all exported - # symbols from modules; Module.symvers is disregarded for that. - # - We recompute the symsets in find-provides. Take care to keep the - # algorithm the same in both places. - ## Preserve exports from previous kernels when possible. - #old_symsets=%my_builddir/kabi/$cpu_arch/symsets-xen.tar.gz - #[ -e $old_symsets ] || old_symsets= - # FIXME: implement + if [ $KABI -ne 0 ]; then + echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ + "of %tolerate_kabi_changes. Please try to avoid the kABI changes." + if [ ! -e %my_builddir/kabi/$cpu_arch/ignore-xen -a \ + ! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then + echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \ + "directory to build this kernel even though its badness is" \ + "higher than allowed for an official kernel." + exit 1 + fi + # Indicate the ABI badness in build result emails. + echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag + fi symsets=%my_builddir/symsets-$KERNELRELEASE mkdir $symsets find %my_builddir/{base,main,extra} -type f \ @@ -615,7 +599,6 @@ if [ $CONFIG_MODULES = y ]; then tar c -C ${symsets%/*} ${symsets##*/} \ | gzip -9 \ > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz - # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -717,8 +700,8 @@ This package contains only the base modules, required in all installs. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun base -f preun-base.sh @@ -761,8 +744,8 @@ This package contains additional modules not supported by Novell. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %preun extra -f preun-extra.sh @@ -792,8 +775,8 @@ unprivileged ("xenU") kernel. -Source Timestamp: 2008-11-21 16:10:15 +0100 -GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 +Source Timestamp: 2008-11-21 20:17:17 +0100 +GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294 %files -n kernel-xen-man %defattr(-,root,root) @@ -802,6 +785,35 @@ GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639 %endif %changelog +* Fri Nov 21 2008 agruen@suse.de +- config/x86_64/maxcpus: Delete. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/kernel-binary.spec.in: s/CVS/GIT/ +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: fix module names in export lists + (kernel/irq/built-in was printed as irq/built-in) +* Fri Nov 21 2008 agruen@suse.de +- Update x86_64/{debug,default,trace,vanilla} config files: + increase NR_CPUS to 512. +* Fri Nov 21 2008 mmarek@suse.cz +- rpm/symsets.pl: Replace the bash and awk scripts around symsets + and kabi checking with a single script that generates symsets, + reuses symsets from older kernels and checks for kabi changes for + each of the split packages (kabi checking and symset reuse + require a set of reference files, which does not exist yet) +- rpm/list-exported-symbols: Delete. +- rpm/split-into-symsets: Delete. +- scripts/kabi-checks: Delete. +- kabi/severities: table of kabi change severities +- rpm/built-in-where, rpm/find-provides, + rpm/kernel-binary.spec.in, rpm/kernel-source.spec.in, + scripts/tar-up.sh: update to use symsets.pl +* Fri Nov 21 2008 kkeil@suse.de +- patches.drivers/ixgbe-sfp.patch: include additional fixes from + Intel (bnc#442411) +* Fri Nov 21 2008 kkeil@suse.de +- patches.fixes/igb_ethtool.patch: add missing ethtool hooks + (bnc#435551) * Fri Nov 21 2008 jjolly@suse.de - patches.arch/s390-04-08-cio-ungroup-race-fix.patch: cio: ccwgroup online vs. ungroup race condition diff --git a/list-exported-symbols b/list-exported-symbols deleted file mode 100644 index af2a947..0000000 --- a/list-exported-symbols +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh - -# Generate a Module.symvers-like list of symbols a module exports. - -usage() { - echo "USAGE: ${0##*/} [-n name] objfile" >&2 - exit 1 -} - -options=`getopt -o n: -- "$@"` -[ $? -eq 0 ] || usage - -eval set -- "$options" -while :; do - case "$1" in - -n) - opt_n=$2 - shift - ;; - --) - shift - break - ;; - esac - shift -done - -[ $# -eq 1 ] || usage - -if [ -z "$opt_n" ]; then - opt_n=${1%.ko} - opt_n=${opt_n#*/kernel/} -fi - -objdump -t "$1" | awk ' -BEGIN { known_types["__ksymtab"] = "EXPORT_SYMBOL" - known_types["__ksymtab_unused"] = "EXPORT_UNUSED_SYMBOL" - known_types["__ksymtab_gpl"] = "EXPORT_SYMBOL_GPL" - known_types["__ksymtab_unused_gpl"] = "EXPORT_UNUSED_SYMBOL_GPL" - known_types["__ksymtab_gpl_future"] = "EXPORT_SYMBOL_GPL_FUTURE" - } - { if (NF < 3) - next - if (substr($0, index($0, " ") + 6, 1) == "d") - next # debug symbol - if (gsub(/^__crc_/, "", $NF)) - crcs[$NF] = gensub(/^00000000(.+)/, "\\1", "", $1) - else if (gsub(/^__ksymtab_/, "", $NF) && - ($(NF-2) in known_types)) - types[$NF] = known_types[$(NF-2)] - } -END { for (sym in types) { - crc = (sym in crcs ? crcs[sym] : "00000000") - print "0x" crc "\t" sym "\t" module "\t" types[sym] - } - } -' module="$opt_n" diff --git a/patches.addon.tar.bz2 b/patches.addon.tar.bz2 index d351042..801b33e 100644 --- a/patches.addon.tar.bz2 +++ b/patches.addon.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b7a237b3386769eae29230cf80cea6ff884c76435e155e8d4fa86a8f535cd02 -size 128 +oid sha256:c40a2498823161152c6b51ef64055d302030cee0c0bfaceb0bde4d050698b236 +size 127 diff --git a/patches.drivers.tar.bz2 b/patches.drivers.tar.bz2 index 9645319..0c356ab 100644 --- a/patches.drivers.tar.bz2 +++ b/patches.drivers.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cde325934227947db4563f307a05b3201ca845b3f6508e03ce0a093f9168414c -size 2629961 +oid sha256:f50ec42a93db8ed935d709ac41ecb8cde9f6205706f4822703a8f1c7f5af4424 +size 2630411 diff --git a/patches.fixes.tar.bz2 b/patches.fixes.tar.bz2 index 83b8fbd..f2e8786 100644 --- a/patches.fixes.tar.bz2 +++ b/patches.fixes.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:08dac944f2cc606076845eaf2b84da3ad7010f206f874a2650f6cc21c8a4ed52 -size 126317 +oid sha256:a2d04feadb5354ec358ed49f2147635e717330fb6b808e3a664aa06ad8876907 +size 126477 diff --git a/patches.rt.tar.bz2 b/patches.rt.tar.bz2 index db2033d..786cf09 100644 --- a/patches.rt.tar.bz2 +++ b/patches.rt.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:416118ba6f0ee0393c30d6972cbffea9b122f6312b6fe94d58f3474e7c185c15 -size 124 +oid sha256:e3de70b1fdf28facb1d2cabbd292b162ba34e26d742c584b395c4435a00a4915 +size 122 diff --git a/series.conf b/series.conf index f71fe51..4881c04 100644 --- a/series.conf +++ b/series.conf @@ -736,6 +736,8 @@ patches.drivers/e1000e_add_ECC + patches.fixes/igb_ethtool.patch + patches.drivers/tg3-Add-57780-ASIC-revision.patch patches.drivers/broadcom-Add-support-for-the-57780-integrated-PHY.patch patches.drivers/bnx2x-eeh.patch diff --git a/split-into-symsets b/split-into-symsets deleted file mode 100644 index dce64fc..0000000 --- a/split-into-symsets +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/bash - -usage() { - echo "Usage: ${0##*/} {dir} < Module.symvers" - exit $1 -} - -[ $# -eq 1 ] || usage 1 -dir=$1 - -tmpdir=$(mktemp -dt ${0##*/}.XXXXXXXXXX) -trap "rm -rf $tmpdir" EXIT - -split_into_sets() { - local dir=$1 - - awk ' - { set = gensub(/\/[^\/]+$/, "", "", $3) - sets[set] = sets[set] $0 "\n" - } - END { - for (set in sets) { - filename = gensub(/\//, "_", "g", set) - printf "%s", sets[set] > dir "/" filename - } - } - ' dir="$dir" -} - -sort -k2 \ -| split_into_sets "$tmpdir" - -shopt -s nullglob -set -- $tmpdir/* -if [ $# -ne 0 ]; then - md5sum "$@" \ - | while read md5sum set; do - cp $set $dir/${set##*/}.${md5sum:0:16} - done -fi diff --git a/symsets.pl b/symsets.pl new file mode 100644 index 0000000..db055ae --- /dev/null +++ b/symsets.pl @@ -0,0 +1,392 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use diagnostics; + +use Digest::MD5 qw(md5_hex); +use Getopt::Long; +use Data::Dumper; + + +our $usage = +"Usage: + $0 --list-exported-symbols ... + $0 --generate-symsets [--reference=DIR] --output-dir=DIR ... + $0 --list-symsets [--reference=DIR] ... + $0 --check-kabi --reference=DIR ... +"; +our ($opt_verbose); +our $kabi_badness = 0; +our (%commonsyms, %usedsyms, @severities); +our ($opt_list_exp, $opt_gen_sets, $opt_list_sets, $opt_check_kabi) = (0,0,0,0); +our ($opt_max_badness, $opt_commonsyms, $opt_usedsyms, $opt_severities); +our ($opt_output_dir, $opt_reference, $opt_modules, $opt_symvers_file); + +sub main { + my $res = GetOptions( + 'list-exported-symbols' => \$opt_list_exp, + 'generate-symsets' => \$opt_gen_sets, + 'list-symsets' => \$opt_list_sets, + 'check-kabi' => \$opt_check_kabi, + + 'max-badness=i' => \$opt_max_badness, + 'commonsyms|common-syms=s' => \$opt_commonsyms, + 'usedsyms|used-syms=s' => \$opt_usedsyms, + 'severities=s' => \$opt_severities, + + 'symvers-file=s' => \$opt_symvers_file, + 'modules=s' => \$opt_modules, + 'reference=s' => \$opt_reference, + + 'output-dir=s' => \$opt_output_dir, + 'verbose|v' => \$opt_verbose, + ); + # boring option checking + my $opt_err = sub { + print STDERR "ERROR: @_\n"; + $res = 0; + }; + &$opt_err("Please choose one of --list-exported-symbols, --generate-symsets, --list-symsets or --check-kabi") + if ($opt_list_exp + $opt_gen_sets + $opt_list_sets > 1 || + !($opt_list_exp + $opt_gen_sets + $opt_list_sets + $opt_check_kabi)); + &$opt_err("--check-kabi doesn't work with --list-exported-symbols") + if ($opt_list_exp && $opt_check_kabi); + &$opt_err("--check-kabi requires --reference") + if ($opt_check_kabi && !$opt_reference); + &$opt_err("--output-dir only makes sense with --generate-symsets") + if ($opt_output_dir && !$opt_gen_sets); + &$opt_err("--generate-symsets requires --output-dir") + if ($opt_gen_sets && !$opt_output_dir); + if (!$opt_check_kabi) { + for my $opt qw(max-badness commonsyms usedsyms severities) { + no strict 'refs'; + my $var = "opt_$opt"; + $var =~ s/-/_/g; + if (defined(${$var})) { + &$opt_err("--$opt only makes sense with --check-kabi"); + } + } + } + # get list of modules + my @modules; + if (defined($opt_modules)) { + my $fh; + if ($opt_modules eq '-') { + open($fh, '<&STDIN'); + } else { + open($fh, '<', $opt_modules) or die "Can't open module list $opt_modules: $!\n"; + } + @modules = <$fh>; + chomp(@modules); + close($fh); + } else { + @modules = @ARGV; + } + if (@modules == 0) { + &$opt_err("No modules supplied"); + } + if (!$res) { + print STDERR $usage; + exit 1; + } + + # get list of exports + my @exports; + for my $file (@modules) { + push(@exports, module_exports($file)); + } + if (defined($opt_symvers_file)) { + push(@exports, builtin_exports(parse_symset($opt_symvers_file))); + } + if ($opt_list_exp) { + print format_exports(@exports); + exit 0; + } + + # generate symsets and optionally check kabi + my (@ref, @sets); + @sets = split_into_symsets(@exports); + if (defined($opt_reference)) { + @ref = load_symsets($opt_reference); + if ($opt_check_kabi) { + load_kabi_files($opt_commonsyms, $opt_usedsyms, $opt_severities); + } + # records kabi breakage if $opt_check_kabi is set + preserve_symsets(\@ref, \@sets); + } + if ($opt_gen_sets) { + write_symsets($opt_output_dir, @sets); + } elsif ($opt_list_sets) { + write_symsets(undef, @sets); + } + if ($kabi_badness) { + print STDERR "KABI: badness is $kabi_badness"; + if (!defined($opt_max_badness) || $kabi_badness <= $opt_max_badness) { + print STDERR " (tolerated)\n"; + } else { + print STDERR " (exceeds threshold $opt_max_badness), aborting\n"; + exit 1; + } + } + exit 0; +} + +# structures used: +# %export: +# (crc => $crc, sym => $sym, mod => $module, type => $type) +# @exportlist +# ({crc => $crc, sym => $sym, mod => $module, type => $type}, ...) +# @symset: +# ($name, [{crc => $crc, sym => $sym, mod => $module, type => $type}, ...]) +# @symsetlist: +# ( +# [$name, [{crc => $crc, sym => $sym, mod => $module, type => $type}, ...], +# ... +# ) +# + +# parse a Modules.symvers-style file +# returns an exportlist +sub parse_symset { + my ($file) = @_; + my @res; + + open(my $fh, '<', $file) or die "Error opening $file: $!\n"; + while (<$fh>) { + my @l = split(/\s+/); + if (@l < 4) { + print STDERR "$file:$.: unknown line\n"; + next; + } + $l[0] =~ s/^0x//; + push(@res, {crc => $l[0], sym => $l[1], mod => $l[2], type => $l[3]}); + } + close($fh); + return @res; +} + +# greps an exportlist for built-in symbols +sub builtin_exports { + return grep { $_->{mod} =~ /(^vmlinux$)|(\/built-in$)/ } @_; +} + +my %export_types = ( + __ksymtab => "EXPORT_SYMBOL", + __ksymtab_unused => "EXPORT_UNUSED_SYMBOL", + __ksymtab_gpl => "EXPORT_SYMBOL_GPL", + __ksymtab_unused_gpl => "EXPORT_UNUSED_SYMBOL_GPL", + __ksymtab_gpl_future => "EXPORT_SYMBOL_GPL_FUTURE" +); +# returns an exportlist for a given module +sub module_exports { + my ($file) = @_; + my (%crcs, %types, @res); + my $mod = $file; + $mod =~ s/.*\/lib\/modules\/[^\/]*\/kernel\///; + $mod =~ s/\.(k?o|a)$//; + + open(my $pipe, '-|', 'objdump', '-t', $file) or die "objdump -t $file: $!\n"; + while (<$pipe>) { + my $l = $_; + my @l = split(/\s+/); + next if (@l < 3); + next if ($l =~ /^[^ ]* .....d/); # debug symbol + my $sym = $l[$#l]; + my $sec = $l[$#l - 2]; + if ($sym =~ /^__crc_(.*)/) { + $crcs{$1} = $l[0]; + $crcs{$1} =~ s/^0{8}//; + } elsif ($sym =~ /^__ksymtab_(.*)/ && exists($export_types{$sec})) { + $types{$1} = $export_types{$sec}; + } + } + close($pipe); + if ($? != 0) { + die "objdump returned an error\n"; + } + for my $sym (keys(%types)) { + push(@res, {sym => $sym, crc => $crcs{$sym} || "0"x8, mod => $mod, + type => $types{$sym}}); + } + return @res; +} + +# format an exportlist for output +sub format_exports { + my $res = ""; + for my $exp (sort { $a->{sym} cmp $b->{sym} } @_) { + $res .= "0x$exp->{crc}\t$exp->{sym}\t$exp->{mod}\t$exp->{type}\n"; + } + return $res; +} + +# splits exports by directories, returns a symsetlist +sub split_into_symsets { + my %sets; + + for my $exp (@_) { + my $set = $exp->{mod}; + $set =~ s/\/[^\/]+$//; + $set =~ s/\//_/g; + $sets{$set} ||= []; + push(@{$sets{$set}}, $exp); + } + return map { [$_, $sets{$_}] } keys(%sets) +} + +# loads symsets from a directory created by write_symsets +# returns symsetlist +# FIXME: multiple versions of a symset +sub load_symsets { + my ($dir) = @_; + my @sets; + + opendir(my $dh, $dir) or die "Error reading directory $dir: $!\n"; + for my $file (readdir($dh)) { + next if $file =~ /^\.\.?$/; + if (!-f "$dir/$file" || $file !~ /^(\w+)\.[0-9a-f]{16}$/) { + print STDERR "Ignoring unknown file $dir/$file\n"; + next; + } + my $set = $1; + push(@sets, [$set, [parse_symset("$dir/$file")]]); + } + closedir($dh); + return @sets; +} + +sub hash { + return substr(md5_hex(@_), 0, 16); +} + +# writes symsets as returned by split_into_symsets/load_symsets into $dir +sub write_symsets { + my $dir = shift; + my @sets = @_; + + my $print_only = (!defined($dir)); + for my $set (@sets) { + my $name = $set->[0]; + my $exports = $set->[1]; + my $data = format_exports(@$exports); + my $hash = hash($data); + if ($print_only) { + print "$name.$hash\n"; + } else { + my $f = "$dir/$name.$hash"; + open(my $fh, '>', $f) or die "error creating $f: $!\n"; + print $fh $data; + close($fh); + } + } +} + +# loads kabi check configurations into %commonsyms, %usedsyms and %severities +sub load_kabi_files { + my ($csfile, $usfile, $sevfile) = @_; + + if (defined($csfile)) { + open(my $fh, '<', $csfile) or die "Can't open $csfile: $!\n"; + %commonsyms = map { s/\s+//g; ; $_ => 1 } <$fh>; + close($fh); + } + if (defined($usfile)) { + open(my $fh, '<', $usfile) or die "Can't open $usfile: $!\n"; + %usedsyms = map { s/\s+//g; $_ => 1 } <$fh>; + close($fh); + } + if (defined($sevfile)) { + open(my $fh, '<', $sevfile) or die "Can't open $sevfile: $!\n"; + while (<$fh>) { + chomp; + s/#.*//; + next if /^\s*$/; + my @f = split(/\s+/); + if (@f != 2) { + print STDERR "$sevfile:$.: unknown line\n"; + next; + } + if ($f[1] !~ /^\d+$/) { + print STDERR "$sevfile:$.: invalid severity $f[1]\n"; + next; + } + # simple glob -> regexp conversion + $f[0] =~ s/\*/.*/g; + $f[0] =~ s/\?/./g; + $f[0] =~ s/.*/^$&\$/; + push(@severities, [@f]); + } + close($fh); + } +} + +# record kabi changes +sub kabi_change { + my $exp = shift; + my $sev; + + return if !$opt_check_kabi; + + $sev = 8; + for my $rule (@severities) { + if ($exp->{mod} =~ $rule->[0]) { + $sev = $rule->[1]; + last; + } + } + if (exists($usedsyms{$exp->{sym}})) { + $sev += 16; + } elsif (exists($commonsyms{$exp->{sym}})) { + $sev += 8; + } + print STDERR "KABI: symbol $exp->{sym}.$exp->{crc} (badness $sev): @_\n"; + $kabi_badness = $sev if ($sev > $kabi_badness); +} + +# check if all symbols from $old symsetlist are provided by $new symsetlist, +# add compatible symsets to $new +sub preserve_symsets { + my ($old, $new) = @_; + my (%symcrcs, %symsethashes); + + for my $set (@$new) { + my $name = $set->[0]; + my $exports = $set->[1]; + $symsethashes{$name} = hash(format_exports(@$exports)); + for my $exp (@$exports) { + $symcrcs{$exp->{sym}} = $exp->{crc}; + } + } + for my $set (@$old) { + my $name = $set->[0]; + my $exports = $set->[1]; + my $hash = hash(format_exports(@$exports)); + if (exists($symsethashes{$name}) && $symsethashes{$name} eq $hash) { + next; + } + my $compatible = 1; + for my $exp (@$exports) { + if (!exists($symcrcs{$exp->{sym}})) { + kabi_change($exp, "missing"); + $compatible = 0; + next; + } + if ($symcrcs{$exp->{sym}} ne $exp->{crc}) { + kabi_change($exp, "crc changed to $symcrcs{$exp->{sym}}\n"); + $compatible = 0; + } + } + if ($compatible) { + print STDERR "KABI: symset $name.$hash preserved\n" if $opt_verbose; + push(@$new, $set); + } else { + print STDERR "KABI: symset $name.$hash is NOT preserved\n" if $opt_verbose; + } + } +} + + +main(); + +# vim: sw=4:et:sts=4