Skip to content

Instantly share code, notes, and snippets.

@makslevental
Created December 31, 2025 02:33
Show Gist options
  • Select an option

  • Save makslevental/bf10a32e7122f24d78a005cfaf278063 to your computer and use it in GitHub Desktop.

Select an option

Save makslevental/bf10a32e7122f24d78a005cfaf278063 to your computer and use it in GitHub Desktop.
symvis from loading
RTLD_LOCAL, on the other hand, adds the loaded library to a search list that is specific to the current ELF object (called the local scope or scope 1). RTLD_LOCAL is also transitive, meaning that the DT_NEEDED dependencies of a library opened with RTLD_LOCAL will themselves be loaded as RTLD_LOCAL and not added to the global scope.
maksimlevental@Maksims-MacBook-Pro-2 _mlir_libs % objdump -p MLIRPythonSupport-mlir.dll | less
SizeOfHeapCommit 0000000000001000
LoaderFlags 00000000
NumberOfRvaAndSizes 00000010
The Data Directory
Entry 0 00000000000b3e56 0001341b Export Directory [.edata (or where ever we found it)]
Entry 1 00000000000c7274 0000008c Import Directory [parts of .idata]
Entry 2 00000000000ea000 000001a8 Resource Directory [.rsrc]
Entry 3 00000000000e0000 00006da4 Exception Directory [.pdata]
Entry 4 0000000000000000 00000000 Security Directory
Entry 5 00000000000eb000 00000d6c Base Relocation Directory [.reloc]
Entry 6 0000000000000000 00000000 Debug Directory
Entry 7 0000000000000000 00000000 Description Directory
Entry 8 0000000000000000 00000000 Special Directory
Entry 9 00000000000a5a00 00000028 Thread Storage Directory [.tls]
Entry a 000000000009efb0 00000140 Load Configuration Directory
Entry b 0000000000000000 00000000 Bound Import Directory
Entry c 00000000000c8008 00000d08 Import Address Table Directory
Entry d 00000000000b3d98 00000060 Delay Import Directory
Entry e 0000000000000000 00000000 CLR Runtime Header
Entry f 0000000000000000 00000000 Reserved
TLS directory:
StartAddressOfRawData: 0x000001800e8000
EndAddressOfRawData: 0x000001800e8150
AddressOfIndex: 0x000001800dce88
AddressOfCallBacks: 0x000001800b3d50
SizeOfZeroFill: 0
Characteristics: 5242880
Alignment: 16
The Import Tables:
lookup 000c7300 time 00000000 fwd 00000000 name 000cba0a addr 000c8008
DLL Name: nanobind-mlir.dll
Hint/Ord Name
0 ??0builtin_exception@nanobind@@QEAA@W4exception_type@1@PEBD@Z
0 ??0python_error@nanobind@@QEAA@AEBV01@@Z
0 ??0python_error@nanobind@@QEAA@XZ
0 ??1builtin_exception@nanobind@@UEAA@XZ
0 ??1python_error@nanobind@@UEAA@XZ
0 ?bytes_from_cstr_and_size@detail@nanobind@@YAPEAU_object@@PEBX_K@Z
0 ?chain_error@nanobind@@YAXVhandle@1@PEBDZZ
0 ?decref_checked@detail@nanobind@@YAXPEAU_object@@@Z
0 ?getattr_or_raise@detail@nanobind@@YAXPEAU_object@@PEBDPEAPEAU3@@Z
0 ?getitem_or_raise@detail@nanobind@@YAXPEAU_object@@0PEAPEAU3@@Z
0 ?incref_checked@detail@nanobind@@YAXPEAU_object@@@Z
0 ?load_i32@detail@nanobind@@YA_NPEAU_object@@EPEAH@Z
0 ?module_import@detail@nanobind@@YAPEAU_object@@PEBD@Z
0 ?nb_inst_alloc@detail@nanobind@@YAPEAU_object@@PEAU_typeobject@
The dlmopen() function also can be used to provide better
isolation than the RTLD_LOCAL flag. In particular, shared objects
loaded with RTLD_LOCAL may be promoted to RTLD_GLOBAL if they are
dependencies of another shared object loaded with RTLD_GLOBAL.
Thus, RTLD_LOCAL is insufficient to isolate a loaded shared object
except in the (uncommon) case where one has explicit control over
all shared object dependencies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment