Re: [lfs-support] can't compile gcc pass 1
I think that really will help me remember. Thank you. On Jan 7, 2013, at 2:50 AM, Simon Geard delga...@ihug.co.nz wrote: On Sun, 2013-01-06 at 09:06 -0500, Roy Birk wrote: And I might have been better off copying and pasting. It's difficult to tell the difference, in the book, between the number one and the letter L (lower case). I checked man pages and went with whichever seemed more sensible, but got it wrong a couple of times with the -W1 option. Oh yeah, misreading '1' and 'l' (and I) is classic. There's a reason a lot of countries have restrictions on characters like those appearing on car license plates. But if it helps you remember it, the 'l' in -Wl stands for linker - it's the mechanism for providing parameters that should be passed through to the linker (which gcc invokes), not read by gcc itself. So for example, passing -Wl,--verbose to gcc means that gcc will pass --verbose when it runs ld. Simon. -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
--- Em dom, 6/1/13, Fernando de Oliveira escreveu: De: Fernando de Oliveira Assunto: Re: [lfs-support] can't compile gcc pass 1 lfs-support@linuxfromscratch.org Data: Domingo, 6 de Janeiro de 2013, 9:09 I agree with you. However, I think that there must be a way to reduce user problems, and as usual in life, a price has to be paid for that. So, I am dropping the word like, and also, I do not dislike this script. Bruce, please, do no consider my two last posts. They were so poorly written, that I feel their goals seemed to be the contrary to the intended ones. I stop here, and hope you would go on considering the replacement of the version-check.sh script by your second proposed one. Your second script is, of course, better than the first one with the introduction of function executable. Apologies, again, for the two previous posts, and I hope this one really translates my intentions. []s, Fernando -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk some distros started to drop the /usr hierarchy the script should be a little smarter to accept the files not only in /usr/bin but just anywhere in $PATH something like awk=$( which awk ) AWK=$( readlink -f ${awk} ) [ ${AWK%%\/gawk} == ${AWK} ] die... tobias -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
--- Em dom, 6/1/13, Bruce Dubbs escreveu: De: Bruce Dubbs Assunto: Re: [lfs-support] can't compile gcc pass 1 Para: LFS Support List Data: Domingo, 6 de Janeiro de 2013, 1:09 Fernando de Oliveira wrote: I like this. Output from $ cat /etc/lfs-release SVN-20120311 Here is another version. I can't say I really like it. The original is 40 lines and this is 73. All this because users either don't have enough experience to understand what's there now or because a user (generally experienced) just skips it. After all, the book says: /bin/sh should be a symbolic or hard link to bash /usr/bin/yacc should be a link to bison or small script that executes bison /usr/bin/awk should be a link to gawk We then print out all the current values on the system. How much hand holding do we need to do? I agree with you. However, I think that there must be a way to reduce user problems, and as usual in life, a price has to be paid for that. So, I am dropping the word like, and also, I do not dislike this script. 1. I have run the previous posted script, then the new one, and logged both. A diff showed no difference in the outputs. 2. A diff was between the scripts, not their output, gave (just pasting the lines that could have some interest, although it is not really an important point): paste $ diff -Naur ../../lfs/version-check-lfs-support{,-2}.sh | less ... SH=`readlink -f /bin/sh` echo /bin/sh - $SH -[ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash +[ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash ... /paste There is an extra space in the new one, just after ==. []s, Fernando #!/bin/bash # Simple script to list version numbers of critical development tools function die { rm -f dummy.c dummy echo Error: $1 exit 1 } function executable { EXE=$(which $1 2/dev/null) [ -x $EXE ] || die $1 not found } export LC_ALL=C bash --version | head -n1 | cut -d -f2-4 SH=`readlink -f /bin/sh` echo /bin/sh - $SH [ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash executable ld echo -n Binutils: ; ld --version | head -n1 | cut -d -f3- executable bison; bison --version | head -n1 if [ -e /usr/bin/yacc ]; then echo /usr/bin/yacc - `readlink -f /usr/bin/yacc`; else die yacc not found; fi executable bzip2 bzip2 --version 21 /dev/null | head -n1 | cut -d -f1,6- executable chown echo -n Coreutils: ; chown --version | head -n1 | cut -d) -f2 executable diff; diff --version | head -n1 executable find; find --version | head -n1 executable gawk; gawk --version | head -n1 AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk echo $awk - $AWK [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk executable gcc; gcc --version | head -n1 echo 'main(){}' dummy.c gcc -o dummy dummy.c if [ -x dummy ] then echo gcc compilation OK rm -f dummy.c dummy else die gcc compilation failed fi executable ldd; ldd --version | head -n1 | cut -d -f2- # glibc executable grep; grep --version | head -n1 executable gzip; gzip --version | head -n1 cat /proc/version; executable m4; m4 --version | head -n1 executable make; make --version | head -n1 executable patch;patch --version | head -n1 executable perl; echo Perl `perl -V:version` executable sed; sed --version | head -n1 executable tar; tar --version | head -n1 executable makeinfo; echo Texinfo: `makeinfo --version | head -n1` executable xz; xz --version | head -n1 echo -e \n\n*** Review all versions for currency! -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
--- Em dom, 6/1/13, Tobias Gasser escreveu: De: Tobias Gasser Assunto: Re: [lfs-support] can't compile gcc pass 1 Para: LFS Support List Data: Domingo, 6 de Janeiro de 2013, 8:35 AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk some distros started to drop the /usr hierarchy the script should be a little smarter to accept the files not only in /usr/bin but just anywhere in $PATH something like awk=$( which awk ) AWK=$( readlink -f ${awk} ) [ ${AWK%%\/gawk} == ${AWK} ] die... It seems that there are extras spaces in other lines. []s, Fernando -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
Simon Geard wrote: On Sat, 2013-01-05 at 11:39 -0600, Bruce Dubbs wrote: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. My issue with the script isn't whether it's short or long - it's whether the reader understands that they need to read the script output, and check it against the list of requirements. As such, I'm not particularly in favour of making the script smart enough to do that checking for the reader. The reader *must* understand that doing an LFS build involves some thinking - that it's not just a bunch of stuff to copy-paste without understanding what they're doing. Simon. I am better off not thinking. -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
And I might have been better off copying and pasting. It's difficult to tell the difference, in the book, between the number one and the letter L (lower case). I checked man pages and went with whichever seemed more sensible, but got it wrong a couple of times with the -W1 option. On Jan 6, 2013, at 8:54 AM, Baho Utot baho-u...@columbus.rr.com wrote: Simon Geard wrote: On Sat, 2013-01-05 at 11:39 -0600, Bruce Dubbs wrote: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. My issue with the script isn't whether it's short or long - it's whether the reader understands that they need to read the script output, and check it against the list of requirements. As such, I'm not particularly in favour of making the script smart enough to do that checking for the reader. The reader *must* understand that doing an LFS build involves some thinking - that it's not just a bunch of stuff to copy-paste without understanding what they're doing. Simon. I am better off not thinking. -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Sun, 2013-01-06 at 12:35 +0100, Tobias Gasser wrote: AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk some distros started to drop the /usr hierarchy Out of curiosity, which ones? The only one I know that's messing with that area is Fedora, but they're the reverse - /bin, /sbin and /lib are symlinks to the real directories under /usr... Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Sun, 2013-01-06 at 12:35 +0100, Tobias Gasser wrote: AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk some distros started to drop the /usr hierarchy the script should be a little smarter to accept the files not only in /usr/bin but just anywhere in $PATH something like awk=$( which awk ) AWK=$( readlink -f ${awk} ) [ ${AWK%%\/gawk} == ${AWK} ] die... Thinking about it, that's still unnecessarily complicated. Because for all the talk about symlinks, what we actually care about is that running 'awk' results in running 'gawk'. And to test that, we don't need to mess with readlink and stuff - we just need to run it and ask it what it is... $ awk --version | head -n 1 GNU Awk 4.0.1 Likewise the bash/dash thing, for that matter - we don't care about symlinks, we care that 'sh' is the same thing as bash. $ sh --version | head -n 1 GNU bash, version 4.2.39(1)-release (x86_64-unknown-linux-gnu) No need to worry about /bin vs /usr/bin, or whether files might be symlinked, hardlinked, or outright copies. Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Sun, 2013-01-06 at 09:06 -0500, Roy Birk wrote: And I might have been better off copying and pasting. It's difficult to tell the difference, in the book, between the number one and the letter L (lower case). I checked man pages and went with whichever seemed more sensible, but got it wrong a couple of times with the -W1 option. Oh yeah, misreading '1' and 'l' (and I) is classic. There's a reason a lot of countries have restrictions on characters like those appearing on car license plates. But if it helps you remember it, the 'l' in -Wl stands for linker - it's the mechanism for providing parameters that should be passed through to the linker (which gcc invokes), not read by gcc itself. So for example, passing -Wl,--verbose to gcc means that gcc will pass --verbose when it runs ld. Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Fri, 2013-01-04 at 19:11 -0600, Bruce Dubbs wrote: matthew gruda wrote: the output of the version check script is: bash, version 4.2.24(1)-release /bin/sh - /bin/dash Fix this. Bruce (and others), I think some improvement needs to be made to the Requirements page in the book. Because I get the impression that people aren't actually reading the page - they're just running the commands in the grey box, and when they don't appear to fail, continue on to the next page. The thing about bash vs dash is practically the first thing on the page, but the number of people who miss it is just silly. I'm not sure what the fix is, but we need to make the readers understand that they actually need to use their brains, and read the instructions, not just copy-paste the commands. Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
--- Em sáb, 5/1/13, Simon Geard escreveu: De: Simon Geard Assunto: Re: [lfs-support] can't compile gcc pass 1 Para: lfs-support Data: Sábado, 5 de Janeiro de 2013, 8:40 On Fri, 2013-01-04 at 19:11 -0600, Bruce Dubbs wrote: matthew gruda wrote: the output of the version check script is: bash, version 4.2.24(1)-release /bin/sh - /bin/dash Fix this. Bruce (and others), I think some improvement needs to be made to the Requirements page in the book. Because I get the impression that people aren't actually reading the page - they're just running the commands in the grey box, and when they don't appear to fail, continue on to the next page. The thing about bash vs dash is practically the first thing on the page, but the number of people who miss it is just silly. I'm not sure what the fix is, but we need to make the readers understand that they actually need to use their brains, and read the instructions, not just copy-paste the commands. Simon I have recurrently written about this, here. My error with this page, even after having built one or two versions of LFS, was that the last line: gcc compilation OK that made me ignore the other lines, when some of these lines were telling me that I had requirements to fix. I thought: all right, host can compile, so the other lines are just additional information or recommendations, may be. My suggestion in a previous post was to move that line to an earlier place in the script. Chris gave better suggestions than mine. But as the SVN version has been modified, Bruce does not think that anything is necessary, I have modified the book, let us wait until new release on March. Having read that before my original post, I told him that we could at least create a ticket to remember about that on March, but he still thinks it to be unnecessary. Perhaps he is right, if the complaints to come from the stable, not the SVN, and the issues will continue to appear in this list so as to keep us aware of the problem. However, if the new version does not work as expected there will be six more months until the eventual needed fix be introduced, and go into the following release. []s, Fernando -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
My error with this page, even after having built one or two versions of LFS, was that the last line: gcc compilation OK that made me ignore the other lines, when some of these lines were telling me that I had requirements to fix. I thought: all right, host can compile, so the other lines are just additional information or recommendations, may be. i had the same problem. so i reworked the script. i moved the compile test after checking for gcc, and put linux at the end, as there have to be checked 2 versions the output does not only show min requirement, but the current version the book builds too. my script aborts if /bin/sh is not bash, awk not gawk or yacc not bison. if awk or yacc are scripts, i show a message to check the script. tobias #!/bin/bash PATH=/usr/bin:/bin:/usr/sbin:/sbin if [ -d /root/devlop ] then PATH=/root/devlop:$PATH fi # Simple script to list version numbers of critical development tools export LC_ALL=C echo bash = 3.2 (4.2) $( bash --version | head -n1 | cut -d -f2-4 ) /bin/sh MUST be a link to bash TMP=$( readlink -f /bin/sh ) [ ${TMP//bash} == ${TMP} ] echo !! ERROR : ${TMP} exit 99 echo /bin/sh - ${TMP} echo binutils (ld) = 2.17 (2.31.1) $( ld --version | head -n1 ) echo bison = 2.3 (2.7) $( bison --version | head -n1 ) TMP= [ -e /usr/bin/yacc ] TMP=/usr/bin/yacc [ -e /bin/yacc ] TMP=/bin/yacc [ -z ${TMP} ] echo !! ERROR : yacc not found exit 99 if [ -L ${TMP} ] ; then echo yacc should be a link to bison TMP2=$( readlink -f ${TMP} ) [ ${TMP2//bison} == ${TMP2} ] echo !! ERROR : ${TMP2} exit 99 echo ${TMP} - ${TMP2} else echo !! IMPORTANT !! check wether ${TMP} is a wapper script for bison fi echo bzip2 = 1.0.4 (1.0.6) $( bzip2 --version 21 /dev/null | head -n1 | cut -d -f1,6- ) echo coreutils (chown) = 6.9 (8.20) $( chown --version | head -n1 ) echo diffutils = 2.8.1 (3.2) $( diff --version | head -n1 ) echo findutils = 4.2.31 (4.4.2) $( find --version | head -n1 ) echo gawk = 3.1.5 (4.0.2) $( gawk --version | head -n1 ) TMP= [ -e /usr/bin/awk ] TMP=/usr/bin/awk [ -e /bin/awk ] TMP=/bin/awk [ -z ${TMP} ] echo !! ERROR : awk not found exit 99 if [ -L ${TMP} ] ; then echo awk MUST be a link to gawk TMP2=$( readlink -f ${TMP} ) [ ${TMP2//gawk} == ${TMP2} ] echo ${TMP2} !! FAILURE !! exit 99 echo ${TMP} - ${TMP2} else echo !! IMPORTANT !! check wether ${TMP} is a wapper script for gawk (GNU awk) fi echo gcc = 4.1.2 (4.7.2) $( gcc --version | head -n1 ) echo gcc compilation echo 'main(){}' dummy.c gcc -o dummy dummy.c /dev/null TMP= [ -x dummy ] TMP=ok rm -f dummy dummy.c [ -z ${TMP} ] echo !! ERROR : gcc compilation failed exit 99 echo Compilation OK echo glibc (ldd) = 2.5.1 (2.17) $( ldd --version | head -n1 ) echo grep = 2.5.1a (2.14) $( grep --version | head -n1 ) echo gzip = 1.3.12 (1.5) $( gzip --version | head -n1 ) echo m4 = 1.4.10 (1.4.16) $( m4 --version | head -n1 ) echo make = 3.81 (3.82) $( make --version | head -n1 ) echo patch = 2.5.4 (2.7.1) $( patch --version | head -n1 ) echo Perl = 5.8.8 (5.16.2) $( perl -V:version ) echo sed = 4.1.5 (4.2.2) $( sed --version | head -n1 ) echo tar = 1.18 (1.26) $( tar --version | head -n1 ) echo texinfo (makeinfo) = 4.9 (4.13a) $( makeinfo --version | head -n1 ) echo xz = 5.0.0 (5.0.4) $( xz --version | head -n1 ) echo linux kernel = 2.6.25 (3.7.1), compiled with gcc = 4.1.2 (4.7.2) $( cat /proc/version ) bash = 3.2 (4.2) bash, version 4.2.39(2)-release /bin/sh MUST be a link to bash /bin/sh - /bin/bash binutils (ld) = 2.17 (2.31.1) GNU ld (GNU Binutils) 2.23.1 bison = 2.3 (2.7) bison (GNU Bison) 2.7 !! IMPORTANT !! check wether /usr/bin/yacc is a wapper script for bison bzip2 = 1.0.4 (1.0.6) bzip2, Version 1.0.6, 6-Sept-2010. coreutils (chown) = 6.9 (8.20) chown (GNU coreutils) 8.19 diffutils = 2.8.1 (3.2) diff (GNU diffutils) 3.2 findutils = 4.2.31 (4.4.2) find (GNU findutils) 4.4.2 gawk = 3.1.5 (4.0.2) GNU Awk 4.0.1 awk MUST be a link to gawk /usr/bin/awk - /usr/bin/gawk gcc = 4.1.2 (4.7.2) gcc (GCC) 4.7.2 gcc compilation Compilation OK glibc (ldd) = 2.5.1 (2.17) ldd (GNU libc) 2.16 grep = 2.5.1a (2.14) grep (GNU grep) 2.14 gzip = 1.3.12 (1.5) gzip 1.5 m4 = 1.4.10 (1.4.16) m4 (GNU M4) 1.4.16 make = 3.81 (3.82) GNU Make 3.82 patch = 2.5.4 (2.7.1) GNU patch 2.7.1 Perl = 5.8.8 (5.16.2) version='5.16.2'; sed = 4.1.5 (4.2.2) GNU sed version 4.2.1 tar = 1.18 (1.26) tar (GNU tar) 1.26 texinfo (makeinfo) = 4.9 (4.13a) makeinfo (GNU texinfo) 4.13 xz = 5.0.0 (5.0.4) xz (XZ Utils) 5.0.4 linux kernel = 2.6.25 (3.7.1), compiled with gcc = 4.1.2 (4.7.2) Linux version 3.4.23-8-64 (root@mol-test) (gcc version 4.7.2 (GCC) ) #1 SMP Thu Dec 20 03:01:05 CET 2012 -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ:
Re: [lfs-support] can't compile gcc pass 1
Tobias Gasser wrote: My error with this page, even after having built one or two versions of LFS, was that the last line: gcc compilation OK that made me ignore the other lines, when some of these lines were telling me that I had requirements to fix. I thought: all right, host can compile, so the other lines are just additional information or recommendations, may be. i had the same problem. so i reworked the script. i moved the compile test after checking for gcc, and put linux at the end, as there have to be checked 2 versions the output does not only show min requirement, but the current version the book builds too. my script aborts if /bin/sh is not bash, awk not gawk or yacc not bison. if awk or yacc are scripts, i show a message to check the script. The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. I'll think about changes. -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On 01/05/2013 07:35 AM, Fernando de Oliveira wrote: I have recurrently written about this, here. My error with this page, even after having built one or two versions of LFS, was that the last line: gcc compilation OK that made me ignore the other lines, when some of these lines were telling me that I had requirements to fix. I thought: all right, host can compile, so the other lines are just additional information or recommendations, may be. My suggestion in a previous post was to move that line to an earlier place in the script. Chris gave better suggestions than mine. But as the SVN version has been modified, Bruce does not think that anything is necessary, I have modified the book, let us wait until new release on March. Having read that before my original post, I told him that we could at least create a ticket to remember about that on March, but he still thinks it to be unnecessary. Perhaps he is right, if the complaints to come from the stable, not the SVN, and the issues will continue to appear in this list so as to keep us aware of the problem. However, if the new version does not work as expected there will be six more months until the eventual needed fix be introduced, and go into the following release. []s, Fernando I've implemented my idea at Cross-LFS; you can see the page here - http://cross-lfs.org/view/svn/x86/prologue/hostreqs.html - I've also added slightly more explicit descriptive text. Also, I find it funny how often the sh - dash issue is pointed out as an issue, yet to my knowledge it hasn't caused any actual problems for some time now. Makes me wonder if it's only there to verify whether users are really reading the book, rather than for any real, practical purposes. -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
Am 05.01.2013 18:39, schrieb Bruce Dubbs: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. agree. so why not check just the very important stuff? check the versions for - bash - binutils - gcc - texinfo i guess any distro matching at requested versions for these packages should have the other packages requrements too. more important than more package-versions are imho a working compiler - gcc compilation the kernel - version where as 'compiled with' should be met by the gcc version too. i am not aware of any distro shipping the kernel compiled with a older version of gcc than the kernel (ok, maybe the .point release does not match). and the links - sh - yacc - awk as some distros seem to get rid of the /usr/{bin,sbin} my script checks for /usr and /usr/bin. if one of the links fails, i STOP the script with an error. i guess with an approach like that, less novices will fail in the very beginning. just my thoughts... tobias -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
Tobias Gasser wrote: Am 05.01.2013 18:39, schrieb Bruce Dubbs: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. agree. so why not check just the very important stuff? Try this. Note that I want the user to actually check the versions of the packages manually, not just rely on a script to do it. - -Bruce #!/bin/bash # Simple script to list version numbers of critical development tools function die { rm -f dummy.c dummy echo Error: $1 exit 1 } export LC_ALL=C bash --version | head -n1 | cut -d -f2-4 SH=`readlink -f /bin/sh` echo /bin/sh - $SH [ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash echo -n Binutils: ; ld --version | head -n1 | cut -d -f3- bison --version | head -n1 if [ -e /usr/bin/yacc ]; then echo /usr/bin/yacc - `readlink -f /usr/bin/yacc`; else die yacc not found; fi bzip2 --version 21 /dev/null | head -n1 | cut -d -f1,6- echo -n Coreutils: ; chown --version | head -n1 | cut -d) -f2 diff --version | head -n1 find --version | head -n1 gawk --version | head -n1 if [ -e /usr/bin/awk ]; then AWK=`readlink -f /usr/bin/awk` echo /usr/bin/awk - $AWK [ $AWK == /usr/bin/gawk ] || die /usr/bin/awk is not a symlink to gawk else die awk not found; fi gcc --version | head -n1 echo 'main(){}' dummy.c gcc -o dummy dummy.c if [ -x dummy ] then echo gcc compilation OK rm -f dummy.c dummy else die gcc compilation failed fi ldd --version | head -n1 | cut -d -f2- # glibc version grep --version | head -n1 gzip --version | head -n1 cat /proc/version m4 --version | head -n1 make --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` sed --version | head -n1 tar --version | head -n1 echo Texinfo: `makeinfo --version | head -n1` xz --version | head -n1 echo -e \n\n*** Review all versions for currency! -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
--- Em sáb, 5/1/13, Bruce Dubbs escreveu: De: Bruce Dubbs Assunto: Re: [lfs-support] can't compile gcc pass 1 Para: LFS Support List Data: Sábado, 5 de Janeiro de 2013, 21:24 Tobias Gasser wrote: Am 05.01.2013 18:39, schrieb Bruce Dubbs: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. agree. so why not check just the very important stuff? Try this. Note that I want the user to actually check the versions of the packages manually, not just rely on a script to do it. - -Bruce #!/bin/bash # Simple script to list version numbers of critical development tools function die { rm -f dummy.c dummy echo Error: $1 exit 1 } export LC_ALL=C bash --version | head -n1 | cut -d -f2-4 SH=`readlink -f /bin/sh` echo /bin/sh - $SH [ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash echo -n Binutils: ; ld --version | head -n1 | cut -d -f3- bison --version | head -n1 if [ -e /usr/bin/yacc ]; then echo /usr/bin/yacc - `readlink -f /usr/bin/yacc`; else die yacc not found; fi bzip2 --version 21 /dev/null | head -n1 | cut -d -f1,6- echo -n Coreutils: ; chown --version | head -n1 | cut -d) -f2 diff --version | head -n1 find --version | head -n1 gawk --version | head -n1 if [ -e /usr/bin/awk ]; then AWK=`readlink -f /usr/bin/awk` echo /usr/bin/awk - $AWK [ $AWK == /usr/bin/gawk ] || die /usr/bin/awk is not a symlink to gawk else die awk not found; fi gcc --version | head -n1 echo 'main(){}' dummy.c gcc -o dummy dummy.c if [ -x dummy ] then echo gcc compilation OK rm -f dummy.c dummy else die gcc compilation failed fi ldd --version | head -n1 | cut -d -f2- # glibc version grep --version | head -n1 gzip --version | head -n1 cat /proc/version m4 --version | head -n1 make --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` sed --version | head -n1 tar --version | head -n1 echo Texinfo: `makeinfo --version | head -n1` xz --version | head -n1 echo -e \n\n*** Review all versions for currency! I like this. Output from $ cat /etc/lfs-release SVN-20120311 is: $ ../../lfs/version-check-lfs-support.sh bash, version 4.2.36(2)-release /bin/sh - /bin/bash Binutils: (GNU Binutils) 2.22 bison (GNU Bison) 2.5.1 /usr/bin/yacc - /usr/bin/yacc bzip2, Version 1.0.6, 6-Sept-2010. Coreutils: 8.15 diff (GNU diffutils) 3.2 find (GNU findutils) 4.4.2 GNU Awk 4.0.1 /usr/bin/awk - /usr/bin/gawk gcc (GCC) 4.6.3 gcc compilation OK (GNU libc) 2.14.1 grep (GNU grep) 2.13 gzip 1.5 Linux version 3.7.1 (root@NovoGamerLFS71) (gcc version 4.6.3 (GCC) ) #1 SMP Tue Dec 18 16:26:07 BRT 2012 m4 (GNU M4) 1.4.16 GNU Make 3.82 patch 2.6.1 Perl version='5.16.0'; GNU sed version 4.2.1 tar (GNU tar) 1.26 Texinfo: makeinfo (GNU texinfo) 4.13 xz (XZ Utils) 5.0.4 *** Review all versions for currency! []s, Fernando -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
Fernando de Oliveira wrote: I like this. Output from $ cat /etc/lfs-release SVN-20120311 Here is another version. I can't say I really like it. The original is 40 lines and this is 73. All this because users either don't have enough experience to understand what's there now or because a user (generally experienced) just skips it. After all, the book says: /bin/sh should be a symbolic or hard link to bash /usr/bin/yacc should be a link to bison or small script that executes bison /usr/bin/awk should be a link to gawk We then print out all the current values on the system. How much hand holding do we need to do? -- Bruce #!/bin/bash # Simple script to list version numbers of critical development tools function die { rm -f dummy.c dummy echo Error: $1 exit 1 } function executable { EXE=$(which $1 2/dev/null) [ -x $EXE ] || die $1 not found } export LC_ALL=C bash --version | head -n1 | cut -d -f2-4 SH=`readlink -f /bin/sh` echo /bin/sh - $SH [ $SH == /bin/bash ] || die /bin/sh is not a symlink to bash executable ld echo -n Binutils: ; ld --version | head -n1 | cut -d -f3- executable bison; bison --version | head -n1 if [ -e /usr/bin/yacc ]; then echo /usr/bin/yacc - `readlink -f /usr/bin/yacc`; else die yacc not found; fi executable bzip2 bzip2 --version 21 /dev/null | head -n1 | cut -d -f1,6- executable chown echo -n Coreutils: ; chown --version | head -n1 | cut -d) -f2 executable diff; diff --version | head -n1 executable find; find --version | head -n1 executable gawk; gawk --version | head -n1 AWK=`readlink -f /usr/bin/awk` awk=/usr/bin/awk echo $awk - $AWK [ $AWK == /usr/bin/gawk ] || die $awk is not a symlink to gawk executable gcc; gcc --version | head -n1 echo 'main(){}' dummy.c gcc -o dummy dummy.c if [ -x dummy ] then echo gcc compilation OK rm -f dummy.c dummy else die gcc compilation failed fi executable ldd; ldd --version | head -n1 | cut -d -f2- # glibc executable grep; grep --version | head -n1 executable gzip; gzip --version | head -n1 cat /proc/version; executable m4; m4 --version | head -n1 executable make; make --version | head -n1 executable patch;patch --version | head -n1 executable perl; echo Perl `perl -V:version` executable sed; sed --version | head -n1 executable tar; tar --version | head -n1 executable makeinfo; echo Texinfo: `makeinfo --version | head -n1` executable xz; xz --version | head -n1 echo -e \n\n*** Review all versions for currency! -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Sat, 2013-01-05 at 11:39 -0600, Bruce Dubbs wrote: The idea of the script was that it should be short. Generally the problem is that the symlinks are not set and occasionally makeinfo is not installed. Rarely is the problem an out-of-date executable. My issue with the script isn't whether it's short or long - it's whether the reader understands that they need to read the script output, and check it against the list of requirements. As such, I'm not particularly in favour of making the script smart enough to do that checking for the reader. The reader *must* understand that doing an LFS build involves some thinking - that it's not just a bunch of stuff to copy-paste without understanding what they're doing. Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Sat, 2013-01-05 at 22:09 -0600, Bruce Dubbs wrote: Here is another version. I can't say I really like it. The original is 40 lines and this is 73. All this because users either don't have enough experience to understand what's there now or because a user (generally experienced) just skips it. After all, the book says: /bin/sh should be a symbolic or hard link to bash /usr/bin/yacc should be a link to bison or small script that executes bison /usr/bin/awk should be a link to gawk We then print out all the current values on the system. How much hand holding do we need to do? Exactly my concern. The solution isn't to make the script smarter - it's to get the reader to actually pay attention to this stuff. The dash/bash symlink is practically the first thing on the page, yet it also seems to be the most common cause of problems on this list... Simon. signature.asc Description: This is a digitally signed message part -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
[lfs-support] can't compile gcc pass 1
When I try to compile gcc from 5.5 I get this after running make: checking for complex.h... yes checking for library containing creal... -lm checking whether creal, cimag and I can be used... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for gettimeofday... yes checking for localeconv... yes checking for setlocale... yes checking for dup... yes checking for dup2... yes checking for __gmpz_init in -lgmp... yes checking for MPFR... no configure: error: libmpfr not found or uses a different ABI (including static vs shared). make[1]: *** [configure-mpc] Error 1 make[1]: Leaving directory `/mnt/lfs/src/gcc-build' make: *** [all] Error 2 the output of the version check script is: bash, version 4.2.24(1)-release /bin/sh - /bin/dash Binutils: (GNU Binutils for Ubuntu) 2.22 bison (GNU Bison) 2.5 /usr/bin/yacc - /usr/bin/bison.yacc bzip2, Version 1.0.6, 6-Sept-2010. Coreutils: 8.13 diff (GNU diffutils) 3.2 find (GNU findutils) 4.4.2 GNU Awk 3.1.8 /usr/bin/awk - /usr/bin/gawk gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (Ubuntu EGLIBC 2.15-0ubuntu10.3) 2.15 grep (GNU grep) 2.10 gzip 1.4 Linux version 3.7.0-030700-generic (root@gomeisa) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201212102335 SMP Tue Dec 11 04:36:24 UTC 2012 m4 (GNU M4) 1.4.16 GNU Make 3.81 patch 2.6.1 Perl version='5.14.2'; GNU sed version 4.2.1 tar (GNU tar) 1.26 version-check.sh: line 30: makeinfo: command not found Texinfo: xz (XZ Utils) 5.1.0alpha gcc compilation OK im running ubuntu 12.04 and i have not deviated from the book -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
matthew gruda wrote: When I try to compile gcc from 5.5 I get this after running make: checking for complex.h... yes checking for library containing creal... -lm checking whether creal, cimag and I can be used... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for gettimeofday... yes checking for localeconv... yes checking for setlocale... yes checking for dup... yes checking for dup2... yes checking for __gmpz_init in -lgmp... yes checking for MPFR... no configure: error: libmpfr not found or uses a different ABI (including static vs shared). make[1]: *** [configure-mpc] Error 1 make[1]: Leaving directory `/mnt/lfs/src/gcc-build' make: *** [all] Error 2 the output of the version check script is: bash, version 4.2.24(1)-release /bin/sh - /bin/dash Fix this. Binutils: (GNU Binutils for Ubuntu) 2.22 bison (GNU Bison) 2.5 /usr/bin/yacc - /usr/bin/bison.yacc bzip2, Version 1.0.6, 6-Sept-2010. Coreutils: 8.13 diff (GNU diffutils) 3.2 find (GNU findutils) 4.4.2 GNU Awk 3.1.8 /usr/bin/awk - /usr/bin/gawk gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (Ubuntu EGLIBC 2.15-0ubuntu10.3) 2.15 grep (GNU grep) 2.10 gzip 1.4 Linux version 3.7.0-030700-generic (root@gomeisa) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201212102335 SMP Tue Dec 11 04:36:24 UTC 2012 m4 (GNU M4) 1.4.16 GNU Make 3.81 patch 2.6.1 Perl version='5.14.2'; GNU sed version 4.2.1 tar (GNU tar) 1.26 version-check.sh: line 30: makeinfo: command not found And fix this too. Texinfo: xz (XZ Utils) 5.1.0alpha gcc compilation OK im running ubuntu 12.04 and i have not deviated from the book -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
On Fri, Jan 4, 2013 at 8:11 PM, Bruce Dubbs bruce.du...@gmail.com wrote: matthew gruda wrote: When I try to compile gcc from 5.5 I get this after running make: checking for complex.h... yes checking for library containing creal... -lm checking whether creal, cimag and I can be used... yes checking for an ANSI C-conforming const... yes checking for size_t... yes checking for gettimeofday... yes checking for localeconv... yes checking for setlocale... yes checking for dup... yes checking for dup2... yes checking for __gmpz_init in -lgmp... yes checking for MPFR... no configure: error: libmpfr not found or uses a different ABI (including static vs shared). make[1]: *** [configure-mpc] Error 1 make[1]: Leaving directory `/mnt/lfs/src/gcc-build' make: *** [all] Error 2 the output of the version check script is: bash, version 4.2.24(1)-release /bin/sh - /bin/dash Fix this. Binutils: (GNU Binutils for Ubuntu) 2.22 bison (GNU Bison) 2.5 /usr/bin/yacc - /usr/bin/bison.yacc bzip2, Version 1.0.6, 6-Sept-2010. Coreutils: 8.13 diff (GNU diffutils) 3.2 find (GNU findutils) 4.4.2 GNU Awk 3.1.8 /usr/bin/awk - /usr/bin/gawk gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (Ubuntu EGLIBC 2.15-0ubuntu10.3) 2.15 grep (GNU grep) 2.10 gzip 1.4 Linux version 3.7.0-030700-generic (root@gomeisa) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201212102335 SMP Tue Dec 11 04:36:24 UTC 2012 m4 (GNU M4) 1.4.16 GNU Make 3.81 patch 2.6.1 Perl version='5.14.2'; GNU sed version 4.2.1 tar (GNU tar) 1.26 version-check.sh: line 30: makeinfo: command not found And fix this too. Texinfo: xz (XZ Utils) 5.1.0alpha gcc compilation OK im running ubuntu 12.04 and i have not deviated from the book -- Bruce -- ok, now looking like: bash, version 4.2.24(1)-release /bin/sh - /bin/bash Binutils: (GNU Binutils for Ubuntu) 2.22 bison (GNU Bison) 2.5 /usr/bin/yacc - /usr/bin/bison.yacc bzip2, Version 1.0.6, 6-Sept-2010. Coreutils: 8.13 diff (GNU diffutils) 3.2 find (GNU findutils) 4.4.2 GNU Awk 3.1.8 /usr/bin/awk - /usr/bin/gawk gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 (Ubuntu EGLIBC 2.15-0ubuntu10.3) 2.15 grep (GNU grep) 2.10 gzip 1.4 Linux version 3.7.0-030700-generic (root@gomeisa) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201212102335 SMP Tue Dec 11 04:36:24 UTC 2012 m4 (GNU M4) 1.4.16 GNU Make 3.81 patch 2.6.1 Perl version='5.14.2'; GNU sed version 4.2.1 tar (GNU tar) 1.26 Texinfo: makeinfo (GNU texinfo) 4.13 xz (XZ Utils) 5.1.0alpha gcc compilation OK and still getting the error http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page
Re: [lfs-support] can't compile gcc pass 1
matthew gruda wrote: checking for MPFR... no configure: error: libmpfr not found or uses a different ABI (including static vs shared). make[1]: *** [configure-mpc] Error 1 and still getting the error OK, you are not unpacking the tarballs properly. It's not finding mpfr. That's explained better in the svn version of the book: http://lfsbook.linuxfromscratch.org/lfs/view/development/chapter05/gcc-pass1.html -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-support FAQ: http://www.linuxfromscratch.org/lfs/faq.html Unsubscribe: See the above information page