[lkml]   [2004]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: 2.6.6-rc3: gcc 2.95: cx88 __ucmpdi2 error

    On Sat, 1 May 2004, Adrian Bunk wrote:
    > >...
    > > WARNING: /lib/modules/2.6.6-rc3/kernel/drivers/media/video/cx88/cx8800.ko
    > > needs unknown symbol __ucmpdi2
    > I'm also seeing this, but only with gcc 2.95, not with gcc 3.3.3 .
    > It comes from drivers/media/video/cx88/cx88-video.c, more exactly from
    > the switch in set_tvaudio.

    I don't see that set_tvaudio() uses any 64-bit comparisons at all, so I
    have this suspicion that the linker reports the wrong function or

    It might help to use "objdump" to disassemble the object file and see
    where the call to __ucmpdi2 really is - or just build the file as an asm
    file in the first place ("make drivers/media/video/cx88/cx88-video.s") and
    see if you see anything interesting there.

    > But I have to admit I don't understand why exactly it does happen.

    I'm susprised too. gcc has historically done all the "simple" 64-bit ops
    in-line, since they usually are just two instructions or so, and doing
    them out-of-line tends to be _more_ work with argument setup etc.

    Also, most of the time when this happens, we didn't really want 64-bit
    arithmetic in the first place ("long long" arithmetic generates not only
    slower and bigger code, it's historically been pretty buggy in gcc, so
    most of the kernel is pretty careful about minimizing it). I suspect that
    this will end up being the same thing (ie we wanted a 64-bit temporary
    result to avoid overflows, but didn't actually need to propagate it all
    the way).

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2009-11-18 23:46    [W:0.026 / U:92.340 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site