-
Philippe Gerum authored
1. libcobalt now controls dynamically whether auto-shadowing of the current context is disabled by checking the new XENO_NOSHADOW environment variable for existence. Otherwise, the current thread becomes a Xenomai thread when the library constructor is executed. This replaces the former static mechanism based on building with --enable-dlopen-skins, aimed at dynamic loading of the POSIX interface via dlopen(). Applications can run putenv("XENO_NOSHADOW=<non-empty>") before dynamically loading libcobalt.so. 2. global memory locking is systematically performed from the library constructor if auto-shadowing is enabled, and remains in effect afterwards. Applications which do not want such locking to be in effect during their initialization phase should call munlockall() explicitly, then lock the process memory anew before creating any Xenomai thread. 3. The new --enable-dlopen-libs build switch must be passed to allow Xenomai libaries to be dynamically loaded via dlopen(). This replaces the former --enable-dlopen-skins switch. Unlike the latter, --enable-dlopen-libs does not implicitly disable TLS support. 3. The --with-__thread build switch has been renamed --enable-tls. TLS is now available to dynamically loaded Xenomai libraries, i.e. --enable-tls --enable-dlopen-libs is valid.
edbb158f
To learn more about this project, read the wiki.