LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (https://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   GCC version? (https://www.linuxquestions.org/questions/linux-kernel-70/gcc-version-724182/)

marsques 05-06-2009 12:24 PM

GCC version?
 
I'm trying to compile a 2.4.37 kernel, however it comes up with an error saying the GCC version should be less than 4.2 .

The question is if I were to compile and install GCC 3.3.x in the /opt directory, how would I get the kernel to use the GCC installed there instead of GCC 4.2 which is in /usr/bin?

Thanks in advance.

pljvaldez 05-06-2009 12:37 PM

On Debian, I've just replaced the symlink from /usr/bin/gcc from /usr/bin/gcc-4.2 to /opt/gcc-3.X. Not sure if that'll do it on Slackware, or if you also have to change some library paths...

knudfl 05-06-2009 01:00 PM

I think, you should try this : gcc34-3.4.6-i486-2compat.tgz
( gcc34-g++34-3.4.6-i486-2compat.tgz )
http://www.slackware.com/~alien/slac...cc34/pkg/12.0/
.... I'm using this in Slackware 12.2 .

No problem having 2-4 different gcc's, like in Debian,
examples .....

./configure CC=/usr/gcc34/bin/gcc34 CXX=/usr/gcc34/bin/g++34

( make CC=gcc34 , ... if you make a link to e.g. /usr/bin/ )
.....
For kernel compilation it may be necessary to replace the
/usr/bin/gcc link temporarely, like said by pljvaldez.
.....

marsques 05-06-2009 02:23 PM

Thanks for your replies.

Compiled 3.3.6 and installed it in /opt/ .

After a bit of reading around it appears I also require "i486-slackware-linux"
for the version of gcc i'm trying to install in /usr/lib/gcc and luckly this was
distributed with a slackware version, so downleaded the *.tgz package, extracted
the folder and placed it in /usr/lib/gcc/i486-slackware-linux .

And...

~/gcc-3.3.6/configure --prefix=/usr --enable-shared
--enable-languages=ada,c,c++,objc --enable-threads=posix --enable-__cxa_atexit
--disable-checking --with-gnu-ld --verbose --with-arch=i486
--target=i486-slackware-linux --host=i486-slackware-linux

(Did gcc -v to get the above and modified it for 3.3.6) also doing this speeded
up compilation drastically compared to when I tried to compile 4.1.2 using just
~/gcc-4.1.2/configure --prefix=/opt only.

It also appears to compile the kernel I had to amend the CROSS_COMPILE in the Makefile as per below.

CROSS_COMPILE = /opt/gcc/bin/

Also symlink the following to point to : -

ar -> /usr/bin/ar
as -> /usr/bin/as
ld -> /usr/bin/ld
objcopy -> /usr/bin/objcopy

Job done!

tools/build -b bbootsect bsetup compressed/bvmlinux.out CURRENT > bzImage
Root device is (22, 3)
Boot sector 512 bytes.
Setup is 2513 bytes.
System is 1038 kB
warning: kernel is too big for standalone boot from floppy

Any ideas why 1038kB is too big for a floppy when a floppy can hold nearly 1474kB?

knudfl 05-07-2009 04:33 AM

Quote:

warning: kernel is too big for standalone boot from floppy
Not an error, just a warning.
? Old lilo convention, bzImage max 512 KB ..... ?
I remember that, its long time ago.

Just google .. kernel too big for a floppy ..
to get lots of hits, e.g.
http://lists.us.dell.com/pipermail/l...er/004579.html
http://lkml.indiana.edu/hypermail/li...02.0/0867.html
.....

marsques 05-10-2009 03:18 PM

After a bit of digging around it appears to be down to inodes.

A floppy has around 184 inodes but when you make it bootable it uses up a high proportion of inodes compared storage space.

In my case the floppy which holds 1500 odd kB after making it bootable with a kernel of 800 oddish kB has only around 20 inodes remaining.


All times are GMT -5. The time now is 06:07 AM.