Re: [Mingw-w64-public] Issues compiling Info-zip's zip 3.1c

2010-07-31 Thread Chris Sutcliffe
  On 7/30/10 11:40 PM, Chris Sutcliffe wrote:
 Doing a little more digging, it seems like it's not dllwrap at all, 
 it's gcc:

 x86_64-w64-mingw32-gcc -Wl,--enable-stdcall-fixup -ozip32z64.dll -s 
 -shared windll.o windllrc.o api.o zipl.o cryptl.o ttyiol.o zipfilel.o 
 zipupl.o fileiol.o utill.o crc32l.o  globalsl.o deflatel.o treesl.o  
 zbz2errl.o win32l.o win32zpl.o win32i64l.o ntl.o  -luser32 -ladvapi32
 zipfilel.o:zipfile.c:(.text+0x15b1): undefined reference to 
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x508): undefined reference to 
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x59a): undefined reference to 
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x5b7): undefined reference to 
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x61b): undefined reference to 
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x64c): more undefined references to 
 `__p___mb_cur_max' follow

 Yet as previously mentioned, mb_cur_max is exported my libmsvcrt.a.

 I'm stumped.

It turns out it's not gcc, it's due to the fact that libmsvcrt.a doesn't 
export `__p___mb_cur_max'.  The mingw.org msvcrt.def file contains:

__p___mb_cur_max

where as the mingw-w64-crt does not.  Would it be possible to have this 
added?

Thank you,

Chris


--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Issues compiling Info-zip's zip 3.1c

