mac osx building fixes
This commit is contained in:
parent
67df296650
commit
79a4bedc36
|
@ -3,20 +3,20 @@ cmake_minimum_required(VERSION 2.8.6)
|
||||||
set(VERSION "0.1")
|
set(VERSION "0.1")
|
||||||
# $Format:Packaged from commit %H%nset(COMMIT %h)%nset(REFS "%d")$
|
# $Format:Packaged from commit %H%nset(COMMIT %h)%nset(REFS "%d")$
|
||||||
|
|
||||||
function(set_static_flags)
|
|
||||||
if (NOT APPLE)
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
|
|
||||||
endif()
|
|
||||||
endfunction(set_static_flags)
|
|
||||||
|
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
|
set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
|
function(set_static_flags)
|
||||||
|
if (NOT APPLE)
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
|
||||||
|
endif()
|
||||||
|
endfunction(set_static_flags)
|
||||||
|
|
||||||
include_directories(src contrib/epee/include external "${CMAKE_BINARY_DIR}/version")
|
include_directories(src contrib/epee/include external "${CMAKE_BINARY_DIR}/version")
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
include_directories(SYSTEM /usr/include/malloc)
|
include_directories(SYSTEM /usr/include/malloc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(STATIC ${MSVC} CACHE BOOL "Link libraries statically")
|
set(STATIC ${MSVC} CACHE BOOL "Link libraries statically")
|
||||||
|
@ -61,6 +61,9 @@ else()
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG}")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG}")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG}")
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_HAS_TR1_TUPLE=0")
|
||||||
|
endif()
|
||||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8))
|
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.8))
|
||||||
set(DEBUG_FLAGS "-g3 -Og")
|
set(DEBUG_FLAGS "-g3 -Og")
|
||||||
else()
|
else()
|
||||||
|
@ -90,8 +93,10 @@ endif()
|
||||||
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
|
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(Boost_LIBRARIES "${Boost_LIBRARIES};ws2_32;mswsock")
|
set(Boost_LIBRARIES "${Boost_LIBRARIES};ws2_32;mswsock")
|
||||||
elseif(NOT MSVC)
|
elseif(APPLE)
|
||||||
set(Boost_LIBRARIES "${Boost_LIBRARIES}")
|
set(Boost_LIBRARIES "${Boost_LIBRARIES}")
|
||||||
|
elseif(NOT MSVC)
|
||||||
|
set(Boost_LIBRARIES "${Boost_LIBRARIES};rt")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(COMMIT_ID_IN_VERSION ON CACHE BOOL "Include commit ID in version")
|
set(COMMIT_ID_IN_VERSION ON CACHE BOOL "Include commit ID in version")
|
||||||
|
|
|
@ -153,7 +153,7 @@ namespace net_utils
|
||||||
bool init_server(const std::string port, const std::string& address = "0.0.0.0");
|
bool init_server(const std::string port, const std::string& address = "0.0.0.0");
|
||||||
|
|
||||||
/// Run the server's io_service loop.
|
/// Run the server's io_service loop.
|
||||||
bool run_server(size_t threads_count, bool wait = true);
|
bool run_server(size_t threads_count, bool wait = true, const boost::thread::attributes& attrs = boost::thread::attributes());
|
||||||
|
|
||||||
/// wait for service workers stop
|
/// wait for service workers stop
|
||||||
bool timed_wait_server_stop(uint64_t wait_mseconds);
|
bool timed_wait_server_stop(uint64_t wait_mseconds);
|
||||||
|
|
|
@ -524,7 +524,7 @@ POP_WARNINGS
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
template<class t_protocol_handler>
|
template<class t_protocol_handler>
|
||||||
bool boosted_tcp_server<t_protocol_handler>::run_server(size_t threads_count, bool wait)
|
bool boosted_tcp_server<t_protocol_handler>::run_server(size_t threads_count, bool wait, const boost::thread::attributes& attrs)
|
||||||
{
|
{
|
||||||
TRY_ENTRY();
|
TRY_ENTRY();
|
||||||
m_threads_count = threads_count;
|
m_threads_count = threads_count;
|
||||||
|
@ -538,7 +538,7 @@ POP_WARNINGS
|
||||||
for (std::size_t i = 0; i < threads_count; ++i)
|
for (std::size_t i = 0; i < threads_count; ++i)
|
||||||
{
|
{
|
||||||
boost::shared_ptr<boost::thread> thread(new boost::thread(
|
boost::shared_ptr<boost::thread> thread(new boost::thread(
|
||||||
boost::bind(&boosted_tcp_server<t_protocol_handler>::worker_thread, this)));
|
attrs, boost::bind(&boosted_tcp_server<t_protocol_handler>::worker_thread, this)));
|
||||||
m_threads.push_back(thread);
|
m_threads.push_back(thread);
|
||||||
}
|
}
|
||||||
CRITICAL_REGION_END();
|
CRITICAL_REGION_END();
|
||||||
|
|
|
@ -210,7 +210,7 @@ namespace epee
|
||||||
template<class t_value>
|
template<class t_value>
|
||||||
bool portable_storage::get_value(const std::string& value_name, t_value& val, hsection hparent_section)
|
bool portable_storage::get_value(const std::string& value_name, t_value& val, hsection hparent_section)
|
||||||
{
|
{
|
||||||
//BOOST_MPL_ASSERT(( boost::mpl::contains<storage_entry::types, t_value> ));
|
BOOST_MPL_ASSERT(( boost::mpl::contains<storage_entry::types, t_value> ));
|
||||||
//TRY_ENTRY();
|
//TRY_ENTRY();
|
||||||
if(!hparent_section) hparent_section = &m_root;
|
if(!hparent_section) hparent_section = &m_root;
|
||||||
storage_entry* pentry = find_storage_entry(value_name, hparent_section);
|
storage_entry* pentry = find_storage_entry(value_name, hparent_section);
|
||||||
|
|
|
@ -79,5 +79,5 @@
|
||||||
#define P2P_NET_DATA_FILENAME "p2pstate.bin"
|
#define P2P_NET_DATA_FILENAME "p2pstate.bin"
|
||||||
#define MINER_CONFIG_FILE_NAME "miner_conf.json"
|
#define MINER_CONFIG_FILE_NAME "miner_conf.json"
|
||||||
|
|
||||||
|
#define THREAD_STACK_SIZE 5 * 1024 * 1024
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ namespace cryptonote
|
||||||
return !m_stop;
|
return !m_stop;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------
|
||||||
bool miner::start(const account_public_address& adr, size_t threads_count)
|
bool miner::start(const account_public_address& adr, size_t threads_count, const boost::thread::attributes& attrs)
|
||||||
{
|
{
|
||||||
m_mine_address = adr;
|
m_mine_address = adr;
|
||||||
m_threads_total = static_cast<uint32_t>(threads_count);
|
m_threads_total = static_cast<uint32_t>(threads_count);
|
||||||
|
@ -218,7 +218,9 @@ namespace cryptonote
|
||||||
boost::interprocess::ipcdetail::atomic_write32(&m_thread_index, 0);
|
boost::interprocess::ipcdetail::atomic_write32(&m_thread_index, 0);
|
||||||
|
|
||||||
for(size_t i = 0; i != threads_count; i++)
|
for(size_t i = 0; i != threads_count; i++)
|
||||||
m_threads.push_back(boost::thread(boost::bind(&miner::worker_thread, this)));
|
{
|
||||||
|
m_threads.push_back(boost::thread(attrs, boost::bind(&miner::worker_thread, this)));
|
||||||
|
}
|
||||||
|
|
||||||
LOG_PRINT_L0("Mining has started with " << threads_count << " threads, good luck!" )
|
LOG_PRINT_L0("Mining has started with " << threads_count << " threads, good luck!" )
|
||||||
return true;
|
return true;
|
||||||
|
@ -269,7 +271,10 @@ namespace cryptonote
|
||||||
{
|
{
|
||||||
if(m_do_mining)
|
if(m_do_mining)
|
||||||
{
|
{
|
||||||
start(m_mine_address, m_threads_total);
|
boost::thread::attributes attrs;
|
||||||
|
attrs.set_stack_size(THREAD_STACK_SIZE);
|
||||||
|
|
||||||
|
start(m_mine_address, m_threads_total, attrs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace cryptonote
|
||||||
static void init_options(boost::program_options::options_description& desc);
|
static void init_options(boost::program_options::options_description& desc);
|
||||||
bool set_block_template(const block& bl, const difficulty_type& diffic, uint64_t height);
|
bool set_block_template(const block& bl, const difficulty_type& diffic, uint64_t height);
|
||||||
bool on_block_chain_update();
|
bool on_block_chain_update();
|
||||||
bool start(const account_public_address& adr, size_t threads_count);
|
bool start(const account_public_address& adr, size_t threads_count, const boost::thread::attributes& attrs);
|
||||||
uint64_t get_speed();
|
uint64_t get_speed();
|
||||||
void send_stop_signal();
|
void send_stop_signal();
|
||||||
bool stop();
|
bool stop();
|
||||||
|
|
|
@ -291,7 +291,10 @@ private:
|
||||||
threads_count = (ok && 0 < threads_count) ? threads_count : 1;
|
threads_count = (ok && 0 < threads_count) ? threads_count : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_srv.get_payload_object().get_core().get_miner().start(adr, threads_count);
|
boost::thread::attributes attrs;
|
||||||
|
attrs.set_stack_size(THREAD_STACK_SIZE);
|
||||||
|
|
||||||
|
m_srv.get_payload_object().get_core().get_miner().start(adr, threads_count, attrs);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
|
|
|
@ -278,9 +278,12 @@ namespace nodetool
|
||||||
m_net_server.add_idle_handler(boost::bind(&node_server<t_payload_net_handler>::idle_worker, this), 1000);
|
m_net_server.add_idle_handler(boost::bind(&node_server<t_payload_net_handler>::idle_worker, this), 1000);
|
||||||
m_net_server.add_idle_handler(boost::bind(&t_payload_net_handler::on_idle, &m_payload_handler), 1000);
|
m_net_server.add_idle_handler(boost::bind(&t_payload_net_handler::on_idle, &m_payload_handler), 1000);
|
||||||
|
|
||||||
|
boost::thread::attributes attrs;
|
||||||
|
attrs.set_stack_size(THREAD_STACK_SIZE);
|
||||||
|
|
||||||
//go to loop
|
//go to loop
|
||||||
LOG_PRINT("Run net_service loop( " << thrds_count << " threads)...", LOG_LEVEL_0);
|
LOG_PRINT("Run net_service loop( " << thrds_count << " threads)...", LOG_LEVEL_0);
|
||||||
if(!m_net_server.run_server(thrds_count))
|
if(!m_net_server.run_server(thrds_count, true, attrs))
|
||||||
{
|
{
|
||||||
LOG_ERROR("Failed to run net tcp server!");
|
LOG_ERROR("Failed to run net tcp server!");
|
||||||
}
|
}
|
||||||
|
|
|
@ -252,7 +252,10 @@ namespace cryptonote
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!m_core.get_miner().start(adr, static_cast<size_t>(req.threads_count)))
|
boost::thread::attributes attrs;
|
||||||
|
attrs.set_stack_size(THREAD_STACK_SIZE);
|
||||||
|
|
||||||
|
if(!m_core.get_miner().start(adr, static_cast<size_t>(req.threads_count), attrs))
|
||||||
{
|
{
|
||||||
res.status = "Failed, mining not started";
|
res.status = "Failed, mining not started";
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
void set_process_affinity(int core)
|
void set_process_affinity(int core)
|
||||||
{
|
{
|
||||||
#if defined (__APPLE__)
|
#if defined(__APPLE__)
|
||||||
return;
|
return;
|
||||||
#elif defined(BOOST_WINDOWS)
|
#elif defined(BOOST_WINDOWS)
|
||||||
DWORD_PTR mask = 1;
|
DWORD_PTR mask = 1;
|
||||||
|
|
Loading…
Reference in New Issue