lkml.org 
[lkml]   [1997]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: PGCC and the kernel
On 28 Jul 1997, John Twilley wrote:

> I'm using the newest version of PGCC I can find. Here's the version
> string:
>
> gcc driver version 2.7.2p snapshot 970522 executing gcc version 2.7.2p
>
> I'd like to know if there are any tweaks I should make to kernel
> makefiles other than changing '-O2' to '-O6 -frisc'.
>

WARNING WILL ROBINSON!! (violent waving of mechanical arms)

You should be VERY careful when using a BETA compiler to compile your
Linux tree. Versions newer than 522 have a bug which MAKES THIS
COMPILER UNUSABLE (excuse the shouting please). Living on the edge has
certain problems that go with it.. this is one of them. 522 works pretty
well (mostly excellent) BUT, don't expect it to work at anything above O2.

If there are any folks out there who know how compilers work.. and have
interest, please feel free to take a look at this.. it kicked the SNOT
outta my little butt :)=)

If you don't KNOW what you can get away with.. don't do it! Take a look at
the flags used.. they're lowest common denominator I think. At any rate,
I *think* that cse has a problem.

(I love this compiler.. it's just not quite there yet eh?)

The following is intended to scare the snot outta you ;) and hopefully
arouse the interest of some compiler hackers. (prologue+cse.. fun stuff)

.file "af_inet.c"

.version "01.01"
/ GNU C version 2.7.2p snapshot 970721 (i586-linux) compiled by GNU C version 2.7.2.2.
/ options passed: -O1 -fcse-skip-blocks -fno-defer-pop -fno-opt-reg-use
/ -fno-thread-jumps -fno-sjlj-exceptions -fno-keep-static-consts
/ -fno-reduce-index-givs -fno-function-cse
/ options enabled: -fcse-skip-blocks -fpeephole -finline
/ -fpcc-struct-return -fcommon -fverbose-asm -fgnu-linker -m80387
/ -mhard-float -mno-soft-float -mieee-fp -mfp-ret-in-387
/ -mschedule-prologue -mcpu=pentium -march=pentium

gcc2_compiled.:
.globl rarp_ioctl_hook
.data
.align 4
.type rarp_ioctl_hook,@object
.size rarp_ioctl_hook,4
rarp_ioctl_hook:
.long 0
.section .rodata
.LC0:
.string "rarp"
.text
.type inet_ioctl,@function
inet_ioctl:
pushl %ebp / 758 movsi-2
movl %esp,%ebp / 760 movsi+1/1
pushl %eax / 762 movhicc_1+1
pushl %eax <== see that?.. ugly stuff. Notice the
lack of a /bla bla.. the previous RTL statement should have terminated.. didn't.
If you or ANYBODY else figures it out, PLEASE let me know what you found.

-Mike


\
 
 \ /
  Last update: 2005-03-22 13:40    [W:0.077 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site