plasma-umass / Mesh

A memory allocator that automatically reduces the memory footprint of C/C++ applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LD_PRELOAD Failure on Debian Stretch (9.4)

RamanGupta16 opened this issue · comments

I have compiled the code using clang on debian 9.4 as per instructions in README. But I am getting error in LD_PRELOAD

Error

$ LD_PRELOAD=libmesh.so git status
ERROR: ld.so: object 'libmesh.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

clang++-3.9 --version

clang version 3.9.1-9 (tags/RELEASE_391/rc2)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

uname -a

Linux dal2mdspkgm02.corporate.local 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux

oh no, sorry for the trouble! and you ran sudo make install after make on the line before that?

Sorry, I missed make install. I got more focussed on getting it compiled across diff versions of gcc/clang and in the melee lost this important thing. Thanks for pointing it.

ok glad it was that easy!

@raman-gupta-tivo were you having troubles with either GCC/clang, or just looking to compare things?

When I first ran the command configure && make then I ran into compilation issues. On further investigation I came across similar issue (#16) raised by another user. After trying clang3.9 compiler and code changes mentioned in that issue I was able to build the shared object.

One more thing: will using mesh memory allocator also improve performance of python applications, since python interpreter is a C program? I understand that python uses its own memory allocator and performs garbage collection, but for experimenting I tried LD_PRELOAD=libmesh.so python my_python_script.py, but could not see any speed improvement.

oh thanks, if thats the only issue with supporting clang3.9, might as well just change the atomic declaration there.

I haven't benchmarked python recently, but the default allocation scheme they use is very fast; I wouldn't expect speed improvements. Also, in python2 it isn't configurable. I would try LD_PRELOAD=libmesh.so PYTHONMALLOC=malloc python3 my_python_script.py, and if you have issues lets open a new issue to look into python3 perf!

Thanks for the feedback!

this should be fixed after #34, closing.