Messages in this thread | | | Date | Thu, 29 Jul 2004 17:54:11 +0200 | From | Jan-Benedict Glaw <> | Subject | Re: 2.6.8-rc2-mm1: NTFS compile error with gcc 2.95 |
| |
On Thu, 2004-07-29 16:41:49 +0200, Adrian Bunk <bunk@fs.tum.de> wrote in message <20040729144149.GC2349@fs.tum.de>: > 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@lug-owl.de . +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)); [unhandled content-type:application/pgp-signature] | |