This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Possible cygport bug with cross compiles


On Tue, 2010-08-31 at 17:34 -0400, Charles Wilson wrote:
> When testing JonY's mingw64 compiler, I found that often the include 
> files ended up in the wrong directory.

Often?

> Also, JonY apparently did as well, since his cygport(5)'s

Which were likely borrowed from mine...

>  included this bit in src_install():
> 
> mv ${D}${CROSS_PREFIX}/${CROSS_HOST}/* ${D}${CROSS_PREFIX}

The reason for that is the *upstream* mingw-w64 Makefiles install to
$prefix/$host/{include,lib}, based on the pre-sysroot convention; so if
we want to use the sysroot for *everything*, including the system
headers, then they end up in $CROSS_PREFIX/$CROSS_HOST/{include,lib} and
need to be moved thereafter.

IOW this could be seen as an issue with the mingw-w64 sources, not
cygport.  OTOH, mingw-w64 is not unique; both newlib and avr-libc are
coded to install into $prefix/$host/{include,lib}; glibc and mingw.org
install correctly into sysroot OOTB.  A possible solution is to
reconsider to what degree we use the sysroot.

> I'm not real sure about the ${prefix%/...} manipulation, either, 
> especially for cross. (The effect of this manipulation for a cross for 
> $host=mingw is not apparent, since $prefix doesn't actually end in /usr 
> in that case).  But...the current code seems to be incorrect, IMO.

The point is that (per FHS) if prefix=/usr, then sysconfdir=/etc
(NOT /usr/etc) and localstatedir=/var (NOT /usr/var),  However, if
prefix != /usr (e.g. /mingw), then these should also go under the prefix
(/mingw/etc and /mingw/var).  The same goes for cyginstall.


Yaakov



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]