On Sat, Mar 15, 2003 at 10:27:27PM +0000, David Goodenough wrote:
> 
> Possibly, but it would appear that it does not honour the old directives,
> at least the code that is generated is different.  I generated kernels
> with the warnings and with a fixed Makefile and the generated kernels
> are of different size.

That's a bug in gcc-3.2.  In fact it seems that it doesn't respect
-falign-jumps at all:

gcc-3.2 -falign-labels=0 -falign-jumps=0 -S -O2 a.c

*****
int m();
int n();

int k(int l) {
        if (l == 3) {
                m();
                n();
                m();
                m();
                n();
        } else {
                n();
                n();
                n();
                m();
                m();
        }
        return 3;
}
*****
        .file   "b.c"
        .text
        .align 2
        .p2align 2,,3
.globl k
        .type   k,@function
k:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        cmpl    $3, 8(%ebp)
        je      .L4
        call    n
        call    n
        call    n
        call    m
        call    m
.L3:
        movl    $3, %eax
        leave
        ret
        .p2align 2,,3
.L4:
        call    m
        call    n
        call    m
        call    m
        call    n
        jmp     .L3
.Lfe1:
        .size   k,.Lfe1-k
        .ident  "GCC: (GNU) 3.2.1 20020924 (Debian prerelease)"
*****

Anyway, I'm closing this bug because the 2.4 kernels must still work
with gcc 2.95 which does not support -falign.
-- 
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email:  Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt


Reply via email to