<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">the math headers on 10.5 don't define all the c++11
features, so gcc versions &lt; 7 don't import any of them.
This is fixed in gcc7+. In older versions, one fix is to
just use the Apple standard functions, in this case log2
---
 gfx/ots/src/silf.cc | 6 +++---
 gfx/ots/src/sill.cc | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gfx/ots/src/silf.cc b/gfx/ots/src/silf.cc
index 56970427b..4e696bf7c 100644
--- a/gfx/ots/src/silf.cc
+++ b/gfx/ots/src/silf.cc
@@ -298,7 +298,7 @@ bool OpenTypeSILF::SILSub::ParsePart(Buffer&amp; table) {
       this-&gt;searchPseudo = this-&gt;pseudoSelector = this-&gt;pseudoShift = 0;
     }
   } else {
-    unsigned floorLog2 = std::floor(std::log2(this-&gt;numPseudo));
+    unsigned floorLog2 = std::floor(log2(this-&gt;numPseudo));
     if (this-&gt;searchPseudo != 6 * (unsigned)std::pow(2, floorLog2) ||
         this-&gt;pseudoSelector != floorLog2 ||
         this-&gt;pseudoShift != 6 * this-&gt;numPseudo - this-&gt;searchPseudo) {
@@ -565,7 +565,7 @@ LookupClass::ParsePart(Buffer&amp; table) {
       this-&gt;searchRange = this-&gt;entrySelector = this-&gt;rangeShift = 0;
     }
   } else {
-    unsigned floorLog2 = std::floor(std::log2(this-&gt;numIDs));
+    unsigned floorLog2 = std::floor(log2(this-&gt;numIDs));
     if (this-&gt;searchRange != (unsigned)std::pow(2, floorLog2) ||
         this-&gt;entrySelector != floorLog2 ||
         this-&gt;rangeShift != this-&gt;numIDs - this-&gt;searchRange) {
@@ -694,7 +694,7 @@ SILPass::ParsePart(Buffer&amp; table, const size_t SILSub_init_offset,
       this-&gt;searchRange = this-&gt;entrySelector = this-&gt;rangeShift = 0;
     }
   } else {
-    unsigned floorLog2 = std::floor(std::log2(this-&gt;numRange));
+    unsigned floorLog2 = std::floor(log2(this-&gt;numRange));
     if (this-&gt;searchRange != 6 * (unsigned)std::pow(2, floorLog2) ||
         this-&gt;entrySelector != floorLog2 ||
         this-&gt;rangeShift != 6 * this-&gt;numRange - this-&gt;searchRange) {
diff --git a/gfx/ots/src/sill.cc b/gfx/ots/src/sill.cc
index c7b20a980..cd5cf6803 100644
--- a/gfx/ots/src/sill.cc
+++ b/gfx/ots/src/sill.cc
@@ -35,7 +35,7 @@ bool OpenTypeSILL::Parse(const uint8_t* data, size_t length) {
       this-&gt;searchRange = this-&gt;entrySelector = this-&gt;rangeShift = 0;
     }
   } else {
-    unsigned floorLog2 = std::floor(std::log2(this-&gt;numLangs));
+    unsigned floorLog2 = std::floor(log2(this-&gt;numLangs));
     if (this-&gt;searchRange != (unsigned)std::pow(2, floorLog2) ||
         this-&gt;entrySelector != floorLog2 ||
         this-&gt;rangeShift != this-&gt;numLangs - this-&gt;searchRange) {
</pre></body></html>