Discussion:
[lfs-support] Binutils / GCC - Pass 2 filenames
Seth Turner
2018-08-10 14:20:53 UTC
Permalink
I have built LFS a few times (on different raspberry pi platforms - 2b,
3b, zero) and I always noticed that the first pass of binutils and gcc
would install in:

  $LFS/tools/armv61-lfs-linux-gnueabihf

then during pass 2 (and maybe others) the new files were installed in:

   $LFS/tools/armv61-unknown-linux-gnueabihf

I thought perhaps this was something to do with building on ARM, so I
started a build on a pc and watched the files as they were installed.

pass 1 = $LFS/i686-lfs-linux-gnu

pass 1 = $LFS/i686-pc-linux-gnu

In the final running system, in /usr/bin there are two copies of several
files.  These files are c++, g++, gcc, gcc-7.3.0, gcc-ar, gcc-nm, and
gcc-ranlib

One copy is just the filenames as I would expect, the other copy has
"i686-pc-linux-gnu" prefixed to the beginning of each of the filenames.:
i686-pc-linux-gnu-c++, i686-pc-linux-gnu-g++, i686-pc-linux-gnu-gcc,
i686-pc-linux-gnu-gcc-7.3.0, i686-pc-linux-gnu-gcc-ar,
i686-pc-linux-gnu-gcc-nm, and i686-pc-linux-gnu-gcc-ranlib

During one build I tried to manually edit the makefiles after running
./config to change the i686-pc-linux-gnu to i686-lfs-linux-gnu, but that
failed pretty spectacularly.

Is this what is supposed to happen? Can one set be safely removed? Is
there a way to ./configure to give pass 2 the same filenames as pass 1?


Thanks!

-Seth
--
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Do not top post on this list.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in
Xi Ruoyao
2018-08-10 15:46:17 UTC
Permalink
Post by Seth Turner
I have built LFS a few times (on different raspberry pi platforms - 2b,
3b, zero) and I always noticed that the first pass of binutils and gcc
$LFS/tools/armv61-lfs-linux-gnueabihf
$LFS/tools/armv61-unknown-linux-gnueabihf
I thought perhaps this was something to do with building on ARM, so I
started a build on a pc and watched the files as they were installed.
pass 1 = $LFS/i686-lfs-linux-gnu
pass 1 = $LFS/i686-pc-linux-gnu
In the final running system, in /usr/bin there are two copies of several
files. These files are c++, g++, gcc, gcc-7.3.0, gcc-ar, gcc-nm, and
gcc-ranlib
One copy is just the filenames as I would expect, the other copy has
i686-pc-linux-gnu-c++, i686-pc-linux-gnu-g++, i686-pc-linux-gnu-gcc,
i686-pc-linux-gnu-gcc-7.3.0, i686-pc-linux-gnu-gcc-ar,
i686-pc-linux-gnu-gcc-nm, and i686-pc-linux-gnu-gcc-ranlib
During one build I tried to manually edit the makefiles after running
./config to change the i686-pc-linux-gnu to i686-lfs-linux-gnu, but that
failed pretty spectacularly.
Is this what is supposed to happen? Can one set be safely removed? Is
there a way to ./configure to give pass 2 the same filenames as pass 1?
Yes. It's supposed to happen. Pass 2 is native toolchain, Pass 1 is cross
toolchain so they have different triplets. After Pass 2 GCC has been
installed, we can remove Pass 1 (i686-lfs-linux-gnu-*) since they are no
longer needed. But after all the entire /tools will be removed after the
final system is built so we just leave Pass 1 tools there.

In the final system NO tools should have triplet i686-lfs-linux-gnu.
This triplet is used for Pass 1 cross toolchain ONLY.

GCC install some programs with host triplet (the i686-pc-linux-gnu-* in
final system). AFAIK they can be removed.
--
Xi Ruoyao <***@mengyan1223.wang>
School of Aerospace Science and Technology, Xidian University
--
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Do not top post on this list.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

htt
Ken Moffat
2018-08-10 19:54:30 UTC
Permalink
Post by Xi Ruoyao
Post by Seth Turner
In the final running system, in /usr/bin there are two copies of several
files. These files are c++, g++, gcc, gcc-7.3.0, gcc-ar, gcc-nm, and
gcc-ranlib
One copy is just the filenames as I would expect, the other copy has
i686-pc-linux-gnu-c++, i686-pc-linux-gnu-g++, i686-pc-linux-gnu-gcc,
i686-pc-linux-gnu-gcc-7.3.0, i686-pc-linux-gnu-gcc-ar,
i686-pc-linux-gnu-gcc-nm, and i686-pc-linux-gnu-gcc-ranlib
During one build I tried to manually edit the makefiles after running
./config to change the i686-pc-linux-gnu to i686-lfs-linux-gnu, but that
failed pretty spectacularly.
Is this what is supposed to happen? Can one set be safely removed? Is
there a way to ./configure to give pass 2 the same filenames as pass 1?
[...]
Post by Xi Ruoyao
GCC install some programs with host triplet (the i686-pc-linux-gnu-* in
final system). AFAIK they can be removed.
They should be hardlinks, i.e. using the same inode, so on a linux
filesystem they take no extra space and therefore removing them has
no benefit.

ĸen
--
Entropy not found, thump keyboard to continue
--
http://lists.linuxfromscratch.org/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Do not top post on this list.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

http://en.wikipedia.org/wi
Loading...