On Sun, Jan 06, 2002 at 10:40:43PM -0800, Justin Erenkrantz wrote: > gcc on Linux is brain-dead w.r.t. run-time link paths. In order > to add any run-time search dir, you must specify "-Wl,-rpath <path>" > to add a dir via gcc. However, libtool only recognizes "-R" or > "-rpath" as the link path options. So, these two options are > completely incompatible. (FWIW, gcc on Solaris recognizes -R > natively, so it isn't a problem there - -R works for both gcc > and libtool - probably why I've skirted the issue for so long.)
-rpath to libtool doesn't mean the same as -rpath to GNU/Linux ld. > I usually add the Berkeley DB libraries so APR-util finds it > (SVN requires that apr-util links against db-4.0.14 which is > different than what is in my /usr/lib): > > CPPFLAGS="-I/pkg/db-4.0.14/include" \ > LDFLAGS="-L/pkg/db-4.0.14/lib -Wl,-rpath /pkg/db-4.0.14/lib" \ > ./configure ...<options>... > > If we specify "-Wl,-rpath", we fail at link-time when building > the binaries, since libtool does not understand -Wl,-rpath. Libtool 1.4.x and above should pass through anything with -Wl. We've used LDFLAGS="-Wl,-rpath,<blah>" in many programs built using libtool and the embedded runtime path in the resulting executable is exactly what we want. > However, if you specify "-R" instead of -Wl,-rpath, we will fail > at configure-time in httpd since configure will try to link with > LDFLAGS and gcc will say that "-R" is unrecognized. > > This is a complete Catch-22. The question is what to do about it. > I have some ideas, but I'd like to hear what other people think. > > I won't prejudice you all with my proposed solutions because I > think they are all a bit unelegant. (I'm also curious if we end > up with what I already have.) It looks technically feasible, > but my solutions turn into a complete mess. Hint: we can't just > handle this in httpd as we must build all of the subprojects (apr, > apr-util, pcre) with the proper conversion. It just sucks. But, > my builds are completely broken on Linux with -rpath LDFLAGS. So, > we need some sort of solution. (IMHO, ldconfig isn't a solution > since it requires root access.) -- justin I'm still not sure I understand your problem. -- albert chin ([EMAIL PROTECTED])
