<p>I just had this problem happen...  On Mac OS 12.4, I installed boost with homebrew, and it was installed to <code>/opt/homebrew/Cellar/boost/1.82.0_1</code></p>
<p>When I ran <code>./configure</code> I got:</p>
<pre><code>checking whether the Boost::System library is available... no
checking whether the Boost::Filesystem library is available... no
checking whether the Boost::Program_Options library is available... no
checking whether the Boost::Thread library is available... no
checking whether the Boost::Chrono library is available... no
checking whether the Boost::Unit_Test_Framework library is available... no
checking for dynamic linked boost test... no
checking for mismatched boost c++11 scoped enums... ok
configure: error: No working boost sleep implementation found.
</code></pre>
<p>So I added the with-boost flag with that path: <code>./configure --with-boost=/opt/homebrew/Cellar/boost/1.82.0_1</code></p>
<p>And then it worked.  But running <code>make</code> failed for various reasons such as missing import statements, std::placeholder conflicting with boost::placeholder and other reasons...  So I had to make the following changes:</p>
<pre><code>diff --git a/src/httpserver.cpp b/src/httpserver.cpp
index e1763c6ad..66390c4e3 100644
--- a/src/httpserver.cpp
+++ b/src/httpserver.cpp
@@ -16,6 +16,7 @@
 #include &lt;stdlib.h&gt;
 #include &lt;string.h&gt;
 
+#include &lt;deque&gt;
 #include &lt;sys/types.h&gt;
 #include &lt;sys/stat.h&gt;
 #include &lt;signal.h&gt;
