Merge pull request #304 from daniellimws/fix-openbsd

Fix build on OpenBSD
This commit is contained in:
bunnei 2018-04-02 18:27:19 -04:00 committed by GitHub
commit c82a4df000
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 8 deletions

View file

@ -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)

2
externals/fmt vendored

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

View file

@ -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);

View file

@ -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; fmt::memory_buffer buf;
w.write("function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name, fmt::format_to(buf, "function '{}': port='{}' cmd_buf={{[0]={:#x}", function_name, service_name,
cmd_buf[0]); 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();
} }