[FFmpeg-cvslog] Merge commit '847190ebd99ffd57dc89bd568a33bf2d5c424129'

James Almer git at videolan.org
Fri Mar 30 02:36:27 EEST 2018


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Thu Mar 29 20:31:03 2018 -0300| [7e3c4d029b8ecf17f3ae17ad6861730a9393ef09] | committer: James Almer

Merge commit '847190ebd99ffd57dc89bd568a33bf2d5c424129'

* commit '847190ebd99ffd57dc89bd568a33bf2d5c424129':
  configure: Don't assume an aligned stack on clang on windows

Merged-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7e3c4d029b8ecf17f3ae17ad6861730a9393ef09
---

 configure | 13 +++++++++++--
 1 file 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


======================================================================

diff --cc configure
index 9974bc1f55,95e6006440..f2aa2f5262
--- a/configure
+++ b/configure
@@@ -6525,8 -4960,16 +6525,17 @@@ elif enabled gcc; the
  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



More information about the ffmpeg-cvslog mailing list