Skip to content

Potential problems on Windows due to conflicting CRT libraries #23713

Open

Description

@jblomer

Explain what you would like to see improved and how.

As we found in #22449, on Windows we can end up with different C Runtime (CRT) libraries loaded concurrently (#22986 (comment)).

One problem is that allocated objects cannot (at least sometimes) be transferred between compiled and interpreted code because the heap manager freeing the object is different from the one allocating it. For RVec, this is fixed/hidden in #22986 by using the C++ new/delete.

As Microsoft points out (https://learn.microsoft.com/en-us/cpp/c-runtime-library/potential-errors-passing-crt-objects-across-dll-boundaries) in principle also new/delete can be affected as well as other objects, e.g. file handles. Requires further investigation.

ROOT version

master

Installation method

From sources

Operating system

Windows

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions