1
0
forked from pool/kernel-source
OBS User unknown 2008-11-23 07:54:06 +00:00 committed by Git OBS Bridge
parent 5a313385c0
commit e73ee51e1f
42 changed files with 2082 additions and 1100 deletions

View File

@ -1,2 +1,2 @@
2008-11-21 16:10:15 +0100
GIT Revision: 35d2d1415e587dd675f7c51c926f445d468b7639
2008-11-21 20:17:17 +0100
GIT Revision: f4a5381e7e6b435efbcac2ec00c00b4fbb6a3294

View File

@ -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
}

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c470ea05dd6571fe53400908fba191d935ee539de199754e60ac8330e7383fb1
size 138642
oid sha256:e1b0edb65a7bb6996cd82ed63b362a08d55ccb6ee5f5ed5a4ad932fcb6947cda
size 135207

View File

@ -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'

View File

@ -1,235 +0,0 @@
#!/bin/bash
# Tool to do kABI checks.
# (c) Kurt Garloff <garloff@suse.de>, 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

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:06dc16bcf243d23dd1d0ebb0ae961a714108769196a67fb4033e1219c59821c4
size 2274
oid sha256:870770cdcde4eb01d819adbe6f319721074ff8fecc58902cfc87534796fae656
size 2758

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 <agruen@suse.de>
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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 <tom_gall@vnet.ibm.com>
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 <tom_gall@vnet.ibm.com>
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 <tom_gall@vnet.ibm.com>
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 <tom_gall@vnet.ibm.com>
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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b7a237b3386769eae29230cf80cea6ff884c76435e155e8d4fa86a8f535cd02
size 128
oid sha256:c40a2498823161152c6b51ef64055d302030cee0c0bfaceb0bde4d050698b236
size 127

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cde325934227947db4563f307a05b3201ca845b3f6508e03ce0a093f9168414c
size 2629961
oid sha256:f50ec42a93db8ed935d709ac41ecb8cde9f6205706f4822703a8f1c7f5af4424
size 2630411

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:08dac944f2cc606076845eaf2b84da3ad7010f206f874a2650f6cc21c8a4ed52
size 126317
oid sha256:a2d04feadb5354ec358ed49f2147635e717330fb6b808e3a664aa06ad8876907
size 126477

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:416118ba6f0ee0393c30d6972cbffea9b122f6312b6fe94d58f3474e7c185c15
size 124
oid sha256:e3de70b1fdf28facb1d2cabbd292b162ba34e26d742c584b395c4435a00a4915
size 122

View File

@ -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

View File

@ -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

392
symsets.pl Normal file
View File

@ -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