Chap 6.3 gcc-3.4.5/libstdc++-v3/configure can't find src/ios.cc

Aaron Miller armantic101 at gmail.com
Thu Jun 22 15:25:19 PDT 2006


On 6/22/06, Aaron Miller <armantic101 at gmail.com> wrote:
> Hello,
>
> I am working though Chapter 6 in Hardened Linux From Scratch - Version
> SVN-20060510 and I ran into a strange problem when I try to make gcc.
>
> if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi
> make[2]: Leaving directory `/tools/gcc-build/gcc'
> make[1]: Leaving directory `/tools/gcc-build/gcc'
> Checking multilib configuration...
> multilib.out is unchanged
> Configuring in /libstdc++-v3
> configure: error: cannot find sources (src/ios.cc) in ../../../gcc-3.4.5/libstdc
> ++-v3
> make: *** [configure-target-libstdc++-v3] Error 1
>
> Now I am pretty new to Linux so I apologize if the answer might seem obvious to
> some people, but why is the configure trying to go back 3 levels of
> directories to
> find the source?
>
> If it goes back 3 levels from /tools/gcc-3.4.5/libstdc++-v3 would that
> not try and find
> the source in '/gcc-3.4.5/libstdc++-v3/src'? I found the section in
> the libstdc++
> configure file that does the test, but I didn't really understand what
> I needed to change to only go back 2 directories when testing if the
> source is present.
>
> Could anyone point me in the Right direction? google returned 0 results.
>
> Thanks for your time!
> ...aaron
>

I'm really sorry to reply to my own message so quickly. I should have
made sure I was finished before I hit send. According to the comments
in the configure, it looks like it tries to find it in the current
directory, then goes up a directory and check there. This is probably
why it makes it all the way to the / directory before failing. I think
the better question would be, "why does it not find src/ios.cc in the
current directory?" I verified that is is infact there.  Here is the
test routine in the configure script:

if test -z "$srcdir"; then
  ac_srcdir_defaulted=yes
  # Try the directory containing this script, then its parent.
  ac_confdir=`(dirname "$0") 2>/dev/null ||
$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
         X"$0" : 'X\(//\)[^/]' \| \
         X"$0" : 'X\(//\)$' \| \
         X"$0" : 'X\(/\)' \| \
         .     : '\(.\)' 2>/dev/null ||
echo X"$0" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
          /^X\(\/\/\)[^/].*/{ s//\1/; q; }
          /^X\(\/\/\)$/{ s//\1/; q; }
          /^X\(\/\).*/{ s//\1/; q; }
          s/.*/./; q'`
  srcdir=$ac_confdir
  if test ! -r $srcdir/$ac_unique_file; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
  if test "$ac_srcdir_defaulted" = yes; then
    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir$
   { (exit 1); exit 1; }; }
  else
    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
   { (exit 1); exit 1; }; }
  fi
fi
(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not wor$
   { (exit 1); exit 1; }; }



More information about the hlfs-dev mailing list