[PROBLEM] gcc-2.7.2.3 and #inline with 64bit args

From: Andrzej Krzysztofowicz (ankry@green.mif.pg.gda.pl)
Date: Sat Jul 15 2000 - 15:40:53 EST


Hi,
  Trying to compile i386 kernel with CONFIG_HIGHMEM64G=y using gcc-2.7.2.3
I observe problem with some inline functions:

mm/mm.o: In function `vmalloc_area_pages':
mm/mm.o(.text+0xad18): undefined reference to `set_pgdir'
mm/mm.o: In function `__vmalloc':
mm/mm.o(.text+0xb41d): undefined reference to `set_pgdir'
mm/mm.o: In function `swap_out_vma':
mm/mm.o(.text+0xcfeb): undefined reference to `pgd_bad'
mm/mm.o: In function `unuse_vma':
mm/mm.o(.text+0xe944): undefined reference to `pgd_bad'
fs/fs.o: In function `statm_pgd_range':
fs/fs.o(.text+0x1dfa6): undefined reference to `pgd_bad'
drivers/char/drm/drm.o: In function `_drm_vma_info':
drivers/char/drm/drm.o(.text+0x26ba): undefined reference to `pte_young'
drivers/char/drm/drm.o(.text+0x26d7): undefined reference to `pte_dirty'
drivers/char/drm/drm.o(.text+0x26f4): undefined reference to `pte_exec'
drivers/char/drm/drm.o(.text+0x2711): undefined reference to `pte_write'
drivers/char/drm/drm.o(.text+0x272e): undefined reference to `pte_read'
make: *** [vmlinux] Error 1

nm mm/memory.o shows:

00000004 C num_physpages
         U pager_daemon
000024a8 t partial_clear
         U pgd_bad <---------- shouldn't happen for inline function
00000004 D pgt_cache_water
         U printk
         U read_swap_cache_async

I see that problem is with inline functions with 64-bit arguments.
Converting the inlines to operate on pointers seems to fix this problem.
Is it the right way to fix them? (It should be cheap)
Or:
- should they be converted to non-inlines (expensive)
- should gcc-2.7.2.3 be dropped (eventually dropped for some config options)
?

Regards
   Andrzej

-- 
=======================================================================
  Andrzej M. Krzysztofowicz               ankry@mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Technical University of Gdansk

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jul 15 2000 - 21:00:22 EST