Re: [lfs-support] LFS-BOOK-7.0 Section 5.9 binutils pass2 doubt

2012-06-19 Thread Eleanore Boyd

On 6/19/2012 12:09 PM, Emerson Yesupatham wrote:

Hi,
I am trying to build LFS. I am following LFS-BOOK-7.0.pdf.
Problem:
I am facing the following error while compiling Binutils-2.21.1a - 
Pass 2, section 5.9.
  *configure: error: cannot run C compiled programs.* Complete error 
is attached in config.log file.

The command executed was:
CC=$LFS_TGT-gcc -B/tools/lib/ \
AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
../binutils-2.21.1/configure --prefix=/tools \
--disable-nls --with-lib-path=/tools/lib
Other information:
 In my host system, the following important check under Caution 
mentioned in section 5.8 Adjusting tool chain, is working fine as 
shown below:

**
lfs:/mnt/lfs/sources$ echo 'main(){}'  dummy.c
lfs:/mnt/lfs/sources$ $LFS_TGT-gcc -B/tools/lib dummy.c
lfs:/mnt/lfs/sources$ readelf -l a.out | grep ': /tools'
[Requesting program interpreter: /tools/lib/ld-linux.so.2]
*My host system violates one of the prerequisites mentioned in page XVi*
*Linux Kernel-2.6.25 *
(having been compiled with GCC-4.1.2 or greater)
The reason for the kernel version requirement is that we specify that 
version when building glibc in Chapter 6 at

the recommendation of the developers. It is also required by udev.
If the host kernel is either earlier than 2.6.25, or it was not 
compiled using a GCC-4.1.2 (or later) compiler, you

will need to replace the kernel with one adhering to the specifications.
Question: I tried to locate solution for this error in the lfs-support 
archive but could not find the identical one. Could any one help me 
out on this? I am blocked due to this error completely.
I belive the above prerequisite violation should not create problem at 
this point i.e. binutils pass2.

Thanks,
Emerson


First, use an HTML copy so you can copy+paste easier. Second, run all 
the possible upgrades your distro offers. If your kernel is out-of-date, 
then you must not be updating anything. Or, if it's something similar to 
Slackware or Arch Linux, get the fresh packages and recompile them. Then 
try building from the beginning. You might have better luck then.


Elly

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


Re: [lfs-support] LFS-BOOK-7.0 Section 5.9 binutils pass2 doubt

2012-06-19 Thread Andrew Benton
On Tue, 19 Jun 2012 18:09:21 +0100
Emerson Yesupatham yemerson1...@gmail.com wrote:

 *My host system violates one of the prerequisites mentioned in page XVi*
 
 *Linux Kernel-2.6.25 *

