summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Zickus <dzickus@redhat.com>2017-11-06 16:55:26 -0500
committerLaura Abbott <labbott@redhat.com>2017-11-13 09:39:16 -0800
commit4be26cbac7c0b76d6d77783cfb114206b1a7716b (patch)
tree3a3091fa3dad8cd0c77b543b2b675d4ea87f22cf
parentc54d82caa97d0d11e06f263f92394479bf3bb437 (diff)
downloadkernel-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.
l---------[-rwxr-xr-x]build_configs.sh90
l---------[-rw-r--r--]config_generation37
-rwxr-xr-xconfigs/build_configs.sh89
-rw-r--r--configs/config_generation36
l---------[-rwxr-xr-x]merge.pl67
5 files changed, 128 insertions, 191 deletions
diff --git a/build_configs.sh b/build_configs.sh
index 140511f19..655abb2b0 100755..120000
--- a/build_configs.sh
+++ b/build_configs.sh
@@ -1,89 +1 @@
-#!/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-*
+configs/build_configs.sh \ No newline at end of file
diff --git a/config_generation b/config_generation
index 64ae444f4..af7ab4c62 100644..120000
--- a/config_generation
+++ b/config_generation
@@ -1,36 +1 @@
-# 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
+configs/config_generation \ No newline at end of file
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
diff --git a/merge.pl b/merge.pl
index 8c318156a..b77225dd2 100755..120000
--- a/merge.pl
+++ b/merge.pl
@@ -1,66 +1 @@
-#! /usr/bin/perl
-
-my @args=@ARGV;
-my %configvalues;
-my @configoptions;
-my $configcounter = 0;
-
-# optionally print out the architecture as the first line of our output
-my $arch = $args[2];
-if (defined $arch) {
- print "# $arch\n";
-}
-
-# first, read the override file
-
-open (FILE,"$args[0]") || die "Could not open $args[0]";
-while (<FILE>) {
- my $str = $_;
- my $configname;
-
- if (/\# ([\w]+) is not set/) {
- $configname = $1;
- } elsif (/([\w]+)=/) {
- $configname = $1;
- }
-
- if (defined($configname) && !exists($configvalues{$configname})) {
- $configvalues{$configname} = $str;
- $configoptions[$configcounter] = $configname;
- $configcounter ++;
- }
-};
-
-# now, read and output the entire configfile, except for the overridden
-# parts... for those the new value is printed.
-
-open (FILE2,"$args[1]") || die "Could not open $args[1]";
-while (<FILE2>) {
- my $configname;
-
- if (/\# ([\w]+) is not set/) {
- $configname = $1;
- } elsif (/([\w]+)=/) {
- $configname = $1;
- }
-
- if (defined($configname) && exists($configvalues{$configname})) {
- print "$configvalues{$configname}";
- delete($configvalues{$configname});
- } else {
- print "$_";
- }
-}
-
-# now print the new values from the overridden configfile
-my $counter = 0;
-
-while ($counter < $configcounter) {
- my $configname = $configoptions[$counter];
- if (exists($configvalues{$configname})) {
- print "$configvalues{$configname}";
- }
- $counter++;
-}
-
-1;
+configs/merge.pl \ No newline at end of file