diff --git a/0001-arm-glibc-2.30.patch b/0001-arm-glibc-2.30.patch new file mode 100644 index 0000000..8fc88b9 --- /dev/null +++ b/0001-arm-glibc-2.30.patch @@ -0,0 +1,65 @@ +--- a/src/include/final/fsystemimpl.h ++++ b/src/include/final/fsystemimpl.h +@@ -36,9 +36,19 @@ + #endif + + #if defined(__linux__) +- #if defined(__x86_64__) || defined(__i386) || defined(__arm__) +- #include // is deprecated +- #endif // defined(__x86_64__) || defined(__i386) || defined(__arm__) ++ ++ #if defined(__arm__) && defined(__GLIBC__) && defined(__GLIBC_PREREQ) ++ // ISA sysctl support on arm processors only up to glibc-2.29 ++ #if !__GLIBC_PREREQ(2,30) ++ #define ARM_ISA_SYSCTL ++ #endif ++ #endif ++ ++ #if defined(__x86_64__) || defined(__i386) || defined(ARM_ISA_SYSCTL) ++ #define ISA_SYSCTL_SUPPORT ++ #include ++ #endif // defined(__x86_64__) || defined(__i386) || defined(ARM_ISA_SYSCTL) ++ + #endif // defined(__linux__) + + #if defined(__sun) && defined(__SVR4) +@@ -88,8 +98,7 @@ class FSystemImpl : public FSystem + virtual ~FSystemImpl(); + + // Methods +-#if defined(__linux__) +-#if defined(__x86_64__) || defined(__i386) || defined(__arm__) ++#if defined(ISA_SYSCTL_SUPPORT) + uChar inPortByte (uShort port) override + { + return ::inb (port); +@@ -100,16 +109,9 @@ class FSystemImpl : public FSystem + return 0; + } + #endif +-#else +- uChar inPortByte (uShort) override +- { +- return 0; +- } +-#endif + + +-#if defined(__linux__) +-#if defined(__x86_64__) || defined(__i386) || defined(__arm__) ++#if defined(ISA_SYSCTL_SUPPORT) + void outPortByte (uChar value, uShort port) override + { + ::outb (value, port); +@@ -118,11 +120,6 @@ class FSystemImpl : public FSystem + void outPortByte (uChar, uShort) override + { } + #endif +-#else +- void outPortByte (uChar, uShort) override +- { } +-#endif +- + + int isTTY (int fd) override + {