* [Buildroot] Busybox build fails on raspberrypi defconfig
@ 2015-06-17 13:27 Johan Oudinet
2015-06-17 14:02 ` Johan Oudinet
0 siblings, 1 reply; 6+ messages in thread
From: Johan Oudinet @ 2015-06-17 13:27 UTC (permalink / raw)
To: buildroot
Hi,
I've just updated my master branch to origin/master (ebe2968 with no
extra commit) and did the following commands:
$ make clean
$ make raspberrypi_defconfig
$ make
And busybox build fails with the following error:
----------8<----------8<----------8<----------8<----------8<----------8<----------
>>> linux-headers 3.12.28 Installing to target
>>> busybox 1.23.2 Building
PATH="/home/johan/Documents/buildroot/output/host/bin:/home/johan/Documents/buildroot/output/host/sbin:/home/johan/Documents/buildroot/output/host/usr/bin:/home/johan/Documents/buildroot/output/host/usr/sbin:/home/johan/cov-analysis-linux64-6.6.1/bin:/home/johan/bin:/home/johan/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -Os " CFLAGS_busybox="" /usr/bin/make -j9
CC="/home/johan/Documents/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc"
ARCH=arm PREFIX="/home/johan/Documents/buildroot/output/target"
EXTRA_LDFLAGS=""
CROSS_COMPILE="/home/johan/Documents/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-"
CONFIG_PREFIX="/home/johan/Documents/buildroot/output/target"
SKIP_STRIP=y -C
/home/johan/Documents/buildroot/output/build/busybox-1.23.2
make[1]: Entering directory
'/home/johan/Documents/buildroot/output/build/busybox-1.23.2'
CC applets/applets.o
In file included from include/busybox.h:8:0,
from applets/applets.c:9:
include/libbb.h:87:19: fatal error: utmp.h: No such file or directory
# include <utmp.h>
^
compilation terminated.
scripts/Makefile.build:197: recipe for target 'applets/applets.o' failed
make[2]: *** [applets/applets.o] Error 1
Makefile:372: recipe for target 'applets_dir' failed
make[1]: *** [applets_dir] Error 2
make[1]: Leaving directory
'/home/johan/Documents/buildroot/output/build/busybox-1.23.2'
package/pkg-generic.mk:156: recipe for target
'/home/johan/Documents/buildroot/output/build/busybox-1.23.2/.stamp_built'
failed
make: *** [/home/johan/Documents/buildroot/output/build/busybox-1.23.2/.stamp_built]
Error 2
----------8<----------8<----------8<----------8<----------8<----------8<----------
Any idea how to solve this error?
Best regards,
--
Johan
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] Busybox build fails on raspberrypi defconfig
2015-06-17 13:27 [Buildroot] Busybox build fails on raspberrypi defconfig Johan Oudinet
@ 2015-06-17 14:02 ` Johan Oudinet
2015-06-17 14:41 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Johan Oudinet @ 2015-06-17 14:02 UTC (permalink / raw)
To: buildroot
On Wed, Jun 17, 2015 at 3:27 PM, Johan Oudinet <johan.oudinet@gmail.com> wrote:
> And busybox build fails with the following error:
> include/libbb.h:87:19: fatal error: utmp.h: No such file or directory
> # include <utmp.h>
> ^
Reverting from uClibc-ng to uClibc-0.9.33 fixes this error.
--
Johan
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] Busybox build fails on raspberrypi defconfig
2015-06-17 14:02 ` Johan Oudinet
@ 2015-06-17 14:41 ` Thomas Petazzoni
2015-06-18 8:54 ` Johan Oudinet
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-06-17 14:41 UTC (permalink / raw)
To: buildroot
Dear Johan Oudinet,
On Wed, 17 Jun 2015 16:02:10 +0200, Johan Oudinet wrote:
> On Wed, Jun 17, 2015 at 3:27 PM, Johan Oudinet <johan.oudinet@gmail.com> wrote:
> > And busybox build fails with the following error:
> > include/libbb.h:87:19: fatal error: utmp.h: No such file or directory
> > # include <utmp.h>
> > ^
>
> Reverting from uClibc-ng to uClibc-0.9.33 fixes this error.
This seems weird, since UTMP is enabled in our uClibc-ng configuration:
$ grep UTMP *.config
uClibc-0.9.33.config:UCLIBC_HAS_UTMPX=y
uClibc-ng.config:UCLIBC_HAS_UTMP=y
uClibc-ng.config:UCLIBC_HAS_UTMPX=y
uClibc-snapshot.config:UCLIBC_HAS_UTMP=y
uClibc-snapshot.config:UCLIBC_HAS_UTMPX=y
And it's really UCLIBC_HAS_UTMP that controls whether utmp.h is
installed or not:
HEADERS_RM-$(UCLIBC_HAS_UTMP) += bits/utmp.h utmp.h
HEADERS_RM-$(UCLIBC_HAS_UTMPX) += bits/utmpx.h utmpx.h
Are you sure you did a full rebuild from scratch, and you didn't select
uClibc-ng but using package/uclibc/uClibc-0.9.33.config as the
configuration file ? That could explain the problem, because the
UCLIBC_HAS_UTMP option didn't exist in uClibc-0.9.33.config, so if you
use that config file with uClibc-ng, UTMP support will be disabled.
Can you double check this?
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] Busybox build fails on raspberrypi defconfig
2015-06-17 14:41 ` Thomas Petazzoni
@ 2015-06-18 8:54 ` Johan Oudinet
2015-06-18 9:02 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Johan Oudinet @ 2015-06-18 8:54 UTC (permalink / raw)
To: buildroot
Hi Thomas, All,
On Wed, Jun 17, 2015 at 4:41 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Are you sure you did a full rebuild from scratch, and you didn't select
> uClibc-ng but using package/uclibc/uClibc-0.9.33.config as the
> configuration file ? That could explain the problem, because the
> UCLIBC_HAS_UTMP option didn't exist in uClibc-0.9.33.config, so if you
> use that config file with uClibc-ng, UTMP support will be disabled.
>
> Can you double check this?
As I don't know how to do better than make clean and make defconfig to
rebuild from scratch, I've cloned the repository elsewhere.
Indeed, this time, it successfully compiles.
I still don't know why it didn't compile before, as I'm pretty sure
the .config was using uClibc-ng configuration file (because I've
manually changed it to uClibc-0.9.33.config when I reverted to uClibc
0.9.33). At least, I know the problem is not in the git master branch.
Thanks for your help.
--
Johan
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] Busybox build fails on raspberrypi defconfig
2015-06-18 8:54 ` Johan Oudinet
@ 2015-06-18 9:02 ` Thomas Petazzoni
2015-06-18 16:08 ` Arnout Vandecappelle
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-06-18 9:02 UTC (permalink / raw)
To: buildroot
Hello,
On Thu, 18 Jun 2015 10:54:23 +0200, Johan Oudinet wrote:
> As I don't know how to do better than make clean and make defconfig to
> rebuild from scratch, I've cloned the repository elsewhere.
> Indeed, this time, it successfully compiles.
>
> I still don't know why it didn't compile before, as I'm pretty sure
> the .config was using uClibc-ng configuration file (because I've
> manually changed it to uClibc-0.9.33.config when I reverted to uClibc
> 0.9.33). At least, I know the problem is not in the git master branch.
I told you in my previous e-mail, but maybe it wasn't clear. It's due
to a kconfig limitation/bug. Basically, here is the scenario:
* You start from a fresh configuration.
* You select uClibc 0.9.33, and exit menuconfig.
* Automatically, the file package/uclibc/uClibc-0.9.33.config is used
as the uclibc configuration file (option BR2_UCLIBC_CONFIG)
* Now, you go back to menuconfig, and you decide to switch to
uClibc-ng.
-> And now, instead of automatically switching to
package/uclibc/uClibc-ng.config, package/uclibc/uClibc-0.9.33.config is
kept as the value of BR2_UCLIBC_CONFIG. This is the limitation of
kconfig I'm talking about above.
See the log below:
$ make distclean
$ make menuconfig
[ no changes, so uClibc 0.9.33 is chosen, at least as long as you are
using Buildroot 2015.05 or older ]
$ grep -E "(BR2_UCLIBC_VERSION|BR2_UCLIBC_CONFIG)" .config
[...]
BR2_UCLIBC_VERSION_0_9_33=y
# BR2_UCLIBC_VERSION_NG is not set
[...]
BR2_UCLIBC_CONFIG="package/uclibc/uClibc-0.9.33.config"
$ make menuconfig
[ switch to uClibc-ng, save and exit ]
$ grep -E "(BR2_UCLIBC_VERSION|BR2_UCLIBC_CONFIG)" .config
[...]
# BR2_UCLIBC_VERSION_0_9_33 is not set
BR2_UCLIBC_VERSION_NG=y
[...]
BR2_UCLIBC_CONFIG="package/uclibc/uClibc-0.9.33.config"
So you end up doing a build of uClibc-ng, but using the uClibc 0.9.33
configuration file, which does not have UTMP=y (because that option did
not exist back in uClibc 0.9.33). So from the point of view of
uClibc-ng, UTMP support is disabled.
One way we could get around this problem is by making the
BR2_UCLIBC_CONFIG option visible only if the user selects another
option like "Use a custom uClibc configuration file".
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] Busybox build fails on raspberrypi defconfig
2015-06-18 9:02 ` Thomas Petazzoni
@ 2015-06-18 16:08 ` Arnout Vandecappelle
0 siblings, 0 replies; 6+ messages in thread
From: Arnout Vandecappelle @ 2015-06-18 16:08 UTC (permalink / raw)
To: buildroot
On 06/18/15 11:02, Thomas Petazzoni wrote:
[snip]
> I told you in my previous e-mail, but maybe it wasn't clear. It's due
> to a kconfig limitation/bug. Basically, here is the scenario:
>
> * You start from a fresh configuration.
>
> * You select uClibc 0.9.33, and exit menuconfig.
>
> * Automatically, the file package/uclibc/uClibc-0.9.33.config is used
> as the uclibc configuration file (option BR2_UCLIBC_CONFIG)
>
> * Now, you go back to menuconfig, and you decide to switch to
> uClibc-ng.
>
> -> And now, instead of automatically switching to
> package/uclibc/uClibc-ng.config, package/uclibc/uClibc-0.9.33.config is
> kept as the value of BR2_UCLIBC_CONFIG. This is the limitation of
> kconfig I'm talking about above.
[snip]
> One way we could get around this problem is by making the
> BR2_UCLIBC_CONFIG option visible only if the user selects another
> option like "Use a custom uClibc configuration file".
Or let the default be empty, and choose a default from the .mk file when it's
empty. But we've discussed that before and some people didn't like it.
Note: this applies for all string options for which we have multiple defaults:
BR2_TARGET_GRUB2_BUILTIN_MODULES, BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU.
Regards,
Arnout
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-06-18 16:08 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-17 13:27 [Buildroot] Busybox build fails on raspberrypi defconfig Johan Oudinet
2015-06-17 14:02 ` Johan Oudinet
2015-06-17 14:41 ` Thomas Petazzoni
2015-06-18 8:54 ` Johan Oudinet
2015-06-18 9:02 ` Thomas Petazzoni
2015-06-18 16:08 ` Arnout Vandecappelle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox