mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-31 12:35:51 +00:00
Merge remote-tracking branch 'origin/main' into split/macos-build
This commit is contained in:
commit
41df89a481
4 files changed
+30
No files matched your search
@@ -451,6 +451,16 @@ if(BUILD_TESTING)
|
||||
set_tests_properties(guest_libc_threads PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libc>")
|
||||
endif()
|
||||
add_test_executable(guest_std_thread_hardware_concurrency_tests ${LIBS_INCLUDE_DIR}/tests/GuestStdThreadHardwareConcurrency.cpp)
|
||||
target_include_directories(guest_std_thread_hardware_concurrency_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_std_thread_hardware_concurrency_tests PRIVATE libc)
|
||||
configure_windows_unwind(guest_std_thread_hardware_concurrency_tests)
|
||||
add_test(NAME guest_std_thread_hardware_concurrency COMMAND guest_std_thread_hardware_concurrency_tests)
|
||||
set_tests_properties(guest_std_thread_hardware_concurrency PROPERTIES TIMEOUT 20)
|
||||
if(WIN32)
|
||||
set_tests_properties(guest_std_thread_hardware_concurrency PROPERTIES ENVIRONMENT_MODIFICATION
|
||||
"PATH=path_list_prepend:$<TARGET_FILE_DIR:libc>")
|
||||
endif()
|
||||
add_test_executable(guest_libc_static_imports_tests ${LIBS_INCLUDE_DIR}/tests/GuestLibcStaticImports.cpp)
|
||||
target_include_directories(guest_libc_static_imports_tests PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(guest_libc_static_imports_tests PRIVATE libc)
|
||||
|
||||
@@ -350,6 +350,10 @@ int SignalCondition_nid_no_patch(void** handle) {
|
||||
return threadSuccess;
|
||||
}
|
||||
|
||||
unsigned APS5_VABI _ZNSt6thread20hardware_concurrencyEv_nid_postfix() {
|
||||
return std::thread::hardware_concurrency();
|
||||
}
|
||||
|
||||
int APS5_VABI _Thrd_sleep_nid_postfix(const Xtime* target, Xtime*) {
|
||||
if (!target)
|
||||
APS5_INVALID_ARG_EX;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#include "prx/libc/include/general/VabiMacros.hpp"
|
||||
#include <cstdio>
|
||||
#include <thread>
|
||||
|
||||
extern "C" unsigned APS5_VABI _ZNSt6thread20hardware_concurrencyEv_nid_postfix();
|
||||
|
||||
int main() {
|
||||
const unsigned result = _ZNSt6thread20hardware_concurrencyEv_nid_postfix();
|
||||
if (result != std::thread::hardware_concurrency()) {
|
||||
std::fprintf(stderr, "guest processor hint %u differs from std::thread::hardware_concurrency %u\n",
|
||||
result, std::thread::hardware_concurrency());
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -61,6 +61,7 @@
|
||||
### Functional
|
||||
|
||||
- [_Cosh](../../../core/libs/prx/libc/src/Math.cpp) (libc) follows the two-argument Dinkumware CRT helper used by `std::complex`, including a scaled large-finite-input path; the signature, exact result and floating-point exception behavior are not verified against the console.
|
||||
- [std::thread::hardware_concurrency](../../../core/libs/prx/libc/src/Threads.cpp) (libc, NID `CHrhwd8QSBs`) returns the host's `std::thread::hardware_concurrency()` (which may be 0 when unknown) instead of the console's processor count; no reference implements it and the value a title expects (PPSA34015 imports it) is unverified.
|
||||
- [fmodf](../../../core/libs/prx/libc/src/Math.cpp) (libc) - console `errno`, exception flags and NaN payloads remain unverified. The wrapper preserves `errno` like the existing double `fmod`, following FreeBSD 11.4 [`e_fmodf.c`](https://github.com/freebsd/freebsd-src/blob/release/11.4.0/lib/msun/src/e_fmodf.c); host `std::fmod` still supplies the result and exception flags.
|
||||
- [_FSinh and _FCosh](../../../core/libs/prx/libc/src/Math.cpp) (libc) finite results are not verified bit for bit against the console: the scaled product uses the host's binary64 hyperbolic function before rounding to binary32, rather than the float rational and `_FExp` sequence in PRAGMATA's bundled `libc.prx`. NaN preference and payloads, signed zeros, infinite operands and the range-error thresholds follow that binary's instructions; the system `libSceLibcInternal` implementation and nondefault flush-to-zero modes are unverified.
|
||||
|
||||
|
||||
Reference in new issue
Block a user