So what are you saying, that your kernel is older than 2.6.25?
Glibc is configured with --enable-kernel=2.6.25 so if you try to use it
(eg, when configuring the next package, Binutils) with an older kernel
it won't work and you'll get an error message like the one you posted.
The obvious solution is to get a newer kernel but you could also try
configuring glibc with --enable-kernel=$(uname -r) but it may not work
(I can't remember why).
So upgrade your kernel before you start the book.

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


Re: [lfs-support] /etc/fstab

2012-06-19 Thread Alexander Kapshuk
I'd appreciate it if somebody could please have a look at my /etc/fstab 
file shown below and let me know if it's OK. I've searched this mailing 
list's archives and an example /etc/fstab I found was a bit different to 
mine. I also had a look at the /etc/fstab files on  a Ubuntu and Debian 
systems, but they weren't as detailed as mine.

In particular, I'd like to know whether it is my /boot partition or / 
partition that has to be checked by fsck. Is it OK for /boot to be ext3, 
or should I have made it ext2? Googling it suggests that it's probably 
better for it to be ext2, but ext3 should do fine as well.

:; mount
...
/dev/sda5 on /mnt/lfs/boot type ext3 (rw)
/dev/sda6 on /mnt/lfs type ext3 (rw,commit=0,commit=0)
/dev/sda7 on /mnt/lfs/opt type ext3 (rw,commit=0,commit=0)
/dev/sda8 on /mnt/lfs/usr/src type ext3 (rw,commit=0,commit=0)
/dev/sda9 on /mnt/lfs/home type ext3 (rw,commit=0,commit=0)
/dev on /mnt/lfs/dev type none (rw,bind)
devpts on /mnt/lfs/dev/pts type devpts (rw)
shm on /run/shm type tmpfs (rw)
proc on /mnt/lfs/proc type proc (rw)
sysfs on /mnt/lfs/sys type sysfs (rw)

root@hostname:~# file -s /dev/sda[5-9] | awk '{ print $1,$8 }'
/dev/sda5: UUID=64b0a82e-4500-49c0-b426-e97562ed0585
/dev/sda6: UUID=a2f6cc54-c7d7-41e9-8e00-123da318f743
/dev/sda7: UUID=140b05f2-6ca5-4cc8-b45b-52e6e6d2e164
/dev/sda8: UUID=a6563b03-a212-47b0-b6cc-7f767768852d
/dev/sda9: UUID=0901943d-ab94-423a-accb-cd425d3d13c1

root:/# cat /etc/fstab
# Begin /etc/fstab

# file system mount point type options dump pass
UUID=64b0a82e-4500-49c0-b426-e97562ed0585 /boot ext3 defaults  0 2
UUID=a2f6cc54-c7d7-41e9-8e00-123da318f743 / ext3 defaults 0 1
UUID=140b05f2-6ca5-4cc8-b45b-52e6e6d2e164 /opt ext3 defaults 0 2
UUID=a6563b03-a212-47b0-b6cc-7f767768852d /usr/src ext3 defaults 0 2
UUID=0901943d-ab94-423a-accb-cd425d3d13c1 /home ext3 defaults 0 2
UUID=c0882b91-9df5-43f9-b5e3-d77d68b53a33 none swap sw 0 0
proc  /proc proc nosuid,noexec,nodev  0 0
sysfs /sys sysfs nosuid,noexec,nodev 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
tmpfs /run tmpfs defaults 0 0
devtmpfs /dev devtmpfs mode=0755,nosuid 0 0

# End /etc/fstab

Thanks.

Alexander Kapshuk.


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


Re: [lfs-support] /etc/fstab

2012-06-19 Thread Ken Moffat
On Tue, Jun 19, 2012 at 09:27:03PM +0300, Alexander Kapshuk wrote:
 I'd appreciate it if somebody could please have a look at my /etc/fstab 
 file shown below and let me know if it's OK. I've searched this mailing 
 list's archives and an example /etc/fstab I found was a bit different to 
 mine. I also had a look at the /etc/fstab files on  a Ubuntu and Debian 
 systems, but they weren't as detailed as mine.
 
 In particular, I'd like to know whether it is my /boot partition or / 
 partition that has to be checked by fsck. Is it OK for /boot to be ext3, 
 or should I have made it ext2? Googling it suggests that it's probably 
 better for it to be ext2, but ext3 should do fine as well.
 
 ext3 should be ok for /boot.  fsck will be run on *all* the
filesystems in fstab which are automounted and in need of an fsck.

 :; mount
 ...
 /dev/sda5 on /mnt/lfs/boot type ext3 (rw)
 /dev/sda6 on /mnt/lfs type ext3 (rw,commit=0,commit=0)
 /dev/sda7 on /mnt/lfs/opt type ext3 (rw,commit=0,commit=0)
 /dev/sda8 on /mnt/lfs/usr/src type ext3 (rw,commit=0,commit=0)
 /dev/sda9 on /mnt/lfs/home type ext3 (rw,commit=0,commit=0)
 /dev on /mnt/lfs/dev type none (rw,bind)
 devpts on /mnt/lfs/dev/pts type devpts (rw)
 shm on /run/shm type tmpfs (rw)
 proc on /mnt/lfs/proc type proc (rw)
 sysfs on /mnt/lfs/sys type sysfs (rw)
 
 root@hostname:~# file -s /dev/sda[5-9] | awk '{ print $1,$8 }'

 /dev/sda5: UUID=64b0a82e-4500-49c0-b426-e97562ed0585
 /dev/sda6: UUID=a2f6cc54-c7d7-41e9-8e00-123da318f743
 /dev/sda7: UUID=140b05f2-6ca5-4cc8-b45b-52e6e6d2e164
 /dev/sda8: UUID=a6563b03-a212-47b0-b6cc-7f767768852d
 /dev/sda9: UUID=0901943d-ab94-423a-accb-cd425d3d13c1
 
 Thanks, I didn't know that file could do that!
 root:/# cat /etc/fstab
 # Begin /etc/fstab
 
 # file system mount point type options dump pass
 UUID=64b0a82e-4500-49c0-b426-e97562ed0585 /boot ext3 defaults  0 2
 UUID=a2f6cc54-c7d7-41e9-8e00-123da318f743 / ext3 defaults 0 1
 UUID=140b05f2-6ca5-4cc8-b45b-52e6e6d2e164 /opt ext3 defaults 0 2
 UUID=a6563b03-a212-47b0-b6cc-7f767768852d /usr/src ext3 defaults 0 2
 UUID=0901943d-ab94-423a-accb-cd425d3d13c1 /home ext3 defaults 0 2
 UUID=c0882b91-9df5-43f9-b5e3-d77d68b53a33 none swap sw 0 0

 Why not just use /dev/sda5 /boot ext3 ... and similarly for the
others ?  I suppose that UUID will work once udev is running.  For
the rootfs, the kernel will try to use whatever root= you passed on
the commandline from grub : here UUID will NOT work (we don't use an
initrd) - and what is shown in /etc/fstab for '/' is at best
documentation.

 Dump values of '1' are, or at least used to be, conventional for
ext filesystems, but that probably doesn't make any real difference.

 So, I *think* that your fstab will probably work.

 I also think that /usr/src and /opt are wastes of filesystems :
Anything you build in /opt will be linked to the libraries in /lib
and therefore might break work when you build your next LFS
because the versions will probably change.  At the moment, the only
thing in /opt on my current system is llvm -

ken@ac4tv ~ $ldd /opt/llvm/lib/libLLVM-3.1.so 
linux-vdso.so.1 (0x74fff000)
libpthread.so.0 = /lib/libpthread.so.0 (0x7fb9be449000)
libffi.so.5 = /usr/lib/libffi.so.5 (0x7fb9be24)
libdl.so.2 = /lib/libdl.so.2 (0x7fb9be03c000)
libstdc++.so.6 = /usr/lib/libstdc++.so.6 (0x7fb9bdd3b000)
libm.so.6 = /lib/libm.so.6 (0x7fb9bda3f000)
libgcc_s.so.1 = /usr/lib/libgcc_s.so.1 (0x7fb9bd82a000)
libc.so.6 = /lib/libc.so.6 (0x7fb9bd46d000)
/lib64/ld-linux-x86-64.so.2 (0x7fb9bfbbc000)

 libpthread, libdl, libm libc, and even ld-linux are the things
which might break with a newer glibc.  OTOH, those people who update
glibc in-place can probably handle this.  I also believe that if I'm
going to install a new system, I want the current versions of
everything - not a version from whenever I installed the current
system.

 The case against /usr/src is different : you can build packages
anywhere that there is enough space - on recent disks I dedicate a
large space to /scratch (it doesn't get backed up) and build within
that.  On my previous smaller disks I used to build in /home (ok,
for scripted installss I have built in /usr/src if there was room,
and still use /mnt/lfs/usr/src, but it doesn't require a separate
partition).

 Many desktop packages use a lot of space, but there is usually no
good reason to keep the build director{y,ies} around after a package
is installed.

 Since I'm off on my partitioning hobbyhorse, I'll mention that
people who intend to keep using LFS will want a second filesystem to
use as /mnt/lfs for their next build.  For many people, '/' from
their original host system can be used for that.  Other approaches
are possible, but life is hard enough for those of us who build from
source, no need to gratuitously make things harder for ourselves.
 proc  /proc proc nosuid,noexec,nodev  0 0
 sysfs /sys sysfs