#6437 SYMBIAN: remove macro conflict in system headers

TsAGE: Blue Force
closed-fixed
5
2015-09-15
2013-10-27
zanac
No

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?

Discussion

  • Paul Gilbert

    Paul Gilbert - 2013-10-28

    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.

     
  • zanac

    zanac - 2013-10-28

    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'

     
  • Willem Jan Palenstijn

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

     
  • zanac

    zanac - 2013-10-29

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

     
  • digitall

    digitall - 2013-10-31
    • summary: remove macro conflict in system headers --> SYMBIAN: remove macro conflict in system headers
     
  • digitall

    digitall - 2013-11-01
    • assigned_to: nobody --> anotherguest
     
  • digitall

    digitall - 2013-11-01

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

     
  • digitall

    digitall - 2013-11-01

    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.

     
  • Lars Persson

    Lars Persson - 2013-11-01

    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.

     
  • zanac

    zanac - 2013-11-01

    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

     
  • zanac

    zanac - 2013-11-01

    anotherguest, Scumvm itself use remove() to gamesaves

     
  • Lars Persson

    Lars Persson - 2013-11-01

    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 :-)

     
  • zanac

    zanac - 2013-11-01

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

     
  • zanac

    zanac - 2013-11-07

    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.

     
  • zanac

    zanac - 2015-09-15

    Fixed in commit 99d6dec0597b190c76fc49169a4e5c2e93f7d366

     
  • Lars Persson

    Lars Persson - 2015-09-15
    • status: open --> closed-fixed
     
  • Lars Persson

    Lars Persson - 2015-09-15

    Fixed and commited by Zanac!