2010-07-31 Thread Kai Tietz
2010/7/31 Chris Sutcliffe ir0nh...@gmail.com:
  On 7/30/10 11:40 PM, Chris Sutcliffe wrote:
 Doing a little more digging, it seems like it's not dllwrap at all,
 it's gcc:

 x86_64-w64-mingw32-gcc -Wl,--enable-stdcall-fixup -ozip32z64.dll -s
 -shared windll.o windllrc.o api.o zipl.o cryptl.o ttyiol.o zipfilel.o
 zipupl.o fileiol.o utill.o crc32l.o  globalsl.o deflatel.o treesl.o
 zbz2errl.o win32l.o win32zpl.o win32i64l.o ntl.o  -luser32 -ladvapi32
 zipfilel.o:zipfile.c:(.text+0x15b1): undefined reference to
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x508): undefined reference to
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x59a): undefined reference to
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x5b7): undefined reference to
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x61b): undefined reference to
 `__p___mb_cur_max'
 fileiol.o:fileio.c:(.text+0x64c): more undefined references to
 `__p___mb_cur_max' follow

 Yet as previously mentioned, mb_cur_max is exported my libmsvcrt.a.

 I'm stumped.

 It turns out it's not gcc, it's due to the fact that libmsvcrt.a doesn't
 export `__p___mb_cur_max'.  The mingw.org msvcrt.def file contains:

 __p___mb_cur_max

 where as the mingw-w64-crt does not.  Would it be possible to have this
 added?

 Thank you,

 Chris


 --
 The Palm PDK Hot Apps Program offers developers who use the
 Plug-In Development Kit to bring their C/C++ apps to Palm for a share
 of $1 Million in cash or HP Products. Visit us here for more details:
 http://p.sf.net/sfu/dev2dev-palm
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


On x64 you can use here -lwmsvcrt to get this symbol. For 32-bit this
symbol is exported, so you shouldn't have here any troubles.

Regards,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| ()_() him gain world domination

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] pdh - 32bit

2010-07-31 Thread NightStrike
On Fri, Jul 30, 2010 at 4:55 AM, Ozkan Sezer seze...@gmail.com wrote:
 On Fri, Jul 30, 2010 at 7:14 AM, Alon Bar-Lev alon.bar...@gmail.com wrote:
 ‎Thank you!

 You're welcome!

 When do you consider releasing 1.1 or something similar with new
 improvements from trunk but stable?


 Admins can answer that better.


Hopefully soon.  We (read: I) have to put together a wiki page
describing our release policies and whatnot.

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] oaidl.h incorrect definitions for VARDESC, TYPEDESC and ELEMDESC for anonymous functions

2010-07-31 Thread Luis Lavena
Hello,

I've installed i686-w64-mingw32 for darwin target (20100730), and I'm
trying to cross-compile a Ruby extension that uses oleauto (it is
bundled with Ruby sources and is called win32ole).

During the cross compilation, I've received the following (in this
gist), pasted below:

/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_const_load’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:2504:39:
error: ‘VARDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_usertype2val’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:4541:44:
error: ‘TYPEDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_ptrtype2val’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:4564:13:
error: ‘TYPEDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_variable_value’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:6297:31:
error: ‘VARDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_param_flag_mask’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7373:9:
error: ‘ELEMDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
In function ‘ole_param_default’:
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7475:19:
error: ‘ELEMDESC’ has no member named ‘u’
/Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7477:25:
error: ‘ELEMDESC’ has no member named ‘u’

After looking into win32ole.c, found that it defined the following:

#if defined NONAMELESSUNION  __GNUC__
#define V_UNION1(X, Y) ((X)-u.Y)

Also, found this part:

#if defined NONAMELESSUNION  __GNUC__
#undef V_UNION
#define V_UNION(X,Y) ((X)-n1.n2.n3.Y)

Which clearly indicates hardcoded information for the Variant elements
of the union.

Since Ruby compiled successfully with GCC 3.4.5 and TDM-1 binary
distributions, took the liberty to inspect into w64 headers, specially
where VARDESC and others are defined (oaidl.h).

Found the following:

  typedef struct tagVARDESC {
MEMBERID memid;
LPOLESTR lpstrSchema;
__MINGW_EXTENSION union {
  ULONG oInst;
  VARIANT *lpvarValue;
};
ELEMDESC elemdescVar;
WORD wVarFlags;
VARKIND varkind;
  } VARDESC;

Clearly, the use of __MINGW_EXTENSION differs from mingw headers where
uses _ANONYMOUS_UNION

Also, it lacks a name for the union, something that in tdm and mingw
headers is defined as DUMMYUNIONNAME

Changed the definition of VARDESC, TYPEDESC and ELEMDESC to
_ANONYMOUS_UNION and named the union DUMMYUNIONNAME:

  typedef struct tagVARDESC {
MEMBERID memid;
LPOLESTR lpstrSchema;
_ANONYMOUS_UNION union {
  ULONG oInst;
  VARIANT *lpvarValue;
} DUMMYUNIONNAME;
ELEMDESC elemdescVar;
WORD wVarFlags;
VARKIND varkind;
  } VARDESC;

Doing the above change removed the compilation issue, succeed
compiling natively with GCC 3.4.5 and TDM1

I've also changed Ruby extension to use DUMMYUNIONNAME and
__VARIANT_NAME_1/2/3 to refer to n1, n2 and n3.

Apologize for my naive change, would like to know if is valid or not
and if so, if more details are needed to report it back.

Thank you.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] oaidl.h incorrect definitions for VARDESC, TYPEDESC and ELEMDESC for anonymous functions

2010-07-31 Thread Ozkan Sezer
On Sat, Jul 31, 2010 at 11:48 PM, Luis Lavena luislav...@gmail.com wrote:
 Hello,

 I've installed i686-w64-mingw32 for darwin target (20100730), and I'm
 trying to cross-compile a Ruby extension that uses oleauto (it is
 bundled with Ruby sources and is called win32ole).

 During the cross compilation, I've received the following (in this
 gist), pasted below:

 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_const_load’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:2504:39:
 error: ‘VARDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_usertype2val’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:4541:44:
 error: ‘TYPEDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_ptrtype2val’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:4564:13:
 error: ‘TYPEDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_variable_value’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:6297:31:
 error: ‘VARDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_param_flag_mask’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7373:9:
 error: ‘ELEMDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:
 In function ‘ole_param_default’:
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7475:19:
 error: ‘ELEMDESC’ has no member named ‘u’
 /Users/luis/.rake-compiler/sources/ruby-1.9.2-rc2/ext/win32ole/win32ole.c:7477:25:
 error: ‘ELEMDESC’ has no member named ‘u’

 After looking into win32ole.c, found that it defined the following:

 #if defined NONAMELESSUNION  __GNUC__
 #define V_UNION1(X, Y) ((X)-u.Y)

 Also, found this part:

 #if defined NONAMELESSUNION  __GNUC__
 #undef V_UNION
 #define V_UNION(X,Y) ((X)-n1.n2.n3.Y)

 Which clearly indicates hardcoded information for the Variant elements
 of the union.

 Since Ruby compiled successfully with GCC 3.4.5 and TDM-1 binary
 distributions, took the liberty to inspect into w64 headers, specially
 where VARDESC and others are defined (oaidl.h).

 Found the following:

  typedef struct tagVARDESC {
    MEMBERID memid;
    LPOLESTR lpstrSchema;
    __MINGW_EXTENSION union {
      ULONG oInst;
      VARIANT *lpvarValue;
    };
    ELEMDESC elemdescVar;
    WORD wVarFlags;
    VARKIND varkind;
  } VARDESC;

 Clearly, the use of __MINGW_EXTENSION differs from mingw headers where
 uses _ANONYMOUS_UNION

 Also, it lacks a name for the union, something that in tdm and mingw
 headers is defined as DUMMYUNIONNAME

 Changed the definition of VARDESC, TYPEDESC and ELEMDESC to
 _ANONYMOUS_UNION and named the union DUMMYUNIONNAME:

  typedef struct tagVARDESC {
    MEMBERID memid;
    LPOLESTR lpstrSchema;
    _ANONYMOUS_UNION union {
      ULONG oInst;
      VARIANT *lpvarValue;
    } DUMMYUNIONNAME;
    ELEMDESC elemdescVar;
    WORD wVarFlags;
    VARKIND varkind;
  } VARDESC;

 Doing the above change removed the compilation issue, succeed
 compiling natively with GCC 3.4.5 and TDM1

 I've also changed Ruby extension to use DUMMYUNIONNAME and
 __VARIANT_NAME_1/2/3 to refer to n1, n2 and n3.

 Apologize for my naive change, would like to know if is valid or not
 and if so, if more details are needed to report it back.

 Thank you.
 --
 Luis Lavena

We might need a DUMMY* name audit for DUMMYUNIONNAME, however I do
wonder why you actually _need_ DUMMYUNIONNAME and use those union/struct
members with dummy names in the first place?

--
Ozkan

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] oaidl.h incorrect definitions for VARDESC, TYPEDESC and ELEMDESC for anonymous functions

2010-07-31 Thread Luis Lavena
On Sat, Jul 31, 2010 at 6:10 PM, Ozkan Sezer seze...@gmail.com wrote:

 We might need a DUMMY* name audit for DUMMYUNIONNAME, however I do
 wonder why you actually _need_ DUMMYUNIONNAME and use those union/struct
 members with dummy names in the first place?

 Sorry, I really meant why you actually _need_ the NONAMELESSUNION define


Thank you for your answer.

Looking at Ruby's source code and history, looks like this was defined
in 2002 (!) in two blocks:

#if defined NONAMELESSUNION  __GNUC__
#define V_UNION1(X, Y) ((X)-u.Y)
#else
#define V_UNION1(X, Y) ((X)-Y)
#endif

V_UNION1 which is used further in the code as this:

hr = pTypeInfo-lpVtbl-GetRefTypeInfo(pTypeInfo,
   V_UNION1(pTypeDesc, hreftype),
   pRefTypeInfo);


And The following ones:

#if defined NONAMELESSUNION  __GNUC__
#undef V_UNION
#define V_UNION(X,Y) ((X)-n1.n2.n3.Y)

#undef V_VT
#define V_VT(X) ((X)-n1.n2.vt)

#undef V_BOOL
#define V_BOOL(X) V_UNION(X,boolVal)
#endif

Which clearly indicates these elements didn't behave as expected by
MinGW. I'm guessing as I'm not 100% familiarized with OLE

If you think that is necessary today (2010), I'm going to send a patch
for Ruby to get that fixed.

Thank you for your time.
-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] oaidl.h incorrect definitions for VARDESC, TYPEDESC and ELEMDESC for anonymous functions

2010-07-31 Thread Luis Lavena
On Sat, Jul 31, 2010 at 6:28 PM, Ozkan Sezer seze...@gmail.com wrote:

 If that change goes back to 2002, then it was intended for
 really old gcc versions, The oldest I currently use from time to
 time is 3.4.5 and AFAIK it has no problems with nameless
 unions and structs. And surely the current 4.4.x and newer are
 also fine with them.

 Notice that the above macros still need NONAMELESSUNION to be
 explicitly defined somewhere. Therefore, I suspect it is defined in your
 makefiles?


It is defined by the configure process which checks if platform is
cygwin or mingw and defines it.

 If you think that is necessary today (2010), I'm going to send a patch
 for Ruby to get that fixed.

 All I can say is that defining NONAMELESSUNION is not necessary
 these days (actually not necessary for quite some time), and is obsolete.
 This is of course my personal opinion.


I've checked in Ruby's source code and this is the only place been used.

I have no idea in relation to cygwin's GCC and headers, but just
removed mingw of that list and the extension compiled successfully.

Thank you for your time and your valuable answers.

-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] oaidl.h incorrect definitions for VARDESC, TYPEDESC and ELEMDESC for anonymous functions

2010-07-31 Thread Ozkan Sezer
On Sun, Aug 1, 2010 at 12:52 AM, Luis Lavena luislav...@gmail.com wrote:
 On Sat, Jul 31, 2010 at 6:28 PM, Ozkan Sezer seze...@gmail.com wrote:

 If that change goes back to 2002, then it was intended for
 really old gcc versions, The oldest I currently use from time to
 time is 3.4.5 and AFAIK it has no problems with nameless
 unions and structs. And surely the current 4.4.x and newer are
 also fine with them.

 Notice that the above macros still need NONAMELESSUNION to be
 explicitly defined somewhere. Therefore, I suspect it is defined in your
 makefiles?


 It is defined by the configure process which checks if platform is
 cygwin or mingw and defines it.


Well, it tries to play safe, but it would be more appropriate if it had
also checked agaist the gcc version in use: If gcc = 3.4, I guess
no need for that, at all.

 If you think that is necessary today (2010), I'm going to send a patch
 for Ruby to get that fixed.

 All I can say is that defining NONAMELESSUNION is not necessary
 these days (actually not necessary for quite some time), and is obsolete.
 This is of course my personal opinion.


 I've checked in Ruby's source code and this is the only place been used.

 I have no idea in relation to cygwin's GCC and headers, but just
 removed mingw of that list and the extension compiled successfully.


Glad that it worked!

(I still note that someday we need an audit for cases where NONAMELESSUNION
is defined...)

 Thank you for your time and your valuable answers.


You are welcome.  If you have more questions in the future,
don't hesitate to ask.

 --
 Luis Lavena
 AREA 17
 -
 Perfection in design is achieved not when there is nothing more to add,
 but rather when there is nothing more to take away.
 Antoine de Saint-Exupéry


Cheers

--
Ozkan

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] Issues compiling Info-zip's zip 3.1c

2010-07-31 Thread Chris Sutcliffe
  On 7/31/10 1:13 PM, Kai Tietz wrote:
 On x64 you can use here -lwmsvcrt to get this symbol. For 32-bit this
 symbol is exported, so you shouldn't have here any troubles.

Excellent, it works perfectly.

Thank you Kai!

Chris


--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] pdh - 32bit

2010-07-31 Thread Alon Bar-Lev
On Sat, Jul 31, 2010 at 11:24 PM, NightStrike nightstr...@gmail.com wrote:
 Hopefully soon.  We (read: I) have to put together a wiki page
 describing our release policies and whatnot.

--
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public