Bug #55181 qnx 6 patch
Submitted: 12 Jul 2010 17:32 Modified: 12 Jul 2010 20:01
Reporter: Sean Boudreau Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.1.46 OS:Other
Assigned to: CPU Architecture:Any
Tags: Contribution

[12 Jul 2010 17:32] Sean Boudreau
Description:
The following is required to get 5.1.46 compiling on the latest
version of qnx6 (cut and paste since I can't figure out how to
attach it).

diff -ru mysql-5.1.46~/include/my_global.h mysql-5.1.46/include/my_global.h
--- mysql-5.1.46~/include/my_global.h   2010-04-06 10:04:02.000000000 -0400
+++ mysql-5.1.46/include/my_global.h    2010-07-12 13:24:19.000000000 -0400
@@ -502,6 +502,7 @@
 #endif
 
 #ifdef __QNXNTO__
+#include <sys/neutrino.h>
 /* This has to be after include limits.h */
 #define HAVE_ERRNO_AS_DEFINE
 #define HAVE_FCNTL_LOCK
@@ -511,9 +512,14 @@
 #ifdef __cplusplus
 #ifndef HAVE_RINT
 #define HAVE_RINT
-#endif                          /* rint() and isnan() functions are not */
-#define rint(a) std::rint(a)    /* visible in C++ scope due to an error */
-#define isnan(a) std::isnan(a)  /* in the usr/include/math.h on QNX     */
+#endif                          
+#if !defined(_NTO_VERSION) || (_NTO_VERSION - 0 < 650)
+/* rint() and isnan() functions are not   */
+/* visible in C++ scope due to an error   */
+/* in the usr/include/math.h on early QNX */
+#define rint(a) std::rint(a)    
+#define isnan(a) std::isnan(a)  
+#endif
 #endif
 #endif
 
diff -ru mysql-5.1.46~/server-tools/instance-manager/instance.cc mysql-5.1.46/server-tools/instance-manager/instance.cc
--- mysql-5.1.46~/server-tools/instance-manager/instance.cc     2010-04-06 10:06:04.000000000 -0400
+++ mysql-5.1.46/server-tools/instance-manager/instance.cc      2010-07-12 13:24:23.000000000 -0400
@@ -135,7 +135,7 @@
      Here we use spawnv(), which  is a combination of fork() and execv()
      in one call. It returns the pid of newly created process (>0) or -1
   */
-  *pi= spawnv(P_NOWAIT, instance_options->mysqld_path, instance_options->argv);
+  *pi= spawnv(P_NOWAIT, instance_options->mysqld_path.str, instance_options->argv);
 #endif
 
   switch (*pi) {

How to repeat:
Compile under QNX 6.5.0.
[12 Jul 2010 17:32] Sean Boudreau
patch as attachment

Attachment: diff (application/octet-stream, text), 1.67 KiB.

[12 Jul 2010 17:47] Sean Boudreau
New patch.  Missed configure.in in last one.

Attachment: diff (application/octet-stream, text), 2.03 KiB.

[12 Jul 2010 20:01] Sveta Smirnova
Thank you for the report.

QNX is not in list of supported platforms (list located at http://mysql.com/support/supportedplatforms/enterprise.html), so I have to close this report as "Unsupported". But thank you for the patch anyway. I hope it will help other QNX users.