[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: library fuction calls



On Thu, 22 Feb 2001, Raja Subramanian wrote:

> That's news, _nothing_except_ echo worked on my linux box. I could not run
> anything if I compiled the the library as you have mentioned. Are you sure
> youre not missing something?
> 
	This is what I did:

<ajayd:tconn> cc -o malloc_interposer.so -shared malloc_interposer.c
<ajayd:tconn> export LD_PRELOAD=/home/ajayd/tconn/malloc_interposer.so 
				^^^^^^^^^^^^^
  (you have to give the complete path for the library)
<ajayd:tconn> ls
ls: error in loading shared
libraries: /home/ajayd/tconn/malloc_interposer.so: undefined symbol: dlsym
<ajayd:tconn> /bin/echo
malloc(176) is called
malloc(176) is called
.....

	I noted that it does not work with ls, clear, strace etc . Works
for vim, /bin/echo etc.. (NOTE: there is also a bash builtin echo, so the
need for /bin/echo to test)

> > 	Any ideas ?
> 
> Yes, you need to include libdl in linux (RTFineM, sorry); add -ldl to your gcc
> flags. As you see, Solaris and linux are not the friendliest when it comes to
> linking in libraries and I've been bitten by this many times too.
> 
	Oops!! ... After reading your mail, I had been trying for the last
hour to compile with -ldb, just figured out you said -ldl. Going for a
strong coffee break :-)

	Now it is working for all, ls , clear, strace etc.... and I am a
happy guy :)

	Thanks Raja, sandeep and binand and others. Its great to be on LI
:)  
-- 

#!!!	If anything can go wrong, _FIX_ it. (To hell with MURPHY)
	
						Ajay kumar Dwivedi
						 ajayd@xxxxxxxxxx