Mail Archives: cygwin/1999/11/28/21:27:46
Begin forwarded message:
X-Sender: lhall AT pop DOT ma DOT ultranet DOT com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32)
Date: Sun, 28 Nov 1999 18:30:22 -0500
To: mlx AT san DOT rr DOT com
From: "Larry Hall (RFK Partners, Inc)" <lhall AT rfk DOT com>
Subject: Re: windows.h breaks ObjC ?
Cc: "cygwin AT sourceware DOT cygnus DOT com" <cygwin AT hotpop DOT com>
In-Reply-To: <9911281643 DOT AA07798 AT mlx DOT com>
At 08:43 AM 11/28/99 -0800, you wrote:
>Hi all,
>
>Just installed v1.0 and spent the whole weekend pulling my hair out.
>
>Oh, the general product looks pretty nice but I'm afraid that the new
>windows headers somehow break ObjC preprocessing. I know that Cygnus
>has never supported ObjC so, as usual, I didn't expect much.
>
>But it seems as though we may have hit a new low here.
>
>Either that or I'm just too bleary-eyed to see something obvious.
>
>Take this source code example, lets call it -> test.c
>
>#include <windows.h>
>#include <objc/Object.h>
>int main ( int argc, char *argv[] (
>{
> printf("hello world\n");
> return 0;
>}
>
>now try to compile it to object via:
>
>gcc -c -x objective-c test.c -o test.o
>
>I get the foillowing:
>
>Object.h:37: invalid identifier `@struct'
>Object.h:37: parse error before `Object'
>Object.h:38: syntax error before `{'
>Object.h:43: method definition not in class context
>
>This is, of course, the first occurence of an
>
>@interface directive
>
>Now, comment out
>//#include <windows.h>
>
>it compiles without a hitch.
>
>I built gcc-2.95.2 from gnu AND download pre-built from
>Mumit Khan's site ALL with the same result.
>
>Gotta roll back to b20.1 ?
>
>What gives ?
>
>------------
>
>Well, I didn't send this mail right away and decided to research
>a bit more. Here's what I found:
>
>basetyps.h, line #20: #define interface struct
>
>Oh, just brilliant - concocted by some C++ 'er no doubt !!!
>C'mon, please tell me you're not already married to this.
>
>Steve B.
>
I think you'll find this is a MSism for COM. I'm sure you can work
around
this if necessary but if not, perhaps you want to take it up with MS...
Larry Hall lhall AT rfk DOT com
RFK Partners, Inc. http://www.rfk.com
118 Washington Street (508) 893-9779 - RFK Office
Holliston, MA 01746 (508) 893-9889 - FAX
(508) 560-1285 - cell phone
Hmmmm ...
You're the second individual to blame M$ here.
I'm no big fan of those guys either. But I think
this line of reasoning is flawed enough to take the
time to slooooowly and cleeeeearly state what I
believe to be the real underlying problem.
1. I understand that M$ has its need of the "interface" label.
2. This is NOT the problem.
3. "interface" is distinct from "@interface".
4. No problem with the global name space yet.
Right ?
5. Now all of a sudden in the new Cygnus windows api headers
we get this bad boy:
#define interface struct
Sure, and while we're at it why not:
#define constructor tulips
and
#define class urass
What the heck nobody really codes in ObjC anymore anyway right ?
Ah, they didn't create #undef for nothing ... RIGHT ?
Yea sure, I can unhack this hack but I would hope folks could
think a bit deeper and see this "little inconvenience" for what
it really is.
The first baby steps toward breaking Objective-C compatibility
within Cygwin sources.
Steve B.
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
- Raw text -