You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now prybar links with the system's libraries and depends on the system having all the language's dependencies. Python for example requires (ignoring common system libs) /usr/lib/libpython3.8.so, /usr/bin/lib/python3.8/..., and /usr/lib/python3.8/... to be present at runtime. This makes prybar non portable between systems without installing the language's libs at the correct version system wide.
These shared libs come in two forms: shared objects loaded by the elf interpreter and shared resources loaded by the language interpreter. My proposed solution:
interpreters often don't provide statically linkable objects
we bundle all the SOs (not libc) into the elf and have the loader prefer those
languages have resources sprinkled across the system
we embed all the resources into the elf and do some libc patching to redirect io on these files to the embedded files.
There are already some projects out there that'll make embedding pretty easy.
It's a bit unclear where to draw the line on what gets packed into the binary. Putting the language's entire standard library into the binary would make it super portable but perhaps too big.
The text was updated successfully, but these errors were encountered:
Right now prybar links with the system's libraries and depends on the system having all the language's dependencies. Python for example requires (ignoring common system libs)
/usr/lib/libpython3.8.so
,/usr/bin/lib/python3.8/...
, and/usr/lib/python3.8/...
to be present at runtime. This makes prybar non portable between systems without installing the language's libs at the correct version system wide.These shared libs come in two forms: shared objects loaded by the elf interpreter and shared resources loaded by the language interpreter. My proposed solution:
There are already some projects out there that'll make embedding pretty easy.
It's a bit unclear where to draw the line on what gets packed into the binary. Putting the language's entire standard library into the binary would make it super portable but perhaps too big.
The text was updated successfully, but these errors were encountered: