diff options
author | Don Zickus <dzickus@redhat.com> | 2017-11-06 16:55:26 -0500 |
---|---|---|
committer | Laura Abbott <labbott@redhat.com> | 2017-11-13 09:39:16 -0800 |
commit | 4be26cbac7c0b76d6d77783cfb114206b1a7716b (patch) | |
tree | 3a3091fa3dad8cd0c77b543b2b675d4ea87f22cf /configs | |
parent | c54d82caa97d0d11e06f263f92394479bf3bb437 (diff) | |
download | kernel-4be26cbac7c0b76d6d77783cfb114206b1a7716b.tar.gz kernel-4be26cbac7c0b76d6d77783cfb114206b1a7716b.tar.xz kernel-4be26cbac7c0b76d6d77783cfb114206b1a7716b.zip |
configs: Create symlinks to used scripts
As part of the config re-organization, put the scripts needed to create
the config files in the configs/ directory. At the top level create
symlinks for those scripts. This allows the kernel.spec file to find
the scripts it needs and work correctly.
No code changes.
Diffstat (limited to 'configs')
-rwxr-xr-x | configs/build_configs.sh | 89 | ||||
-rw-r--r-- | configs/config_generation | 36 |
2 files changed, 125 insertions, 0 deletions
diff --git a/configs/build_configs.sh b/configs/build_configs.sh new file mode 100755 index 000000000..140511f19 --- /dev/null +++ b/configs/build_configs.sh @@ -0,0 +1,89 @@ +#!/bin/bash +# +# This script merges together the hierarchy of CONFIG_* files under generic +# and debug to form the necessary $PACKAGE_NAME<version>-<arch>-<variant>.config +# files for building RHEL kernels, based on the contents of a control file + +PACKAGE_NAME=kernel # defines the package name used + +set errexit +set nounset + +control_file="config_generation" + +function combine_config_layer() +{ + dir=$1 + file="config-$(echo $dir | sed -e 's|/|-|g')" + + if [ $(ls $dir/ | grep -c "^CONFIG_") -eq 0 ]; then + touch $file + return + fi + + cat $dir/CONFIG_* > $file +} + +function merge_configs() +{ + archvar=$1 + arch=$(echo "$archvar" | cut -f1 -d"-") + configs=$2 + name=$PACKAGE_NAME-$archvar.config + echo -n "Building $name ... " + touch config-merging config-merged + for config in $(echo $configs | sed -e 's/:/ /g') + do + perl merge.pl config-$config config-merging > config-merged + if [ ! $? -eq 0 ]; then + exit + fi + mv config-merged config-merging + done + if [ "x$arch" == "xaarch64" ]; then + echo "# arm64" > $name + elif [ "x$arch" == "xppc64" ]; then + echo "# powerpc" > $name + elif [ "x$arch" == "xppc64le" ]; then + echo "# powerpc" > $name + elif [ "x$arch" == "xs390x" ]; then + echo "# s390" > $name + elif [ "x$arch" == "xarmv7hl" ]; then + echo "# arm" > $name + elif [ "x$arch" == "xi686" ]; then + echo "# i386" > $name + else + echo "# $arch" > $name + fi + sort config-merging >> $name + rm -f config-merged config-merging + echo "done" +} + +glist=$(find baseconfig -type d) +dlist=$(find debugconfig -type d) + +for d in $glist $dlist +do + combine_config_layer $d +done + +while read line +do + if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then + continue + elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then + continue + else + arch=$(echo "$line" | cut -f1 -d"=") + configs=$(echo "$line" | cut -f2 -d"=") + + if [ -n "$SUBARCH" -a "$SUBARCH" != "$arch" ]; then + continue + fi + + merge_configs $arch $configs + fi +done < $control_file + +rm -f config-* diff --git a/configs/config_generation b/configs/config_generation new file mode 100644 index 000000000..64ae444f4 --- /dev/null +++ b/configs/config_generation @@ -0,0 +1,36 @@ +# config-variant=config:config:config +# kernel.config files are build on the fly based on this config, +# the first arg is arch and variant, the second is a hierarchy of +# config options, lowest priority to highest + +# x86_64 +x86_64=baseconfig:baseconfig-x86:baseconfig-x86-x86_64 +x86_64-debug=baseconfig:baseconfig-x86:baseconfig-x86-x86_64:debugconfig:debugconfig-x86:debugconfig-x86-x86_64 + +# i686 +i686=baseconfig:baseconfig-x86:baseconfig-x86-i686 +i686-debug=baseconfig:baseconfig-x86:baseconfig-x86-i686:debugconfig:debugconfig-x86 +i686-PAE=baseconfig:baseconfig-x86:baseconfig-x86-i686PAE +i686-PAEdebug=baseconfig:baseconfig-x86:baseconfig-x86-i686PAE:debugconfig:debugconfig-x86 + +# ppc64 +ppc64=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64 +ppc64-debug=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64:debugconfig + +# ppc64le +ppc64le=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64le +ppc64le-debug=baseconfig:baseconfig-powerpc:baseconfig-powerpc-powerpc64le:debugconfig + +# s390x +s390x=baseconfig:baseconfig-s390x +s390x-debug=baseconfig:baseconfig-s390x:debugconfig + +# aarch64 +aarch64=baseconfig:baseconfig-arm:baseconfig-arm-arm64 +aarch64-debug=baseconfig:baseconfig-arm:baseconfig-arm-arm64:debugconfig:debugconfig-arm + +# arm +armv7hl=baseconfig:baseconfig-arm:baseconfig-arm-armv7:baseconfig-arm-armv7-armv7 +armv7hl-debug=baseconfig:baseconfig-arm:baseconfig-arm-armv7:baseconfig-arm-armv7-armv7:debugconfig:debugconfig-arm +armv7hl-lpae=baseconfig:baseconfig-arm:baseconfig-arm-armv7:baseconfig-arm-armv7-lpae +armv7hl-lpae-debug=baseconfig:baseconfig-arm:baseconfig-arm-armv7:baseconfig-arm-armv7-lpae:debugconfig:debugconfig-arm |