Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-6587

Remove RTLD_LOCAL

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: base
    • Labels:
      None
    • Story Points:
      0.25
    • Epic Link:
    • Sprint:
      DRP F16-1
    • Team:
      Data Release Production

      Description

      Mario Juric writes:

      The recent convenience functions & checks you merged into base break MKL on OS X. I traced it down the other night and your code requires a one-word change (removal of RTLD_LOCAL).

      Could you plug that in when you get a chance?

      PS: The problem is that on OS X, apparently once you load a library with RTLD_LOCAL, it will remain local even when it’s subsequently auto-loaded as a dependency of another library (which then won’t be able to find the symbols it needs, ergo the error message). In particular, the issue here is that running:

      getMklThreads = loadSymbol<Getter>("libiomp5", "omp_get_max_threads");
      

      loads libiomp5 as RTLD_LOCAL, and then the next time when the linker needs it (when loading MKL-enabled numpy on OS X, which is linked against libmkl_core, which itself is linked against libiomp5) it doesn’t find its symbols.

      I need to check that this won't break things on Linux.

        Attachments

          Issue Links

            Activity

            Hide
            tjenness Tim Jenness added a comment -

            Gosh. At least we can all agree that the assignee is the person who did the work...

            Show
            tjenness Tim Jenness added a comment - Gosh. At least we can all agree that the assignee is the person who did the work...
            Hide
            price Paul Price added a comment -

            No, we can't! I just copied Mario's patch.

            Show
            price Paul Price added a comment - No, we can't! I just copied Mario's patch.
            Hide
            tjenness Tim Jenness added a comment -

            We can't even trust the reporter because Mario Juric was obviously the reporter...

            Show
            tjenness Tim Jenness added a comment - We can't even trust the reporter because Mario Juric was obviously the reporter...
            Hide
            swinbank John Swinbank added a comment -

            I have conveniently sidestepped my scheduling headaches by marking this as a bug, so we can legitimately pick it up mid-sprint.

            Show
            swinbank John Swinbank added a comment - I have conveniently sidestepped my scheduling headaches by marking this as a bug, so we can legitimately pick it up mid-sprint.
            Hide
            price Paul Price added a comment -

            Merged to master.

            Show
            price Paul Price added a comment - Merged to master.

              People

              Assignee:
              price Paul Price
              Reporter:
              price Paul Price
              Reviewers:
              Tim Jenness
              Watchers:
              John Swinbank, Mario Juric, Paul Price, Tim Jenness
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins Builds

                  No builds found.