View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001027aMuleExternal Connpublic2006-12-14 16:542008-02-22 03:19
Reportersefer tov 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionopen 
PlatformOSOS Version
Product Version2.1.3 
Target VersionFixed in Version 
Summary0001027: CVS aMule won't compile with newer gcc
DescriptionHi,

I'm using gcc 4.1.x and wxWindows 2.6.3 on the latest Mandriva distribution trying to compile the CVS aMule, but I'm getting this failure message.
Hope you guys could find a fix for this.

if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/lib/wx/include/ -I/usr/lib/wx/include/gtk2-ansi-release-2.6 -I/usr/include/wx-2.6 -DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DNO_GCC_PRAGMA -I./libs -Ilibs -DAMULE_INSTALL_PREFIX="\"/opt/aMule-2.1.4\"" -DAMULE_LOCALEDIR="\"/opt/aMule-2.1.4/share/locale\"" -DUSE_EMBEDDED_CRYPTO -W -Wall -Wshadow -Wundef -g -ggdb -fno-inline -D__DEBUG__ -fmessage-length=0 -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -DUSE_WX_EXTENSIONS -MT amule-ExternalConn.o -MD -MP -MF ".deps/amule-ExternalConn.Tpo" -c -o amule-ExternalConn.o `test -f 'ExternalConn.cpp' || echo './'`ExternalConn.cpp; \
        then mv -f ".deps/amule-ExternalConn.Tpo" ".deps/amule-ExternalConn.Po"; else rm -f ".deps/amule-ExternalConn.Tpo"; exit 1; fi
In file included from ExternalConn.h:31,
                 from ExternalConn.cpp:34:
./libs/ec/ECSpecialTags.h:28:2: warning: #warning Kry - Preferences packet derived from packet, and that's ok, but shouldn't be here because this is a tag file and forces a stupid include
In file included from CFile.h:29,
                 from PartFile.h:31,
                 from ExternalConn.cpp:38:
SafeFile.h:201:2: warning: #warning DOCS
ExternalConn.cpp:846:2: warning: #warning Kry - lfroen, please fix this to work with 64bits
./libs/ec/ECSpecialTags.h: In member function ‘wxString CEC_PartFile_Tag::PartMetName()’:
./libs/ec/ECSpecialTags.h:218: warning: format ‘%03u’ expects type ‘unsigned int’, but argument 2 has type ‘uint64_t’
ExternalConn.cpp: In static member function ‘static CECPacket* ExternalConn::Authenticate(const CECPacket*)’:
ExternalConn.cpp:212: error: call of overloaded ‘CECTag(<anonymous enum>, const char [103])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp:222: error: call of overloaded ‘CECTag(<anonymous enum>, const char [62])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp:228: error: call of overloaded ‘CECTag(<anonymous enum>, const char [23])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp:236: error: call of overloaded ‘CECTag(<anonymous enum>, const char [30])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp:240: error: call of overloaded ‘CECTag(<anonymous enum>, const char [48])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp:243: error: call of overloaded ‘CECTag(<anonymous enum>, const char [4])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>
ExternalConn.cpp: In function ‘CECPacket* Get_EC_Response_PartFile_Cmd(const CECPacket*)’:
ExternalConn.cpp:572: error: call of overloaded ‘CECTag(<anonymous enum>, const char [31])’ is ambiguous
./libs/ec/ECTag.h:117: note: candidates are: CECTag::CECTag(ec_tagname_t, const wxString&)
./libs/ec/ECTag.h:113: note: CECTag::CECTag(ec_tagname_t, const std::string&)
./libs/ec/ECTag.h:111: note: CECTag::CECTag(ec_tagname_t, uint64_t) <near match>
./libs/ec/ECTag.h:110: note: CECTag::CECTag(ec_tagname_t, uint32_t) <near match>
./libs/ec/ECTag.h:109: note: CECTag::CECTag(ec_tagname_t, uint16_t) <near match>
./libs/ec/ECTag.h:108: note: CECTag::CECTag(ec_tagname_t, uint8_t) <near match>

etc. etc. etc.

-- Sefer.
TagsNo tags attached.
Fixed in Revision
Operating SystemAny
Attached Files

- Relationships

-  Notes
(0002194)
Kry (manager)
2006-12-16 16:56

Weird, I use gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) and it works.
(0002195)
pcmaster (reporter)
2006-12-16 21:17

I use Gentoo and amule compiles ok with gcc-4.1.1 (gcc-4.1.1-r1 ebuild)
(0002215)
gaffa (reporter)
2007-01-04 15:55
edited on: 2007-01-04 17:13

It does not look like an aMule bug "as such". I think it is GCC 4.1.xs pedantic behaviour which is "disabled" in distributions where it doesn't complain.

It seems like your compiler is in doubt whether to use wxString or std::string for the string literal passed on to the constructor. In my world the natural behaviour for the compiler would be to use the "built-in" STL type std::string.

Try to compile with -fpermissive flag.

It's just a hunch. Try asking on the GCC mailing list.

edited on: 01-04-07 17:13
(0002647)
Xaignar (manager)
2008-02-22 03:19

Closing due to lack of reponse.

- Issue History
Date Modified Username Field Change
2006-12-14 16:54 sefer tov New Issue
2006-12-14 16:54 sefer tov Operating System => Any
2006-12-16 16:56 Kry Note Added: 0002194
2006-12-16 21:17 pcmaster Note Added: 0002195
2007-01-04 15:55 gaffa Note Added: 0002215
2007-01-04 17:13 gaffa Note Edited: 0002215
2008-02-22 03:19 Xaignar Status new => closed
2008-02-22 03:19 Xaignar Note Added: 0002647


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker