From 8e13ab7430a3053170e78ba37900b7f5e9714df0 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Thu, 31 May 2018 02:53:36 +0000 Subject: emulators/citra: unbreak on i386 with clang 5+ externals/cryptopp/cryptopp/sha.cpp:1005:5: error: invalid operand for instruction ASJ( jnz, 0, b) ^ externals/cryptopp/cryptopp/cpu.h:623:23: note: expanded from macro 'ASJ' #define ASJ(x, y, z) GNU_ASJ(x, y, z) ^ externals/cryptopp/cryptopp/cpu.h:617:27: note: expanded from macro 'GNU_ASJ' #define GNU_ASJ(x, y, z) #x " " #y #z ";" NEW_LINE ^ :34:2: note: expanded from here "jnz" ^ :80:1: note: instantiated into assembly here jnz 0b; ^ Reported by: pkg-fallout Obtained from: upstream (cryptopp 7.1.0) --- .../citra/files/patch-externals_cryptopp_cryptopp_cpu.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 emulators/citra/files/patch-externals_cryptopp_cryptopp_cpu.h (limited to 'emulators') diff --git a/emulators/citra/files/patch-externals_cryptopp_cryptopp_cpu.h b/emulators/citra/files/patch-externals_cryptopp_cryptopp_cpu.h new file mode 100644 index 000000000000..6dd96bd645db --- /dev/null +++ b/emulators/citra/files/patch-externals_cryptopp_cryptopp_cpu.h @@ -0,0 +1,17 @@ +https://github.com/citra-emu/citra/issues/3796 + +--- externals/cryptopp/cryptopp/cpu.h.orig 2018-02-22 14:26:16 UTC ++++ externals/cryptopp/cryptopp/cpu.h +@@ -614,7 +614,12 @@ inline int GetCacheLineSize() + #define GNU_AS2(x, y) #x ", " #y ";" NEW_LINE + #define GNU_AS3(x, y, z) #x ", " #y ", " #z ";" NEW_LINE + #define GNU_ASL(x) "\n" #x ":" NEW_LINE ++// clang 5.0.0 and apple clang 9.0.0 don't support numerical backward jumps ++#if (CRYPTOPP_LLVM_CLANG_VERSION >= 50000) || (CRYPTOPP_APPLE_CLANG_VERSION >= 90000) ++ #define GNU_ASJ(x, y, z) ATT_PREFIX ";" NEW_LINE #x " " #y #z ";" NEW_LINE INTEL_PREFIX ";" NEW_LINE ++#else + #define GNU_ASJ(x, y, z) #x " " #y #z ";" NEW_LINE ++#endif + #define AS1(x) GNU_AS1(x) + #define AS2(x, y) GNU_AS2(x, y) + #define AS3(x, y, z) GNU_AS3(x, y, z) -- cgit v1.2.3