Prechádzať zdrojové kódy

Merge pull request #304 from daniellimws/fix-openbsd

Fix build on OpenBSD
bunnei 8 rokov pred
rodič
commit
c82a4df000

+ 1 - 0
externals/CMakeLists.txt

@@ -17,6 +17,7 @@ endif()
 
 
 # libfmt
 # libfmt
 add_subdirectory(fmt)
 add_subdirectory(fmt)
+add_library(fmt::fmt ALIAS fmt)
 
 
 # getopt
 # getopt
 if (MSVC)
 if (MSVC)

+ 1 - 1
externals/fmt

@@ -1 +1 @@
-Subproject commit ac5484c4e7365b59d8c7e14db6778de26635e428
+Subproject commit 4d35f94133ed14794e53c9f8627d047b408e0dc7

+ 13 - 1
src/common/swap.h

@@ -103,7 +103,19 @@ inline __attribute__((always_inline)) u64 swap64(u64 _data) {
     return __builtin_bswap64(_data);
     return __builtin_bswap64(_data);
 }
 }
 #elif defined(__Bitrig__) || defined(__OpenBSD__)
 #elif defined(__Bitrig__) || defined(__OpenBSD__)
-// swap16, swap32, swap64 are left as is
+// redefine swap16, swap32, swap64 as inline functions
+#undef swap16
+#undef swap32
+#undef swap64
+inline u16 swap16(u16 _data) {
+    return __swap16(_data);
+}
+inline u32 swap32(u32 _data) {
+    return __swap32(_data);
+}
+inline u64 swap64(u64 _data) {
+    return __swap64(_data);
+}
 #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
 #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)
 inline u16 swap16(u16 _data) {
 inline u16 swap16(u16 _data) {
     return bswap16(_data);
     return bswap16(_data);

+ 6 - 6
src/core/hle/service/service.cpp

@@ -112,15 +112,15 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(Kernel::HLERequestContext
     auto cmd_buf = ctx.CommandBuffer();
     auto cmd_buf = ctx.CommandBuffer();
     std::string function_name = info == nullptr ? fmt::format("{}", ctx.GetCommand()) : info->name;
     std::string function_name = info == nullptr ? fmt::format("{}", ctx.GetCommand()) : info->name;
 
 
-    fmt::MemoryWriter w;
-    w.write("function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name,
-            cmd_buf[0]);
+    fmt::memory_buffer buf;
+    fmt::format_to(buf, "function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name,
+                   cmd_buf[0]);
     for (int i = 1; i <= 8; ++i) {
     for (int i = 1; i <= 8; ++i) {
-        w.write(", [{}]={:#x}", i, cmd_buf[i]);
+        fmt::format_to(buf, ", [{}]={:#x}", i, cmd_buf[i]);
     }
     }
-    w << '}';
+    buf.push_back('}');
 
 
-    LOG_ERROR(Service, "unknown / unimplemented %s", w.c_str());
+    LOG_ERROR(Service, "unknown / unimplemented %s", fmt::to_string(buf).c_str());
     UNIMPLEMENTED();
     UNIMPLEMENTED();
 }
 }