Matt Burgess wrote:
> On Thu, 2013-03-07 at 14:57 +0100, Pierre Labastie wrote:
>
>> Please add --with-sysroot to the configure switches in binutils-pass2.
>> It is harmless (just adds a feature to ld), and corrects that bug.
>
> I think you meant --with-build-sysroot, right?  The configure help
> output for that says
>
> --with-build-sysroot=SYSROOT
>           use sysroot as the system root during the build
>
> So, I assume just '--with-build-sysroot' is enough,

Looking at configure.ac, it does look like SYSROOT is the default and 
does not need to be specified explicitly.

i.e. setting it to a
> null value? I still don't understand what that flag does and why/how it
> fixes this issue.  More importantly, I don't understand if it will
> affect our builds in any other way.

Looking at configure:

if test "${with_build_sysroot+set}" = set; then :
   withval=$with_build_sysroot; if test x"$withval" != x ; then
      SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
    fi
else
   SYSROOT_CFLAGS_FOR_TARGET=
fi

It appears that it only sets SYSROOT_CFLAGS_FOR_TARGET if there is a 
value specified.

Digging a little further, SYSROOT_CFLAGS_FOR_TARGET is used/specified in 
Makefile.in and Makefile.tpl (autogen template)

# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.

XGCC_FLAGS_FOR_TARGET = $(FLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) 
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)

Running './configure --with-build-sysroot=SYSROOT', I find
Makefile:SYSROOT_CFLAGS_FOR_TARGET = --sysroot=SYSROOT

Re-running configure without --with-build-sysroot=SYSROOT', I only see:
Makefile:SYSROOT_CFLAGS_FOR_TARGET =

Running './configure --with-build-sysroot', I have:
Makefile:SYSROOT_CFLAGS_FOR_TARGET = --sysroot=yes

In both chapter05/gcc-pass1 and chapter05/binutils-pass1, we use 
--with-sysroot=$LFS.

I'm getting a little lost here.  Evidently check is not finding 
libpthread.so under some circumstances, but I don't know why.  It should 
be in $LFS/tools/lib/.  Perhaps setting 
LD_LIBRARY_PATH=$LFS/lib:$LFS/usr/lib:$LFS/tools/lib (maybe in Section 
4.4) would be sufficient.

I do see that the contents of $LFS/tools/lib/libpthread.so are:
/* GNU ld script
    Use the shared library, but some functions are only in
    the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /tools/lib/libpthread.so.0 /tools/lib/libpthread_nonshared.a )

   -- Bruce
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to