Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined symbols error when building system image on Julia 1.6.0-beta1 #38548

Closed
tomyun opened this issue Nov 23, 2020 · 7 comments · Fixed by #39265
Closed

Undefined symbols error when building system image on Julia 1.6.0-beta1 #38548

tomyun opened this issue Nov 23, 2020 · 7 comments · Fixed by #39265
Labels
regression Regression in behavior compared to a previous version
Milestone

Comments

@tomyun
Copy link
Contributor

tomyun commented Nov 23, 2020

It was originally posted to JuliaLang/PackageCompiler.jl#456, but I'm reposting here as it might be more relevant to Julia compiler itself.

When trying to build a system image containing Unitful 1.5.0 by using PackageCompiler 1.2.3 on the nightly version of Julia 1.6, I got several "Undefined symbols" errors looking for _jfptr_^_XXXXX. It works fine on Julia 1.5.3.

julia> using PackageCompiler

julia> using Unitful

julia> create_sysimage(:Unitful; sysimage_path="./unitful.so")
[ Info: PackageCompiler: creating system image object file, this might take a while...
Undefined symbols for architecture x86_64:
  "_jfptr_^_35271", referenced from:
      _tojlinvoke54351 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54313 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54297 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54296 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54295 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54294 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54293 in jl_KDXP0Q.o(text.o)
      ...
  "_jfptr_^_35340", referenced from:
      _tojlinvoke54348 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54310 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54292 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35394", referenced from:
      _tojlinvoke54346 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54319 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54309 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54291 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54290 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35427", referenced from:
      _tojlinvoke54354 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35467", referenced from:
      _tojlinvoke54345 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35496", referenced from:
      _tojlinvoke54343 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35546", referenced from:
      _tojlinvoke54355 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54330 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54329 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54328 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54327 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54326 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35584", referenced from:
      _tojlinvoke54352 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54336 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35649", referenced from:
      _tojlinvoke54350 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35689", referenced from:
      _tojlinvoke54353 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54298 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35749", referenced from:
      _tojlinvoke54356 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54305 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54304 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54303 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54302 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54301 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54300 in jl_KDXP0Q.o(text.o)
      ...
  "_jfptr_^_35789", referenced from:
      _tojlinvoke54344 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_35831", referenced from:
      _tojlinvoke54347 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54317 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54316 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54315 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54308 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54289 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_36179", referenced from:
      _tojlinvoke54349 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54334 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54325 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54324 in jl_KDXP0Q.o(text.o)
      _tojlinvoke54318 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_36216", referenced from:
      _tojlinvoke54342 in jl_KDXP0Q.o(text.o)
  "_jfptr_^_36245", referenced from:
      _tojlinvoke54341 in jl_KDXP0Q.o(text.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: failed process: Process(`gcc -m64 -march=x86-64 -shared -L/Applications/Julia-1.6.app/Contents/Resources/julia/lib -o ./unitful.so -Wl,-all_load /var/folders/1k/60gzj8497f54zr9n48bt37r80000gn/T/jl_KDXP0Q.o -ljulia`, ProcessExited(1)) [1]

Stacktrace:
 [1] pipeline_error
   @ ./process.jl:525 [inlined]
 [2] run(::Cmd; wait::Bool)
   @ Base ./process.jl:440
 [3] run
   @ ./process.jl:438 [inlined]
 [4] run_with_env
   @ ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:93 [inlined]
 [5] create_sysimg_from_object_file(input_object::String, sysimage_path::String)
   @ PackageCompiler ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:465
 [6] create_sysimage(packages::Symbol; sysimage_path::String, project::String, precompile_execution_file::Vector{String}, precompile_statements_file::Vector{String}, incremental::Bool, filter_stdlibs::Bool, replace_default::Bool, cpu_target::String, script::Nothing, base_sysimage::Nothing, isapp::Bool)
   @ PackageCompiler ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:434
 [7] top-level scope
   @ REPL[4]:1
julia> versioninfo()
Julia Version 1.6.0-DEV.1558
Commit e24533d1d1 (2020-11-23 18:27 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.7.0)
  CPU: Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.0 (ORCJIT, skylake)
@KristofferC KristofferC added the regression Regression in behavior compared to a previous version label Nov 24, 2020
@Roger-luo
Copy link
Contributor

I got similar error when running PackageCompiler tests

Undefined symbols for architecture x86_64:
  "_jl_RTLD_DEFAULT_handle", referenced from:
      _julia_typeinf_ext_toplevel_41459 in jl_6vaubk.o(text.o)
      _julia_typeinf_ext_toplevel_7418 in jl_6vaubk.o(text.o)
      _julia_verify_ir_41644 in jl_6vaubk.o(text.o)
      _julia_verify_ir_11049 in jl_6vaubk.o(text.o)
      _julia_coverage_enabled_12042 in jl_6vaubk.o(text.o)
      _julia_verify_linetable_12835 in jl_6vaubk.o(text.o)
      _julia_inbounds_option_9728 in jl_6vaubk.o(text.o)
      ...
     (maybe you meant: _jl_RTLD_DEFAULT_handle_pointer)
  "_jl_add_int", referenced from:
      _japi1_ssa_substitute_opNOT._9977 in jl_6vaubk.o(text.o)
      _julia_precise_container_type_41632 in jl_6vaubk.o(text.o)
      _julia_precise_container_type_10998 in jl_6vaubk.o(text.o)
  "_jl_apply_generic", referenced from:
      _jl_sysimg_fvars_base in jl_6vaubk.o(text.o)
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_maybe_compress_codeinfo_10670 in jl_6vaubk.o(text.o)
      _julia__all_11936 in jl_6vaubk.o(text.o)
      _japi1_anymap_7472 in jl_6vaubk.o(text.o)
      _julia_abstract_call_41435 in jl_6vaubk.o(text.o)
      ...
  "_jl_bounds_error_int", referenced from:
      _japi1_YY.s73YY.169_20059 in jl_6vaubk.o(text.o)
      _julia_totaldays_51896 in jl_6vaubk.o(text.o)
      _japi1_Prompt_14040 in jl_6vaubk.o(text.o)
      _japi1_merge_types_36424 in jl_6vaubk.o(text.o)
      _julia_YY.manifestfile_pathYY.10_46553 in jl_6vaubk.o(text.o)
      _japi1_Downloader_13618 in jl_6vaubk.o(text.o)
  "_jl_bounds_error_ints", referenced from:
      _julia_abstract_call_builtin_11139 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11135 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _japi1_anymap_7472 in jl_6vaubk.o(text.o)
      _julia_abstract_call_41435 in jl_6vaubk.o(text.o)
      _julia_abstract_call_7390 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      ...
  "_jl_bounds_error_tuple_int", referenced from:
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _japi1_setdiff_8831 in jl_6vaubk.o(text.o)
      _japi1_string_26206 in jl_6vaubk.o(text.o)
      _japi1__nloops_18973 in jl_6vaubk.o(text.o)
      _japi1_println_38040 in jl_6vaubk.o(text.o)
      _japi1_vect_7685 in jl_6vaubk.o(text.o)
      ...
  "_jl_bounds_error_unboxed_int", referenced from:
      _julia_YY.1_46620 in jl_6vaubk.o(text.o)
      _julia__all_26603 in jl_6vaubk.o(text.o)
      _julia_axes_8664 in jl_6vaubk.o(text.o)
      _julia_axes_8666 in jl_6vaubk.o(text.o)
      _julia_axes_8662 in jl_6vaubk.o(text.o)
      _julia_indexed_iterate_7110 in jl_6vaubk.o(text.o)
      _julia_indexed_iterate_7062 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_char", referenced from:
      _julia_invalid_char_22527 in jl_6vaubk.o(text.o)
      _jfptr_read_26364 in jl_6vaubk.o(text.o)
      _japi1_unescape_string_19210 in jl_6vaubk.o(text.o)
      _japi1_unescape_string_19251 in jl_6vaubk.o(text.o)
      _julia_YY.parseYY.398_36197 in jl_6vaubk.o(text.o)
      _jfptr_char_move_left_43407 in jl_6vaubk.o(text.o)
      _julia_YY.with_output_colorYY.807_36657 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_float32", referenced from:
      _julia_isnan_11530 in jl_6vaubk.o(text.o)
      _julia_isnan_11532 in jl_6vaubk.o(text.o)
      _julia_issignleft_11522 in jl_6vaubk.o(text.o)
      _julia_issignleft_11526 in jl_6vaubk.o(text.o)
      _jfptr_Float32_13191 in jl_6vaubk.o(text.o)
      _jfptr_Float32_13183 in jl_6vaubk.o(text.o)
      _jfptr_Float32_13179 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_int16", referenced from:
      _julia__base_20609 in jl_6vaubk.o(text.o)
      _jfptr_read_26305 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12924 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12930 in jl_6vaubk.o(text.o)
      _julia_handle_deserialize_44127 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12894 in jl_6vaubk.o(text.o)
  "_jl_box_int32", referenced from:
      _jfptr_fetchYY.YY.kw_50316 in jl_6vaubk.o(text.o)
      _julia_getfield_nothrow_9828 in jl_6vaubk.o(text.o)
      _julia_sendfile_38861 in jl_6vaubk.o(text.o)
      _julia_open_38803 in jl_6vaubk.o(text.o)
      _jfptr_dsfmt_get_min_array_size_44035 in jl_6vaubk.o(text.o)
      _julia_verify_ir_41644 in jl_6vaubk.o(text.o)
      _julia_verify_ir_11049 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_int64", referenced from:
      _jfptr_lreplaceNOT._19060 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_maybe_compress_codeinfo_10670 in jl_6vaubk.o(text.o)
      _julia__all_11936 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_UnionSplitSignature_5620 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_ssavalue", referenced from:
      _jfptr_insert_nodeNOT._10592 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_late_inline_special_caseNOT._11407 in jl_6vaubk.o(text.o)
      _jfptr_YY.296_10718 in jl_6vaubk.o(text.o)
      _japi1_renumber_ssaNOT._12572 in jl_6vaubk.o(text.o)
      _julia_renumber_ssaNOT._12568 in jl_6vaubk.o(text.o)
      _jfptr_renumber_ssa_8195 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_uint16", referenced from:
      _julia_open_38803 in jl_6vaubk.o(text.o)
      _julia_open_38812 in jl_6vaubk.o(text.o)
      _jfptr_GT.GT._37844 in jl_6vaubk.o(text.o)
      _jfptr_read_26301 in jl_6vaubk.o(text.o)
      _julia_LT._37706 in jl_6vaubk.o(text.o)
      _julia_LT._37708 in jl_6vaubk.o(text.o)
      _julia_handle_deserialize_44127 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_uint32", referenced from:
      _jfptr_pow5invsplit_24868 in jl_6vaubk.o(text.o)
      _japi1_readheader_44103 in jl_6vaubk.o(text.o)
      _julia_YY.787_24706 in jl_6vaubk.o(text.o)
      _julia_load_version_44702 in jl_6vaubk.o(text.o)
      _jlcapi_cfunction_50573 in jl_6vaubk.o(text.o)
      _japi1_MUL._38109 in jl_6vaubk.o(text.o)
      _julia_wrap_string_23975 in jl_6vaubk.o(text.o)
      ...
  "_jl_box_uint64", referenced from:
      _jfptr_YY.160_11589 in jl_6vaubk.o(text.o)
      _japi1__reformat_bt_11890 in jl_6vaubk.o(text.o)
      _julia_compile_39676 in jl_6vaubk.o(text.o)
      _jfptr__unsafe_bitsetindexNOT._8722 in jl_6vaubk.o(text.o)
      _jfptr_TLD._10035 in jl_6vaubk.o(text.o)
      _jfptr_last_12668 in jl_6vaubk.o(text.o)
      _jfptr_first_9991 in jl_6vaubk.o(text.o)
      ...
  "_jl_boxed_int8_cache", referenced from:
      _julia_gen_build_code_45478 in jl_6vaubk.o(text.o)
      _julia__base_20597 in jl_6vaubk.o(text.o)
      _julia_julia_cmd_20549 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12918 in jl_6vaubk.o(text.o)
      _julia_handle_deserialize_44127 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12912 in jl_6vaubk.o(text.o)
      _julia_throw_inexacterror_12896 in jl_6vaubk.o(text.o)
      ...
  "_jl_boxed_uint8_cache", referenced from:
      _jfptr_TLD._10037 in jl_6vaubk.o(text.o)
      _jfptr_AND._8476 in jl_6vaubk.o(text.o)
      _jfptr_OR._8175 in jl_6vaubk.o(text.o)
      _jfptr_read_26309 in jl_6vaubk.o(text.o)
      _japi1_readheader_44103 in jl_6vaubk.o(text.o)
      _julia_event_callback_52111 in jl_6vaubk.o(text.o)
      _julia_read_until_end_15853 in jl_6vaubk.o(text.o)
      ...
  "_jl_checked_assignment", referenced from:
      _julia___init___43961 in jl_6vaubk.o(text.o)
      _julia_reinit_stdio_29588 in jl_6vaubk.o(text.o)
      _julia___init___51848 in jl_6vaubk.o(text.o)
      _julia_get_have_color_27036 in jl_6vaubk.o(text.o)
      _julia_promptf_47874 in jl_6vaubk.o(text.o)
      _julia_YY.867_22801 in jl_6vaubk.o(text.o)
      _julia___init_build_37661 in jl_6vaubk.o(text.o)
      ...
  "_jl_copy_ast", referenced from:
      _japi1__define_range_op_18590 in jl_6vaubk.o(text.o)
      _julia_testset_beginend_41076 in jl_6vaubk.o(text.o)
      _julia_parse_testset_args_41072 in jl_6vaubk.o(text.o)
      _japi1_tuplemerge_7878 in jl_6vaubk.o(text.o)
      _julia_snca_compress_worklistNOT._8457 in jl_6vaubk.o(text.o)
      _julia_lift_leaves_10047 in jl_6vaubk.o(text.o)
      _julia_recompute_type_7602 in jl_6vaubk.o(text.o)
      ...
  "_jl_current_exception", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _julia_include_package_for_output_39783 in jl_6vaubk.o(text.o)
      _japi1__const_sizeof_7388 in jl_6vaubk.o(text.o)
      _julia_iterate_28363 in jl_6vaubk.o(text.o)
      _julia_YY.temp_cleanup_purgeYY.15_38850 in jl_6vaubk.o(text.o)
      _japi1_load_package_data_45356 in jl_6vaubk.o(text.o)
      ...
  "_jl_egal", referenced from:
      _julia_abstract_call_builtin_11135 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_9806 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11150 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_41668 in jl_6vaubk.o(text.o)
      ...
  "_jl_enter_handler", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10404 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _japi1_print_29052 in jl_6vaubk.o(text.o)
      _julia_open_38803 in jl_6vaubk.o(text.o)
      ...
  "_jl_error", referenced from:
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _julia_size_10252 in jl_6vaubk.o(text.o)
      _julia_size_10254 in jl_6vaubk.o(text.o)
      _julia_uv_write_20351 in jl_6vaubk.o(text.o)
      _julia_uv_write_20365 in jl_6vaubk.o(text.o)
      _japi1_flush_33368 in jl_6vaubk.o(text.o)
      _japi1_task_done_hook_19143 in jl_6vaubk.o(text.o)
      ...
  "_jl_excstack_state", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10404 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _japi1_print_29052 in jl_6vaubk.o(text.o)
      _julia_open_38803 in jl_6vaubk.o(text.o)
      ...
  "_jl_f__apply_iterate", referenced from:
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_41435 in jl_6vaubk.o(text.o)
      _julia_abstract_call_7390 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia__switchtupleunion_9841 in jl_6vaubk.o(text.o)
      ...
  "_jl_f__apply_latest", referenced from:
      _japi1_include_37840 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _julia_do_respond_42929 in jl_6vaubk.o(text.o)
      _julia_YY.22_43821 in jl_6vaubk.o(text.o)
      _japi1_include_41141 in jl_6vaubk.o(text.o)
      _japi1_include_41082 in jl_6vaubk.o(text.o)
      _japi1_include_41140 in jl_6vaubk.o(text.o)
      ...
  "_jl_f__apply_pure", referenced from:
      _julia_pure_eval_call_12695 in jl_6vaubk.o(text.o)
  "_jl_f__expr", referenced from:
      _japi1__define_range_op_18590 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_testset_beginend_41076 in jl_6vaubk.o(text.o)
      _julia_parse_testset_args_41072 in jl_6vaubk.o(text.o)
      _julia_late_inline_special_caseNOT._11407 in jl_6vaubk.o(text.o)
      _japi1_lazy_iterpolate_8827 in jl_6vaubk.o(text.o)
      _julia_multidoc_38289 in jl_6vaubk.o(text.o)
      ...
  "_jl_f__typevar", referenced from:
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _julia_show_30026 in jl_6vaubk.o(text.o)
      _julia_show_30015 in jl_6vaubk.o(text.o)
      _julia_show_30003 in jl_6vaubk.o(text.o)
      _julia_show_29990 in jl_6vaubk.o(text.o)
      _japi1_show_29983 in jl_6vaubk.o(text.o)
      _japi1_TypeVar_5739 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_applicable", referenced from:
      _julia_complete_argument_47569 in jl_6vaubk.o(text.o)
      _julia_YY.9_52300 in jl_6vaubk.o(text.o)
      _julia_YY.read_tarballYY.46_16021 in jl_6vaubk.o(text.o)
      _japi1_display_31846 in jl_6vaubk.o(text.o)
  "_jl_f_apply_type", referenced from:
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_typeof_concrete_vararg_10495 in jl_6vaubk.o(text.o)
      _japi1_typeof_tfunc_8861 in jl_6vaubk.o(text.o)
      _japi1_tuplemerge_7878 in jl_6vaubk.o(text.o)
      _japi1_tuple_tail_elem_10957 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_arraysize", referenced from:
      _julia_showerror_16893 in jl_6vaubk.o(text.o)
  "_jl_f_fieldtype", referenced from:
      _julia_lift_leaves_10047 in jl_6vaubk.o(text.o)
      _julia_show_spec_linfo_37183 in jl_6vaubk.o(text.o)
      _japi1_isdefined_tfunc_7445 in jl_6vaubk.o(text.o)
      _julia_stmt_effect_free_10156 in jl_6vaubk.o(text.o)
      _julia_stmt_effect_free_10144 in jl_6vaubk.o(text.o)
      _julia_YY.252_12591 in jl_6vaubk.o(text.o)
      _japi1_YY.s73YY.169_20059 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_getfield", referenced from:
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_41435 in jl_6vaubk.o(text.o)
      _julia_abstract_call_7390 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_invoke", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _julia_YY.statusYY.139_44935 in jl_6vaubk.o(text.o)
      _julia_include_package_for_output_39783 in jl_6vaubk.o(text.o)
      _julia_setup_interface_43021 in jl_6vaubk.o(text.o)
      _julia_YY.temp_cleanup_purgeYY.15_38850 in jl_6vaubk.o(text.o)
      _julia_YY.40_32557 in jl_6vaubk.o(text.o)
      _japi1_load_package_data_45356 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_isa", referenced from:
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_9806 in jl_6vaubk.o(text.o)
      _japi1_typeassert_type_instance_8869 in jl_6vaubk.o(text.o)
      _julia_YY.252_12591 in jl_6vaubk.o(text.o)
      _julia_show_type_name_33491 in jl_6vaubk.o(text.o)
      _julia_show_delim_array_16502 in jl_6vaubk.o(text.o)
      _japi1_add_headers_52145 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_isdefined", referenced from:
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_method_12803 in jl_6vaubk.o(text.o)
      _japi1_tuplemerge_7878 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_cfunction_41566 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_cfunction_8843 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_value_7740 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_issubtype", referenced from:
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_9806 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_41668 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11121 in jl_6vaubk.o(text.o)
      _japi1_tuplemerge_7878 in jl_6vaubk.o(text.o)
      _julia_limit_type_size_12704 in jl_6vaubk.o(text.o)
      _julia__limit_type_size_11397 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_setfield", referenced from:
      _julia_inline_applyNOT._7428 in jl_6vaubk.o(text.o)
      _japi1_setpropertyNOT._20777 in jl_6vaubk.o(text.o)
      _julia_setpropertyNOT._21724 in jl_6vaubk.o(text.o)
      _julia_setpropertyNOT._21726 in jl_6vaubk.o(text.o)
      _japi1_setpropertyNOT._20765 in jl_6vaubk.o(text.o)
      _japi1_setpropertyNOT._20771 in jl_6vaubk.o(text.o)
      _julia_setpropertyNOT._20773 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_sizeof", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_finish_11600 in jl_6vaubk.o(text.o)
      _julia_lift_leaves_10047 in jl_6vaubk.o(text.o)
      _julia_find_inferred_9853 in jl_6vaubk.o(text.o)
      _japi1__const_sizeof_7388 in jl_6vaubk.o(text.o)
      _japi1_sizeof_tfunc_7703 in jl_6vaubk.o(text.o)
      _julia_is_valid_type_for_apply_rewrite_8879 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_svec", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_method_12803 in jl_6vaubk.o(text.o)
      _japi1_include_37840 in jl_6vaubk.o(text.o)
      _julia_limit_type_size_12704 in jl_6vaubk.o(text.o)
      _julia_find_inferred_9853 in jl_6vaubk.o(text.o)
      _japi1_include_41141 in jl_6vaubk.o(text.o)
      _japi1_include_41082 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_tuple", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_method_12803 in jl_6vaubk.o(text.o)
      _japi1_typeof_concrete_vararg_10495 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10404 in jl_6vaubk.o(text.o)
      ...
  "_jl_f_typeassert", referenced from:
      _japi1_compile_29731 in jl_6vaubk.o(text.o)
  "_jl_gc_pool_alloc", referenced from:
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11179 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11211 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11239 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11251 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11259 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11215 in jl_6vaubk.o(text.o)
      ...
  "_jl_gc_queue_root", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _japi1_anymap_7472 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_9806 in jl_6vaubk.o(text.o)
      _julia__switchtupleunion_9841 in jl_6vaubk.o(text.o)
      ...
  "_jl_get_binding_or_error", referenced from:
      _japi1_copyNOT._9450 in jl_6vaubk.o(text.o)
      _japi1_YY.sortNOT.YY.8_41690 in jl_6vaubk.o(text.o)
      _japi1_YY.sortNOT.YY.8_11549 in jl_6vaubk.o(text.o)
      _julia_isnan_11530 in jl_6vaubk.o(text.o)
      _julia_isnan_11532 in jl_6vaubk.o(text.o)
      _julia_issignleft_11522 in jl_6vaubk.o(text.o)
      _julia_issignleft_11524 in jl_6vaubk.o(text.o)
      ...
  "_jl_get_nth_field_checked", referenced from:
      _japi1_getfield_tfunc_8084 in jl_6vaubk.o(text.o)
  "_jl_invoke", referenced from:
      _japi1_do_test_41068 in jl_6vaubk.o(text.o)
      _japi1_finish_41036 in jl_6vaubk.o(text.o)
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_read_manifest_47015 in jl_6vaubk.o(text.o)
      _julia_read_manifest_47009 in jl_6vaubk.o(text.o)
      _japi1_YY.77_42493 in jl_6vaubk.o(text.o)
      _julia_include_package_for_output_39783 in jl_6vaubk.o(text.o)
      ...
  "_jl_isa", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_41589 in jl_6vaubk.o(text.o)
      _julia_abstract_call_gf_by_type_9806 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11150 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_41668 in jl_6vaubk.o(text.o)
      ...
  "_jl_load_and_lookup", referenced from:
      _julia_typeinf_ext_toplevel_41459 in jl_6vaubk.o(text.o)
      _julia_typeinf_ext_toplevel_7418 in jl_6vaubk.o(text.o)
      _julia_verify_ir_41644 in jl_6vaubk.o(text.o)
      _julia_verify_ir_11049 in jl_6vaubk.o(text.o)
      _julia_coverage_enabled_12042 in jl_6vaubk.o(text.o)
      _julia_verify_linetable_12835 in jl_6vaubk.o(text.o)
      _julia_inbounds_option_9728 in jl_6vaubk.o(text.o)
      ...
  "_jl_new_structv", referenced from:
      _japi1_display_31845 in jl_6vaubk.o(text.o)
      _julia_history_move_42672 in jl_6vaubk.o(text.o)
      _japi1_match_input_43524 in jl_6vaubk.o(text.o)
      _julia_YY.downloadYY.12_47172 in jl_6vaubk.o(text.o)
      _julia_YY.downloadYY.12_47163 in jl_6vaubk.o(text.o)
      _julia__shrink_32895 in jl_6vaubk.o(text.o)
      _julia_enter_prefix_search_43410 in jl_6vaubk.o(text.o)
      ...
  "_jl_object_id_", referenced from:
      _julia_ht_keyindex_35972 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35875 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35914 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35910 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35908 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35900 in jl_6vaubk.o(text.o)
      _julia_ht_keyindex_35946 in jl_6vaubk.o(text.o)
      ...
  "_jl_pop_handler", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10404 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _japi1_print_29052 in jl_6vaubk.o(text.o)
      _julia_open_38803 in jl_6vaubk.o(text.o)
      ...
  "_jl_restore_excstack", referenced from:
      _julia_YY.789_32181 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10420 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10404 in jl_6vaubk.o(text.o)
      _japi1_apply_type_tfunc_10407 in jl_6vaubk.o(text.o)
      _julia_print_response_42835 in jl_6vaubk.o(text.o)
      _julia_include_package_for_output_39783 in jl_6vaubk.o(text.o)
      _japi1__const_sizeof_7388 in jl_6vaubk.o(text.o)
      ...
  "_jl_subtype", referenced from:
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_cfunction_41566 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_cfunction_8843 in jl_6vaubk.o(text.o)
      _julia_abstract_eval_value_7740 in jl_6vaubk.o(text.o)
      _julia_late_inline_special_caseNOT._11407 in jl_6vaubk.o(text.o)
      ...
  "_jl_throw", referenced from:
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11139 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11135 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _japi1_anymap_7472 in jl_6vaubk.o(text.o)
      _julia_abstract_call_41435 in jl_6vaubk.o(text.o)
      _julia_abstract_call_7390 in jl_6vaubk.o(text.o)
      ...
  "_jl_type_error", referenced from:
      _julia_docm_38170 in jl_6vaubk.o(text.o)
      _julia_abstract_call_builtin_11139 in jl_6vaubk.o(text.o)
      _julia_rewrite_apply_exprargsNOT._9166 in jl_6vaubk.o(text.o)
      _julia_cache_resultNOT._11117 in jl_6vaubk.o(text.o)
      _julia__all_11936 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_41504 in jl_6vaubk.o(text.o)
      _julia_abstract_call_known_7750 in jl_6vaubk.o(text.o)
      ...
  "_jl_typeassert", referenced from:
      _japi1__deepcopy_array_t_40090 in jl_6vaubk.o(text.o)
      _julia_typeinfo_prefix_39020 in jl_6vaubk.o(text.o)
      _julia_typeinfo_prefix_39018 in jl_6vaubk.o(text.o)
      _julia_typeinfo_prefix_39015 in jl_6vaubk.o(text.o)
      _julia__builtin_nothrow_11774 in jl_6vaubk.o(text.o)
  "_jl_undefined_var_error", referenced from:
      _japi1_copyNOT._9450 in jl_6vaubk.o(text.o)
      _japi1_YY.sortNOT.YY.8_41690 in jl_6vaubk.o(text.o)
      _japi1_YY.sortNOT.YY.8_11549 in jl_6vaubk.o(text.o)
      _julia_isnan_11530 in jl_6vaubk.o(text.o)
      _julia_isnan_11532 in jl_6vaubk.o(text.o)
      _julia_issignleft_11522 in jl_6vaubk.o(text.o)
      _julia_issignleft_11524 in jl_6vaubk.o(text.o)
      ...
  "_jl_world_counter", referenced from:
      _jlcapi_timer_callback_52176 in jl_6vaubk.o(text.o)
      _jlcapi_socket_callback_52180 in jl_6vaubk.o(text.o)
      _jlcapi_timeout_callback_52154 in jl_6vaubk.o(text.o)
      _jlcapi_event_callback_52163 in jl_6vaubk.o(text.o)
      _jlcapi_uv_timercb_40424 in jl_6vaubk.o(text.o)
      _jlcapi_cfunction_44383 in jl_6vaubk.o(text.o)
      _jlcapi_cfunction_44420 in jl_6vaubk.o(text.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
PackageCompiler.jl: Error During Test at /Users/roger/.julia/packages/PackageCompiler/AerNj/test/runtests.jl:21
  Got exception outside of a @test
  failed process: Process(`gcc -m64 -march=x86-64 -shared -L/Users/roger/.ion/packages/Julia-1.6.app/Contents/Resources/julia/lib -o /var/folders/bn/z7nxwwgj6mg41t_rtyc0f5h00000gn/T/jl_UBpK0A/sys.dylib -Wl,-all_load /var/folders/bn/z7nxwwgj6mg41t_rtyc0f5h00000gn/T/jl_6vaubk.o -ljulia`, ProcessExited(1)) [1]

  Stacktrace:
    [1] pipeline_error
      @ ./process.jl:525 [inlined]
    [2] run(::Cmd; wait::Bool)
      @ Base ./process.jl:440
    [3] run
      @ ./process.jl:438 [inlined]
    [4] run_with_env
      @ ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:93 [inlined]
    [5] create_sysimg_from_object_file(input_object::String, sysimage_path::String)
      @ PackageCompiler ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:465
    [6] create_sysimage(packages::Symbol; sysimage_path::String, project::String, precompile_execution_file::String, precompile_statements_file::Vector{String}, incremental::Bool, filter_stdlibs::Bool, replace_default::Bool, cpu_target::String, script::String, base_sysimage::Nothing, isapp::Bool)
      @ PackageCompiler ~/.julia/packages/PackageCompiler/AerNj/src/PackageCompiler.jl:434
    [7] macro expansion
      @ ~/.julia/packages/PackageCompiler/AerNj/test/runtests.jl:34 [inlined]
    [8] macro expansion
      @ /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1147 [inlined]
    [9] top-level scope
      @ ~/.julia/packages/PackageCompiler/AerNj/test/runtests.jl:22
   [10] include(fname::String)
      @ Base.MainInclude ./client.jl:444
   [11] top-level scope
      @ none:6
   [12] eval(m::Module, e::Any)
      @ Core ./boot.jl:360
   [13] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:261
   [14] _start()
      @ Base ./client.jl:485

@tomyun
Copy link
Contributor Author

tomyun commented Jan 9, 2021

The issue reported by @Roger-luo sounds like JuliaLang/PackageCompiler.jl#471 which seems to have been resolved since then.

In the meantime, my original issue with missing ^ symbols for Unitful still exists on the latest Julia 1.7.0-DEV.239 and Julia 1.6.0-beta1 released today. I'm on macOS and not sure if other platforms have the same issue.

FYI, ASM output indicates that _tojlinvoke... which looks for _jsysw_^_... are most exclusively referred by _j_POW... symbols.

julia> create_sysimage(:Unitful; sysimage_path="./unitful.so")
[ Info: PackageCompiler: creating system image object file, this might take a while...
Undefined symbols for architecture x86_64:
  "_jsysw_^_173", referenced from:
      _tojlinvoke56065 in jl_mKdFP3.o(text.o)
      _tojlinvoke56035 in jl_mKdFP3.o(text.o)
      _tojlinvoke56034 in jl_mKdFP3.o(text.o)
      _tojlinvoke56033 in jl_mKdFP3.o(text.o)
      _tojlinvoke56026 in jl_mKdFP3.o(text.o)
      _tojlinvoke56007 in jl_mKdFP3.o(text.o)
  "_jsysw_^_174", referenced from:
      _tojlinvoke56064 in jl_mKdFP3.o(text.o)
      _tojlinvoke56037 in jl_mKdFP3.o(text.o)
      _tojlinvoke56027 in jl_mKdFP3.o(text.o)
      _tojlinvoke56009 in jl_mKdFP3.o(text.o)
      _tojlinvoke56008 in jl_mKdFP3.o(text.o)
  "_jsysw_^_175", referenced from:
      _tojlinvoke56066 in jl_mKdFP3.o(text.o)
      _tojlinvoke56028 in jl_mKdFP3.o(text.o)
      _tojlinvoke56010 in jl_mKdFP3.o(text.o)
  "_jsysw_^_176", referenced from:
      _tojlinvoke56069 in jl_mKdFP3.o(text.o)
      _tojlinvoke56031 in jl_mKdFP3.o(text.o)
      _tojlinvoke56015 in jl_mKdFP3.o(text.o)
      _tojlinvoke56014 in jl_mKdFP3.o(text.o)
      _tojlinvoke56013 in jl_mKdFP3.o(text.o)
      _tojlinvoke56012 in jl_mKdFP3.o(text.o)
      _tojlinvoke56011 in jl_mKdFP3.o(text.o)
      ...
  "_jsysw_^_177", referenced from:
      _tojlinvoke56071 in jl_mKdFP3.o(text.o)
      _tojlinvoke56016 in jl_mKdFP3.o(text.o)
  "_jsysw_^_178", referenced from:
      _tojlinvoke56074 in jl_mKdFP3.o(text.o)
      _tojlinvoke56023 in jl_mKdFP3.o(text.o)
      _tojlinvoke56022 in jl_mKdFP3.o(text.o)
      _tojlinvoke56021 in jl_mKdFP3.o(text.o)
      _tojlinvoke56020 in jl_mKdFP3.o(text.o)
      _tojlinvoke56019 in jl_mKdFP3.o(text.o)
      _tojlinvoke56018 in jl_mKdFP3.o(text.o)
      ...
  "_jsysw_^_179", referenced from:
      _tojlinvoke56067 in jl_mKdFP3.o(text.o)
      _tojlinvoke56052 in jl_mKdFP3.o(text.o)
      _tojlinvoke56043 in jl_mKdFP3.o(text.o)
      _tojlinvoke56042 in jl_mKdFP3.o(text.o)
      _tojlinvoke56036 in jl_mKdFP3.o(text.o)
  "_jsysw_^_180", referenced from:
      _tojlinvoke56073 in jl_mKdFP3.o(text.o)
      _tojlinvoke56048 in jl_mKdFP3.o(text.o)
      _tojlinvoke56047 in jl_mKdFP3.o(text.o)
      _tojlinvoke56046 in jl_mKdFP3.o(text.o)
      _tojlinvoke56045 in jl_mKdFP3.o(text.o)
      _tojlinvoke56044 in jl_mKdFP3.o(text.o)
  "_jsysw_^_181", referenced from:
      _tojlinvoke56070 in jl_mKdFP3.o(text.o)
      _tojlinvoke56054 in jl_mKdFP3.o(text.o)
  "_jsysw_^_182", referenced from:
      _tojlinvoke56059 in jl_mKdFP3.o(text.o)
  "_jsysw_^_183", referenced from:
      _tojlinvoke56060 in jl_mKdFP3.o(text.o)
  "_jsysw_^_184", referenced from:
      _tojlinvoke56061 in jl_mKdFP3.o(text.o)
  "_jsysw_^_185", referenced from:
      _tojlinvoke56062 in jl_mKdFP3.o(text.o)
  "_jsysw_^_186", referenced from:
      _tojlinvoke56063 in jl_mKdFP3.o(text.o)
  "_jsysw_^_187", referenced from:
      _tojlinvoke56068 in jl_mKdFP3.o(text.o)
  "_jsysw_^_188", referenced from:
      _tojlinvoke56072 in jl_mKdFP3.o(text.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: failed process: Process(`gcc -m64 -march=x86-64 -shared -L/Applications/Julia-1.6.app/Contents/Resources/julia/lib -L/Applications/Julia-1.6.app/Contents/Resources/julia/lib/julia -o ./unitful.so -Wl,-all_load /var/folders/1k/60gzj8497f54zr9n48bt37r80000gn/T/jl_mKdFP3.o -ljulia-internal -ljulia`, ProcessExited(1)) [1]

Stacktrace:
 [1] pipeline_error
   @ ./process.jl:525 [inlined]
 [2] run(::Cmd; wait::Bool)
   @ Base ./process.jl:440
 [3] run
   @ ./process.jl:438 [inlined]
 [4] run_with_env
   @ ~/.julia/packages/PackageCompiler/KeZOk/src/PackageCompiler.jl:101 [inlined]
 [5] create_sysimg_from_object_file(input_object::String, sysimage_path::String)
   @ PackageCompiler ~/.julia/packages/PackageCompiler/KeZOk/src/PackageCompiler.jl:497
 [6] create_sysimage(packages::Symbol; sysimage_path::String, project::String, precompile_execution_file::Vector{String}, precompile_statements_file::Vector{String}, incremental::Bool, filter_stdlibs::Bool, replace_default::Bool, cpu_target::String, script::Nothing, base_sysimage::Nothing, isapp::Bool)
   @ PackageCompiler ~/.julia/packages/PackageCompiler/KeZOk/src/PackageCompiler.jl:451
 [7] top-level scope
   @ REPL[11]:1

@tomyun
Copy link
Contributor Author

tomyun commented Jan 9, 2021

Testing on the recently released julia:1.6.0-beta1 docker image (with apt install build-essential to get gcc) shows that the issue doesn't happen on Linux. Perhaps this issue is specific to macOS then.

Interestingly, jsysw_^_... symbols were still undefined there, but didn't raise an error during link (create_sysimage).

# nm unitful.so | grep "jsysw"
                 U jsysw_^_170
                 U jsysw_^_171
                 U jsysw_^_172
                 U jsysw_^_173
                 U jsysw_^_174
                 U jsysw_^_175
                 U jsysw_^_176
                 U jsysw_^_177
                 U jsysw_^_178
                 U jsysw_^_179
                 U jsysw_^_180
                 U jsysw_^_181
                 U jsysw_^_182
                 U jsysw_^_183
                 U jsysw_^_184
                 U jsysw_^_185

@tomyun tomyun changed the title Undefined symbols error when building system image on Julia 1.6.0-DEV Undefined symbols error when building system image on Julia 1.6.0-beta1 Jan 10, 2021
@alhirzel
Copy link
Contributor

alhirzel commented Jan 11, 2021

I see an error with jsysw_^_* on Arch Linux, Julia 1.6.0beta1, when precompiling a sysimage for every-day use. I think it has to do with one of the packages that I am compiling. I can narrow this down if desired.

@KristofferC KristofferC added this to the 1.6 blockers milestone Jan 12, 2021
@alhirzel
Copy link
Contributor

alhirzel commented Jan 14, 2021

For what it's worth, MNWE is the Unitful package:

#!/bin/sh
# run from within a newly unpacked Julia 1.6.0beta1
JULIA_BINDIR=bin bin/julia -e 'using Pkg; Pkg.add("PackageCompiler")'
JULIA_BINDIR=bin bin/julia -e 'using Pkg; Pkg.add("Unitful")'
JULIA_BINDIR=bin bin/julia -e 'using PackageCompiler; create_sysimage([:Unitful], sysimage_path="sysimage.so")'
JULIA_BINDIR=bin bin/julia --sysimage sysimage.so
ERROR: could not load library "xxx/julia-1.6.0-beta1/sysimage.so"
xxx/julia-1.6.0-beta1/sysimage.so: undefined symbol: jsysw_^_169

@KristofferC
Copy link
Sponsor Member

KristofferC commented Jan 14, 2021

The first line in Unitful where the error happens (if you comment out everything below the line above it, it works fine) is:

https://github.com/PainterQubits/Unitful.jl/blob/3449a5b34f755cb02b1894fe33c4d366296d51af/src/pkgdefaults.jl#L77

I don't really understand it though... Other @unit calls are performed a few lines above.

@alhirzel
Copy link
Contributor

I just want to put it out there, that's some deep magic.

KristofferC pushed a commit that referenced this issue Jan 19, 2021
vchuravy pushed a commit that referenced this issue Jan 21, 2021
KristofferC pushed a commit that referenced this issue Feb 1, 2021
ElOceanografo pushed a commit to ElOceanografo/julia that referenced this issue May 4, 2021
antoine-levitt pushed a commit to antoine-levitt/julia that referenced this issue May 9, 2021
staticfloat pushed a commit that referenced this issue Dec 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression Regression in behavior compared to a previous version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants