mirror of https://git.ffmpeg.org/ffmpeg.git
configure: Don't assume an aligned stack on clang on windows
If we'd enable a 16 byte aligned stack, clang/llvm would also assume that alignment everywhere and produce code that strictly requires it. That would require adding realignment (via attribute_align_arg) on every single public library function or enable -mstackrealign (which does the same on every single function). Also relatedly; the parameter currently tested (-mllvm -stack-alignment=16) hasn't actually been supported for quite some time; current clang versions use -mstack-alignment=16 for the same. Actually testing for that parameter would be a different change though, since it has a real risk of changing behaviour on any other platform where clang is used. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
43778a501f
commit
847190ebd9
|
@ -4960,7 +4960,16 @@ elif enabled gcc; then
|
||||||
elif enabled llvm_gcc; then
|
elif enabled llvm_gcc; then
|
||||||
check_cflags -mllvm -stack-alignment=16
|
check_cflags -mllvm -stack-alignment=16
|
||||||
elif enabled clang; then
|
elif enabled clang; then
|
||||||
|
if [ "$target_os" = "mingw32" -o "$target_os" = "win32" ] && 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
|
||||||
|
else
|
||||||
check_cflags -mllvm -stack-alignment=16
|
check_cflags -mllvm -stack-alignment=16
|
||||||
|
fi
|
||||||
check_cflags -Qunused-arguments
|
check_cflags -Qunused-arguments
|
||||||
check_cflags -Werror=implicit-function-declaration
|
check_cflags -Werror=implicit-function-declaration
|
||||||
check_cflags -Werror=missing-prototypes
|
check_cflags -Werror=missing-prototypes
|
||||||
|
|
Loading…
Reference in New Issue