mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-22 23:07:00 +00:00
Merge commit 'ea2f72a2c14c67a3b35dac6426d1e3c0fae33fd5'
* commit 'ea2f72a2c14c67a3b35dac6426d1e3c0fae33fd5': configure: Don't assume a 16 byte aligned stack on BSDs on i386 Merged-by: James Almer <jamrial@gmail.com>
This commit is contained in:
commit
23f4472944
23
configure
vendored
23
configure
vendored
@ -6522,16 +6522,35 @@ elif enabled gcc; then
|
||||
check_cflags -Wformat
|
||||
check_cflags -fdiagnostics-color=auto
|
||||
enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized
|
||||
if enabled x86_32; then
|
||||
case $target_os in
|
||||
*bsd*)
|
||||
# BSDs don't guarantee a 16 byte aligned stack, but we can
|
||||
# request GCC to try to maintain 16 byte alignment throughout
|
||||
# function calls. Library entry points that might call assembly
|
||||
# functions align the stack. (The parameter means 2^4 bytes.)
|
||||
check_cflags -mpreferred-stack-boundary=4
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
elif enabled llvm_gcc; then
|
||||
check_cflags -mllvm -stack-alignment=16
|
||||
elif enabled clang; then
|
||||
if [ "$target_os" = "mingw32" -o "$target_os" = "win32" ] && enabled x86_32; then
|
||||
if enabled x86_32; then
|
||||
# Clang doesn't support maintaining alignment without assuming the
|
||||
# same alignment in every function. If 16 byte alignment would be
|
||||
# enabled, one would also have to either add attribute_align_arg on
|
||||
# every single entry point into the libraries or enable -mstackrealign
|
||||
# (doing stack realignment in every single function).
|
||||
disable aligned_stack
|
||||
case $target_os in
|
||||
mingw32|win32|*bsd*)
|
||||
disable aligned_stack
|
||||
;;
|
||||
*)
|
||||
check_cflags -mllvm -stack-alignment=16
|
||||
check_cflags -mstack-alignment=16
|
||||
;;
|
||||
esac
|
||||
else
|
||||
check_cflags -mllvm -stack-alignment=16
|
||||
check_cflags -mstack-alignment=16
|
||||
|
Loading…
Reference in New Issue
Block a user