summaryrefslogtreecommitdiff
path: root/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch
blob: 32ae298d4049e2edb3a0f57f21747584b0a09d7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
https://github.com/gnif/vendor-reset/commit/084881c6e9e11bdadaf05798e669568848e698a3.patch
From: =?UTF-8?q?Marcus=20K=C3=B6hler?= <khler.marcus@gmail.com>
Date: Mon, 25 Dec 2023 21:43:41 +0100
Subject: [PATCH] Allow correct compilation with Clang/LLVM
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marcus Köhler <khler.marcus@gmail.com>
--- a/src/hook.c
+++ b/src/hook.c
@@ -30,7 +30,11 @@ static bool hook_installed = false;
 static int (*orig_pci_dev_specific_reset)(struct pci_dev *dev, int probe);
 
 /* TCO breaks the hook, we must disable it for this function */
+#if defined(__GNUC__) && !defined(__llvm__)
 __attribute__((optimize("-fno-optimize-sibling-calls")))
+#elif defined(__clang__)
+__attribute__((disable_tail_calls))
+#endif
 static int hooked_pci_dev_specific_reset(struct pci_dev *dev, int probe)
 {
   int ret;