Hi,

It seems all_arch_configs is not set correctly for x86 builds.

in current kernel.spec, for x86,

        all_arch_configs is kernel-*.config

This is wrong as it will include non x86 configs too thus resulting in build failure.

One way to solve this is to rename all x86 based kernel configs to kernel-x86-*.config and use

        #define all_arch_configs kernel-x86-*.config

the other way is to remove non x86 configs when build is not x86. but this is a hack.

any better suggestions how to fix this?

cheers,
-roger

Quadros Roger (Nokia-D/Helsinki) wrote:
Fixes OBS build for ARM N900. This will not affect existing
x86 or x86_64 builds.

Signed-off-by: Roger Quadros <[email protected]>
---
 Makefile        |    5 ++++
 Makefile.config |    9 ++-----
 kernel.spec     |   63 ++++++++++++++++++++++++++++++++++-----------------
 kernel.spec.in  |   67 ++++++++++++++++++++++++++++++++++++-------------------
 makespec.pl     |    2 +-
 5 files changed, 95 insertions(+), 51 deletions(-)

diff --git a/Makefile b/Makefile
index ba92df0..d8deed5 100644
--- a/Makefile
+++ b/Makefile
@@ -26,3 +26,8 @@ menlow: kernel.spec.in series makespec.pl
        @touch MENLOW;
        @perl makespec.pl < kernel.spec.in > kernel-menlow.spec ;
        @rm MENLOW;
+
+n900: kernel.spec.in series makespec.pl
+       @touch N900;
+       @perl makespec.pl < kernel.spec.in > kernel-n900.spec ;
+       @rm N900;
diff --git a/Makefile.config b/Makefile.config
index 27f8071..3cabb6a 100644
--- a/Makefile.config
+++ b/Makefile.config
@@ -10,7 +10,7 @@ CONFIGFILES   = \
        $(CFG)-shcdk.config \
        $(CFG)-aava.config \
        $(CFG)-ivi.config \
-       $(CFG)-n900.config
+       $(CFG)-arm-n900.config

 PLATFORMS      = x86
 TEMPFILES      = $(addprefix temp-, $(addsuffix -generic, $(PLATFORMS)))
@@ -39,8 +39,5 @@ kernel-shcdk.config: config-shcdk config-generic
 kernel-aava.config: config-aava kernel-shcdk.config
        perl merge.pl $^  > $@

-tmp-arm-config: config-arm-generic config-generic
-       perl merge.pl $^  > $@
-
-kernel-n900.config: config-arm-n900 tmp-arm-config
-       perl merge.pl $^  > $@
+kernel-arm-n900.config: config-arm-n900
+       cp $^ $@
diff --git a/kernel.spec b/kernel.spec
index a1dfb3b..a5c62fe 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -60,7 +60,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)

 %define all_x86 i386 i586 i686 %{ix86}

-%define all_arm arm armv5el
+%define all_arm %{arm}

 # Overrides for generic default options
 %define all_arch_configs kernel-*.config
@@ -81,10 +81,10 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %endif

 %ifarch %{all_arm}
-%define all_arch_configs kernel-*.config
+%define all_arch_configs kernel-arm-*.config
 %define image_install_path boot
-%define kernel_image vmlinux
-%define make_target vmlinux
+%define kernel_image arch/arm/boot/zImage
+%define make_target zImage
 %endif

 %define oldconfig_target nonint_oldconfig
@@ -384,11 +384,18 @@ This package contains the kernel optimized for the 
Moorsetown platform for Aava
 %description ivi
 This package contains the kernel optimized for In Vehicle Infotainment segments

-%else
+%endif
+
+%ifarch %{all_arm}
+
+#N900 ARM variant
 %define variant_summary Kernel for the Nokia N900
-%kernel_variant_package n900
-%description n900
+%kernel_variant_package arm-n900
+%description arm-n900
 This package contains the kernel optimized for the Nokia N900 device
+
+#Put other ARM variants here
+
 %endif


@@ -676,13 +683,13 @@ for cfg in kernel-*.config; do
 done

 # now run oldconfig over all the config files
-for i in *.config
+for i in %{all_arch_configs}
 do
   mv $i .config
   Arch="x86"
