Re: 2.6.8-rc2-mm1: NTFS compile error with gcc 2.95

From: Jan-Benedict Glaw
Date: Thu Jul 29 2004 - 11:58:37 EST


On Thu, 2004-07-29 16:41:49 +0200, Adrian Bunk <bunk@xxxxxxxxx>
wrote in message <20040729144149.GC2349@xxxxxxxxx>:
> On Wed, Jul 28, 2004 at 02:04:44AM -0700, Andrew Morton wrote:
> >...
> > Changes since 2.6.8-rc1-mm1:
> >...
> > bk-ntfs.patch
> >...
>
> This causes the following compile error when using gcc 2.95:
>
> <-- snip -->
>
> ...
> LD .tmp_vmlinux1
> fs/built-in.o(.text+0x14425f): In function `ntfs_find_vcn':
> : undefined reference to `__cmpdi2'
> fs/built-in.o(.text+0x144272): In function `ntfs_find_vcn':
> : undefined reference to `__cmpdi2'
> make: *** [.tmp_vmlinux1] Error 1
>
> <-- snip -->

GCC wanted to make a compare on a 8byte integer (so probably long long),
but decided there isn't an appropriate insn on that hardware platform.
So instead of emitting assembler, it generated a function call that
would have resulted in a call to libgcc. However, the Linux kernel asks
to *not* link that lib (eg. think about a gcc compiled for i686 (so is
libgcc) while compiling for i386).

With the that constraint in mind, there isn't really a "nice" solution.
Maybe Linux should provide a function of that name (and several others,
too). OTOH, the H8/300 port explicitely links in libgcc, but that's only
an option if even the oldest processor supports *all* known CPU
instructions.

MfG, JBG

--
Jan-Benedict Glaw jbglaw@xxxxxxxxxx . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

Attachment: signature.asc
Description: Digital signature