This is as about as far as I got...
It builds with MIPS Pro but I have taken out a couple of core pieces of functionality.
Code:
./src/download/download_info.h ./src/download/download_info.h.orig
----------------------------
207,212c207,208
< }
< #ifdef IRIX64
< ; // MIPS Pro's #pragma packed will not work with compiler flags I am using.
< #else
< __attribute__ ((packed));
< #endif
---
> } __attribute__ ((packed));
>
./src/download/download_constructor.cc ./src/download/download_constructor.cc.orig
----------------------------
322,327d321
<
< #ifdef IRIX64 // I give up.. !!!
< /*
< cc-1278 CC: ERROR File = download_constructor.cc, Line = 324
< No instance of overloaded function "std::mem_fun_ref" matches the argument
< list.
329,337d322
< The argument types are: (<unknown-type>).
< std::transform(plist.begin(), plist.end(), std::back_inserter(p), std::mem_fun_ref<const Object::string_type&>(&Object::as_string));
< ^
<
< 1 error detected in the compilation of "download_constructor.cc".
< */
< // std::transform(plist.begin(), plist.end(), std::back_inserter(p), std::mem_fun_ref<const Object::string_type&>(&Object::as_string));
<
< #else
339,340c324
< #endif
<
---
>
./src/torrent/tracker_list.cc ./src/torrent/tracker_list.cc.orig
----------------------------
37,38d36
< #if 0
<
254d251
< #endif
./src/torrent/peer/connection_list.cc ./src/torrent/peer/connection_list.cc.orig----------------------------
143d142
< #ifdef IRIX64
145,149c144,145
< erase(pos++, flags);
< #else
< while (pos != end())
< erase(--end(), flags);
< #endif
---
> erase(--end(), flags);
>
./src/torrent/chunk_manager.cc ./src/torrent/chunk_manager.cc.orig
----------------------------
115,117d114
< #ifdef IRIX64
< std::iter_swap(itr, (base_type::end() - 1));
< #else
119d115
< #endif
./src/torrent/data/file_utils.cc ./src/torrent/data/file_utils.cc.orig
----------------------------
63,66d62
<
< #ifdef IRIX64
< char *name = new char[nameSize + 4];
< #else
68,69c64
< #endif
<
---
>
87,90c82
< #ifdef IRIX64
< delete[] name;
< #endif
<
---
>
./src/dht/dht_server.h ./src/dht/dht_server.h.orig
----------------------------
120,125c120
< }
< #ifdef IRIX64
< ;
< #else
< __attribute__ ((packed));
< #endif
---
> } __attribute__ ((packed));
./src/resource_manager.cc ./src/resource_manager.cc.orig
----------------------------
142,144d141
< #ifdef IRIX64
< return std::for_each(begin(), end(), rak::accumulate((unsigned int)0, &value_type::first)).result;
< #else
146d142
< #endif
./src/data/hash_torrent.cc ./src/data/hash_torrent.cc.orig
----------------------------
./src/data/chunk_part.cc ./src/data/chunk_part.cc.orig
----------------------------
73,75d72
< #ifdef IRIX64
< char *buf = new char[ touched];
< #else
77c74
< #endif
---
>
82,84d78
< #ifdef IRIX64
< delete[] buf;
< #endif
./src/data/memory_chunk.cc ./src/data/memory_chunk.cc.orig
----------------------------
155,158d154
<
< #ifdef IRIX64
< char *buf = new char[ size ];
< #else
160c156
< #endif
---
>
163,165d158
< #ifdef IRIX64
< delete[] buf;
< #endif
./src/protocol/handshake.cc ./src/protocol/handshake.cc.orig
----------------------------
940,946c940,941
< #ifdef IRIX64
< char *pad = new char[ length ];
< #else
< char pad[length];
< #endif
<
<
---
> char pad[length];
>
949,953d943
<
< #ifdef IRIX64
< delete[] pad;
< #endif
<
./src/protocol/extensions.cc ./src/protocol/extensions.cc.orig
----------------------------
37,39d36
<
< #if 0
<
127c124
< object_buffer_t result = object_write_bencode_c(object_write_to_buffer, NULL, std::make_pair((char *)buffer, (char *) buffer + sizeof(buffer)), &message);
---
> object_buffer_t result = object_write_bencode_c(object_write_to_buffer, NULL, std::make_pair(buffer, buffer + sizeof(buffer)), &message);
312,314d308
<
<
< #endif
./rak/string_manip.h ./rak/string_manip.h.orig
----------------------------
65,68d64
< #ifdef IRIX64
< if (seq.empty() || !std::isspace(*( --(seq.end()) )))
< return seq;
< #else
70,71c66,67
< return seq;
< #endif
---
> return seq;
>
100,103d95
< #ifdef IRIX64
< if (seq.empty() || !std::isspace(*(seq.end() -1), std::locale::classic()))
< return seq;
< #else
105,106c97,98
< return seq;
< #endif
---
> return seq;
>
./rak/ranges.h ./rak/ranges.h.orig
----------------------------
86,93c86,87
< #ifdef IRIX64
< // iterator first = std::find_if(begin(), end(), rak::less_equal(r.first, &value_type::second ));
< iterator first = begin();
< #else
< iterator first = std::find_if(begin(), end(), rak::less_equal(r.first, rak::const_mem_ref( &value_type::second)));
< #endif
<
<
---
> iterator first = std::find_if(begin(), end(), rak::less_equal(r.first, rak::const_mem_ref(&value_type::second)));
>
103,110c97,98
< #ifdef IRIX64
< // iterator last = std::find_if(first, end(), rak::less(first->second, &value_type::second)); // RR:
< iterator last = end();
<
< #else
< iterator last = std::find_if(first, end(), rak::less(first->second, rak::const_mem_ref(&value_type::second))); // RR:
< #endif
<
---
> iterator last = std::find_if(first, end(), rak::less(first->second, rak::const_mem_ref(&value_type::second)));
>
124,135c112,114
< #ifdef IRIX64
< // iterator first = std::find_if(begin(), end(), rak::less(r.first, &value_type::second)); // RR:
< // iterator last = std::find_if(first, end(), rak::less(r.second, &value_type::second)); // RR:
<
< iterator first = begin(); // This is a bad idea...
< iterator last = end();
<
< #else
< iterator first = std::find_if(begin(), end(), rak::less(r.first, rak::const_mem_ref(&value_type::second)));
< iterator last = std::find_if(first, end(), rak::less(r.second, rak::const_mem_ref(&value_type::second)));
<
< #endif
---
> iterator first = std::find_if(begin(), end(), rak::less(r.first, rak::const_mem_ref(&value_type::second)));
> iterator last = std::find_if(first, end(), rak::less(r.second, rak::const_mem_ref(&value_type::second)));
>
165,168d143
< #ifdef IRIX64
< // return std::find_if(begin(), end(), rak::less(index, rak::const_mem_ref(&value_type::second)));
< return end();
< #else
170d144
< #endif
176,178d149
< #ifdef IRIX64
< return end();
< #else
180d150
< #endif
./rak/functional.h ./rak/functional.h.orig
----------------------------
75d74
< #ifndef IRIX64
77,81d75
< #else
< void operator () (const Arg& a) { }
< /**
< cc-1108 CC: ERROR File = ../rak/functional.h, Line = 78
< The indicated expression must have pointer-to-function type.
83,105d76
< void operator () (const Arg& a) { result += m_f(a); }
< ^
< A template was detected during header processing.
< instantiation of "void rak::accumulate_t<unsigned int, uint16_t
< std::pair<uint16_t, torrent::DownloadMain
< *>::*>::operator()(const std::pair<uint16_t,
< torrent::DownloadMain *> &)" at line 83 of
< "/usr/include/CC/stl_algo.h"
< instantiation of "rak::accumulate_t<unsigned int, uint16_t
< std::pair<uint16_t, torrent::DownloadMain *>::*>
< std::for_each(const std::vector<std::pair<uint16_t,
< torrent::DownloadMain *>,
< std::allocator<std::pair<uint16_t, torrent::DownloadMain< *>>>::value_type *, const
< std::vector<std::pair<uint16_t, torrent::DownloadMain
< *>, std::allocator<std::pair<uint16_t,
< torrent::DownloadMain *>>>::value_type *,
< rak::accumulate_t<unsigned int, uint16_t
< std::pair<uint16_t, torrent::DownloadMain *>::*>)"
<
<
< **/
< #endif
The outright hostility you get from people if you are not using their beloveded Linux/GCC make you want to punch the open sores bigot you meet in the head
This is where I might leave it for a while unless some else wants to comment on the error messages I embedded into the comments..
I am going to shutdown now the 12 CPU build server down. Its too hot, too loud and too expensive to run and I don't have any fresh ideas.