The problem seems libtool generate in build directory are different. The libtool mesos-0.22.1 used would append /usr/lib64 when link libmesos.so. If copy the libtool which generate under mesos master branch, would not contains /usr/lib64 when link.
On Sun, Jul 12, 2015 at 8:03 PM, haosdent <[email protected]> wrote: > Hi, Erik. I use 0.22.1 to build libmesos.so, could reproduce your problem. > But use master branch, could not reproduce. > > > On Sun, Jul 12, 2015 at 3:09 PM, Erik Weathers <[email protected]> > wrote: > >> FYI, here's how I'm doing the build: >> https://gist.github.com/erikdw/67db1eaeeeec4fb1ede8 >> >> I included the RPM list on the VM. >> >> - Erik >> >> >> On Sat, Jul 11, 2015 at 11:35 PM, Erik Weathers <[email protected]> >> wrote: >> >> > Thanks for bearing with me Haosong. >> > >> > No environment variable mucking with it that I can see. Only >> potentially >> > relevant thing is perhaps the LD_LIBRARY_PATH set by "scl": >> > >> > >> LD_LIBRARY_PATH=/opt/rh/devtoolset-2/root/usr/lib64:/opt/rh/devtoolset-2/root/usr/lib >> > >> > Regarding package versions, we are identical for those: >> > automake-1.11.1-4.el6.noarch >> > autoconf-2.63-5.1.el6.noarch >> > libtool-2.2.6-15.5.el6.x86_64 >> > >> > Are you using scl with devtool-set2? >> > >> > I feel like the original suggestion you had won't yield different >> behavior >> > than my original LDFLAGS setting. i.e., my belief is that >> "-Wl,-rpath=/usr/local/lib" >> > is identical to "-Wl,-rpath,/usr/local/lib". I'm guessing these are >> just >> > syntax variants. >> > >> > It's worth reemphasizing that the mesos-slave, mesos-master, etc. >> binaries >> > have the RPATH set as I expect (the --prefix setting is sufficient for >> that >> > it). >> > >> > - Erik >> > >> > On Sat, Jul 11, 2015 at 11:24 PM, haosdent <[email protected]> wrote: >> > >> >> My autotool version: >> >> automake-1.11.1-4.el6.noarch >> >> autoconf-2.63-5.1.el6.noarch >> >> libtool-2.2.6-15.5.el6.x86_64 >> >> >> >> On Sun, Jul 12, 2015 at 2:23 PM, haosdent <[email protected]> wrote: >> >> >> >> > I also use CentOS 6.5. >> >> > >> >> > On Sun, Jul 12, 2015 at 2:20 PM, haosdent <[email protected]> >> wrote: >> >> > >> >> >> Does any exists environment variables affect your build? >> >> >> >> >> >> On Sun, Jul 12, 2015 at 2:16 PM, Erik Weathers < >> [email protected]> >> >> >> wrote: >> >> >> >> >> >>> Thanks for the response Hao. Unfortunately that didn't work for >> me, >> >> the >> >> >>> default /usr/lib64 is inserted anyways. >> >> >>> I'm building on CentOS 6.5, using the instructions for CentOS 6.6 >> >> here: >> >> >>> http://mesos.apache.org/gettingstarted/ >> >> >>> >> >> >>> - Erik >> >> >>> >> >> >>> On Sat, Jul 11, 2015 at 10:08 PM, haosdent <[email protected]> >> >> wrote: >> >> >>> >> >> >>> > Hi, @Erik I think you need to change "-Wl,-rpath=/usr/local/lib" >> to >> >> >>> > "-Wl,-rpath,/usr/local/lib". My build step: >> >> >>> > >> >> >>> > ``` >> >> >>> > LDFLAGS="-Wl,-rpath,/usr/local/lib" ../configure >> >> >>> > ``` >> >> >>> > >> >> >>> > And the result show the RPATH only contains /usr/local/lib >> >> >>> > >> >> >>> > ``` >> >> >>> > $objdump -x ./src/.libs/libmesos.so |grep RPATH >> >> >>> > RPATH /usr/local/lib >> >> >>> > ``` >> >> >>> > >> >> >>> > On Sun, Jul 12, 2015 at 12:06 PM, Erik Weathers < >> >> [email protected] >> >> >>> > >> >> >>> > wrote: >> >> >>> > >> >> >>> > > hi mesos dev people, >> >> >>> > > >> >> >>> > > I'm hoping to enlist some help in building mesos such that the >> >> >>> > libmesos.so >> >> >>> > > has its RPATH set as our environment expects. Specifically, in >> >> our >> >> >>> > > environment we install our own custom-built libraries under >> >> >>> > /usr/local/lib, >> >> >>> > > so I want the RPATH in the libmesos.so ELF to look like so: >> >> >>> > > >> >> >>> > > Library rpath: [/usr/local/lib:/usr/lib64] >> >> >>> > > >> >> >>> > > I've tried to effect this change by running configure like so: >> >> >>> > > >> >> >>> > > LDFLAGS="-Wl,-rpath=/usr/local/lib" ./configure >> >> >>> --prefix=/usr/local >> >> >>> > > >> >> >>> > > This resulted in the following RPATH being embedded in >> >> libmesos.so: >> >> >>> > > >> >> >>> > > Library rpath: [/usr/lib64:/usr/local/lib] >> >> >>> > > >> >> >>> > > The RPATH *does* have /usr/local/lib, but I want that to be the >> >> 1st >> >> >>> > entry, >> >> >>> > > not the 2nd. I'm not familiar enough with autoconf nor >> libtool to >> >> >>> figure >> >> >>> > > out how to get the order reversed. I *could* hack the embedded >> >> RPATH >> >> >>> > with >> >> >>> > > the chrpath tool, but I'd prefer changing build arguments >> instead. >> >> >>> > > >> >> >>> > > I see in the g++ cmd that generates the .so that there are >> >> includes >> >> >>> of >> >> >>> > > /usr/lib64 earlier than my passed LDFLAGS, so I wonder if it's >> a >> >> >>> > > configure.ac change I need to make to allow the LDFLAGS to be >> >> >>> shoved in >> >> >>> > > front instead of behind the automatically generated /usr/lib64 >> >> >>> portion. >> >> >>> > > >> >> >>> > > Notably, simple use of the --prefix=/usr/local option allows >> the >> >> >>> mesos-* >> >> >>> > > binaries to have the embedded RPATH as I want, I'm only >> struggling >> >> >>> with >> >> >>> > the >> >> >>> > > libmesos.so RPATH. >> >> >>> > > >> >> >>> > > Thanks for whatever help you might provide! >> >> >>> > > >> >> >>> > > - Erik >> >> >>> > > >> >> >>> > > P.S., this is for building mesos-0.22.1 >> >> >>> > > P.P.S., I tried --with-rpath=/usr/local/lib, but that didn't >> help >> >> >>> either. >> >> >>> > > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > -- >> >> >>> > Best Regards, >> >> >>> > Haosdent Huang >> >> >>> > >> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Best Regards, >> >> >> Haosdent Huang >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Best Regards, >> >> > Haosdent Huang >> >> > >> >> >> >> >> >> >> >> -- >> >> Best Regards, >> >> Haosdent Huang >> >> >> > >> > >> > > > > -- > Best Regards, > Haosdent Huang > -- Best Regards, Haosdent Huang
