On 7/20/2010 09:49, Yaakov (Cygwin/X) wrote:
4. NLS. I think the cross toolchains should be compiled with
--disable-nls, if we can't figure out how to install and use the
correct .mo files associated with each compiler. Otherwise, all such
cross compilers must be at exactly the same version as the native
one, because they will all share the native compiler's .mo files. I
don't think this situation (all compilers using same version) is
very likely.
With NLS you will still have at least partial translations, which is
better than nothing, no?
How about setting up --with-localedir to somewhere version or target
specific?
However, given the dependency structure of the gcc3 packages, this means
you pretty much have to also remove, using setup,
gcc-core
gcc-g++
gcc-java
gcc-objc
Note that this conflict means that the current gcc-mingw* packages (and,
thus, the gcc 3.x packages) conflict with the new mingw-gcc-* and
mingw-binutils-* packages. Also, this may have implications for the
upgrade process, when the "real" mingw32-gcc cross toolchain is
released. Even if we mark the gcc (3) packages obsolete, we probably
have to repackage them and their gcc-mingw* friends to fix this upgrade
problem, and perhaps relieve the conflict. Somehow?
We can just remove the gcc-mingw* deps from gcc3*. But the bigger
question is, do we still *need* gcc3 in the distro?
iirc its used a bit in the cygnus tree to compile the cygwin1 dll and
strace.
The following flags are used in the official mingw compiler, but not here:
--enable-libstdcxx-debug
Reading the description, I'm not so sure we need (or want) this.
--enable-shared (but that's okay, as it is default)
--enable-libgomp
AFAIK --enable-shared and --enable-libgomp are the defaults.
--disable-win32-registry
Yes, we definitely want this.
(also, --disable-werror, and language Ada)
Just hadn't bothered with Ada, that's all.
Cygwin gcc needs to be bumped to around 4.5.0 to build it. Its stated
somewhere in the GCC docs that you'll need the same version of gcc to
build cross ADA.
The following flags are used here, but not in the official mingw compiler:
--disable-multilib
--enable-lto
AFAIK these are actually the defaults.
I believe --enable-fully-dynamic-strings is correct, but apparently the
official mingw.org 4.5.0 release does not use it.
Because 'mingw-runtime' is an existing package, and the current version
is 3.18-1, this new version should be -2.
Oops, missed that one. But the mingw-runtime maintainer should take
care of that when we're up to pushing this.
Careful, this option causes ABI change.
Is it usual to build linux compilers with --enable-fully-dynamic-strings?
Apparently not, thanks for catching that.
Had to install libelf0 and libelf0-devel packages, in order to build.
Right, as LTO uses libelf on ELF targets.
just to clarify, win32 targeting GCC do not use libelf even when lto is
enabled. A special coff lto module is used instead. Apparently elf
readers don't work on coff :)