gpsd-dev
[Top][All Lists]
Advanced

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

Re: [gpsd-dev] [gpsd-commit-watch] [SCM] GPSD branch, master, updated. r


From: Greg Troxel
Subject: Re: [gpsd-dev] [gpsd-commit-watch] [SCM] GPSD branch, master, updated. release-3.9-547-gcbf524c
Date: Sat, 02 Nov 2013 09:14:06 -0400
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/23.4 (berkeley-unix)

"Eric S. Raymond" <address@hidden> writes:

> Greg Troxel <address@hidden>:
>> Stepping back from autoconf/scons/etc., I mean 'configure time' to be
>> the things that happen to figure out the system, as opposed to running
>> the (maybe cross) compiler to build objects for the target.
>> 
>> First, for header files we need (that are not required by
>> posix, or for which we cut slack to nonconforming implemenations), the
>> build needs to determine if they are present.  Present of course means
>> "usable by the compiler, which may be cross".
>
> Right.  The problem with any check for file location or endianness run
> *by scons* is that it will check the state of the build host, not the
> target.

That's just plain broken.  When doing cross, one has to be checking the
include files in the -sysroot/whatever for the target toolchain.  It's
really hard to believe scons can't deal with the cross header file
notion.

>> So given that endian.h is in different places (actually, and posix seems
>> not to specify this), I think the following steps should be happening:
>> 
>>   check for presence of endian.h
>>   (if not found) check for presence of sys/endian.h
>> 
>> when building the endian test program
>
> If you do it this way, you lose when the location of endian.h on the target 
> system is different from where it is on the host.  This is why it's
> better to extract information from the target compiler's #ifdefs than 
> to run tests in scons.

I meant to do a test compile with endian.h with the for-target compiler,
just like autoconf would do with AC_TRY_COMPILE.  None of this should
ever look on the host (except by looking on target when host = target of
course).

So if this means first doing a test compile (with the for-target
compiler) of

----------------------------------------
#include <endian.h>
----------------------------------------

and using success at that compilation to define HAVE_ENDIAN_H, and then
repeating for SYS_ENDIAN_H and then building the program that will
compile on LE but not BE, that sounds fine.


Are you saying scons has a "look for header file" mechanism, but that it
only looks in /usr/include on the host and has no concept of cross?  If
so, I agree that such functionality should just be ignored.

Attachment: pgpy96cGI00KH.pgp
Description: PGP signature


reply via email to

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