vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Apr 29 22:33:39 2017 +0300| [ef79275d92c1cd386915078501d9c7797839e649] | committer: Rémi Denis-Courmont
yadif: fix linking This fixes the following error on x86: In function `yadif_filter_line_ssse3.lto_priv.4': modules/video_filter/deinterlace/yadif_template.h:262: undefined reference to `pw_1' relocation R_X86_64_PC32 against undefined symbol `pw_1' can not be used when making a shared object; recompile with -fPIC This also fixes run-time with compilers other than MSVC and GCC. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ef79275d92c1cd386915078501d9c7797839e649 --- modules/video_filter/deinterlace/yadif.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/video_filter/deinterlace/yadif.h b/modules/video_filter/deinterlace/yadif.h index 59b78011bb..dfd3a765c8 100644 --- a/modules/video_filter/deinterlace/yadif.h +++ b/modules/video_filter/deinterlace/yadif.h @@ -22,18 +22,23 @@ # include "config.h" #endif +#include <stdalign.h> + #if defined(__GNUC__) -# define DECLARE_ASM_CONST(n,t,v) static const t __attribute__((used)) __attribute__ ((aligned (n))) v -#elif defined(_MSC_VER) -# define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v +# define ATTR_USED __attribute__((used)) +#else +# define ATTR_USED #endif typedef intptr_t x86_reg; typedef struct { uint64_t a, b; } xmm_reg; -DECLARE_ASM_CONST(16, xmm_reg, pb_1) = {0x0101010101010101ULL, 0x0101010101010101ULL}; -DECLARE_ASM_CONST(16, xmm_reg, pw_1) = {0x0001000100010001ULL, 0x0001000100010001ULL}; - +const ATTR_USED alignas (16) xmm_reg pb_1 = { + 0x0101010101010101ULL, 0x0101010101010101ULL +}; +const ATTR_USED alignas (16) xmm_reg pw_1 = { + 0x0001000100010001ULL, 0x0001000100010001ULL +}; #ifdef CAN_COMPILE_SSSE3 #if defined(__SSE__) || defined(__GNUC__) || defined(__clang__) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
