From 6c9fd7eda78d0a153f9f57c44dc8761adc2cd501 Mon Sep 17 00:00:00 2001 From: Lv Zheng Date: Tue, 18 Oct 2016 03:02:40 +0800 Subject: ACPICA: MacOSX: Fix anonymous semaphore implementation ACPICA commit 01eb9a58f4cf6300a0feb838a02bc4b1895c76e8 ACPICA commit de5b9c0ef1ccb264cbe57c88f6dd3fbf8229f907 The following build errors can be seen for MacOSX builds: .../osunixxf.c:829:42: error: 'tmpnam' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead. [-Werror,-Wdeprecated-declarations] Using of temporal file name functions can easily result in bus errors on MacOSX. This patch implements anonymous semaphore using an automatic increasing number. Lv Zheng. Linux is not affected by this change. Link: https://github.com/acpica/acpica/commit/01eb9a58 Link: https://github.com/acpica/acpica/commit/de5b9c0e Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki --- tools/power/acpi/os_specific/service_layers/osunixxf.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tools/power/acpi') diff --git a/tools/power/acpi/os_specific/service_layers/osunixxf.c b/tools/power/acpi/os_specific/service_layers/osunixxf.c index 8d8003c919d4..8f5ded83a249 100644 --- a/tools/power/acpi/os_specific/service_layers/osunixxf.c +++ b/tools/power/acpi/os_specific/service_layers/osunixxf.c @@ -646,8 +646,12 @@ acpi_os_create_semaphore(u32 max_units, } #ifdef __APPLE__ { - char *semaphore_name = tmpnam(NULL); + static int semaphore_count = 0; + char semaphore_name[32]; + snprintf(semaphore_name, sizeof(semaphore_name), "acpi_sem_%d", + semaphore_count++); + printf("%s\n", semaphore_name); sem = sem_open(semaphore_name, O_EXCL | O_CREAT, 0755, initial_units); -- cgit v1.2.3-55-g7522 From b97acdf1b0cd493a8abff703f0674b471bf105b1 Mon Sep 17 00:00:00 2001 From: Lv Zheng Date: Tue, 18 Oct 2016 03:03:01 +0800 Subject: ACPICA: MacOSX: Fix wrong sem_destroy definition ACPICA commit bbcb58f7875381d5c7f3d614bad3bc628a3f5cc6 The following build errors can be seen for MacOSX builds: .../osunixxf.c:882:9: error: 'sem_close' is deprecated [-Werror,-Wdeprecated-declarations] .../acmacosx.h:122:29: note: expanded from macro 'sem_destroy' #define sem_destroy sem_close sem_destroy() issue is caused by the wrong order of the following lines: #define #sem_destroy sem_close #include This patch fixes it by removing the buggy re-definitiion. Lv Zheng. Linux is not affected by this change. Link: https://github.com/acpica/acpica/commit/bbcb58f7 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki --- tools/power/acpi/os_specific/service_layers/osunixxf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tools/power/acpi') diff --git a/tools/power/acpi/os_specific/service_layers/osunixxf.c b/tools/power/acpi/os_specific/service_layers/osunixxf.c index 8f5ded83a249..10648aaf6164 100644 --- a/tools/power/acpi/os_specific/service_layers/osunixxf.c +++ b/tools/power/acpi/os_specific/service_layers/osunixxf.c @@ -696,10 +696,15 @@ acpi_status acpi_os_delete_semaphore(acpi_handle handle) if (!sem) { return (AE_BAD_PARAMETER); } - +#ifdef __APPLE__ + if (sem_close(sem) == -1) { + return (AE_BAD_PARAMETER); + } +#else if (sem_destroy(sem) == -1) { return (AE_BAD_PARAMETER); } +#endif return (AE_OK); } -- cgit v1.2.3-55-g7522