0d88e15454
During aosp builds with binutils-2.27, we're seeing linker error messages of this form: libvpx.a(subpixel_mmx.o): relocation R_386_GOTOFF against preemptible symbol vp8_bilinear_filters_x86_8 cannot be used when making a shared object subpixel_mmx.o is assembled from "vp8/common/x86/subpixel_mmx.asm". Other messages refer to symbol references from deblock_sse2.o and subpixel_sse2.o, also assembled from asm files. This change marks such symbols as having "protected" visibility. This satisfies the linker as the symbols are not preemptible from outside the shared library now, which I think is the original intent anyway. Change-Id: I2817f7a5f43041533d65ebf41aefd63f8581a452
61 lines
2.0 KiB
C
61 lines
2.0 KiB
C
/*
|
|
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef VPX_PORTS_MEM_H_
|
|
#define VPX_PORTS_MEM_H_
|
|
|
|
#include "vpx_config.h"
|
|
#include "vpx/vpx_integer.h"
|
|
|
|
#if (defined(__GNUC__) && __GNUC__) || defined(__SUNPRO_C)
|
|
#define DECLARE_ALIGNED(n, typ, val) typ val __attribute__((aligned(n)))
|
|
#elif defined(_MSC_VER)
|
|
#define DECLARE_ALIGNED(n, typ, val) __declspec(align(n)) typ val
|
|
#else
|
|
#warning No alignment directives known for this compiler.
|
|
#define DECLARE_ALIGNED(n, typ, val) typ val
|
|
#endif
|
|
|
|
#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(_WIN32)
|
|
#define DECLARE_PROTECTED(decl) decl __attribute__((visibility("protected")))
|
|
#else
|
|
#define DECLARE_PROTECTED(decl) decl
|
|
#endif
|
|
|
|
#if HAVE_NEON && defined(_MSC_VER)
|
|
#define __builtin_prefetch(x)
|
|
#endif
|
|
|
|
/* Shift down with rounding */
|
|
#define ROUND_POWER_OF_TWO(value, n) (((value) + (1 << ((n)-1))) >> (n))
|
|
#define ROUND64_POWER_OF_TWO(value, n) (((value) + (1ULL << ((n)-1))) >> (n))
|
|
|
|
#define ALIGN_POWER_OF_TWO(value, n) \
|
|
(((value) + ((1 << (n)) - 1)) & ~((1 << (n)) - 1))
|
|
|
|
#define CONVERT_TO_SHORTPTR(x) ((uint16_t *)(((uintptr_t)(x)) << 1))
|
|
#define CAST_TO_SHORTPTR(x) ((uint16_t *)((uintptr_t)(x)))
|
|
#if CONFIG_VP9_HIGHBITDEPTH
|
|
#define CONVERT_TO_BYTEPTR(x) ((uint8_t *)(((uintptr_t)(x)) >> 1))
|
|
#define CAST_TO_BYTEPTR(x) ((uint8_t *)((uintptr_t)(x)))
|
|
#endif // CONFIG_VP9_HIGHBITDEPTH
|
|
|
|
#if !defined(__has_feature)
|
|
#define __has_feature(x) 0
|
|
#endif // !defined(__has_feature)
|
|
|
|
#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
|
|
#define VPX_WITH_ASAN 1
|
|
#else
|
|
#define VPX_WITH_ASAN 0
|
|
#endif // __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
|
|
|
|
#endif // VPX_PORTS_MEM_H_
|