aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Pages: [1] 2

Author Topic: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12  (Read 12333 times)

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12

Firstly, I try to build aMule 2.2.2 on Solaris Nevada b98 x86 with GCC 4.2.3. As aMule depends on libcryptopp and wxwidgets, I grab the corresponding spec files(SFElibcryptopp.spec and SFEwxwidgets-gnu.spec) from SFE(http://pkgbuild.sourceforge.net/spec-files-extra/) and build them with CBE. Everything works fine. aMule can run successfully on the box and download files.

Then I switch the compiler to Sun Studio 12(the recommended one for Solaris). I have to tweak with the code a little bit to build aMule with it due to the difference between two compilers.

But when I run amule from terminal, there was a window popup saying "This is the first time you run aMule 2.2.2...". If I click "OK" to proceed, it crashes, with the core stack like below:

  [1] std::vector<bool,std::allocator<bool> >::reference::operator bool(0x80455c8, 0x80455c8, 0x80455fc, 0xfe3930d0), at 0xfeb993e4
=>[2] std::find<std::vector<bool,std::allocator<bool> >::iterator,bool>(first = CLASS, last = CLASS, value = ???) (optimized), at 0x8c3bc66 (line ~71) in "algorithm.cc"
  [3] CryptoPP::PrimeSieve::NextCandidate(this = ???, c = CLASS) (optimized), at 0x8c348d2 (line ~311) in "nbtheory.cpp"
  [4] CryptoPP::FirstPrime(p = CLASS, max = CLASS, equiv = CLASS, mod = CLASS, pSelector = ???) (optimized), at 0x8c354d9 (line ~436) in "nbtheory.cpp"
  [5] CryptoPP::FirstPrime(p = CLASS, max = CLASS, equiv = CLASS, mod = CLASS, pSelector = ???) (optimized), at 0x8c35648 (line ~425) in "nbtheory.cpp"
  [6] CryptoPP::Integer::GenerateRandomNoThrow(this = ???, i_rng = CLASS, params = CLASS) (optimized), at 0x8c21a02 (line ~3342) in "integer.cpp"
  [7] CryptoPP::Integer::GenerateRandom(this = ???, rng = CLASS, params = CLASS) (optimized), at 0x8c52995 (line ~250) in "integer.h"
  [8] CryptoPP::InvertibleRSAFunction::GenerateRandom(this = ???, rng = CLASS, alg = CLASS) (optimized), at 0x8c4a4fd (line ~120) in "rsa.cpp"
  [9] CryptoPP::InvertibleRSAFunction::Initialize(this = ???, rng = CLASS, keybits = ???, e = CLASS) (optimized), at 0x8c4ac25 (line ~145) in "rsa.cpp"
  [10] CClientCreditsList::CreateKeyPair(this = 0x93306c8), line 264 in "ClientCreditsList.cpp"
  [11] CClientCreditsList::InitalizeCrypting(this = 0x93306c8), line 316 in "ClientCreditsList.cpp"
  [12] CClientCreditsList::CClientCreditsList(this = 0x93306c8), line 54 in "ClientCreditsList.cpp"
  [13] CamuleApp::OnInit(this = 0x9286878), line 726 in "amule.cpp"
  [14] CamuleGuiApp::OnInit(this = 0x9286878), line 263 in "amule-gui.cpp"
  [15] wxAppConsole::CallOnInit(this = 0x9286878), line 76 in "app.h"
  [16] wxEntry(0xfe5a0f20, 0x92560e8, 0x0, 0xfe4ce970, 0x8046f98), at 0xfe4ce893
  [17] wxEntry(0x8046fa0, 0x8046fc8), at 0xfe4ce99f
  [18] main(argc = 1, argv = 0x8046fc8), line 95 in "amule-gui.cpp"

Error message in the terminal:
Initialising aMule
Checking if there is an instance already running...
No other instances are running.
HTTP download thread started

--------------------------------------------------------------------------------
A fatal error has occurred and aMule has crashed.
......

It's weird to me that the crash seems to be with libcryptopp(version 5.2.2).

If I use the old profile from gcc-based aMule, the GUI can be launched successfully, but hang immediately with SEGV:

also the core as below:

  [1] _free_unlocked(0x10000, 0xf8c1ece8, 0xfec3bfac, 0xf8c1ea80, 0xfec26cd2, 0x10000), at 0xfe2a4b05
  [2] free(0x10000, 0xf8c1ea5c, 0x86e684e, 0xfec26cba), at 0xfe2a4ac6
  [3] operator delete(0x10000, 0x98d8118, 0x95ba8f2, 0xfec26b44), at 0xfec26cd2
  [4] operator delete[](0x10000, 0x0), at 0xfec26b56
=>[5] CPacket::~CPacket(this = 0x95ba8e8), line 164 in "Packet.cpp"
  [6] CEMSocket::Send(this = 0x98d8b08, maxNumberOfBytesToSend = 5360U, minFragSize = 536U, onlyAllowedToSendControlPacket = true), line 594 in "EMSocket.cpp"
  [7] CEMSocket::SendControlData(this = 0x98d8b08, maxNumberOfBytesToSend = 5172U, minFragSize = 536U), line 70 in "EMSocket.h"
  [8] UploadBandwidthThrottler::Entry(this = 0x95e0b00), line 395 in "UploadBandwidthThrottler.cpp"
  [9] wxThreadInternal::PthreadStart(0x95e0b00, 0xfe2f8603, 0xfe392000, 0xfe52ce34, 0x400), at 0xfe52cf21
  [10] wxPthreadStart(0x95e0b00), at 0xfe52ce46
  [11] _thrp_setup(0xf9f21200), at 0xfe2fa1d0
  [12] _lwp_start(0xfe392000, 0xf8c1ea50, 0xfe2f36ce, 0x98827a0, 0xf8c1ea40, 0xfe2a4ac6), at 0xfe2fa430

Error message in the terminal:
Initialising aMule
Checking if there is an instance already running...
No other instances are running.
HTTP download thread started
ListenSocket: Ok.
Loading temp files from /export/home/alfred/.aMule/Temp.

All PartFiles Loaded.
No shareable files found in directory: /export/home/alfred/.aMule/Incoming
Host: amule.sourceforge.net:80
URL: http://amule.sourceforge.net/lastversion
Response: 200 (Error: 0)
Download size: 6
HTTP download thread ended

--------------------------------------------------------------------------------
A fatal error has occurred and aMule has crashed.
......

Any hints for the error above are appreciated.
Logged

skolnick

  • Global Moderator
  • Hero Member
  • *****
  • Karma: 24
  • Offline Offline
  • Posts: 1188
  • CentOS 6 User
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #1 on: September 20, 2008, 05:16:27 AM »

Hi!

You seem to be using cryptopp 5.2.2, but latest one is 5.5.2. Was it a typo, or is that the real version you are using? maybe using the latest one would help. Also, compiling the dependant libraries with the same compiler might be of help. BTW: I know wxwidgets have issues compiling with unicode support (which amule requires) using SUN studio, so that could also be an issue. I have compiled using gcc and it works fine, using either solaris 10 U4 or opensolaris 2008.05.

Regards.
Logged

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #2 on: September 21, 2008, 06:03:57 AM »

Hi,

Thanks for the reply. It was my typo. The cryptopp version here is 5.5.2. As for wxWidgets, unicode has been enabled during configure. FYI, the spec I'm using is here: https://pkgbuild.svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk/SFEwxwidgets.spec. Yes, to build it with gcc works for me too on the Solaris Nevada b98 box here. But as wxWidgets will be integrated into OpenSolaris soon(built by Sun Studio), I think it's better to make aMule work with Sun Studio 12 too.

Best,
Logged

GonoszTopi

  • The current man in charge of most things.
  • Administrator
  • Hero Member
  • *****
  • Karma: 169
  • Offline Offline
  • Posts: 2685
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #3 on: September 21, 2008, 02:02:19 PM »

Alfred, do you have tested your cryptopp compilation? After compiling cryptopp run 'cryptest.exe v' from the cryptopp source directory, for the Crypto++ validation suite. Until all tests pass, you may play with the optimization flags (using -O1 instead of -O2, adding -DCRYPTOPP_DISABLE_ASM, etc -- sorry, I don't know the compiler flags of Sun Studio, I used the gcc equivalents).

After you have a working cryptopp, rebuild aMule.
Logged
concordia cum veritate

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #4 on: September 22, 2008, 06:53:43 AM »

GonoszTopi, thanks for the hint. The cryptopp built with Sun Studio does have some problem to run the test. It dumps core when "Generating new encryption key...". The core stack is similar with my first post for creating a new aMule profile.
Logged

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #5 on: September 24, 2008, 04:49:05 PM »

After I change the optimization level from -xO2 to -xO1, the test case runs smoothly. And I can now run aMule(built by Sun Studio 12) on my Solaris Nevada b98 box here. But the aMule can't connect to any server in the list(eD2k). It always notifies me something like:

ServerSocket.cpp(754): Connecting to ...... using protocol obfuscation.
ServerConnect.cpp(190): Connected to ...... timed out.
or
Lost connection to ......

I also tried the same profile with the aMule built with GCC on the same box. This one works. The difference is the dependent libraries(libcryptopp and wxWidgets) are also built with GCC.

Any hint on how I can debug this? It might be related to the code tweaking. Will check that too.
Logged

skolnick

  • Global Moderator
  • Hero Member
  • *****
  • Karma: 24
  • Offline Offline
  • Posts: 1188
  • CentOS 6 User
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #6 on: September 25, 2008, 03:05:52 AM »

Hmm...I would guess the issue lies in cryptopp, since AFAIK it's used to obfuscate the traffic when aMule uses obfuscation. Have you tried to connect using no obfuscation? that would tell if the problem lies there or not (I guess)

Regards.
Logged

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #7 on: September 26, 2008, 09:12:07 PM »

Finally figured out the root cause for the problem. It's caused by the fact that Sun Studio doesn't support "__attribute__((__packed__));" in src/OtherStructs.h. And all the packets communication is wrong.

Attached is the drafted patch. Two key issues haven't been resolved:
1. "StatTree.h", line 243: Error: Could not find a match for std::list<CStatTreeItemBase*>::sort(bool(*)(const CStatTreeItemBase*,const CStatTreeItemBase*)) needed in CStatTreeItemBase::ReSortChildren().
The code snippet is:

static bool ValueSort(CStatTreeItemBase* a, CStatTreeItemBase* b);
......
line 243: void ReSortChildren() { wxMutexLocker lock(m_lock); m_children.sort(ValueSort); }

Search in the head <list>. Seems that I need to match the compare function to: void sort (bool (*)(const_reference, const_reference)); But not sure how to do that. So I remove the compare function "ValueSort". It should be fine to use the default one.

2. Similar with 2. "ServerList.cpp", line 534: Error: Could not find a match for std::list<CServer*>::sort(ServerPriorityComparator) needed in CServerList::Sort().
The code snippet is:

struct ServerPriorityComparator {
   bool operator()(const CServer* lhs, const CServer* rhs) {
   ......
   }
};
......
line 534:     m_servers.sort(ServerPriorityComparator());
Haven't found out a replacement for that either. Remove it for now and use the default compare function.

And __FUNCTION__ isn't defined in CC, cc does have that. I think it might be reasonable to replace it with __FILE__+__LINE__(on Solaris) for debug purpose.

Anyway, it works. wxWidgets 2.8.8 will be delivered into OpenSolaris soon. I'll only build libcryptopp myself then. So I'm happy :)

BTW, also put the spec(and patch) to SFE and others could build it from source with CBE on Solaris: https://pkgbuild.svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk/SFEamule.spec.
Logged

skolnick

  • Global Moderator
  • Hero Member
  • *****
  • Karma: 24
  • Offline Offline
  • Posts: 1188
  • CentOS 6 User
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #8 on: September 27, 2008, 03:30:33 AM »

Thanks for your patch, Alfred. i had tried to compile amule with SUN Studio, but never figured why it didn't worked. Therefore, my aMule always went compiled with gcc. I hope the patch gets reviewed and commited.

Regards.
Logged

GonoszTopi

  • The current man in charge of most things.
  • Administrator
  • Hero Member
  • *****
  • Karma: 169
  • Offline Offline
  • Posts: 2685
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #9 on: September 27, 2008, 10:31:45 PM »

I applied parts of your patch to current SVN. I also might have fixed the issue relating to the ValueSort function (key issue #1), please test. Issue #2 needs a bit more investigation.

However, I'm curious about some changes you made.

1.
Code: [Select]
-       result.assign(m_servers.begin(), m_servers.end());
+       result.assign(m_servers.size(), *m_servers.begin());
... and similar changes. The first line copies all elements from the first to the last, while the second one fills result with size() copies of the first element of m_servers. This line could most likely be changed to result  = m_servers;.

2. const-ness changes, such as
Code: [Select]
-       typedef std::pair<uint32, CUpDownClient*> IDMapPair;
+       typedef std::pair<const uint32, CUpDownClient*> IDMapPair;
What's the reason behind these? What error/warning does the compiler issue?

I also post here the changes I applied, for your convenience. The others need to be reviewed/explained.
« Last Edit: September 27, 2008, 10:37:27 PM by GonoszTopi »
Logged
concordia cum veritate

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #10 on: September 28, 2008, 10:18:36 AM »

GonoszTopi, thanks for the quick fix :D

I tried to add "const" to fix key issue #1, but failed:
"StatTree.h", line 243: Error: Could not find a match for std::list<CStatTreeItemBase*>::sort(bool(const CStatTreeItemBase*,const CStatTreeItemBase*)) needed in CStatTreeItemBase::ReSortChildren().

The answer from Sun Studio guy is as below:
"The sort member function is missing from the list template in the default libCstd. Use STLport if you need better conformance to the C++ standard. Or modify the code to use the global sort function instead.
More details in the C++ FAQ:
http://docs.sun.com/source/820-4155/c++_faq.html#LibComp5
See Questions 3, 4, 5, and 6 in section D."

I feel that it's not easy to use STLport now as that means all the C++ libraries will need to build with it. btw, this comment also applies to the key issue #2.

To address your comments in the last post:
1. The comment from Sun Studio guy: "Similar problem as above. In this case, vector::assign is supposed to be a template, but is not a template in libCstd. If you use STLport the code should compile. " I change the code to:
+   const CServer** lbegin = result.begin();
+   CInternalList::const_iterator sbegin = m_servers.begin();
+   for (int i = 0; i < m_servers.size(); i++, lbegin++, sbegin++)
+       result.insert(lbegin, *sbegin);

The similar issue is with vector::insert:
"DownloadQueue.cpp", line 1468: Error: Could not find a match for std::vector<CPartFile*>::insert(CPartFile**, std::deque<CPartFile*>::iterator, std::deque<CPartFile*>::iterator) needed in CDownloadQueue::ObserverAdded(CObserver<CQueueEvent<CPartFile*>>*). Also update it as the attached patch.

How do you think of this?

2. Here is a link to explain the detail of the difference between libCstd and libstlport: http://developers.sun.com/solaris/articles/cmp_stlport_libCstd.html. Example of the build error is as below:
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPArgument*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPArgument*>>>::insert(const std::pair<const std::string, CUPnPArgument*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPArgument*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPArgument*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPArgument, &s_argument, &s_argumentList>.
"UPnPBase.h", line 301:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPAllowedValue*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPAllowedValue*>>>::insert(const std::pair<const std::string, CUPnPAllowedValue*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPAllowedValue*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPAllowedValue*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPAllowedValue, &s_allowedValue, &s_allowedValueList>.
"UPnPBase.h", line 344:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPAction*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPAction*>>>::insert(const std::pair<const std::string, CUPnPAction*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPAction*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPAction*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPAction, &s_action, &s_actionList>.
"UPnPBase.h", line 374:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPStateVariable*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPStateVariable*>>>::insert(const std::pair<const std::string, CUPnPStateVariable*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPStateVariable*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPStateVariable*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPStateVariable, &s_stateVariable, &s_serviceStateTable>.
"UPnPBase.h", line 375:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPDevice*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPDevice*>>>::insert(const std::pair<const std::string, CUPnPDevice*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPDevice*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPDevice*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPDevice, &s_device, &s_deviceList>.
"UPnPBase.h", line 482:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPService*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPService*>>>::insert(const std::pair<const std::string, CUPnPService*>&).
"UPnPBase.h", line 161:     Where: While specializing "std::map<const std::string, CUPnPService*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPService*>>>".
"UPnPBase.h", line 161:     Where: Specialized in CXML_List<CUPnPService, &s_service, &s_serviceList>.
"UPnPBase.h", line 483:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPRootDevice*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPRootDevice*>>>::insert(const std::pair<const std::string, CUPnPRootDevice*>&).
"UPnPBase.h", line 561:     Where: While specializing "std::map<const std::string, CUPnPRootDevice*, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPRootDevice*>>>".
"UPnPBase.h", line 561:     Where: Specialized in non-template code.
"/opt/SUNWspro/prod/include/CC/Cstd/./map", line 251: Error: Multiple declaration for std::map<const std::string, CUPnPPortMapping, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPPortMapping>>>::insert(const std::pair<const std::string, CUPnPPortMapping>&).
"UPnPBase.h", line 563:     Where: While specializing "std::map<const std::string, CUPnPPortMapping, std::less<const std::string>, std::allocator<std::pair<const std::string, CUPnPPortMapping>>>".
"UPnPBase.h", line 563:     Where: Specialized in non-template code.

Also found another build error for "amulesig_out.AddLine(wxT(VERSION " " SVNDATE));" in amule.cpp. Not sure how to fix that.

Anyway, attachment is all the changes I did to make it compile.
Logged

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #11 on: September 28, 2008, 10:33:37 AM »

The build error for "amulesig_out.AddLine(wxT(VERSION " " SVNDATE));" is as below:

"amule.cpp", line 1246: Error: Strings of differing character types cannot be catenated.
"amule.cpp", line 1246: Error: Strings of differing character types cannot be catenated.

BTW, I still have crash for aMule 2.2.2 built with Sun Studio on Solaris Nevada b98 when the download finishes for one file. The stack is attached. Something wrong with wxWidgets or gtk?
Logged

Stu Redman

  • Administrator
  • Hero Member
  • *****
  • Karma: 214
  • Offline Offline
  • Posts: 3739
  • Engines screaming
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #12 on: September 28, 2008, 11:11:22 AM »

Build error is fixed in tomorrow's tarball:
Code: [Select]
#ifdef SVNDATE
amulesig_out.AddLine(CFormat(wxT("%s %s")) % wxT(VERSION) % wxT(SVNDATE));
#else
amulesig_out.AddLine(wxT(VERSION));
#endif
Logged
The image of mother goddess, lying dormant in the eyes of the dead, the sheaf of the corn is broken, end the harvest, throw the dead on the pyre -- Iron Maiden, Isle of Avalon

GonoszTopi

  • The current man in charge of most things.
  • Administrator
  • Hero Member
  • *****
  • Karma: 169
  • Offline Offline
  • Posts: 2685
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #13 on: September 28, 2008, 05:43:47 PM »

You may also try if the change below works, as it must be faster/lighter than the one using CFormat.
Code: [Select]
- amulesig_out.AddLine(wxT(VERSION " " SVNDATE));
+ amulesig_out.AddLine(wxT(VERSION) wxT(" ") wxT(SVNDATE));

I'd also like to ask you try if the following change works:
Code: [Select]
- result.assign(m_servers.begin(), m_servers.end());
+ result = m_servers;

I'll see what I can do to make that broken STL implementation work.

(I'll provide a real patch when I'll get near the code again.)
Logged
concordia cum veritate

Alfred

  • Approved Newbie
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 12
Re: Fail to run aMule 2.2.2 on Solaris x86 after building with Sun Studio 12
« Reply #14 on: September 28, 2008, 06:58:02 PM »

GonoszTopi, the first code snippet works. The second doesn't, with the error below:

"ServerList.cpp", line 880: Error: Cannot assign std::list<CServer*> to std::vector<CServer*> without "std::vector<CServer*>::operator=(const std::vector<CServer*>&)";.
"ServerList.cpp", line 931: Error: Cannot assign const std::list<CServer*> to std::vector<const CServer*> without "std::vector<const CServer*>::operator=(const std::vector<const CServer*>&)";.
Logged
Pages: [1] 2