linux: build with thread safety and REENTRANT enabled.
authorJon Trulson <jon@radscan.com>
Mon, 24 Mar 2014 23:15:40 +0000 (17:15 -0600)
committerJon Trulson <jon@radscan.com>
Mon, 24 Mar 2014 23:15:40 +0000 (17:15 -0600)
There was a check in linux.cf for the Linux libc version that didn't
work, since these were never set anywhere.  Presumably current Xorg
imake sets these, but since we aren't using that... (yet)

As a result, the build assumed that thread-safe API's were not
supported.  Setting the default libc major version to '6' allows the
proper build to take place.  libc5 was never threadsafe and no one has
probably used it in over 10 years.

As a result, some earlier porting fixes that referenced '__fds_bits'
on linux systems had to be reverted as these are not valid in an MT
environment.  They are also not neccessary when building in such an
environment, as the normal 'fds_bits' works fine.

This patch defintely needs testing on many linux systems.

cde/config/cf/linux.cf
cde/lib/csa/xtclient.c
cde/programs/dtspcd/spcd_event.c

index 9cd893363aa36d09af3744d8d37421dcd84918cd..f55779e14d6b930a028cdbcbb2f053414c287e1c 100644 (file)
@@ -34,17 +34,29 @@ XCOMM platform:  $TOG: linux.cf /main/47 1998/04/17 11:32:51 mgreess $
     LinuxYggdrasil  (12)
 */
 #endif
+
+#ifndef DefaultLinuxCLibMajorVersion
+# define DefaultLinuxCLibMajorVersion    6
+#endif
+#ifndef DefaultLinuxCLibMinorVersion
+# define DefaultLinuxCLibMinorVersion    0
+#endif
+#ifndef DefaultLinuxCLibTeenyVersion
+# define DefaultLinuxCLibTeenyVersion    0
+#endif
+
 #ifndef LinuxCLibMajorVersion
-# define LinuxCLibMajorVersion   DefaultLinuxCLibMajorVersion
+# define LinuxCLibMajorVersion           DefaultLinuxCLibMajorVersion
 #endif
 #ifndef LinuxCLibMinorVersion
-# define LinuxCLibMinorVersion   DefaultLinuxCLibMinorVersion
+# define LinuxCLibMinorVersion           DefaultLinuxCLibMinorVersion
 #endif
 #ifndef LinuxCLibTeenyVersion
-# define LinuxCLibTeenyVersion   DefaultLinuxCLibTeenyVersion
+# define LinuxCLibTeenyVersion           DefaultLinuxCLibTeenyVersion
 #endif
+
 #ifndef LinuxBinUtilsMajorVersion
-# define LinuxBinUtilsMajorVersion     DefaultLinuxBinUtilsMajorVersion
+# define LinuxBinUtilsMajorVersion      DefaultLinuxBinUtilsMajorVersion
 #endif
 
 XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
index b42b5efc017c16602fea37ed31310d618e7c5b85..aff5b03aebdf9cb9f6898e050ca1222d0ff7393a 100644 (file)
@@ -69,11 +69,8 @@ _DtCm_register_xtcallback(XtAppContext appct)
                return;
 
        /* assuming only 1 bit is set */
-#if defined(linux)
-       bits = fdset.__fds_bits;
-#else
        bits = fdset.fds_bits;
-#endif
+
        for (i = 0; i < FD_SETSIZE; i += NFDBITS) {
                fmask = *bits;
                for (j = 0; fmask != 0; j++, fmask >>= 1) {
index 2a30c7fcc8a30fb4f9b1c649e0b1cc2d29d8ef71..01fdf28b13f027e809881e5fea8d9ca9d04d2c6a 100644 (file)
@@ -86,13 +86,8 @@ void SPCD_MainLoopUntil(Boolean *flag)
   int result;
   do {
     for (n=0; n<fd_vec_size; n++) {
-#if defined(linux)
-      input_mask.__fds_bits[n] = Sb_Input_Mask.__fds_bits[n];
-      except_mask.__fds_bits[n] = Sb_Except_Mask.__fds_bits[n];
-#else
       input_mask.fds_bits[n] = Sb_Input_Mask.fds_bits[n];
       except_mask.fds_bits[n] = Sb_Except_Mask.fds_bits[n];
-#endif
     }
     
     do result=select(SPCD_max_fd + 1, FD_SET_CAST(&input_mask),