coin-or-tools / ThirdParty-Mumps

COIN-OR autotools harness to build Mumps
Eclipse Public License 1.0
18 stars 13 forks source link

Troubling installing on arm64 architecture #15

Open cheonghm opened 2 months ago

cheonghm commented 2 months ago

I'm getting the following warning/error when I try run make Any solution to this problem? (My machine is Apple M3 Pro)

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
  F77LD    libcoinmumps.la
ld: warning: ignoring duplicate libraries: '-lemutls_w', '-lgfortran', '-lheapt_w', '-lquadmath'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_addr.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_common.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_config_file_C.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_io_basic.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_io.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_io_err.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_io_thread.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_metis64.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_metis_int.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_numa.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_metis.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_pord.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_save_restore_C.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_scotch.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_scotch64.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_scotch_int.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_thread_affinity.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_thread.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/mumps_register_thread.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/libseq/.libs/mpic.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/libseq/.libs/elapse.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/.libs/dmumps_c.o': found architecture 'arm64', required architecture 'x86_64'
ld: warning: ignoring file '/.../ThirdParty-Mumps/MUMPS/src/.libs/dmumps_gpu.o': found architecture 'arm64', required architecture 'x86_64'
Undefined symbols for architecture x86_64:
  "_dmumps_assign_colsca_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_assign_colsca_loc_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_assign_rhsintr_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_assign_rowsca_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_assign_rowsca_loc_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_assign_singular_values_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_colsca_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_colsca_loc_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_rhsintr_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_rowsca_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_rowsca_loc_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_nullify_c_sing_values_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_dmumps_set_tmp_ptr_c_", referenced from:
      ___dmumps_dynamic_memory_m_MOD_dmumps_dm_set_ptr in dfac_mem_dynamic.o
      ___dmumps_dynamic_memory_m_MOD_dmumps_dm_freealldynamiccb in dfac_mem_dynamic.o
      ___dmumps_dynamic_memory_m_MOD_dmumps_dm_set_dynptr in dfac_mem_dynamic.o
  "_mumps_addr_c_", referenced from:
      ___dmumps_dynamic_memory_m_MOD_dmumps_dm_cbstatic2dynamic in dfac_mem_dynamic.o
      _dmumps_process_desc_bande_ in dfac_process_band.o
      _dmumps_ in dmumps_driver.o
      _dmumps_ in dmumps_driver.o
      _dmumps_f77_ in dmumps_f77.o
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_glob2loc_rhs_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_glob2loc_sol_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_mapping_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_pivnul_list_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_sym_perm_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_assign_uns_perm_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_checkaddrequal_", referenced from:
      _mumps_is_in_place_ in mpi.o
      _mpi_gather_ in mpi.o
      _mpi_gatherv_ in mpi.o
      _mpi_allreduce_ in mpi.o
      _mpi_reduce_ in mpi.o
      _mpi_reduce_scatter_ in mpi.o
      _mpi_alltoall_ in mpi.o
      ...
  "_mumps_clean_io_data_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_end_solve in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_ooc_end_facto in dmumps_ooc.o
  "_mumps_dumpmatbinary_c_", referenced from:
      _dmumps_dump_problem_ in dana_driver.o
      _dmumps_dump_problem_ in dana_driver.o
  "_mumps_dumprhsbinary_c_", referenced from:
      _dmumps_dump_problem_ in dana_driver.o
  "_mumps_elapse_", referenced from:
      _mpi_wtime_ in mpi.o
  "_mumps_get_max_nb_req_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_init_solve in dmumps_ooc.o
  "_mumps_get_save_dir_c_", referenced from:
      ___dmumps_save_restore_files_MOD_dmumps_get_save_files in dmumps_save_restore_files.o
  "_mumps_get_save_prefix_c_", referenced from:
      ___dmumps_save_restore_files_MOD_dmumps_get_save_files in dmumps_save_restore_files.o
  "_mumps_getval_addr_c_", referenced from:
      _mumps_stop_on_user_request_ in tools_common.o
  "_mumps_icopy_32to64_64c_ip_c_", referenced from:
      _mumps_icopy_32to64_64c_ip_rec_ in tools_common.o
  "_mumps_icopy_64to32_64c_ip_c_", referenced from:
      _mumps_icopy_64to32_64c_ip_rec_ in tools_common.o
  "_mumps_int_size_c_", referenced from:
      _dmumps_ini_driver_ in dini_driver.o
  "_mumps_low_level_direct_read_", referenced from:
      ___dmumps_ooc_MOD_dmumps_read_ooc in dmumps_ooc.o
  "_mumps_low_level_init_err_str_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_init_solve in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_ooc_init_facto in dmumps_ooc.o
  "_mumps_low_level_init_ooc_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_init_facto in dmumps_ooc.o
  "_mumps_low_level_init_prefix_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_init_facto in dmumps_ooc.o
  "_mumps_low_level_init_tmpdir_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_init_facto in dmumps_ooc.o
  "_mumps_low_level_read_ooc_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_read_solve_block in dmumps_ooc.o
  "_mumps_low_level_write_ooc_c_", referenced from:
      ___dmumps_ooc_buffer_MOD_dmumps_ooc_wrt_cur_buf2disk in dmumps_ooc_buffer.o
      ___dmumps_ooc_MOD_dmumps_new_factor in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_new_factor in dmumps_ooc.o
  "_mumps_nullify_c_glob2loc_rhs_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_nullify_c_glob2loc_sol_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_nullify_c_mapping_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_nullify_c_pivnul_list_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_nullify_c_sym_perm_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_nullify_c_uns_perm_", referenced from:
      _dmumps_f77_ in dmumps_f77.o
  "_mumps_ooc_alloc_pointers_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_open_files_for_solve in dmumps_ooc.o
  "_mumps_ooc_end_write_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_end_facto in dmumps_ooc.o
  "_mumps_ooc_get_file_name_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_struc_store_file_name in dmumps_ooc.o
  "_mumps_ooc_get_nb_files_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_struc_store_file_name in dmumps_ooc.o
  "_mumps_ooc_init_vars_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_open_files_for_solve in dmumps_ooc.o
  "_mumps_ooc_is_async_avail_", referenced from:
      ___dmumps_ooc_MOD_dmumps_set_strat_io_flags in dmumps_ooc.o
  "_mumps_ooc_remove_file_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_clean_files in dmumps_ooc.o
  "_mumps_ooc_set_file_name_c_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_open_files_for_solve in dmumps_ooc.o
  "_mumps_ooc_start_low_level_", referenced from:
      ___dmumps_ooc_MOD_dmumps_ooc_open_files_for_solve in dmumps_ooc.o
  "_mumps_setdval_addr_c_", referenced from:
      _dmumps_update_progress_ in dtools.o
  "_mumps_size_c_", referenced from:
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      ___mumps_memory_mod_MOD_mumps_memory_set_data_sizes in mumps_memory_mod.o
      _dmumps_set_type_sizes_ in dini_defaults.o
      _dmumps_set_type_sizes_ in dini_defaults.o
      ...
  "_mumps_test_request_c_", referenced from:
      ___dmumps_ooc_buffer_MOD_dmumps_ooc_tryio_chbuf_panel in dmumps_ooc_buffer.o
  "_mumps_usleep_", referenced from:
      _dmumps_dist_fill_send_buffer.0 in dfac_dist_arrowheads_omp.o
      _dmumps_dist_fill_send_buffer.0 in dfac_dist_arrowheads_omp.o
      ___dmumps_fac_omp_m_MOD_dmumps_perform_copies in dfac_omp_m.o
      _dmumps_maplig_ in dfac_process_maprow.o
  "_mumps_wait_request_", referenced from:
      ___dmumps_ooc_buffer_MOD_dmumps_ooc_do_io_and_chbuf in dmumps_ooc_buffer.o
      ___dmumps_ooc_MOD_dmumps_free_space_for_solve in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_free_space_for_solve in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_free_space_for_solve in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_get_bottom_area_space in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_get_bottom_area_space in dmumps_ooc.o
      ___dmumps_ooc_MOD_dmumps_get_top_area_space in dmumps_ooc.o
      ...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[1]: *** [libcoinmumps.la] Error 1
make: *** [all] Error 2
svigerske commented 2 months ago

Looks like ld tries to link for x86_64, while gfortran has build for arm64. As you probably want arm64, you may want to check where your ld is taken from and whether you need to set LD to point to somewhere else.