Bug 56110

Summary: source for ia32 2.4.9-12 and ia64 are not the same
Product: [Retired] Red Hat Linux Reporter: Joubert Berger <joubert>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED NOTABUG QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1   
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-11-12 21:23:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Joubert Berger 2001-11-12 21:23:32 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.5) Gecko/20011012

Description of problem:
I downloaded the latest IA64 bit kernel from RH (2.4.9-12) and did a
compare agains their i386 2.4.9-12 kernel.  While comparing the
differences between the two kernels I noticed that each had their
machine specific files (in the ia64 and i386 directories) as I would
have expected them to.  But what surprised me was there there were a
number of source files that were different.  And when I diff'ed them, they
did not have anything IA64 specific. differences.  It just seemed to be
older versions of the file.



Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.  Diff ia32 2.4.9-12 kernel against ia64 2.4.9-12 kernel.

Additional info:

Comment 1 Arjan van de Ven 2001-11-12 21:27:02 UTC
This is not a bug unfortionatly; the ia64 kernel tree has several patches to
generic code that are ia64 specific (they might not look like that but they
are).... both kernels are generated from the same src.rpm where in the .spec
file you can see which patches are %ifarch ia64 ....

Likewise, i386 is the only architecture with the new pci dma api for now; we're
working on making that work for ia64 and others too but right now it does't work
yet.

Comment 2 Joubert Berger 2001-11-12 22:44:06 UTC
Let me see if I can explain a little better.  I downloaded the following two
source RPMS.

ftp://updates.redhat.com/7.1/en/os/ia64/kernel-source-2.4.9-12.ia64.rpm
ftp://updates.redhat.com/7.1/en/os/i386/kernel-source-2.4.9-12.i386.rpm

When I comparted the source files I noticed differences.  Have a look at
drivers/block/cciss.c. from the above two rpms.  From the spec for the i386 rpm
I see two cciss patches being applied.  But, nothing ia64 specific.  

Also, you mention that both kernels are created from the same src.rpm file but I
can't find this src.rpm that contains both the ia64 and i386 sources in one RPM.

Comment 3 Arjan van de Ven 2001-11-12 22:48:59 UTC
If you have the 2.4.9-12 src.rpm you can get the sources for i386 by doing
rpm -bp --target=i386 kernel-2.4.9-12.src.rpm
and for ia64
rpm -bp --target=ia64 kernel-2.4.9-12.src.rpm

(or maybe --target ia64, without the '=' as that seems to change depending on
exact RPM version)

Comment 4 Joubert Berger 2001-11-13 00:11:32 UTC
When I execute "rpm -tp --target=ia64 kernel-2.4.9-12.src.rpm" I get the
following error:

[root@pong /tmp]# rpm -tp --target=ia64 kernel-2.4.9-12.src.rpm 
Building target platforms: ia64
Building for target ia64
error: Name field must be present in package: (main package)
error: Version field must be present in package: (main package)
error: Release field must be present in package: (main package)
error: Summary field must be present in package: (main package)
error: Group field must be present in package: (main package)
error: License field must be present in package: (main package)


Comment 5 Arjan van de Ven 2001-11-13 08:01:59 UTC
-bp not -tp

Comment 6 Joubert Berger 2001-11-13 14:14:55 UTC
When I use:

rpm -bp --target=ia64 kernel-2.4.9-12.src.rpm

I get the error:

error: File /tmp/kernel-2.4.9-12.src.rpm does not appear to be a specfile.

The man pages says:

 The  argument  used  is -b if a spec file is being used to
 build the package and -t if RPM should look  inside  of  a
 gzipped (or compressed) tar file for the spec file to use.
 After the first argument, the next argument (O)  specifies
 the stages of building and packaging to be done and is one of:

That is why I used -tp.



Comment 7 Arjan van de Ven 2001-11-13 14:18:57 UTC
Oh duh indeed ;(
(I normally build from spec files)

so you can do it on the spec file that gets put in
/usr/src/redhat/SPECS
after you've "rpm -i kernel-2.4.9-12.src.rpm"'d it.

The end effect will be the kernel tree as used for building the i386 and the
ia64 kernel respectively, and that tree also gets used for creating the
kernel-source rpm. And indeed, there are differences. More than I'd like, but
that's something the ia64 architecture maintainer is trying to get fixed.(he
works for HP as well)

Comment 8 Joubert Berger 2001-11-13 18:23:37 UTC
OK, thanks.  I now have a clear picture of everything.  Thanks for the help.

Comment 9 Joubert Berger 2001-11-14 16:21:46 UTC
I figured out why at least drivers/block/cciss.c is different between x86 and
ia86.  It turns out that the linux-2.4.9-blockhighmem.patch does not get applied
to the ia64 kernel.  So, we can consider this closed.  Thanks for all the help.