Update README section about dlfcn.h

This commit is contained in:
Fredrik Fornwall 2016-04-23 17:50:20 -04:00
parent 988e9ce477
commit 29db5b3542

View File

@ -125,16 +125,17 @@ contains these and may be used by all packages.
dlopen() and RTLD_* flags
=================================
<dlfcn.h> declares
<dlfcn.h> originally declares
enum { RTLD_NOW=0, RTLD_LAZY=1, RTLD_LOCAL=0, RTLD_GLOBAL=2, RTLD_NOLOAD=4}; // 32-bit
enum { RTLD_NOW=2, RTLD_LAZY=1, RTLD_LOCAL=0, RTLD_GLOBAL=0x00100, RTLD_NOLOAD=4}; // 64-bit
These differs from glibc ones in that
1. They are not preprocessor #define:s so cannot be checked for with #ifdef RTLD_GLOBAL (dln.c in ruby does this)
1. They are not preprocessor #define:s so cannot be checked for with `#ifdef RTLD_GLOBAL`. Termux patches this to
#define values for compatibility with several packages.
2. They differ in value from glibc ones, so cannot be hardcoded in files (DLFCN.py in python does this)
3. They are missing some values (RTLD_BINDING_MASK, RTLD_NOLOAD, ...)
3. They are missing some values (`RTLD_BINDING_MASK`, `RTLD_NOLOAD`, ...)
RPATH, LD_LIBRARY_PATH AND RUNPATH