* [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes
@ 2014-11-12 13:31 Jens Stimpfle
2014-11-12 13:31 ` [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc Jens Stimpfle
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jens Stimpfle @ 2014-11-12 13:31 UTC (permalink / raw)
To: buildroot
Signed-off-by: Jens Stimpfle <debian@jstimpfle.de>
---
Notes:
When g++ is not installed, a misleading error message turns up because
of a bad combination of an unquoted shell variable and control flow.
> ~/buildroot$ make
>
> You may have to install 'g++' on your build machine
> /home/testuser/buildroot/support/dependencies/dependencies.sh: 136: [: -lt: unexpected operator
This is a nonintrusive workaround.
support/dependencies/dependencies.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index a9c5b31..4b8991d 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -118,7 +118,6 @@ CXXCOMPILER=$(which $HOSTCXX_NOCCACHE 2> /dev/null)
if [ -z "$CXXCOMPILER" ] ; then
CXXCOMPILER=$(which c++ 2> /dev/null)
fi
-
if [ -z "$CXXCOMPILER" ] ; then
echo
echo "You may have to install 'g++' on your build machine"
@@ -130,7 +129,8 @@ if [ ! -z "$CXXCOMPILER" ] ; then
echo
echo "You may have to install 'g++' on your build machine"
fi
-
+fi
+if [ ! -z "$CXXCOMPILER_VERSION" ] ; then
CXXCOMPILER_MAJOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/\..*//g")
CXXCOMPILER_MINOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/^$CXXCOMPILER_MAJOR\.//g" -e "s/\..*//g")
if [ $CXXCOMPILER_MAJOR -lt 3 -o $CXXCOMPILER_MAJOR -eq 2 -a $CXXCOMPILER_MINOR -lt 95 ] ; then
--
2.1.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc
2014-11-12 13:31 [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Jens Stimpfle
@ 2014-11-12 13:31 ` Jens Stimpfle
2014-11-18 22:38 ` Yann E. MORIN
2014-11-18 22:36 ` [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Yann E. MORIN
2014-12-08 21:33 ` Thomas Petazzoni
2 siblings, 1 reply; 5+ messages in thread
From: Jens Stimpfle @ 2014-11-12 13:31 UTC (permalink / raw)
To: buildroot
Signed-off-by: Jens Stimpfle <debian@jstimpfle.de>
---
Notes:
The screen is cluttered when we build for 32bit target and 32bit gcc
missing.
> ~/buildroot$ make
>
> You may have to install 'g++' on your build machine
> /home/testuser/buildroot/support/dependencies/dependencies.sh: 136: [: -lt: unexpected operator
> /usr/bin/ld: cannot find crt1.o: No such file or directory
> /usr/bin/ld: cannot find crti.o: No such file or directory
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> /usr/bin/ld: cannot find -lgcc
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
> /usr/bin/ld: cannot find -lgcc_s
> /usr/bin/ld: cannot find -lc
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> /usr/bin/ld: cannot find -lgcc
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
> /usr/bin/ld: cannot find -lgcc_s
> /usr/bin/ld: cannot find crtn.o: No such file or directory
> collect2: error: ld returned 1 exit status
>
> Your Buildroot configuration needs a compiler capable of building 32 bits binaries.
[...]
The final note is enough, and adding 2>/dev/null to the gcc test invocation is
also more consistent with the rest of the script. The patch makes the
/usr/bin/ld: and collect2: lines go away.
support/dependencies/dependencies.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 4b8991d..dcf37f0 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -222,7 +222,7 @@ if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
fi
if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then
- if ! echo "int main(void) {}" | gcc -m32 -x c - -o /dev/null ; then
+ if ! echo "int main(void) {}" | gcc -m32 -x c - -o /dev/null 2>/dev/null; then
echo
echo "Your Buildroot configuration needs a compiler capable of building 32 bits binaries."
echo "If you're running a Debian/Ubuntu distribution, install the gcc-multilib package."
--
2.1.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes
2014-11-12 13:31 [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Jens Stimpfle
2014-11-12 13:31 ` [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc Jens Stimpfle
@ 2014-11-18 22:36 ` Yann E. MORIN
2014-12-08 21:33 ` Thomas Petazzoni
2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2014-11-18 22:36 UTC (permalink / raw)
To: buildroot
Jens, All,
On 2014-11-12 13:31 +0000, Jens Stimpfle spake thusly:
> Signed-off-by: Jens Stimpfle <debian@jstimpfle.de>
> ---
>
> Notes:
> When g++ is not installed, a misleading error message turns up because
> of a bad combination of an unquoted shell variable and control flow.
>
> > ~/buildroot$ make
> >
> > You may have to install 'g++' on your build machine
> > /home/testuser/buildroot/support/dependencies/dependencies.sh: 136: [: -lt: unexpected operator
This should have been part of the commit log, above your Signed-off-by
line.
Whatever is after the --- line is ignored by git when a patch is
applied, but the information you provide is interesting and we want to
keep it in the logs.
What about changing your commit log to:
support: avoid spurious error output when checking dependencies
When g++ is not installed, a misleading error message turns up because
of a bad combination of an unquoted shell variable and control flow.
$ ~/buildroot$ make
You may have to install 'g++' on your build machine
/home/testuser/buildroot/support/dependencies/dependencies.sh: 136: [: -lt: unexpected operator
Signed-off-by: You
Otherwise, the change looks sane, but see below...
> This is a nonintrusive workaround.
>
> support/dependencies/dependencies.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index a9c5b31..4b8991d 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -118,7 +118,6 @@ CXXCOMPILER=$(which $HOSTCXX_NOCCACHE 2> /dev/null)
> if [ -z "$CXXCOMPILER" ] ; then
> CXXCOMPILER=$(which c++ 2> /dev/null)
> fi
> -
Spurious empty line removal. Please keep it.
> if [ -z "$CXXCOMPILER" ] ; then
> echo
> echo "You may have to install 'g++' on your build machine"
> @@ -130,7 +129,8 @@ if [ ! -z "$CXXCOMPILER" ] ; then
> echo
> echo "You may have to install 'g++' on your build machine"
> fi
> -
> +fi
> +if [ ! -z "$CXXCOMPILER_VERSION" ] ; then
I'd like it if there was an empty line after the 'fi' and before the
'if'.
Also, we prefer positive logic:
if [ -n "$CXXCOMPILER_VERSION" ] ; then
Regards,
Yann E. MORIN.
> CXXCOMPILER_MAJOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/\..*//g")
> CXXCOMPILER_MINOR=$(echo $CXXCOMPILER_VERSION | sed -e "s/^$CXXCOMPILER_MAJOR\.//g" -e "s/\..*//g")
> if [ $CXXCOMPILER_MAJOR -lt 3 -o $CXXCOMPILER_MAJOR -eq 2 -a $CXXCOMPILER_MINOR -lt 95 ] ; then
> --
> 2.1.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc
2014-11-12 13:31 ` [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc Jens Stimpfle
@ 2014-11-18 22:38 ` Yann E. MORIN
0 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2014-11-18 22:38 UTC (permalink / raw)
To: buildroot
Jens, All,
On 2014-11-12 13:31 +0000, Jens Stimpfle spake thusly:
> Signed-off-by: Jens Stimpfle <debian@jstimpfle.de>
> ---
>
> Notes:
> The screen is cluttered when we build for 32bit target and 32bit gcc
> missing.
>
> > ~/buildroot$ make
> >
> > You may have to install 'g++' on your build machine
> > /home/testuser/buildroot/support/dependencies/dependencies.sh: 136: [: -lt: unexpected operator
> > /usr/bin/ld: cannot find crt1.o: No such file or directory
> > /usr/bin/ld: cannot find crti.o: No such file or directory
> > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> > /usr/bin/ld: cannot find -lgcc
> > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
> > /usr/bin/ld: cannot find -lgcc_s
> > /usr/bin/ld: cannot find -lc
> > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a when searching for -lgcc
> > /usr/bin/ld: cannot find -lgcc
> > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so when searching for -lgcc_s
> > /usr/bin/ld: cannot find -lgcc_s
> > /usr/bin/ld: cannot find crtn.o: No such file or directory
> > collect2: error: ld returned 1 exit status
> >
> > Your Buildroot configuration needs a compiler capable of building 32 bits binaries.
> [...]
>
> The final note is enough, and adding 2>/dev/null to the gcc test invocation is
> also more consistent with the rest of the script. The patch makes the
> /usr/bin/ld: and collect2: lines go away.
Ditto, keep those explanations in the commit log.
Otherwise, looks good.
We're in feature-freeze for the upcoming release at the end of the
month, but I think thos changes could go in. Will you resubmit those
patches soon, so they can get applied before the release?
Regards,
Yann E. MORIN.
> support/dependencies/dependencies.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 4b8991d..dcf37f0 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -222,7 +222,7 @@ if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
> fi
>
> if grep -q ^BR2_HOSTARCH_NEEDS_IA32_COMPILER=y $BR2_CONFIG ; then
> - if ! echo "int main(void) {}" | gcc -m32 -x c - -o /dev/null ; then
> + if ! echo "int main(void) {}" | gcc -m32 -x c - -o /dev/null 2>/dev/null; then
> echo
> echo "Your Buildroot configuration needs a compiler capable of building 32 bits binaries."
> echo "If you're running a Debian/Ubuntu distribution, install the gcc-multilib package."
> --
> 2.1.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes
2014-11-12 13:31 [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Jens Stimpfle
2014-11-12 13:31 ` [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc Jens Stimpfle
2014-11-18 22:36 ` [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Yann E. MORIN
@ 2014-12-08 21:33 ` Thomas Petazzoni
2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2014-12-08 21:33 UTC (permalink / raw)
To: buildroot
Dear Jens Stimpfle,
On Wed, 12 Nov 2014 13:31:44 +0000, Jens Stimpfle wrote:
> Signed-off-by: Jens Stimpfle <debian@jstimpfle.de>
Thanks, both patches applied, with several fixes to the commit log and
code, as suggested by Yann E. Morin. See:
http://git.buildroot.net/buildroot/commit/?id=d1607dc7dfc2c5397ff6b67ebd18d25c6184f650
http://git.buildroot.net/buildroot/commit/?id=94c6417e703d7cd923d50e4974ad555a377ffa02
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-12-08 21:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-12 13:31 [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Jens Stimpfle
2014-11-12 13:31 ` [Buildroot] [PATCH 2/2] Unclutter standard error output while feature testing for 32 bit gcc Jens Stimpfle
2014-11-18 22:38 ` Yann E. MORIN
2014-11-18 22:36 ` [Buildroot] [PATCH 1/2] Avoid misleading error output caused by missing shell quotes Yann E. MORIN
2014-12-08 21:33 ` Thomas Petazzoni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.