-  if [ `echo $i | grep -c n900` -eq 1 ]; then
-       Arch="arm"
-  fi
+%ifarch %{all_arm}
+    Arch="arm"
+%endif
   # make oldconfig > /dev/null
   echo Doing $i
   make ARCH=$Arch %{oldconfig_target} > /dev/null
@@ -739,9 +746,6 @@ BuildKernel() {
     cp configs/$Config .config

     Arch="x86"
-  if [ `echo $Config | grep -c n900` -eq 1 ]; then
-       Arch="arm"
-  fi
 %ifarch %{all_arm}
     Arch="arm"
 %endif
@@ -766,7 +770,9 @@ BuildKernel() {

     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
     make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
KERNELRELEASE=$KernelVer
+%ifnarch %{all_arm}
     make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install 
KERNELRELEASE=$KernelVer
+%endif

     # And save the headers/makefiles etc for building modules against
     #
@@ -801,7 +807,12 @@ BuildKernel() {
     fi
     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
+%ifarch %{all_x86}
     cp -a --parents arch/x86/include 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build
+%endif
+%ifarch %{all_arm}
+    cp -a --parents arch/arm/include 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build
+%endif
     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cd include
     cp -a acpi asm-generic config crypto drm generated keys linux math-emu 
media mtd net pcmcia rdma rxrpc scsi sound video trace 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
@@ -877,8 +888,10 @@ BuildKernel %make_target %kernel_image shcdk
 BuildKernel %make_target %kernel_image aava
 BuildKernel %make_target %kernel_image netbook
 BuildKernel %make_target %kernel_image ivi
-%else
-BuildKernel %make_target %kernel_image n900
+%endif
+
+%ifarch %all_arm
+BuildKernel %make_target %kernel_image arm-n900
 %endif

 cd tools/perf
@@ -994,17 +1007,21 @@ fi}\
 %kernel_variant_preun ivi
 %kernel_variant_post -v ivi

-%else
+%endif

-%kernel_variant_preun n900
-%kernel_variant_post -v n900
+%ifarch %{all_arm}
+
+%kernel_variant_preun arm-n900
+%kernel_variant_post -v arm-n900

 %endif

+%ifnarch %{all_arm}
 if [ -x /sbin/ldconfig ]
 then
     /sbin/ldconfig -X || exit $?
 fi
+%endif

 ###
 ### file lists
@@ -1034,7 +1051,9 @@ fi
 /lib/modules/%{KVERREL}%{?2:-%{2}}/kernel\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/build\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/source\
+%ifnarch %{all_arm}\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/vdso\
+%endif\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.block\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.dep.bin\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.alias.bin\
@@ -1061,8 +1080,10 @@ fi
 %kernel_variant_files 1 shcdk
 %kernel_variant_files 1 aava
 %kernel_variant_files 1 ivi
-%else
-%kernel_variant_files 1 n900
+%endif
+
+%ifarch %{all_arm}
+%kernel_variant_files 1 arm-n900
 %endif


diff --git a/kernel.spec.in b/kernel.spec.in
index 9bdfc7f..daaea1b 100644
--- a/kernel.spec.in
+++ b/kernel.spec.in
@@ -60,7 +60,7 @@ Summary: The Linux kernel (the core of the Linux operating 
system)

 %define all_x86 i386 i586 i686 %{ix86}

-%define all_arm arm armv5el
+%define all_arm %{arm}

 # Overrides for generic default options
 %define all_arch_configs kernel-*.config
@@ -81,10 +81,10 @@ Summary: The Linux kernel (the core of the Linux operating 
system)
 %endif

 %ifarch %{all_arm}
-%define all_arch_configs kernel-*.config
+%define all_arch_configs kernel-arm-*.config
 %define image_install_path boot
-%define kernel_image vmlinux
-%define make_target vmlinux
+%define kernel_image arch/arm/boot/zImage
+%define make_target zImage
 %endif

 %define oldconfig_target nonint_oldconfig
@@ -246,11 +246,18 @@ This package contains the kernel optimized for the Menlow 
platform
 %description ivi
 This package contains the kernel optimized for In Vehicle Infotainment segments

-%else
-%define variant_summary Kernel for the Nokia N900
-%kernel_variant_package n900
-%description n900
-This package contains the kernel optimized for the Nokia N900 device
+%endif
+
+%ifarch %{all_arm}
+
+@@N900 #N900 ARM variant
+@@N900 %define variant_summary Kernel for the Nokia N900
+@@N900 %kernel_variant_package arm-n900
+@@N900 %description arm-n900
+@@N900 This package contains the kernel optimized for the Nokia N900 device
+
+#Put other ARM variants here
+
 %endif


@@ -336,13 +343,13 @@ for cfg in kernel-*.config; do
 done

 # now run oldconfig over all the config files
-for i in *.config
+for i in %{all_arch_configs}
 do
   mv $i .config
   Arch="x86"
-  if [ `echo $i | grep -c n900` -eq 1 ]; then
-       Arch="arm"
-  fi
+%ifarch %{all_arm}
+    Arch="arm"
+%endif
   # make oldconfig > /dev/null
   echo Doing $i
   make ARCH=$Arch %{oldconfig_target} > /dev/null
@@ -399,9 +406,6 @@ BuildKernel() {
     cp configs/$Config .config

     Arch="x86"
-  if [ `echo $Config | grep -c n900` -eq 1 ]; then
-       Arch="arm"
-  fi
 %ifarch %{all_arm}
     Arch="arm"
 %endif
@@ -426,7 +430,9 @@ BuildKernel() {

     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
     make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install 
KERNELRELEASE=$KernelVer
+%ifnarch %{all_arm}
     make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install 
KERNELRELEASE=$KernelVer
+%endif

     # And save the headers/makefiles etc for building modules against
     #
@@ -461,7 +467,12 @@ BuildKernel() {
     fi
     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
     rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
+%ifarch %{all_x86}
     cp -a --parents arch/x86/include 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build
+%endif
+%ifarch %{all_arm}
+    cp -a --parents arch/arm/include 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build
+%endif
     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cd include
     cp -a acpi asm-generic config crypto drm generated keys linux math-emu 
media mtd net pcmcia rdma rxrpc scsi sound video trace 
$RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
@@ -538,8 +549,10 @@ cd linux-%{kversion}
 @@N BuildKernel %make_target %kernel_image netbook
 @@W BuildKernel %make_target %kernel_image menlow
 @@I BuildKernel %make_target %kernel_image ivi
-%else
-@@A BuildKernel %make_target %kernel_image n900
+%endif
+
+%ifarch %all_arm
+@@N900 BuildKernel %make_target %kernel_image arm-n900
 %endif

 cd tools/perf
@@ -657,17 +670,21 @@ fi}\
 @@I %kernel_variant_preun ivi
 @@I %kernel_variant_post -v ivi

-%else
+%endif

-@@A %kernel_variant_preun n900
-@@A %kernel_variant_post -v n900
+%ifarch %{all_arm}
+
+@@N900 %kernel_variant_preun arm-n900
+@@N900 %kernel_variant_post -v arm-n900

 %endif

+%ifnarch %{all_arm}
 if [ -x /sbin/ldconfig ]
 then
     /sbin/ldconfig -X || exit $?
 fi
+%endif

 ###
 ### file lists
@@ -697,7 +714,9 @@ fi
 /lib/modules/%{KVERREL}%{?2:-%{2}}/kernel\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/build\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/source\
+%ifnarch %{all_arm}\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/vdso\
+%endif\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.block\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.dep.bin\
 /lib/modules/%{KVERREL}%{?2:-%{2}}/modules.alias.bin\
@@ -725,8 +744,10 @@ fi
 @@M %kernel_variant_files 1 shcdk
 @@M %kernel_variant_files 1 aava
 @@I %kernel_variant_files 1 ivi
-%else
-@@A %kernel_variant_files 1 n900
+%endif
+
+%ifarch %{all_arm}
+@@N900 %kernel_variant_files 1 arm-n900
 %endif


diff --git a/makespec.pl b/makespec.pl
index 79cb8d6..5c432fb 100644
--- a/makespec.pl
+++ b/makespec.pl
@@ -107,7 +107,7 @@ while (<>) {
         print "$1\n";
         next;
     }
-    if ($want_n900 > 0 && $line =~ /\...@\@A (.*)/) {
+    if ($want_n900 > 0 && $line =~ /\...@\@N900 (.*)/) {
         print "$1\n";
         next;
     }
--
1.6.0.4

_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev


_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev

Reply via email to