On Wednesday 16 April 2008 17:43, Daniel Jacobowitz wrote:
> On Wed, Apr 16, 2008 at 05:21:55PM +0200, Denys Vlasenko wrote:
> > Maybe gcc can use paths relative to executable's location?
> > readlink("/proc/self/exe") and all that.
> > It will make gcc installation movable without rebuilding.
> 
> It already does.  That's exactly what the code causing you a problem
> is for.  So if you don't try to work around the lack of a feature
> which is in fact present, everything will just work :-)
> 
> It's configured to live in /usr/bin.  So from there it searches
> ../app*/lib/gcc/wherever to find cc1.  When it discovers that you ran
> it from /usr/app*/bin instead (by following the symlink to the real
> binary), it searches /usr/app*/bin/../app*/lib/gcc/wherever.  But
> cc1's not there.

Cool! Giving it a try...



Meanwhile: I decided to get rid of paths in as/ld invocations
by specifying as/ld names without any paths:

--with-gnu-ld                                   \
--with-ld="$CROSS-ld"                           \
--with-gnu-as                                   \
--with-as="$CROSS-as"                           \

and it works, I only need to patch configure to not "test x $with_ld"
as that won't work.

I tested in and it works.

The patch is below. Do you think it makes sense?
--
vda

--- gcc-4.2.3.org/gcc/configure	Sun Sep 23 23:08:04 2007
+++ gcc-4.2.3/gcc/configure	Tue Apr 15 07:35:57 2008
@@ -1751,11 +1751,7 @@
   DEFAULT_LINKER="$with_ld"
 fi;
 if test x"${DEFAULT_LINKER+set}" = x"set"; then
-  if test ! -x "$DEFAULT_LINKER"; then
-    { { echo "$as_me:$LINENO: error: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&5
-echo "$as_me: error: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&2;}
-   { (exit 1); exit 1; }; }
-  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
+  if $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
     gnu_ld_flag=yes
   fi
 
@@ -1811,11 +1807,7 @@
   DEFAULT_ASSEMBLER="$with_as"
 fi;
 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
-  if test ! -x "$DEFAULT_ASSEMBLER"; then
-    { { echo "$as_me:$LINENO: error: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&5
-echo "$as_me: error: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&2;}
-   { (exit 1); exit 1; }; }
-  elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
+  if $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
     gas_flag=yes
   fi
 

Reply via email to