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.
This commit is contained in:
Don Zickus 2017-11-06 16:55:26 -05:00 committed by Laura Abbott
parent c54d82caa9
commit 4be26cbac7
5 changed files with 128 additions and 191 deletions

View File

@ -1,89 +0,0 @@
#!/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-*

1
build_configs.sh Symbolic link
View File

@ -0,0 +1 @@
configs/build_configs.sh

View File

@ -1,36 +0,0 @@
# 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

1
config_generation Symbolic link
View File

@ -0,0 +1 @@
configs/config_generation

89
configs/build_configs.sh Executable file
View File

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

36
configs/config_generation Normal file
View File

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

View File

@ -1,66 +0,0 @@
#! /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;

1
merge.pl Symbolic link
View File

@ -0,0 +1 @@
configs/merge.pl