delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/03/11/23:37:25

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-Authentication-Warning: csd.cs.technion.ac.il: emild owned process doing -bs
Date: Tue, 12 Mar 2002 06:36:38 +0200 (IST)
From: Kohn Emil Dan <emild AT cs DOT Technion DOT AC DOT IL>
X-X-Sender: <emild AT csd>
To: <cygwin AT cygwin DOT com>
cc: <b DOT reid AT aristoslogic DOT com>
Subject: Re: Is wchar_t support possible with Cygwin/GCC?
Message-ID: <Pine.GSO.4.33_heb2.09.0203120612011.7699-100000@csd>
MIME-Version: 1.0

Hi Bruce,

I just saw your message on the cygwin mailing list, and I think that this
post might interest you.

I also tried to build xerces-c on cygwin. I also stumbled against the
wctype.h problem. I found a (very ugly) workaround for it, so I will show
it to you if you are interested.

The wctype.h is under the /usr/include/mingw directory. The functions from
there are defined in libmsvcrt.a which is located under /usr/lib/mingw

The problem however is that you cannot link directly with libmsvcrt.a
because doing this will negatively affect the behavior of other functions
(such as fopen() and all the other stdio stuff). Therefore I made a new
dll which links with libmsvcrt.a and but exports only the wchar related
functions. I created a header named wcwrapper.h which #defines the wchar
functions to the functions from the dll. I modified the file which
included wctype.h to include the new header file (wcwrapper.h) and
modified the makefile to make xerces link with my .dll

I can e-mail you the code of that dll and the wrapper if you want to.


After other (not that ugly)  modifications I got xerces-c compiled on
cygwin.  However there are still problems with it. It does not pass all
the tests.

One problem is caused by the fact that C++ class static members which
reside in DLLs. The problem is that for some reason the data members get
duplicated inside the executable, but without initialization. Therefore
e.g. XMLUni::fgZeroLenString gets garbled causing IRangeTest to fail. I
have reported this problem in an earlier post (see my post
entitled g++/static members/DLL problems on the cygwin mailing list). I
want to see what responses I get, then I will decide what to do next.


							Regards,

								Emil


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019