Problems compiling libg++ 2.7.2 under DU 4.0C

From: Tripp Cox <tripp_at_eng.mindspring.net>
Date: Wed, 13 Aug 1997 23:24:42 -0400 (EDT)

In article <1.5.4.32.19970814030029.0070a6fc_at_mail.adelaide.on.net>, you wrote:
>The following trace says it all ... Has anyone seen this problem and fixed it?

DejaNews is handy for these sorts of things. Here is a patch you can find
there from "Uwe F. Mayer" <mayer_at_math.Vanderbilt.Edu>.

Tripp

*** libg++-2.7.2/libg++/src/Intdouble.cc Fri Jun 16 17:43:47 1995
--- libg++-2.7.2.alpha/libg++/src/Intdouble.cc Wed Jul 9 10:38:15 1997
***************
*** 90,96 ****
    divide(num, den, q, r);
    double d1 = q.as_double();
   
! if (d1 >= DBL_MAX || d1 <= -DBL_MAX || sign(r) == 0)
      return d1;
    else // use as much precision as available for fractional part
    {
--- 90,100 ----
    divide(num, den, q, r);
    double d1 = q.as_double();
   
! if (d1 >= DBL_MAX)
! return d1;
! else if (d1 <= -DBL_MAX)
! return d1;
! else if (sign(r) == 0)
      return d1;
    else // use as much precision as available for fractional part
    {
*** libg++-2.7.2/libg++/src/Regex.cc Mon Jun 17 17:30:25 1996
--- libg++-2.7.2.alpha/libg++/src/Regex.cc Tue Jul 8 12:13:58 1997
***************
*** 29,34 ****
--- 29,35 ----
  
  extern "C" {
  #if 1
+ #define HAVE_REG_TYPES_H
  #include
  #else
  #include
*** libg++-2.7.2/libiberty/choose-temp.c Mon May 27 13:25:10 1996
--- libg++-2.7.2.alpha/libiberty/choose-temp.c Tue Jul 8 12:13:58 1997
***************
*** 35,40 ****
--- 35,44 ----
  
  #include /* May get P_tmpdir. */
  
+ #ifdef NEED_STRING_H
+ #include
+ #endif
+
  #ifdef IN_GCC
  #include "config.h"
  #include "gansidecl.h"
*** libg++-2.7.2/libiberty/getopt.c Fri Jul 7 18:48:36 1995
--- libg++-2.7.2.alpha/libiberty/getopt.c Tue Jul 8 12:13:58 1997
***************
*** 54,59 ****
--- 54,63 ----
  
  #include
  
+ #ifdef NEED_STRING_H
+ #include
+ #endif
+
  /* Comment out all this code if we are using the GNU C Library, and are not
     actually compiling the library itself. This code is part of the GNU C
     Library, but also included in many other GNU distributions. Compiling
*** libg++-2.7.2/libiberty/xstrdup.c Thu Dec 28 11:37:37 1995
--- libg++-2.7.2.alpha/libiberty/xstrdup.c Tue Jul 8 12:13:58 1997
***************
*** 5,10 ****
--- 5,14 ----
  #include "ansidecl.h"
  #include "libiberty.h"
  
+ #ifdef NEED_STRING_H
+ #include
+ #endif
+
  char *
  xstrdup (s)
       const char *s;
*** libg++-2.7.2/librx/rx.c Tue Dec 19 13:57:20 1995
--- libg++-2.7.2.alpha/librx/rx.c Tue Jul 8 12:19:34 1997
***************
*** 5169,5175 ****
                    return REG_ESPACE;
                  ++paramc;
                  params [sync_se].se = re_se_tv;
! side = (rx_side_effect)sync_se;
                  goto add_side_effect;
                }
            }
--- 5169,5175 ----
                    return REG_ESPACE;
                  ++paramc;
                  params [sync_se].se = re_se_tv;
! side = (rx_side_effect)(long)sync_se;
                  goto add_side_effect;
                }
            }
***************
*** 5547,5556 ****
                  {
                    struct rexp_node * left
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)left_se);
                    struct rexp_node * right
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)right_se);
                    struct rexp_node * c1
                      = (*inner
                         ? rx_mk_r_concat (&rxb->rx, left, *inner) : left);
--- 5547,5556 ----
                  {
                    struct rexp_node * left
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)(long)left_se);
                    struct rexp_node * right
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)(long)right_se);
                    struct rexp_node * c1
                      = (*inner
                         ? rx_mk_r_concat (&rxb->rx, left, *inner) : left);
***************
*** 5595,5601 ****
                  {
                    struct rexp_node * sync
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)sync_se);
                    struct rexp_node * conc
                      = rx_mk_r_concat (&rxb->rx, sync, 0);
  
--- 5595,5601 ----
                  {
                    struct rexp_node * sync
                      = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)(long)sync_se);
                    struct rexp_node * conc
                      = rx_mk_r_concat (&rxb->rx, sync, 0);
  
***************
*** 5720,5726 ****
                                               (rx_side_effect)re_se_push0);
                      struct rexp_node * start_one_iter
                        = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)iter_se);
                      struct rexp_node * phase1
                        = rx_mk_r_concat (&rxb->rx, start_one_iter,
                                          *last_expression);
--- 5720,5726 ----
                                               (rx_side_effect)re_se_push0);
                      struct rexp_node * start_one_iter
                        = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)(long)iter_se);
                      struct rexp_node * phase1
                        = rx_mk_r_concat (&rxb->rx, start_one_iter,
                                          *last_expression);
***************
*** 5738,5744 ****
                        = rx_mk_r_concat (&rxb->rx, push0, loop);
                      struct rexp_node * final_test
                        = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)end_se);
                      struct rexp_node * full_exp
                        = rx_mk_r_concat (&rxb->rx, push_n_loop, final_test);
  
--- 5738,5744 ----
                        = rx_mk_r_concat (&rxb->rx, push0, loop);
                      struct rexp_node * final_test
                        = rx_mk_r_side_effect (&rxb->rx,
! (rx_side_effect)(long)end_se);
                      struct rexp_node * full_exp
                        = rx_mk_r_concat (&rxb->rx, push_n_loop, final_test);
  
***************
*** 5905,5911 ****
                ++paramc;
                params[backref_se].se = re_se_backref;
                params[backref_se].op1 = c1;
! side = (rx_side_effect)backref_se;
                goto add_side_effect;
              }
                break;
--- 5905,5911 ----
                ++paramc;
                params[backref_se].se = re_se_backref;
                params[backref_se].op1 = c1;
! side = (rx_side_effect)(long)backref_se;
                goto add_side_effect;
              }
                break;
***************
*** 5976,5982 ****
      params[win_se].se = re_se_win;
      {
        struct rexp_node * se
! = rx_mk_r_side_effect (&rxb->rx, (rx_side_effect)win_se);
        struct rexp_node * concat
        = rx_mk_r_concat (&rxb->rx, rexp, se);
        if (!(se && concat))
--- 5976,5982 ----
      params[win_se].se = re_se_win;
      {
        struct rexp_node * se
! = rx_mk_r_side_effect (&rxb->rx, (rx_side_effect)(long)win_se);
        struct rexp_node * concat
        = rx_mk_r_concat (&rxb->rx, rexp, se);
        if (!(se && concat))
*** libg++-2.7.2/librx/rx.h Fri Apr 14 10:36:00 1995
--- libg++-2.7.2.alpha/librx/rx.h Tue Jul 8 12:20:48 1997
***************
*** 1285,1291 ****
--- 1285,1293 ----
  };
  
  /* Type for byte offsets within the string. POSIX mandates this. */
+ #ifndef HAVE_REG_TYPES_H
  typedef int regoff_t;
+ #endif
  
  /* This is the structure we store register match data in. See
     regex.texinfo for a full description of what registers match. */
***************
*** 1296,1311 ****
--- 1298,1317 ----
    regoff_t *end;
  };
  
+ #ifndef HAVE_REG_TYPES_H
  typedef struct re_pattern_buffer regex_t;
+ #endif
  
  /* POSIX specification for registers. Aside from the different names than
     `re_registers', POSIX uses an array of structures, instead of a
     structure of arrays. */
+ #ifndef HAVE_REG_TYPES_H
  typedef struct
  {
    regoff_t rm_so; /* Byte offset from string's start to substring's start. */
    regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
  } regmatch_t;
+ #endif
  
  
  /* The following bits are used to determine the regexp syntax we
***************
*** 2604,2610 ****
--- 2610,2620 ----
  
        search_state.outer_pos.offset = 0;
        search_state.outer_pos.size = 0;
+ #ifdef LONG_POINTERS
+ search_state.outer_pos.pos = (unsigned char *)(long)startpos;
+ #else
        search_state.outer_pos.pos = (unsigned char *)startpos;
+ #endif
        init_fastmap (rxb, &search_state);
  
        search_state.fastmap_resume_pt = rx_fastmap_start;
***************
*** 2714,2720 ****
--- 2724,2734 ----
   test_match:
    {
      enum rx_test_match_entry test_pc;
+ #ifdef LONG_POINTERS
+ long inx;
+ #else
      int inx;
+ #endif
      test_pc = search_state.test_match_resume_pt;
      if (test_pc == rx_test_start)
        {
***************
*** 2886,2892 ****
        /* We've encountered an instruction other than next-char.
         * Dispatch that instruction:
         */
! inx = (int)search_state.ifr->inx;
  #ifdef RX_DEBUG_0
        if (rx_debug_trace)
          {
--- 2900,2906 ----
        /* We've encountered an instruction other than next-char.
         * Dispatch that instruction:
         */
! inx = (long)search_state.ifr->inx;
  #ifdef RX_DEBUG_0
        if (rx_debug_trace)
          {
Received on Thu Aug 14 1997 - 05:34:42 NZST

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:36 NZDT