Opened 11 years ago

Closed 9 years ago

Last modified 9 years ago

#6437 closed defect (fixed)

SYMBIAN: remove macro conflict in system headers

Reported by: SF/superzanac Owned by: anotherguest
Priority: normal Component: Engine: TsAGE
Version: Keywords: build
Cc: Game: Blue Force

Description

Fix doesn't work. I knew only one solution - to comment "#define remove(x) unlink(x)" and compile. This macro uses many projects and many libc variants. Just google it. Also this error has Avalanche engine. Maybe need to start thread on forum?

Ticket imported from: #3615153. Ticket imported from: bugs/6437.

Change History (18)

comment:1 by dreammaster, 11 years ago

Better to post a message to the development list - scummvm-devel@lists.sourceforge.net with all the details of the issue. Whilst I could do a global rename of the 'remove' method, I still can't help but feel that it's such a common word that we look for a Symbion fix rather than doing large scale changes to the engines just for Symbion.

comment:2 by SF/superzanac, 11 years ago

When I add #ifdef __SYMBIAN32__ #undef remove #endif // remove in core.h and graphics.h I got this errors : In file included from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.h:28:0, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.h:27, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp:23: /Symbian/Projects/SDL/scummvm/engines/tsage/core.h: In member function 'void TsAGE::SceneObjectList::remove(TsAGE::SceneObject*)': /Symbian/Projects/SDL/scummvm/engines/tsage/core.h:774:12: error: 'class TsAGE::SynchronizedList<TsAGE::SceneObject*>' has no member named 'remove' In file included from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.h:29:0, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.cpp:24: /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h: In member function 'void TsAGE::Game::removeHandler(TsAGE::GameHandler*)': /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h:124:53: error: 'class TsAGE::SynchronizedList<TsAGE::GameHandler*>' has no member named 'remove' In file included from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.h:29:0, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.h:27, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp:23: /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h: In member function 'void TsAGE::Game::removeHandler(TsAGE::GameHandler*)': /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h:124:53: error: 'class TsAGE::SynchronizedList<TsAGE::GameHandler*>' has no member named 'remove' /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp: In member function 'virtual bool TsAGE::BlueForce::Scene60::MirandaCard::startAction(TsAGE::CursorType, TsAGE::Event&)': /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp:701:27: error: 'class TsAGE::SceneItemList' has no member named 'remove' /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp: In member function 'virtual bool TsAGE::BlueForce::Scene60::TicketBook::startAction(TsAGE::CursorType, TsAGE::Event&)': /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_scenes0.cpp:723:27: error: 'class TsAGE::SceneItemList' has no member named 'remove' make[1]: *** [\Symbian\S60_5th_Edition_SDK_v1.0\EPOC32\BUILD\Symbian\Projects\SDL\scummvm\backends\platform\symbian\S60v3\SCUMMVM_TSAGE\GCCE\urel\blueforce_scenes0.o] Error 1 make: *** [TARGETSCUMMVM_TSAGE] Error 2 /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.cpp: In member function 'virtual void TsAGE::BlueForce::FocusObject::remove()': /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_logic.cpp:664:25: error: 'class TsAGE::SceneItemList' has no member named 'remove'

comment:3 by wjp, 11 years ago

Sounds like it's not in the right (or enough) headers, then.

comment:4 by SF/superzanac, 11 years ago

dreammaster, my list was rejected because "Non-members are not allowed to post messages to this list."

comment:5 by digitall, 11 years ago

Summary: remove macro conflict in system headersSYMBIAN: remove macro conflict in system headers

comment:6 by digitall, 11 years ago

Owner: set to anotherguest

comment:7 by digitall, 11 years ago

superzanac: As your messages are now appearing on the scummvm-devel list, I assume that this has been fixed.

comment:8 by digitall, 11 years ago

As an FYI, this bug is a continuation of a previous bug #3615142 - "SYMBIAN: remove macro conflict in system headers": https://sourceforge.net/tracker/index.php?func=detail&aid=3615142&group_id=37116&atid=418820

Which was closed without the fix being confirmed by the user, and with comments closed. This has resulted in a duplicate bug being opened.

Developers, can we try to avoid this in future please.. and Users, can you try to avoid doing this as well. As the owner of a bug, IIRC you can reopen it... or ask a developer/bug admin to do this.

comment:9 by digitall, 11 years ago

anotherguest: As our Symbian porter, have you encountered this issue?

Or is this due to superzanac using "Sourcery CodeBench Lite for ARM SymbianOS 4.6.3", rather than the Nokia S60 Symbian SDK listed on: http://wiki.scummvm.org/index.php/Compiling_ScummVM/Symbian

superzanac: Exactly where did you download your toolchain? It should be from here: http://developer.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html

comment:10 by anotherguest, 11 years ago

I only had this problem on the tsage engine which I solved by changing the symbian define when building tsage. I guess that remove is not used as unlink in many other projects anyway so the define patch in symbian H files could be a valid fix.

comment:11 by SF/superzanac, 11 years ago

tdhs, yes I downloaded S60 5th Edition SDK for Symbian OS . GCCE was downloaded from Mentor Graphics site. Forget about 4.6.3 because it can build only Symbian C++ app but not standart C/open C++ Helloworlds from SDK. Now I'm using GCCE 4.4.1

comment:12 by SF/superzanac, 11 years ago

anotherguest, Scumvm itself use remove() to gamesaves

comment:13 by anotherguest, 11 years ago

For ScummVM I have always been using c++ (GCC) 3.4.3 (release) (CodeSourcery ARM Q1C 2005) which works fine in most cases. (Which is included in all official Nokia SDKs). I have noticed that ScummVM has been using remove more and more as engine development has been progressing. I usually also revert to some patching for some engines to get them building. When it comes to SDL version, the version I originally ported SDL to Symbian for usage with ScummVM so various key mappings included there. I think I need to DL 1.7.0 pre and test also :-)

comment:14 by SF/superzanac, 11 years ago

anotherguest,Ok. I describe my errors wit some engines in symbian forum =)

comment:15 by SF/superzanac, 11 years ago

It's impossible to fix these errors. I add this fix to every header(include blue_force, ringword 1&2) and still have 2 errors : In file included from /Symbian/Projects/SDL/scummvm/engines/tsage/tsage.h:35, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_dialogs.cpp:28: /Symbian/Projects/SDL/scummvm/engines/tsage/core.h: In member function 'void TsAGE::SceneObjectList::remove(TsAGE::SceneObject*)': /Symbian/Projects/SDL/scummvm/engines/tsage/core.h:774: error: 'class TsAGE::SynchronizedList<TsAGE::SceneObject*>' has no member named 'remove' In file included from /Symbian/Projects/SDL/scummvm/engines/tsage/globals.h:33, from /Symbian/Projects/SDL/scummvm/engines/tsage/blue_force/blueforce_dialogs.cpp:32: /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h: In member function 'void TsAGE::Game::removeHandler(TsAGE::GameHandler*)': /Symbian/Projects/SDL/scummvm/engines/tsage/scenes.h:128: error: 'class TsAGE::SynchronizedList<TsAGE::GameHandler*>' has no member named 'remove'

Please, rename this function. I wish add symbian support to buildbod.

comment:16 by SF/superzanac, 9 years ago

Fixed in commit 99d6dec0597b190c76fc49169a4e5c2e93f7d366

comment:17 by anotherguest, 9 years ago

Resolution: fixed
Status: newclosed

comment:18 by anotherguest, 9 years ago

Fixed and commited by Zanac!

Note: See TracTickets for help on using tickets.