</code></pre>
<pre><code>diff --git a/src/miner.h b/src/miner.h
index 3ba92b16b..993bde682 100644
--- a/src/miner.h
+++ b/src/miner.h
@@ -73,7 +73,7 @@ struct modifiedentry_iter {
 // except operating on CTxMemPoolModifiedEntry.
 // TODO: refactor to avoid duplication of this logic.
 struct CompareModifiedEntry {
-    bool operator()(const CTxMemPoolModifiedEntry &amp;a, const CTxMemPoolModifiedEntry &amp;b)
+    bool operator()(const CTxMemPoolModifiedEntry &amp;a, const CTxMemPoolModifiedEntry &amp;b) const
     {
         double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors;
         double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors;
@@ -88,7 +88,7 @@ struct CompareModifiedEntry {
 // This is sufficient to sort an ancestor package in an order that is valid
 // to appear in a block.
 struct CompareTxIterByAncestorCount {
-    bool operator()(const CTxMemPool::txiter &amp;a, const CTxMemPool::txiter &amp;b)
+    bool operator()(const CTxMemPool::txiter &amp;a, const CTxMemPool::txiter &amp;b) const
     {
         if (a-&gt;GetCountWithAncestors() != b-&gt;GetCountWithAncestors())
             return a-&gt;GetCountWithAncestors() &lt; b-&gt;GetCountWithAncestors();
</code></pre>
<pre><code>diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 3ec1a1c27..54a6c5f36 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -31,6 +31,7 @@
 #include &quot;validationinterface.h&quot;
 
 #include &lt;boost/thread.hpp&gt;
+#include &lt;array&gt;
 
 #if defined(NDEBUG)
 # error &quot;Bitcoin cannot be compiled without assertions.&quot;
</code></pre>
<pre><code>diff --git a/src/test/cuckoocache_tests.cpp b/src/test/cuckoocache_tests.cpp
index 00446aa11..29bc0acc7 100644
--- a/src/test/cuckoocache_tests.cpp
+++ b/src/test/cuckoocache_tests.cpp
@@ -7,6 +7,7 @@
 #include &quot;random.h&quot;
 #include &lt;thread&gt;
 #include &lt;boost/thread.hpp&gt;
+#include &lt;deque&gt;
 
 
 /** Test Suite for CuckooCache
</code></pre>
<pre><code>diff --git a/src/txmempool.h b/src/txmempool.h
index db1a02455..05d68b645 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -229,7 +229,7 @@ struct mempoolentry_txid
 class CompareTxMemPoolEntryByDescendantScore
 {
 public:
-    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b)
+    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b) const
     {
         bool fUseADescendants = UseDescendantScore(a);
         bool fUseBDescendants = UseDescendantScore(b);
@@ -251,7 +251,7 @@ public:
     }
 
     // Calculate which score to use for an entry (avoiding division).
-    bool UseDescendantScore(const CTxMemPoolEntry &amp;a)
+    bool UseDescendantScore(const CTxMemPoolEntry &amp;a) const
     {
         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
@@ -266,7 +266,7 @@ public:
 class CompareTxMemPoolEntryByScore
 {
 public:
-    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b)
+    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b) const
     {
         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
@@ -280,7 +280,7 @@ public:
 class CompareTxMemPoolEntryByEntryTime
 {
 public:
-    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b)
+    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b) const
     {
         return a.GetTime() &lt; b.GetTime();
     }
@@ -289,7 +289,7 @@ public:
 class CompareTxMemPoolEntryByAncestorFee
 {
 public:
-    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b)
+    bool operator()(const CTxMemPoolEntry&amp; a, const CTxMemPoolEntry&amp; b) const
     {
         double aFees = a.GetModFeesWithAncestors();
         double aSize = a.GetSizeWithAncestors();
@@ -656,7 +656,7 @@ public:
 
     /** Estimate priority needed to get into the next nBlocks */
     double estimatePriority(int nBlocks) const;
-    
+
     /** Write/Read estimates to disk */
     bool WriteFeeEstimates(CAutoFile&amp; fileout) const;
     bool ReadFeeEstimates(CAutoFile&amp; filein);
@@ -705,7 +705,7 @@ private:
     void removeUnchecked(txiter entry, MemPoolRemovalReason reason = MemPoolRemovalReason::UNKNOWN);
 };
 
-/** 
+/**
  * CCoinsView that brings transactions from a memorypool into view.
  * It does not check for spendings by memory pool transactions.
  */
</code></pre>
<pre><code>diff --git a/src/validation.cpp b/src/validation.cpp
index fe8f8365b..6dcd1f0c4 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -170,6 +170,7 @@ private:
 
 public:
     MemPoolConflictRemovalTracker(CTxMemPool &amp;_pool) : pool(_pool) {
+        using namespace boost::placeholders;
         pool.NotifyEntryRemoved.connect(boost::bind(&amp;MemPoolConflictRemovalTracker::NotifyEntryRemoved, this, _1, _2));
     }
 
@@ -180,6 +181,7 @@ public:
     }
 
     ~MemPoolConflictRemovalTracker() {
+        using namespace boost::placeholders;
         pool.NotifyEntryRemoved.disconnect(boost::bind(&amp;MemPoolConflictRemovalTracker::NotifyEntryRemoved, this, _1, _2));
         for (const auto&amp; tx : conflictedTxs) {
             GetMainSignals().SyncTransaction(*tx, NULL, CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK);
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp
index d4121a28b..3b89b1c2c 100644
--- a/src/validationinterface.cpp
+++ b/src/validationinterface.cpp
@@ -12,6 +12,8 @@ CMainSignals&amp; GetMainSignals()
     return g_signals;
 }
 
+using namespace boost::placeholders;
+
 void RegisterValidationInterface(CValidationInterface* pwalletIn) {
     g_signals.UpdatedBlockTip.connect(boost::bind(&amp;CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3));
     g_signals.SyncTransaction.connect(boost::bind(&amp;CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3));
</code></pre>
<p>and now I can run make and it works and built <code>bitcoind</code> and <code>bitcoin-cli</code></p>

CC BY-SA 4.0
2023-07-01T17:11:44.143Z
The src/miner.h file doesn't exist anymore since Bitcoin Core v23.0; what version are you trying to compile?
Pieter Wuille
CC BY-SA 4.0
2023-07-01T17:17:23.133Z
Also, CompareModifiedEntry doesn't exist anymore since 0.16.0, released in 2018.
Pieter Wuille
CC BY-SA 4.0
2023-07-01T19:57:09.800Z
Wow, my git must have gotten into a weird state..  I was on master and had fetched / reset hard, but apparently had files from older commits, so I just deleted everything and re-cloned bitcoin and looks like most of those problems are resolved, except I am getting `test/fuzz/http_request.cpp:12:10: fatal error: 'event2/buffer.h' file not found` despite having libevent installed at `/opt/homebrew/Cellar/libevent/2.1.12_1` ...  Was not sure how to get around that other than to perhaps reconfigure with `--disable-tests`
patrick
CC BY-SA 4.0
2023-07-01T20:50:37.990Z
Sorry, I'm not familiar with MacOS building. Have you read the doc/build-osx.md file?
Pieter Wuille
CC BY-SA 4.0
2023-07-01T01:31:01.927Z
2023-07-01T17:09:55.950Z
2023-07-01T17:09:55.950Z
patrick
<p>After running 'autogen.sh', './configure' and then 'make', I keep getting the following error:</p>
<p><code>Undefined symbols for architecture x86_64:   &quot;__ZN5boost10filesystem4path5imbueERKSt6locale&quot;, referenced from:       __Z16SetupEnvironmentv in libbitcoin_util.a(libbitcoin_util_a-system.o) ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[2]: *** [bitcoind] Error 1 make[1]: *** [check-recursive] Error 1 make: *** [check-recursive] Error 1</code></p>
<p>I was told that boost is clang compiled and thus, GCC incompatible, so I've been trying to recompile boost with GCC via:</p>
<ol>
<li><code>HOMEBREW_CC=gcc-10 HOMEBREW_CXX=g++-10 brew install --build-from-source boost --HEAD</code></li>
<li>`brew install boost --build-from-source --HEAD'</li>
</ol>
<p>Both of these commands throw the following patching error though:</p>
<p><code>==&gt; Patching ==&gt; Applying 7b3fc734242eea9af734d6cd8ccb3d8f6b64c5b2.patch patching file boost-install.jam Hunk #1 FAILED at 483. 1 out of 1 hunk FAILED -- saving rejects to file boost-install.jam.rej</code></p>
<p>Any idea how to fix this problem and successfully recompile boost? Please let me know!</p>
<p><strong>EDIT:</strong> For clarification, I'm trying to build Bitcoin Core v0.21.0 on macOS Catalina version 10.15.7</p>
<p><strong>UPDATE:</strong>
Finally got this working - turned out I had an outdated version of gcc installed via MacPorts, in addition to Apple's default compiler, which seemed to have been interfering with things. Once I uninstalled MacPorts, everything started working smoothly if I configured with <code>--with-gui=no</code></p>

CC BY-SA 4.0
2021-03-16T16:40:55.603Z
Provide more details:
What is your OS ? Which version ? Are you cross-compiling ? If yes, on which system? For which system ?
Gladiator9120
CC BY-SA 4.0
2021-03-16T16:46:55.687Z
@Gladiator9120 Thanks for the reply -  I'm running on macOS Catalina version 10.15.7, and I'm compiling with gcc-10, don't believe I'm cross-compiling but I'm new to this so I may be wrong. If it helps, I've been configuring bitcoin-core with this command: `./configure CXX=g++-10 CPP=cpp-10 CC=gcc-10`
Julian Moraes
CC BY-SA 4.0
2021-03-16T17:48:40.883Z
Alternatively you could do make in the depends folder in core then configure again this would compile the dependencies. I cant get brew's boost to compile with gcc either.
MCCCS
CC BY-SA 4.0
2021-03-16T18:25:44.483Z
Appreciate you trying! And I'll try that now - do I still run `./configure CXX=g++-10 CC=gcc-10` before running `make` in the depends folder?
Julian Moraes
CC BY-SA 4.0
2021-03-16T18:26:55.073Z
And do I need a `--prefix=` arg when I configure again?
Julian Moraes
CC BY-SA 4.0
2021-03-16T20:44:01.800Z
It may help if you also included which version of Bitcoin Core you're trying to build.
Murch
CC BY-SA 4.0
2021-03-16T20:46:40.187Z
@Murch Will add that - I'm trying to build v0.21.0
Julian Moraes
CC BY-SA 4.0
2021-03-16T20:50:24.460Z
Depends doesn't need prefix. every time you use configure use it as `CXX=g++-10 CC=gcc-10 ./configure` your order might work too however i'm not sure if that works.
MCCCS
CC BY-SA 4.0
2021-03-16T20:55:42.197Z
Ok awesome, I'll try this and let you know how it goes
Julian Moraes
CC BY-SA 4.0
2021-03-17T03:35:01.347Z
Got it working - turned out I had an outdated version of gcc installed via MacPorts in addition to Apple's default compiler which seems to have been interfering with things. Once I uninstalled MacPorts, everything started working smoothly if I configured with `--with-gui=no`
Julian Moraes
<bitcoin-core><bitcoind><mac><compiling>
Bitcoin fails to compile with Boost
Julian Moraes
# Bitcoin fails to compile with Boost

(Asked by: username_0 on 2021-03-16)

After running 'autogen.sh', './configure' and then 'make', I keep getting the following error:

`Undefined symbols for architecture x86_64: "__ZN5boost10filesystem4path5imbueERKSt6locale", referenced from: __Z16SetupEnvironmentv in libbitcoin_util.a(libbitcoin_util_a-system.o) ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[2]: *** [bitcoind] Error 1 make[1]: *** [check-recursive] Error 1 make: *** [check-recursive] Error 1`

I was told that boost is clang compiled and thus, GCC incompatible, so I've been trying to recompile boost with GCC via:

1. `HOMEBREW_CC=gcc-10 HOMEBREW_CXX=g++-10 brew install --build-from-source boost --HEAD`
2. `brew install boost --build-from-source --HEAD'

Both of these commands throw the following patching error though:

`==> Patching ==> Applying 7b3fc734242eea9af734d6cd8ccb3d8f6b64c5b2.patch patching file boost-install.jam Hunk #1 FAILED at 483. 1 out of 1 hunk FAILED -- saving rejects to file boost-install.jam.rej`

Any idea how to fix this problem and successfully recompile boost? Please let me know!

**EDIT:** For clarification, I'm trying to build Bitcoin Core v0.21.0 on macOS Catalina version 10.15.7

**UPDATE:**
Finally got this working - turned out I had an outdated version of gcc installed via MacPorts, in addition to Apple's default compiler, which seemed to have been interfering with things. Once I uninstalled MacPorts, everything started working smoothly if I configured with `--with-gui=no`

**Tags:** bitcoin-core, bitcoind, mac, compiling

> **Comments:**
> **username_1**: Provide more details: What is your OS ? Which version ? Are you cross-compiling ? If yes, on which system? For which system ?  
> **username_0**: @username_1 Thanks for the reply -  I'm running on macOS Catalina version 10.15.7, and I'm compiling with gcc-10, don't believe I'm cross-compiling but I'm new to this so I may be wrong. If it helps, I've been configuring bitcoin-core with this command: `./configure CXX=g++-10 CPP=cpp-10 CC=gcc-10`  
> **username_2**: Alternatively you could do make in the depends folder in core then configure again this would compile the dependencies. I cant get brew's boost to compile with gcc either.  
> **username_0**: Appreciate you trying! And I'll try that now - do I still run `./configure CXX=g++-10 CC=gcc-10` before running `make` in the depends folder?  
> **username_0**: And do I need a `--prefix=` arg when I configure again?  
> **username_3**: It may help if you also included which version of Bitcoin Core you're trying to build.  
> **username_0**: @username_3 Will add that - I'm trying to build v0.21.0  
> **username_2**: Depends doesn't need prefix. every time you use configure use it as `CXX=g++-10 CC=gcc-10 ./configure` your order might work too however i'm not sure if that works.  
> **username_0**: Ok awesome, I'll try this and let you know how it goes  
> **username_0**: Got it working - turned out I had an outdated version of gcc installed via MacPorts in addition to Apple's default compiler which seems to have been interfering with things. Once I uninstalled MacPorts, everything started working smoothly if I configured with `--with-gui=no`  

---

## 1 answers

### Answer by username_4 on 2023-07-01. Score: 0

I just had this problem happen...  On Mac OS 12.4, I installed boost with homebrew, and it was installed to /opt/homebrew/Cellar/boost/1.82.0_1
When I ran ./configure I got:
checking whether the Boost::System library is available... no
checking whether the Boost::Filesystem library is available... no
checking whether the Boost::Program_Options library is available... no
checking whether the Boost::Thread library is available... no
checking whether the Boost::Chrono library is available... no
checking whether the Boost::Unit_Test_Framework library is available... no
checking for dynamic linked boost test... no
checking for mismatched boost c++11 scoped enums... ok
configure: error: No working boost sleep implementation found.

So I added the with-boost flag with that path: ./configure --with-boost=/opt/homebrew/Cellar/boost/1.82.0_1
And then it worked.  But running make failed for various reasons such as missing import statements, std::placeholder conflicting with boost::placeholder and other reasons...  So I had to make the following changes:
diff --git a/src/httpserver.cpp b/src/httpserver.cpp
index e1763c6ad..66390c4e3 100644
--- a/src/httpserver.cpp
+++ b/src/httpserver.cpp
@@ -16,6 +16,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 

diff --git a/src/miner.h b/src/miner.h
index 3ba92b16b..993bde682 100644
--- a/src/miner.h
+++ b/src/miner.h
@@ -73,7 +73,7 @@ struct modifiedentry_iter {
 // except operating on CTxMemPoolModifiedEntry.
 // TODO: refactor to avoid duplication of this logic.
 struct CompareModifiedEntry {
-    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
+    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) const
     {
         double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors;
         double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors;
@@ -88,7 +88,7 @@ struct CompareModifiedEntry {
 // This is sufficient to sort an ancestor package in an order that is valid
 // to appear in a block.
 struct CompareTxIterByAncestorCount {
-    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b)
+    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
     {
         if (a->GetCountWithAncestors() != b->GetCountWithAncestors())
             return a->GetCountWithAncestors() < b->GetCountWithAncestors();

diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 3ec1a1c27..54a6c5f36 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -31,6 +31,7 @@
 #include "validationinterface.h"
 
 #include 
+#include 
 
 #if defined(NDEBUG)
 # error "Bitcoin cannot be compiled without assertions."

diff --git a/src/test/cuckoocache_tests.cpp b/src/test/cuckoocache_tests.cpp
index 00446aa11..29bc0acc7 100644
--- a/src/test/cuckoocache_tests.cpp
+++ b/src/test/cuckoocache_tests.cpp
@@ -7,6 +7,7 @@
 #include "random.h"
 #include 
 #include 
+#include 
 
 
 /** Test Suite for CuckooCache

diff --git a/src/txmempool.h b/src/txmempool.h
index db1a02455..05d68b645 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -229,7 +229,7 @@ struct mempoolentry_txid
 class CompareTxMemPoolEntryByDescendantScore
 {
 public:
-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
     {
         bool fUseADescendants = UseDescendantScore(a);
         bool fUseBDescendants = UseDescendantScore(b);
@@ -251,7 +251,7 @@ public:
     }
 
     // Calculate which score to use for an entry (avoiding division).
-    bool UseDescendantScore(const CTxMemPoolEntry &a)
+    bool UseDescendantScore(const CTxMemPoolEntry &a) const
     {
         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
@@ -266,7 +266,7 @@ public:
 class CompareTxMemPoolEntryByScore
 {
 public:
-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
     {
         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
@@ -280,7 +280,7 @@ public:
 class CompareTxMemPoolEntryByEntryTime
 {
 public:
-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
     {
         return a.GetTime() < b.GetTime();
     }
@@ -289,7 +289,7 @@ public:
 class CompareTxMemPoolEntryByAncestorFee
 {
 public:
-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
     {
         double aFees = a.GetModFeesWithAncestors();
         double aSize = a.GetSizeWithAncestors();
@@ -656,7 +656,7 @@ public:
 
     /** Estimate priority needed to get into the next nBlocks */
     double estimatePriority(int nBlocks) const;
-    
+
     /** Write/Read estimates to disk */
     bool WriteFeeEstimates(CAutoFile& fileout) const;
     bool ReadFeeEstimates(CAutoFile& filein);
@@ -705,7 +705,7 @@ private:
     void removeUnchecked(txiter entry, MemPoolRemovalReason reason = MemPoolRemovalReason::UNKNOWN);
 };
 
-/** 
+/**
  * CCoinsView that brings transactions from a memorypool into view.
  * It does not check for spendings by memory pool transactions.
  */

diff --git a/src/validation.cpp b/src/validation.cpp
index fe8f8365b..6dcd1f0c4 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -170,6 +170,7 @@ private:
 
 public:
     MemPoolConflictRemovalTracker(CTxMemPool &_pool) : pool(_pool) {
+        using namespace boost::placeholders;
         pool.NotifyEntryRemoved.connect(boost::bind(&MemPoolConflictRemovalTracker::NotifyEntryRemoved, this, _1, _2));
     }
 
@@ -180,6 +181,7 @@ public:
     }
 
     ~MemPoolConflictRemovalTracker() {
+        using namespace boost::placeholders;
         pool.NotifyEntryRemoved.disconnect(boost::bind(&MemPoolConflictRemovalTracker::NotifyEntryRemoved, this, _1, _2));
         for (const auto& tx : conflictedTxs) {
             GetMainSignals().SyncTransaction(*tx, NULL, CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK);
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp
index d4121a28b..3b89b1c2c 100644
--- a/src/validationinterface.cpp
+++ b/src/validationinterface.cpp
@@ -12,6 +12,8 @@ CMainSignals& GetMainSignals()
     return g_signals;
 }
 
+using namespace boost::placeholders;
+
 void RegisterValidationInterface(CValidationInterface* pwalletIn) {
     g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3));
     g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2, _3));

and now I can run make and it works and built bitcoind and bitcoin-cli

> **Comments:**
> **username_5**: The src/miner.h file doesn't exist anymore since Bitcoin Core v23.0; what version are you trying to compile?  
> **username_5**: Also, CompareModifiedEntry doesn't exist anymore since 0.16.0, released in 2018.  
> **username_4**: Wow, my git must have gotten into a weird state..  I was on master and had fetched / reset hard, but apparently had files from older commits, so I just deleted everything and re-cloned bitcoin and looks like most of those problems are resolved, except I am getting `test/fuzz/http_request.cpp:12:10: fatal error: 'event2/buffer.h' file not found` despite having libevent installed at `/opt/homebrew/Cellar/libevent/2.1.12_1` ...  Was not sure how to get around that other than to perhaps reconfigure with `--disable-tests`  
> **username_5**: Sorry, I'm not familiar with MacOS building. Have you read the doc/build-osx.md file?  

---

