List:Commits« Previous MessageNext Message »
From:Jon Olav Hauglid Date:October 3 2011 7:38am
Subject:bzr push into mysql-5.5 branch (jon.hauglid:3561 to 3562) Bug#13030056
View as plain text  
 3562 Jon Olav Hauglid	2011-10-03
      Bug#13030056 62533: UNITTEST/MYSYS/MY_ATOMIC-T.C DOES NOT
                            COMPILE ON MACOSX LION
      
      The problem was that on optimized builds, the wrong code was generated
      for my_atomic_add64 if a variable argument was optimized away as a
      constant.
      
      This patch fixes the problem by making the variable volatile.
      
      Another workaround is to specify architecture explicitly using e.g.
      CFLAGS/CXXFLAGS= "-m64".
      
      No test case added.

    modified:
      unittest/mysys/my_atomic-t.c
 3561 Bjorn Munch	2011-09-30
      12956584 followup fix for mysqltest
        run_query_stmt() might use disable_xxx vars after calling handle_no_error
        But handle_no_error() hes reverted any ONCE settings
        Fix is to take revert_properties() out of handle_no_error()

    modified:
      client/mysqltest.cc
=== modified file 'unittest/mysys/my_atomic-t.c'
--- a/unittest/mysys/my_atomic-t.c	2011-06-30 15:46:53 +0000
+++ b/unittest/mysys/my_atomic-t.c	2011-10-03 07:31:55 +0000
@@ -164,7 +164,14 @@ void do_tests()
   test_concurrently("my_atomic_cas32", test_atomic_cas, THREADS, CYCLES);
 
   {
-    int64 b=0x1000200030004000LL;
+    /*
+      If b is not volatile, the wrong assembly code is generated on OSX Lion
+      as the variable is optimized away as a constant.
+      See Bug#62533 / Bug#13030056.
+      Another workaround is to specify architecture explicitly using e.g.
+      CFLAGS/CXXFLAGS= "-m64".
+    */
+    volatile int64 b=0x1000200030004000LL;
     a64=0;
     my_atomic_add64(&a64, b);
     ok(a64==b, "add64");

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.5 branch (jon.hauglid:3561 to 3562) Bug#13030056Jon Olav Hauglid3 Oct