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

Add JL_DLLIMPORT to small_typeof declaration #50892

Merged
merged 4 commits into from
Sep 1, 2023

Commits on Aug 30, 2023

  1. Configuration menu
    Copy the full SHA
    8a0b29a View commit details
    Browse the repository at this point in the history
  2. Remove export_small_typeof

    I think this might have been part of a scheme to avoid an extra
    indirection when this symbol is exposed to the linker. We have a similar
    technique used for JIT'd modules, but I'm not sure how it's supposed
    to work here between libjulia and libjulia-internal.
    
    On Windows, this is broken for embedding currently, and on Linux this
    function was just copying from the `small_typeof` in libjulia to a seem-
    ingly unused copy of the symbol in libjulia-internal.
    
    For now, this removes the special machinery and replaces it with a single
    copy of the data. If we'd like to optimize this in the future, we might
    want to use the existing "ijl_" vs. "jl_" pattern
    topolarity committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    637679d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a8f1a98 View commit details
    Browse the repository at this point in the history
  4. Add HIDDEN ijl_small_typeof as an optimization

    This allows us to avoid a linker indirection on, e.g., Linux and macOS
    where symbol interposition means that an extra load is incurred to
    support possible relocation of the symbol to a pre-empting library.
    topolarity committed Aug 30, 2023
    Configuration menu
    Copy the full SHA
    0a37250 View commit details
    Browse the repository at this point in the history