On Sun, Jun 25, 2006 at 07:47:52PM -0400, Paul Hilfinger wrote:
>
> I have a situation (on Linux or Solaris, at least), in which I
> install versions of GCC in non-standard directories (specifically,
> directories not owned & operated by root). With such an
> installation, when a GCC link finds a definition of an external
> reference in a shared library that is part of the .../lib
> subdirectory used by this installation, it treats the shared library
> as if it were also installed in one of the standard locations known
> to the dynamic linker, and does NOT store the path to the directory
> in which that library is found. The result is that to run the
> linked executable, one must either
So you simply want the RPATH entry in the executable created by "gcc
-o foo foo.c" to contain an entry to locate libgcc.so and
libstdc++.so?
You can modify the specs file to _automatically_ add the -R/-Wl,-rpath
when linking. Below is a possible patch for the GCC 4.0.2 specs file
to accomplish it for Solaris. Linux is handled in a similar way.
--
albert chin ([EMAIL PROTECTED])
-- snip snip
--- specs.orig Sun Jun 25 23:30:01 2006
+++ specs Fri Oct 21 00:05:58 2005
@@ -173,6 +173,12 @@
*link_arch:
%{m32:%(link_arch32)} %{m64:%(link_arch64)}
%{!m32:%{!m64:%(link_arch_default)}}
+*rpath:
+-R[gcc library path]
+
+*rpath64:
+-R[gcc library path]/sparcv9
+
*link_command:
-%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %l %{pie:} %X %{o*}
%{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z}
%{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %(mfwrap)
%(link_libgcc) %o %(mflib) %{fprofile-arcs|fprofile-generate:-lgcov}
%{!nostdlib:%{!nodefaultlibs:%(link_gcc_c_sequence)}}
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}
+%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %l %{pie:} %X %{o*}
%{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z}
%{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %(mfwrap)
%(link_libgcc) %o %(mflib) %{fprofile-arcs|fprofile-generate:-lgcov}
%{!nostdlib:%{!nodefaultlibs:%{!m64:%(rpath)} %{m64:%(rpath64)}
%(link_gcc_c_sequence)}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}