|
|
|
@ -1129,6 +1129,14 @@ check_compile_assert(){ |
|
|
|
|
test_code cc "$headers" "char c[2 * !!($condition) - 1]" "$@" && enable "$name" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
check_cc(){ |
|
|
|
|
log check_cc "$@" |
|
|
|
|
name=$1 |
|
|
|
|
shift |
|
|
|
|
disable "$name" |
|
|
|
|
test_code cc "$@" && enable "$name" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
require(){ |
|
|
|
|
log require "$@" |
|
|
|
|
name_version="$1" |
|
|
|
@ -1137,6 +1145,13 @@ require(){ |
|
|
|
|
check_lib $name "$@" || die "ERROR: $name_version not found" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
require_cc(){ |
|
|
|
|
log require_cc "$@" |
|
|
|
|
name="$1" |
|
|
|
|
shift |
|
|
|
|
test_code cc "$@" || die "ERROR: $name failed" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
require_header(){ |
|
|
|
|
log require_header "$@" |
|
|
|
|
headers="$1" |
|
|
|
@ -4172,18 +4187,12 @@ extern_prefix=${sym%%ff_extern*} |
|
|
|
|
! disabled inline_asm && check_inline_asm inline_asm '"" ::' |
|
|
|
|
|
|
|
|
|
for restrict_keyword in restrict __restrict__ __restrict ""; do |
|
|
|
|
test_cc <<EOF && break |
|
|
|
|
void foo(char * $restrict_keyword p); |
|
|
|
|
EOF |
|
|
|
|
test_code cc "" "char * $restrict_keyword p" && break |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
test_cc <<EOF && enable pragma_deprecated |
|
|
|
|
void foo(void) { _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") } |
|
|
|
|
EOF |
|
|
|
|
check_cc pragma_deprecated "" '_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")' |
|
|
|
|
|
|
|
|
|
test_cc <<EOF || die "endian test failed" |
|
|
|
|
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'; |
|
|
|
|
EOF |
|
|
|
|
require_cc "endian test" "" "unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'" |
|
|
|
|
od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian |
|
|
|
|
|
|
|
|
|
check_gas() { |
|
|
|
@ -4334,19 +4343,17 @@ elif enabled ppc; then |
|
|
|
|
check_cflags -maltivec -mabi=altivec |
|
|
|
|
|
|
|
|
|
# check if our compiler supports Motorola AltiVec C API |
|
|
|
|
test_code cc altivec.h "vector signed int v1 = (vector signed int) { 0 }; |
|
|
|
|
vector signed int v2 = (vector signed int) { 1 }; |
|
|
|
|
v1 = vec_add(v1, v2);" || |
|
|
|
|
disable altivec |
|
|
|
|
check_cc altivec altivec.h "vector signed int v1 = (vector signed int) { 0 }; |
|
|
|
|
vector signed int v2 = (vector signed int) { 1 }; |
|
|
|
|
v1 = vec_add(v1, v2);" |
|
|
|
|
|
|
|
|
|
enabled altivec || warn "Altivec disabled, possibly missing --cpu flag" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if enabled vsx; then |
|
|
|
|
check_cflags -mvsx && |
|
|
|
|
test_code cc altivec.h "int v[4] = { 0 }; |
|
|
|
|
vector signed int v1 = vec_vsx_ld(0, v);" || |
|
|
|
|
disable vsx |
|
|
|
|
check_cc vsx altivec.h "int v[4] = { 0 }; |
|
|
|
|
vector signed int v1 = vec_vsx_ld(0, v);" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if enabled power8; then |
|
|
|
@ -4427,7 +4434,7 @@ EOF |
|
|
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
test_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_neon |
|
|
|
|
check_cc intrinsics_neon arm_neon.h "int16x8_t test = vdupq_n_s16(0)" |
|
|
|
|
|
|
|
|
|
check_ldflags -Wl,--as-needed |
|
|
|
|
|
|
|
|
@ -4761,15 +4768,11 @@ EOF |
|
|
|
|
|
|
|
|
|
enabled vaapi && require vaapi va/va.h vaInitialize -lva |
|
|
|
|
|
|
|
|
|
enabled vaapi && |
|
|
|
|
test_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" || |
|
|
|
|
disable vaapi |
|
|
|
|
|
|
|
|
|
enabled vaapi && |
|
|
|
|
check_lib vaapi_drm "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm |
|
|
|
|
|
|
|
|
|
enabled vaapi && |
|
|
|
|
check_lib vaapi_x11 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11 |
|
|
|
|
if enabled vaapi; then |
|
|
|
|
require_cc vaapi "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" |
|
|
|
|
check_lib vaapi_drm "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm |
|
|
|
|
check_lib vaapi_x11 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
enabled vaapi && |
|
|
|
|
test_cpp_condition "va/va.h" "VA_CHECK_VERSION(1, 0, 0)" && |
|
|
|
@ -4821,9 +4824,7 @@ check_disable_warning_headers -Wno-unused-variable |
|
|
|
|
|
|
|
|
|
check_objcflags -fobjc-arc && enable objc_arc |
|
|
|
|
|
|
|
|
|
test_cc <<EOF && enable blocks_extension |
|
|
|
|
void (^block)(void); |
|
|
|
|
EOF |
|
|
|
|
check_cc blocks_extension "" "void (^block)(void)" |
|
|
|
|
|
|
|
|
|
# add some linker flags |
|
|
|
|
check_ldflags -Wl,--warn-common |
|
|
|
@ -4877,14 +4878,10 @@ if enabled proper_dce; then |
|
|
|
|
if test_ldflags -Wl,${version_script},$TMPV; then |
|
|
|
|
append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' |
|
|
|
|
quotes='""' |
|
|
|
|
test_cc <<EOF && enable symver_asm_label |
|
|
|
|
void ff_foo(void) __asm__ ("av_foo@VERSION"); |
|
|
|
|
void ff_foo(void) { ${inline_asm+__asm__($quotes);} } |
|
|
|
|
EOF |
|
|
|
|
test_cc <<EOF && enable symver_gnu_asm |
|
|
|
|
__asm__(".symver ff_foo,av_foo@VERSION"); |
|
|
|
|
void ff_foo(void) {} |
|
|
|
|
EOF |
|
|
|
|
check_cc symver_asm_label "" "void ff_foo(void) __asm__ ("av_foo@VERSION"); |
|
|
|
|
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }" |
|
|
|
|
check_cc symver_gnu_asm "" "__asm__(".symver ff_foo,av_foo@VERSION"); |
|
|
|
|
void ff_foo(void) {}" |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|