Skip to content
Snippets Groups Projects
Matthew Pickering's avatar
Matthew Pickering authored
Recent versions of MacOS use a version of ld where `-fixup_chains` is on by default.
This is incompatible with our usage of `-undefined dynamic_lookup`. Therefore we
explicitly disable `fixup-chains` by passing `-no_fixup_chains` to the linker on
darwin. This results in a warning of the form:

ld: warning: -undefined dynamic_lookup may not work with chained fixups

The manual explains the incompatible nature of these two flags:

     -undefined treatment
             Specifies how undefined symbols are to be treated. Options are: error, warning,
             suppress, or dynamic_lookup.  The default is error. Note: dynamic_lookup that
             depends on lazy binding will not work with chained fixups.

A relevant ticket is #22429

Here are also a few other links which are relevant to the issue:

Official comment: https://developer.apple.com/forums/thread/719961

More relevant links:

https://openradar.appspot.com/radar?id=5536824084660224

https://github.com/python/cpython/issues/97524

Note in release notes: https://developer.apple.com/documentation/xcode-release-notes/xcode-13-releas    e-notes

(cherry picked from commit 8c0ea25f)
8ef4fec1
History
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Name Last commit Last update
..
ax_compare_version.m4
bootstrapping_ghc_info_field.m4
check_for_gold_t22266.m4
check_ld_copy_bug.m4
find_ghc_bootstrap_prog.m4
find_ld.m4
find_llvm_prog.m4
find_merge_objects.m4
find_python.m4
fp_bfd_support.m4
fp_binutils_T23856.m4
fp_cc_linker_flag_try.m4
fp_cc_llvm_backend.m4
fp_cc_supports__atomics.m4
fp_cc_supports_target.m4
fp_check_alignment.m4
fp_check_environ.m4
fp_check_func.m4
fp_check_prog.m4
fp_check_pthreads.m4
fp_check_sizeof_and_alignment.m4
fp_check_timer_create.m4
fp_compare_versions.m4
fp_compute_int.m4
fp_copy_shellvar.m4
fp_cpp_cmd_with_args.m4
fp_curses.m4
fp_default_choice_override_check.m4
fp_find_libdw.m4
fp_find_libnuma.m4
fp_find_nm.m4
fp_find_root.m4
fp_gcc_extra_flags.m4
fp_gcc_supports_no_pie.m4
fp_gcc_version.m4
fp_gmp.m4
fp_iconv.m4
fp_ld_no_fixup_chains.m4
fp_leading_underscore.m4
fp_prog_ar.m4
fp_prog_ar_args.m4
fp_prog_ar_is_gnu.m4
fp_prog_ar_needs_ranlib.m4
fp_prog_ar_supports_atfile.m4
fp_prog_context_diff.m4
fp_prog_find.m4
fp_prog_ghc_pkg.m4
fp_prog_ld_build_id.m4
fp_prog_ld_filelist.m4
fp_prog_ld_flag.m4
fp_prog_ld_is_gnu.m4
fp_prog_ld_no_compact_unwind.m4
fp_prog_sh.m4
fp_prog_sort.m4
fp_set_cflags_c99.m4
fp_settings.m4
fp_setup_project_version.m4
fp_visibility_hidden.m4
fptools_alex.m4
fptools_float_word_order_bigendian.m4
fptools_ghc_version.m4
fptools_happy.m4
fptools_nocache_check.m4
fptools_set_c_ld_flags.m4
fptools_set_haskell_platform_vars.m4
fptools_set_platform_vars.m4
fptools_write_file.m4
get_arm_isa.m4
ghc_convert_cpu.m4
ghc_convert_os.m4
ghc_convert_vendor.m4
ghc_llvm_target.m4
ghc_select_file_extensions.m4
library_version.m4
maybe_override_stage0.m4
xcode_version.m4