Bug #60913 Patches to MySQL 5.1.48 for Stratus OpenVOS port
Submitted: 18 Apr 2011 22:12 Modified: 13 Jun 2013 23:37
Reporter: Paul Green (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1.48 OS:Other (Stratus OpenVOS 17.1)
Assigned to: CPU Architecture:Any
Tags: Contribution

[18 Apr 2011 22:12] Paul Green
Description:
Stratus Technologies has successfully ported MySQL Community Server, Release 5.1.48 to its OpenVOS operating system, Release 17.1.

OpenVOS Release 17.1 is a proprietary, fault-tolerant, 32-bit operating system that runs on Intel Xeon(tm) processors.  OpenVOS supplies a fairly complete POSIX build and execution environment; we used this POSIX environment (with gcc 3.4.6) to build MySQL 5.1.48.

OpenVOS data is stored in Big-Endian format; our compilers handle the mapping between the user-visible BE format and the hardware LE instructions. The name of an executable binary program must end in the ".pm" suffix. This release of OpenVOS supports dynamic linking. Our file system enforces more restrictive object naming rules than Unix or Linux. Documentation for OpenVOS is on the web at http://stratadoc.stratus.com. 

MySQL bug #44832 describes an earlier port of MySQL 5.0.75 to the previous major release of OpenVOS (17.0.2).

Most of the changes that we made to the source code and test scripts were due to variations in the OpenVOS POSIX implementation from de-facto industry standards.  I don't feel that it would be appropriate to request that the bulk of these changes be applied to the standard MySQL source code base.  Therefore, I have submitted separate bug reports for the changes that I feel are general purpose, or could affect other platforms, or which are represent trivial fixes that we need but which are harmless to other platforms.  See MySQL bug reports #60907, #60908, #60910, #60911, and #60912.

If you have any questions about any of these changes, I will do my best to explain the rationale for them. I can also prepare smaller patches for any particular set of changes that you may wish to apply. Please contact me at my registered email address.

These patches accomplish the following tasks, among others:

1. Recognize the OpenVOS platform.
2. Allow a separate build tree from the source tree.
3. Correct several 32-bit vs. 64-bit build issues.
4. Prevent interpretation of pathnames as control strings to printf (OpenVOS pathnames often contain a % character).
5. Support a Big-Endian Intel environment.
6. Give consistent treatment to an executable suffix.
7. Replace the number-sign character by the equal-sign character in file names, to avoid an OpenVOS restriction.
8. Change some tests that fail on 64-bit platforms to also fail on 32-bit platforms (shorter pointers led some sort buffers to NOT overflow).
9. Deal with the fact that OpenVOS uses different signal numbers and different errno values than Unix/Linux.
10. Deal with the lack of support for OpenVOS in autoconf.
11. Deal with some missing POSIX functions in the OpenVOS environment.
12. Deal with the OpenVOS limit of 32 chars in a directory name.
13. Deal with trivial floating-point differences in various test results.
14. Deal with slightly lower-than-expected max file size limits in OpenVOS.

and other similar issues.

How to repeat:
By design, we have retained the ability to build our modified copy of MySQL 5.1.48 on Linux or other platforms. If you want to have access to an OpenVOS system for any reason, please contact me.

Suggested fix:
I have submitted separate bug reports for the changes that I feel should be applied to the common source code base. This submission is being made to satisfy the terms of the GNU Public License.
[18 Apr 2011 22:14] Paul Green
Patches to port MySQL 5.1.48 to Stratus OpenVOS 17.1.

Attachment: mysql.60913.diff (application/octet-stream, text), 190.86 KiB.

[13 Jun 2013 23:37] Matthew Lord
Thank you for your interest in MySQL, and for your interest in making MySQL an even better product!

I'm closing this Feature Request at this time, because OpenVOS is not a supported platform:
  http://www.mysql.com/support/supportedplatforms/database.html

Thank you again!