• Olav Sandstaa's avatar
    Fix for Bug#50221 Server refuses to start from non-default installdir on Solaris 32-bit · 6559e927
    Olav Sandstaa authored
    When starting mysqld it did not recognize most of the options given on
    the command line when it was compiled for 32-bit Solaris using Sun
    Studio compiler. The cause for this was that most of the entries in
    the my_long_options array contained "garbage" data. The garbage data
    was caused by a compiler bug. When initilizing the def_value member
    for the "default-storage-engine" entry it was initialized like this:
    
      (longlong)"MyISAM"
    
    i.e. casting a 32 bit pointer to a 64 bit integer value. Due to the
    compiler bug only 4 bytes was allocated (instead of 8 bytes). This
    caused everything following this entry to be stored at a location that
    was 4 byte wrong.
    
    The fix/work-around for this problem is initialize the def_value
    for default-storage-engine in my_long_options to 0 and instead
    initialize the default_storage_engine variable to "MyISAM" in
    init_common_variables().
    6559e927
mysqld.cc 270 KB