apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Rossi <bob_ro...@cox.net>
Subject Re: Default APR sizes of size_t and ssize_t when cross compiling
Date Mon, 19 Mar 2007 20:01:59 GMT
On Mon, Mar 19, 2007 at 09:54:21PM +0200, Aizer Danny-BDA023 wrote:
> > -----Original Message-----
> > From: Bob Rossi: 
> > 
> > On Mon, Mar 19, 2007 at 04:17:38PM +0200, Aizer Danny-BDA023 wrote:
> > > I am cross-compiling Apache HTTPD 2.2.3 on a Red Hat Linux 9 (the
> build
> > > machine) for a PowerPC 82xx embedded device. When I run the
> top-level 
> > > configure script which runs among others the APR configure script, I
> 
> > > notice that the sizeof size_t and ssize_t are being defaulted to "8"
> > > because the $cross_compiling variable is set to "yes". The same 
> > > behaviour can be seen for other configure tests also: if the 
> > > $cross_compiling variable is set (it is being set in the beginning 
> > > because the BUILD and HOST options have been specified on the 
> > > configure command-line), then various ac_cv_* variables get some 
> > > default values (which in my case are not appropriate for the target 
> > > HOST architecture of ppc_82xx) instead of running the cross-compiler
> to
> > > calculate the value.
> >
> > I think you will have to modify configure.in to fit your purposes. If
> > you submit a patch back, maybe you can make these features allowed 
> > to be passed in on the command line to configure?
> 
> Hi Bob,
> 
> I can probably do that, but I wanted to understand if this is the
> preferred way to deal with configuration for cross-compilation. My
> impression was that HTTPD (and APR) can be cross-compiled without any
> special intervention assuming that all needed environment variables are
> set and command-line parameters are given appropriately to ./configure .
> 
> If that is not the way most people cross-compile, then I will "patch"
> the configure.in as you suggested - although I still would like to
> understand (having read a lot about autoconf and related *.m4 and other
> files, so I'm being curious here) why aren't the ac_cv_* calculated by
> running the cross-compiler CC to test for the actual sizes (and other
> such values needed) of size_t and ssize_t.

Hi Danny,

When I was tackling this problem, I didn't come up with the appropriate
solution. I ended up not cross compiling APR for other reasons. I do
recall thinking that the sizeof code was broken.

The standard autoconf macro's claim to work when being cross compiled.
For instance, see this:
  http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_mono/autoconf.html#SEC63
It seems like perhaps the code that was used to replace that call is
broken when it comes to cross compiling support.


The other solution, is to allow the user to override the sizeof value
with a shell variable. That is, for example, the user could do,
  ./configure OPTIONS ac_cv_sizeof_size_t=4 OPTIONS
and then 4 would be used instead of the hard coded 8. I'm not sure which
approach would be better or if there is already a better way to do this.

Good luck,
Bob Rossi

Mime
View raw message