[lfs-support] lfs tool chain technique LFS-7.1
cara117 at cox.net
Sat Aug 25 18:40:01 PDT 2012
On 8/25/2012 8:26 PM, Jasmine Iwanek wrote:
> On 2012-08-25 16:10, Eleanore Boyd wrote:
>> On 8/25/2012 10:02 AM, Hadi wrote:
>>> Hi Emerson,
>>> Thank your feedback, Emerson.
>>> I think I should correct you first. After binutils-2.22-Pass1 in
>>> Chapter 5 LFS 7.1, binutils are NOT picked up from the /tools
>>> PATH= PATH=/tools/bin:/bin:/usr/bin
>>> In /tools/bin, there is only $LFS_TGT-* tools as following in my X86
>>> virtual box:
>>> lfs:/mnt/lfs$ ls tools/bin/
>>> i686-lfs-linux-gnu-addr2line i686-lfs-linux-gnu-elfedit
>>> i686-lfs-linux-gnu-ld i686-lfs-linux-gnu-ranlib
>>> i686-lfs-linux-gnu-ar i686-lfs-linux-gnu-gcc
>>> i686-lfs-linux-gnu-ld.bfd i686-lfs-linux-gnu-readelf
>>> i686-lfs-linux-gnu-as i686-lfs-linux-gnu-gcc-4.6.2
>>> i686-lfs-linux-gnu-nm i686-lfs-linux-gnu-size
>>> i686-lfs-linux-gnu-c++filt i686-lfs-linux-gnu-gcov
>>> i686-lfs-linux-gnu-objcopy i686-lfs-linux-gnu-strings
>>> i686-lfs-linux-gnu-cpp i686-lfs-linux-gnu-gprof
>>> i686-lfs-linux-gnu-objdump i686-lfs-linux-gnu-strip
>>> Or we can use command "which is ld", it shows that ld is the host's:
>>> lfs:/mnt/lfs$ which is ld
>>> which: no is in (/tools/bin:/bin:/usr/bin)
>>> Although in /tools/i686-lfs-linux-gnu/ there is binutils (ar/ld),
>>> but /tools/i686-lfs-linux-gnu is not in the PATH.
>>> So it is not easy to understand "Binutils is installed first because
>>> the configure runs of both GCC and Glibc perform various feature tests
>>> on the assembler and linker to determine which software features to
>>> enable or disable." and the tool chain constructing process.
>> If /tools is in the path, then all subdirectories are also in the
>> path. Binutils primarily contains the assembler and linker needed by
>> GCC to build assembler portions of any code.
> Not quite true elly, configure has some code to search in certain
> relative paths from the prefix, if you take a look at the build logs
> you'll find lots of references like:
> checking for ld...
> (That one is from gcc pass 2 in 7.2 dev chapter 5)
> If you want to test the theory, make a subdirectory under /usr/bin like
> bash-4.2# mkdir /usr/bin/temp
> bash-4.2# echo "echo \"Well, that shouldn't have run.\"" >
> bash-4.2# chmod 755 /usr/bin/temp/sillyprog
> bash-4.2# sillyprog
> bash: sillyprog: command not found
> you'll notice it's not found as it's not in the path:
> bash-4.2# export
> declare -x PATH="/usr/bin:/bin:/usr/sbin:/sbin"
> If subdirectories were automatically included in the path, that would
> make for a bit of a security problem.
> Jasmine Iwanek
Ah. I assumed that it would have, since the binaries are in the
subfolders, and not in the root of /tools.
Shows just how much I know... :)
More information about the lfs-support