[Buildroot] crosstool/buildroot ldconfig failure in "target-finalize" during build using Fedora 13
dwatkins at tranzeo.com
Fri Aug 6 17:48:07 UTC 2010
On Fri, 2010-08-06 at 08:49 -0700, Darcy Watkins wrote:
> After upgrading my build machine from Fedora 10 to Fedora 13 it appears
> that the host's "ldconfig" command is no longer usable for cross build
> application. The build thus fails when it attempts to execute
> /sbin/ldconfig during the "target-finalize" stage.
> When building using the internal toolchain generated by buildroot, I do
> not see an issue. When using an external toolchain such as crosstool-ng
> it shows up.
> To work around the issue I pulled in the July 26th changeset to the
> Makefile to check for and use a $(TARGET_CROSS)ldconfig and then I
> modified my copy of crosstool (version 1.7.2) so that it would install
> the cross ldconfig along with its cross ldd. That gets me working fine
> for uclibc builds.
> When I tried a glibc build, there is no cross ldconfig available.
> I also notice that in crosstool 1.8.0 the cross ldd is replaced by a
> script so the cross ldconfig may not even be available (I don't know for
> sure since so far I have only seen the notes in the changelog and
> haven't actually tried crosstool 1.8.0 yet).
> It appears to me that the assumption an external toolchain will provide
> a cross ldconfig is not valid and the assumption that the host ldconfig
> is usable as a cross tool in the absence of this is no longer valid.
> Since it is the buildroot "target-finalize" that needs a usable ldconfig
> I figure it is appropriate to raise this matter here for discussion
> Anyone have suggestions as to how best to approach this?
On further investigation, it appears that the host's ldconfig will run
without an error message if the $(TARGET_DIR)/var/cache/ldconfig
directory is created before running ldconfig.
So now I think that the ldconfig (version 2.12) has become more strict
than earlier versions. Eventually (with package updates, etc) this will
make its way into our cross ldconfig as well, so I suggest first
ensuring that the directory is created before running the tool for any
After running the make on buildroot, there is a binary file:
One question that comes to my mind, could there be endianess issues with
respect to that file? A colleague of mine suggested that we may want to
use the "-N" option to not generate cache (so it would only generate
symlinks). Any thoughts?
More information about the buildroot