Opened 9 years ago

Closed 9 years ago

Last modified 6 years ago

#45666 closed defect (fixed)

emacs-app: error: conflicting types for ‘Cursor’

Reported by: dbonnafo@… Owned by: humem (humem)
Priority: Normal Milestone:
Component: ports Version: 2.3.2
Keywords: Cc: cssdev, dbonnafo@…, michaelthomassullivan, paoloit@…, dliessi (Davide Liessi)
Port: emacs-app

Description (last modified by ryandesign (Ryan Carsten Schmidt))

on Mac OS X 10.6.8 I get this error building emacs-app 24.4

:info:build In file included from dispextern.h:76,
:info:build                  from frame.h:26,
:info:build                  from font.h:26,
:info:build                  from composite.h:28,
:info:build                  from coding.h:314,
:info:build                  from keyboard.h:21,
:info:build                  from macim.m:22:
:info:build nsgui.h:108: error: conflicting types for ‘Cursor’
:info:build /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QuickdrawTypes.h:267: error: previous declaration  of ‘Cursor’ was here

Attachments (1)

patch-src-macim.m.diff (341 bytes) - added by michaelthomassullivan 9 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: css@… added
Description: modified (diff)
Owner: changed from macports-tickets@… to hum@…
Summary: conflicting types for ‘Cursor’, emacs-app not builtemacs-app: error: conflicting types for ‘Cursor’

comment:2 Changed 9 years ago by dbonnafo@…

Cc: dbonnafo@… added

Cc Me!

comment:3 Changed 9 years ago by michaelthomassullivan

Cc: MichaelThomasSullivan@… added

Cc Me!

comment:4 Changed 9 years ago by paoloit@…

Cc: paoloit@… added

Cc Me!

comment:5 Changed 9 years ago by dliessi (Davide Liessi)

Cc: davide.liessi@… added

Cc Me!

Changed 9 years ago by michaelthomassullivan

Attachment: patch-src-macim.m.diff added

comment:6 Changed 9 years ago by michaelthomassullivan

I got the same error on Mac OS X 10.5.8 PPC.

The file macim.m in which the error occurs is added by the "inline" patch (patch-inline-24.4-20140820.diff) which is applied by the default variant inline. More recent versions of OS X don't get the error because Apple has removed the Cursor type from the Carbon framework (it was documented as being deprecated since Tiger).

I couldn't find any meaningful documentation for that inline patch, but from the code it appears to add support for input modes for languages like Japanese, Korean, Chinese, etc. If you don't use those languages the easiest way to get emacs-app to build on older versions of OS X is to simply disable the inline variant, i.e. "port install emacs-app -inline".

If you do want the inline variant, a tiny bit of preprocessor hackery can hide the Cursor type defined by the Carbon framework so that it doesn't conflict with Emacs' own Cursor type (neither of which are used in macim.m). I've attached it as patch-src-macim.m.diff; note that this must be applied after the inline patch creates macim.m.

comment:7 Changed 9 years ago by humem (humem)

Resolution: fixed
Status: newclosed

Thank you very much for your patch on 10.6 or earlier. I have updated the inline patch and added your patch in r129927.

comment:8 Changed 6 years ago by wyuenho (Jimmy Yuen Ho Wong)

Last edited 6 years ago by wyuenho (Jimmy Yuen Ho Wong) (previous) (diff)
Note: See TracTickets for help on using tickets.