[Nix-dev] --ftls-model=global-dynamic for every lib?

stewart mackenzie setori88 at gmail.com
Sun Feb 28 01:14:15 CET 2016


Hello,

Seems libraries in nix are not compiled with
--ftls-model=global-dynamic which means in the use case of fractadie
we quickly run out of TLS variables.

Fractalide is a Flow-based programming programming platform tha has a
thread per component, a component is a shared object and could be
dependent on 3rd party software like openssl. Include enough 3rd party
libraries compiled with static TLS (initial-exec) and the system blows
up complaining about running out of TLS variables.

This is an example of the error thrown:

thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err`
value: "SDL error: Failed loading libGL.so.1: dlopen: cannot load any
more object with static TLS"', src/libcore/result.rs:688

See https://users.rust-lang.org/t/initial-exec-tls-variables/4783/5

Does this mean fractalide programmers would need to override
libraries' configureFlags by adding --ftls-model=global-dynamic. This
does not feel like a long term solution especially since it means end
users will not be able to make use of Nix's Hydra binaries.

What would be the best solution to this be?

gah!

/sjm


More information about the nix-dev mailing list