This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: Possible cygport bug with cross compiles
- From: "Yaakov (Cygwin/X)" <yselkowitz at users dot sourceforge dot net>
- To: cygwin-apps <cygwin-apps at cygwin dot com>
- Date: Wed, 01 Sep 2010 00:44:54 -0500
- Subject: Re: Possible cygport bug with cross compiles
- References: <4C7D7559.3040601@cwilson.fastmail.fm>
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