wiki:CompileTrouble20070827

Version 3 (modified by trac, 12 years ago) ( diff )

2007-08-27

Problem: I was unable to compile xbear on orda and clover. Attempts to compile xbear on orda yielded the following error messages:

../../lib/treeops.o(.text+0x1c95): In function `treeops..openmpapplyonlevel_':
: undefined reference to `__kmpc_global_thread_num'
../../lib/treeops.o(.text+0x1e28): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_for_static_init_4'
../../lib/treeops.o(.text+0x1ea0): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_for_static_fini'
../../lib/treeops.o(.text+0x1faf): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_ok_to_fork'
../../lib/treeops.o(.text+0x200c): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_fork_call'
../../lib/treeops.o(.text+0x201f): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_serialized_parallel'
../../lib/treeops.o(.text+0x2083): In function `_treeops..openmpapplyonlevel__543__par_loop0':
: undefined reference to `__kmpc_end_serialized_parallel'
../../lib/driver.o(.text+0x18): In function `main':
: undefined reference to `__kmpc_begin'
../../lib/driver.o(.text+0x22): In function `main':
: undefined reference to `__kmpc_global_thread_num'
../../lib/driver.o(.text+0x10c): In function `main':
: undefined reference to `__kmpc_end'

while attempts to compile on clover yielded similar results:

../../lib/treeops.o(.text+0x1f57): In function `treeops_mp_openmpapplyonlevel_':
../../lib/treeops.f90: undefined reference to `__kmpc_global_thread_num'
../../lib/treeops.o(.text+0x210b): In function `_treeops_mp_openmpapplyonlevel__543__par_loop0':
../../lib/treeops.f90: undefined reference to `__kmpc_for_static_init_4'
../../lib/treeops.o(.text+0x2188):../../lib/treeops.f90: undefined reference to `__kmpc_for_static_fini'
../../lib/treeops.o(.text+0x2329):../../lib/treeops.f90: undefined reference to `__kmpc_ok_to_fork'
../../lib/treeops.o(.text+0x238a):../../lib/treeops.f90: undefined reference to `__kmpc_fork_call'
../../lib/treeops.o(.text+0x239f):../../lib/treeops.f90: undefined reference to `__kmpc_serialized_parallel'
../../lib/treeops.o(.text+0x23fc):../../lib/treeops.f90: undefined reference to `__kmpc_end_serialized_parallel'
../../lib/driver.o(.text+0x15): In function `MAIN__':
../../lib/driver.f90: undefined reference to `__kmpc_begin'
../../lib/driver.o(.text+0x21):../../lib/driver.f90: undefined reference to `__kmpc_global_thread_num'
../../lib/driver.o(.text+0xa2):../../lib/driver.f90: undefined reference to `__kmpc_end'

Cause: Apparently xbear will not compile with OpenMP enabled.

Solution: Comment out the -openmp flag in the COMPILER variable of Makefile.inc on the offending machine, run make distclean and recompile.

Note: See TracWiki for help on using the wiki.