Boost logo

Boost-Build :

From: Larry Evans (cppljevans_at_[hidden])
Date: 2004-09-04 12:55:49


Hi Validimir,

Thanks for your response.

On 09/04/2004 04:04 AM, Vladimir Prus wrote:
[snip]
> Hi Larry,
>
> Did you try to run this command by hand? Is the error is still there, then the

Not exactly, I ran with link options:

-L$(CPP.libdir) -Wl,--rpath -Wl,$(CPP.libdir)

where:

CPP.libdir=/usr/local/gcc-3.4.1/lib

as instructed by part of the output from `make install` in the gcc
source directory. The instructions were:

----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/gcc-3.4.1/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

> problem is in your installation (from the path, I presume you've installed
> this gcc yourself).

Yes.

[snip]
> the linker never tries to open /usr/local/lib/libstdc++.so, then maybe it
> does not know that it should look in /usr/local/lib and tweaking some env
> vars (e.g. LIBRARY_PATH) is needed. Take a look at the linker docs to figure

Following the 2nd option in the above instructions worked. However, I
was wondering why the 3ird option couldn't be placed in the gcc.link
rule. At first glance, it looks like it was designed for this:

actions link bind LIBRARIES
{
"$(CONFIG_COMMAND)" $(OPTIONS) -L"$(LINKPATH)"
-Wl,-R$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)"
-o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA)
}

except, instead of -rpath-link, the 3ird option above has --rpath
and instead of $(RPATH_LINK), it has LIBDIR. Hence, intially,
I thought it would work. But looking closer, I see it won't because
of some minor differences.

Could the gcc.link rule somehow be changed to reflect the 3ird option
in the above `make install` instructions, and then somehow the
RPATH_LINK flag value be set appropriately?

Best regards,
Larry.

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk