summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-03-29 20:31:03 -0300
committerJames Almer <jamrial@gmail.com>2018-03-29 20:31:03 -0300
commit7e3c4d029b8ecf17f3ae17ad6861730a9393ef09 (patch)
treed8b773a1de12e9262f091f55e5ddab76aba2382c /configure
parentea15915b2dc5aaa80c91879fbd183475a7e66e54 (diff)
parent847190ebd99ffd57dc89bd568a33bf2d5c424129 (diff)
Merge commit '847190ebd99ffd57dc89bd568a33bf2d5c424129'
* commit '847190ebd99ffd57dc89bd568a33bf2d5c424129': configure: Don't assume an aligned stack on clang on windows Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure13
1 files changed, 11 insertions, 2 deletions
diff --git a/configure b/configure
index 9974bc1f55..f2aa2f5262 100755
--- a/configure
+++ b/configure
@@ -6525,8 +6525,17 @@ elif enabled gcc; then
elif enabled llvm_gcc; then
check_cflags -mllvm -stack-alignment=16
elif enabled clang; then
- check_cflags -mllvm -stack-alignment=16
- check_cflags -mstack-alignment=16
+ 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 -mstack-alignment=16
+ fi
check_cflags -Qunused-arguments
check_cflags -Werror=implicit-function-declaration
check_cflags -Werror=missing-prototypes