Bug 9509 - make 'install' type actions shouldn't require gcc to install
Summary: make 'install' type actions shouldn't require gcc to install
Status: REJECTED INSUFFICIENT_DATA
Alias: None
Product: Platform Specific/Hardware
Classification: Unclassified
Component: i386 (show other bugs)
Hardware: All Linux
: P1 low
Assignee: platform_i386
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-05 18:40 UTC by Linda Walsh
Modified: 2008-10-08 08:01 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.23.9-vanilla(nopatches)
Subsystem:
Regression: ---
Bisected commit-id:


Attachments

Description Linda Walsh 2007-12-05 18:40:25 UTC
Problem Description:
I have a "server" that faces the net.  It's a "smallish" (P-III-Celeron, 900MHz, 512MB) machine so I don't do development on it.  When I do a kernel build, I build it on faster, 'build machine'.

When done, to install, if nfs is working, I mount the directory where the built kernel resides on the client and do a "make modules_install; make install".  If nfs isn't working, I'll use 'rsync' over ssh as a backup and transfer the entire build dir (doesn't take too long for few diffs).

Unfortunately, even though the kernel is "built" and should just be "installed" into place, the build process calls "gcc" a few times to determine gcc information.  

This is _likely_ not the right thing to do.  First problem is that the client machine gets errors in 'installing' due to a missing gcc compiler.  Relevant
files (at least):
scripts/gcc-version.sh
scripts/gcc-x86_64-has-stack-protector.sh
---
"Aside": "gcc-x86_64-stack-protector.sh" appears poorly named (as it is also used when building ia32).

Second reason for not using gcc during "install" --
The machine you are installing onto may have a different version of gcc installed than what was installed on the build-machine.

The build-machine, for example, might also be running a cross-compiler on x86_64 to produce code for the 32-bit ia32 architecture -- another reason why the compiler versions might be different.

If the compiler version makes a difference when Installing, shouldn't it be using the compiler version from the build machine?

While this code checks "gcc" -- does it work when using the intel compiler?  Are the intel compiler versions compatible(isometric w/regard to code and bugs produced per version) with gcc's versioning?  I doubt this is true, but don't have an intel compiler to check with.

I'm not sure (don't have IA-64 build machine, yet -- its planned), but the same problem may be present on IA-64 (thus 'cc'ing ia64 list).

Steps to reproduce:
make kernel on 1 machine; copy object directory (or entire build dir if built "in-place") to a client with no gcc installed.  Try "make modules_install" or "make install".  Bug doesn't *appear* to abort the "make" -- it appears to ignore the error and proceed, but I'm not sure what these "gcc" specific tests are used for during install.
Comment 1 Thomas Gleixner 2008-01-02 09:47:23 UTC
AFAICT, the gcc specific tests are used for nothing during install. 

Does the install work otherwise aside of emitting those error messages ?
Comment 2 Linda Walsh 2008-01-02 10:18:57 UTC
bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=9509
> ------- Comment #1 from tglx@linutronix.de  2008-01-02 09:47 -------
> AFAICT, the gcc specific tests are used for nothing during install. 
> Does the install work otherwise aside of emitting those error messages ?
>
> ------
>   
If I comment the tests out then, AFAICT, yes.  But commented in,
my install(s) would fail.  As you may be pointing out -- the gcc
specific tests aren't really needed during install -- which was
why I filed the 'bug': they don't seem to be necessary for the
install to work (if they are commented out), nor, IMO, should a
C-compiler be needed to do an installation of of previously built
binaries.
Comment 3 Alan 2008-09-23 07:26:50 UTC
Can't duplicate this failure can you confirm it is still seen

(There is another failure with firmware but thats got its own bug)

Note You need to log in before you can comment on or make changes to this bug.