ltib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Ltib] is the "boost" package actually supposed to build?


From: Robert P. J. Day
Subject: [Ltib] is the "boost" package actually supposed to build?
Date: Wed, 07 Jan 2009 16:35:10 -0500
User-agent: Internet Messaging Program (IMP) H3 (4.1.6)

  i decided to add "boost" to my LTIB build, and it failed thusly:

...
./bootstrap.gcc/jam0 -f build.jam --toolset=gcc --toolset-root= clean
./build.sh: line 16: ./bootstrap.gcc/jam0: cannot execute binary file
...

  from what i can tell, this package shouldn't even build under LTIB,
for what i *think* is the following reason.

  if i understand the way LTIB works, it wraps the entire build process
with a set of aliases for the standard build tools (gcc, ld, as, ...),
so that the package build process can remain unchanged, but those names
are redirected to the appropriate cross-compiler tools, is that correct?
but if that's the case, then for a package to be LTIB-buildable, the
*entire* process must be redirectable to those cross utilities.

  that's not the case with boost.  when it comes time to "install"
boost, the installation process insists on building the "bjam" utility
with which it will do the installation.  but LTIB will cause that
utility to be built cross-compiled (i've verified that), at which
point the installation *must* fail because bjam can't run on the host.

  i tested this with the much newer boost-1.37.0, and i get exactly
the same error.  the way around it for me was to do a regular
configure of the boost software, grab the (native) "bjam" utility
that was created, and dump it in /home/rday/bin/bjam.   at that
point, here's my spec file for boost-1.37.0:

%define pfx /opt/freescale/rootfs/%{_target_cpu}

Summary         : c++ libraries
Name            : boost
Version         : 1.37.0
Release         : 1
Vendor          : Freescale
Packager        : Robert P. J. Day
Group           : System Environment/Libraries
Source          : %{name}_1_37_0.tar.bz2
License         : Boost (distributable)
BuildRoot       : %{_tmppath}/%{name}

%Description
%{summary}

%Prep
%setup -n %{name}_1_37_0

%Build
./configure --prefix=$RPM_BUILD_ROOT/%{pfx}/%{_prefix} \
  --with-bjam=/home/rday/bin/bjam     <--- that solves the problem
make


%Install
rm -rf $RPM_BUILD_ROOT
make install

%Clean
rm -rf $RPM_BUILD_ROOT


%Files
%defattr(-,root,root)
%{pfx}/*

  have i missed something?  given that part of the package installation
*requires* doing a native compile, how would this have ever worked
without that little workaround?

  in any event, the above is how to compile boost-1.37.0 if anyone is
interested.  you'll still get some build errors for portions of the
software but they're to be expected and are documented at the boost
site.

  thoughts?

rday






reply via email to

[Prev in Thread] Current Thread [Next in Thread]