bugGNU gettext - Bugs: bug #22184, gettext-runtime/intl fails to...

 
 

bug #22184: gettext-runtime/intl fails to build when cross-compiling from Linux to Win32

Submitted by:  None
Submitted on:  Wed 30 Jan 2008 10:14:11 PM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: Invalid
Privacy: PublicAssigned to: Bruno Haible <haible>
Open/Closed: Closed

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 31 Jan 2008 12:24:42 PM UTC, comment #5:

> I thought the "msvc" part of the i586-pc-mingw32msvc triplet
> referred to the MSVCRT.DLL runtime, not the MSVC compiler?


The Cygwin package uses the triplet i586-pc-mingw32. MSYS does
the same. If the Debian cross package yields the same kind of
executables than these two, there is no reason for it to have
a different triplet. If, however, the Debian cross package
yields different executables and libraries, I don't want to
hear about it. Then it's an unsupported platform.

> I am not so sure about the recommendation to use Cygwin in the
> README.woe32. Sure, if one is extremely careful, it should work
> fine to use Cygwin and its gcc -mno-cygwin to build non-Cygwin
> code. But my personal experience is that this is very likely
> to accidentally get you into a confusing state where you mix
> Cygwin headers and non-Cygwin headers, or even mix Cygwin
> libraries into non-Cygwin executables.


Sure, I agree with you that if you are not careful, you can
more easily mess up your environment in Cygwin than in MSYS.
But there's an explicit warning against this problem in
gettext's README.woe32.

MSYS is also supported as a build platform by gettext, but is
not recommended. I cannot recommend it due to the amount of
hacks that are in the MSYS runtime.

> MSYS was created exactly to avoid that kind of problems, and to
> avoid the need to manually use `cygpath -w foo` here and there.
> MSYS does the pathname translation on command lines
> automatically, and translates pathnames in environment
> variables. (When invoking non-MSYS programs, like the native
> mingw compiler.)


MSYS also does pathname translation in command-line arguments:
it converts "nul" to "/dev/null" (or vice versa, I don't
remember) when it finds it appropriate. In command-line
arguments!!

MSYS also causes pipes in bash to behave differently when
run inside rxvt. See the groff mailing list for multiple
reports of this bug.

Hope you understand why I cannot recommend MSYS.

Regarding the Debian cross package. Sometimes it is used with
a library called "libgw32c". of which people say
"Use of LibGw32c as a separate development library is very
complicated."
http://gnuwin32.sourceforge.net/packages/libgw32c.htm
That's the second reason why I don't want to hear about
problems with this build environment.

Bruno Haible <haible>
Project AdministratorIn charge of this item.
Thu 31 Jan 2008 09:19:40 AM UTC, comment #4:

I thought the "msvc" part of the i586-pc-mingw32msvc triplet referred to the MSVCRT.DLL runtime, not the MSVC compiler?

I am not so sure about the recommendation to use Cygwin in the README.woe32. Sure, if one is extremely careful, it should work fine to use Cygwin and its gcc -mno-cygwin to build non-Cygwin code. But my personal experience is that this is very likely to accidentally get you into a confusing state where you mix Cygwin headers and non-Cygwin headers, or even mix Cygwin libraries into non-Cygwin executables.

MSYS was created exactly to avoid that kind of problems, and to avoid the need to manually use `cygpath -w foo` here and there. MSYS does the pathname translation on command lines automatically, and translates pathnames in environment variables. (When invoking non-MSYS programs, like the native mingw compiler.)

Tor Lillqvist <tml1024>
Thu 31 Jan 2008 01:24:59 AM UTC, comment #3:

I don't know if it's a nonsense or not, but that triplet is the prefix of all the mingw binaries on the mingw32 ubuntu package.

Alberto Ruiz <aruiz>
Thu 31 Jan 2008 12:11:49 AM UTC, comment #2:

> --host=i586-pc-mingw32msvc


This is nonsense. Mingw uses the GCC compiler, not MSVC. Its canonical triplet is i586-pc-mingw32.

> --build=i686-pc-linux-gnuaout


This is nonsense as well. Systems of this type are not in use any more since 1993.

> this breaks


Saying "this breaks" without providing a description of what happens (error messages etc.) does not constitute a complete bug report.

If you want to build gettext for mingw, I suggest that you take
a look at the README.woe32 file.

Bruno Haible <haible>
Project AdministratorIn charge of this item.
Wed 30 Jan 2008 10:20:37 PM UTC, comment #1:

To reproduce the bug, install MinGW and run the following ./configure command:

./configure --prefix /home/aruiz/gtk-target \ --build=i686-pc-linux-gnuaout \
--host=i586-pc-mingw32msvc \
--target=i586-pc-mingw32msvc \
--disable-docs \
--enable-all-warnings \
AR="/usr/bin/i586-mingw32msvc-ar" \
RANLIB="/usr/bin/i586-mingw32msvc-ranlib" \
STRIP="/usr/bin/i586-mingw32msvc-strip" \
AS="/usr/bin/i586-mingw32msvc-as" \
DLLTOOL="/usr/bin/i586-mingw32msvc-dlltool" \
OBJDUMP="/usr/bin/i586-mingw32msvc-objdump" \
NM="/usr/bin/i586-mingw32msvc-nm" \
WINDRES="/usr/bin/i586-mingw32msvc-windres" \
--without-emacs \
--disable-java \
--disable-native-java \
--enable-relocatable

It actually throws some WARNINGS at the begining:
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type:
checking for a BSD-compatible install... /home/aruiz/bin/install-check
checking whether build environment is sane... yes
...

Anonymous
Wed 30 Jan 2008 10:14:11 PM UTC, original submission:

gettext-runtime/intl/Makefile.in has a hack for the sed version included with MSYS.

This hack assumes that the build for a Win32 target is made, however, this breaks when gettext is cross compiled from Linux to Win32 using mingw.

Checking that the host is different than the target should do it.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by tml1024 (Posted a comment)
  • -unavailable- added by aruiz (Posted a comment)
  • -unavailable- added by haible (Posted a comment)
  • -unavailable- added by aruiz
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 31 Jan 2008 12:11:49 AM UTChaibleStatusNone=>Invalid
      Assigned toNone=>haible
      Open/ClosedOpen=>Closed
      Summarygettext-runtime/intl fails to build when cross-compiling from Linux ti Win32=>gettext-runtime/intl fails to build when cross-compiling from Linux to Win32
    Wed 30 Jan 2008 10:24:57 PM UTCaruizCarbon-Copy-=>Added -unavailable-

    Back to the top


    Powered by Savane 3.1-cleanup