File: PROBLEMS

package info (click to toggle)
ddd 1%3A3.3.9-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 41,356 kB
  • ctags: 13,202
  • sloc: cpp: 103,920; ansic: 29,318; sh: 9,431; makefile: 2,367; perl: 290; sed: 89; awk: 25
file content (520 lines) | stat: -rw-r--r-- 16,727 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
Problems in building and installing DDD                          -*- text -*-
***************************************

This file lists problems encountered when building and installing DDD
in various environments.

Table of Contents
=================

    * Ada
    * AIX
    * Cygwin
    * DEC
    * FreeBSD
    * GCC
      + GCC 3.0 prereleases
      + GCC and libg++
    * HP-UX
    * Irix
    * LessTif
    * Linux
    * MacOS X
    * OSF/1
    * Solaris 2.x
    * SunOS
      + SunOS 4.1 and X11R6
      + SunOS 4.1 and Sun C++
    * Tru64
    * Unixware
    * X11R4

ADA
===

Reported by: Rick Flower <Rick.Flower@trw.com>

    To debug Ada programs created with Gnat, you need a set of GDB
    patches.  The current best set of patches for GDB 4.16 can be
    found at `ftp://cs.nyu.edu/pub/gnat/gdb'.


AIX
===

Reported by: jensen@Adobe.COM (Freddy Jensen)

To compile DDD 3.3 for AIX 4.3.3:

     I had to set these two flags before running configure:

     setenv CPPFLAGS "-I/usr/shared/gcc_2.95/aix_4.3/lib/gcc-lib/rs6000-ibm-aix4.3.2.0/2.95.2/include"
     setenv LDFLAGS  "-Wl,-bbigtoc"

     After running configure I had to edit ddd/config.h and 
     change this:

     From: #define HAVE_TCDRAIN 1
     To:   #define HAVE_TCDRAIN 0

     Otherwise I would get tcdrain() undefined. I tried to link
     in libcurses.a explicitly, but that did not work. I am not
     sure exactly what the effect of not having tcdrain() is,
     although ddd seems to run just fine without it.


Reported by: Andreas Zeller <zeller@gnu.org>

    Some EGCS versions on AIX have trouble compiling DDD.  If you get
    internal compiler errors, try compiling the affected modules
    without optimization.  Here are the commands:

	$ cd TOPLEVEL        # Top of DDD distribution
	$ make -k            # Build all with optimization
	$ cd ddd
	$ make -k CXXOPT=    # Build remainder of DDD without optimization


Reported by: Brian Cameron <bcameron@tuc.com>

    When compiling DDD using EGCS, you may get a conflict between
    <math.h> and the <exception> header.  As a workaround, create a
    local `math.h' file that contains:

	#define exception math_exception
	#include_next <math.h>
	#undef math_exception


Reported by: Andreas Zeller <zeller@gnu.org>

    Because of a limitation in the AIX linker, linking of DDD may stop
    with the message "TOC overflow".  The AIX Table of Contents (TOC)
    by default has only 16,384 entries; DDD has far more symbols.

    If you use EGCS 1.1 or GCC 2.8.0 or later, `configure' should
    already have fixed this for you.  In other configurations, there
    are three ways to fix this problem:

    1. Add the flag `-Wl,-bbigtoc' to the `LDFLAGS' definition in
       `ddd/Makefile' and retype `make'.  This makes the AIX linker
       use a larger TOC.

    2. If this does not work, add the flags `-mno-fp-in-toc' and
       `-mno-sum-in-toc' to the `CXXFLAGS' definition in
       `ddd/Makefile' and recompile all.  Each of these options causes
       GCC to produce very slightly slower and larger code at the
       expense of conserving TOC space.

    3. If this still does not work, add the flag `-mminimal-toc' to
       the `CXXFLAGS' definition in `ddd/Makefile' and recompile all.
       When you specify this option, GCC will produce code that is
       slower and larger but which uses extremely little TOC space.


Reported by:	Jacek M. Holeczek <holeczek@us.edu.pl>

    This "howto" describes the way one can get ddd-3.0 compiled on AIX 4.1
    using standard AIX utilities: C Set ++ for AIX Compiler (xlC), lex
    and yacc. The same procedure should be valid on AIX 4.2 and AIX 3.2.

    First unpack the source distribution and go to the ddd-3.0 subdirectory.

    Then set some environment variables:
            export CC=xlC
            export CXX=xlC
            export CFLAGS="-O"
            export CXXFLAGS="-O"
            export LDFLAGS="-O"
            unset LIBPATH

    If you decide NOT to use gnu gcc, flex, and bison you may also
    need to remove the /usr/local/bin (or any other subdirectory where
    you keep gnu executables) from the PATH environment variable (so
    that the ./configure script will not find them, and it will find
    standard AIX xlC, lex, and yacc):
            export PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin

    Then run configure:
            ./configure -v

    On AIX 3.2 you might need to add a line in ./ddd/config.h in form:
            #define HAVE_GETHOSTNAME_DECL 1
    (On AIX 4.1, AIX 4.2 you should have it already defined by ./configure.)

    If you decide NOT to use gnu flex and gnu bison and use standard
    AIX lex and yacc instead, you have to remove some files:

            rm ./ddd/vsl-gramma.C ./ddd/vsl-gramma.h
            rm ./ddd/vsl-lex.C
            rm ./ddd/rxscan.C

    Now run "make clean" and then "make".

    If you decided to use standard AIX lex and yacc the make will
    complain (while working on ./ddd/vsl-lex.*, ./ddd/vsl-gramma.*,
    ./ddd/rxscan.*):
            lextoC: cannot determine lex type -- reverting to flex
            yacctoC: cannot determine yaccpar type -- reverting to bison
    You can safely ignore these messages (they come from ./ddd/lextoC
    and ./ddd/yacctoC and mean that they have no AIX lex and yacc
    specific entries). Later on, the make will crash while compiling 
    ./ddd/VSLRead.C. You have to edit ./ddd/vsl-gramma.C (after the
    ./ddd/vsl-gramma.C is newly created by yacc) and modify the
    declaration of vslerror:
            extern "C" void vslerror(char *s);       // added "C"

    and the definition of vslparse:
            #ifdef __cplusplus
            // extern "C"                           // commented extern "C"
            #endif /* __cplusplus */
            int
            vslparse()

    In case you created ./ddd/rxscan.C with AIX 4.1 lex (from the
    ./ddd/rxscan.L) you additionally need to modify one line in the
    beginning of this file increasing YYLMAX from 200 to 8192 (this is
    a result of a bug in AIX 4.1 lex, most probably not present on
    both AIX 3.2 and AIX 4.2 - note here that you will not get any
    compile time errors if you do not modify it, but your executable
    will be broken):

            # define YYLMAX 8192

    then run "make" again.  You should get no other warnings/errors except:
      - when compiling ./ddd/mainloop.C:
	68  1500-010: (W) WARNING in ddd_main_loop(): Infinite loop.  
            Program may not stop.
        ( this is intentional, you can safely ignore it ).
    Finally run "make strip" and "make install".  Have fun ...


Cygwin
======

    Cygwin is supported from ddd 3.3.9 on.


DEC
===

(See Tru64 section)

Reported by: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>

    When using DEC's C++ compiler 6.0, more than 99% of the warnings I
    get *normally* when building ddd are complaints about the X11R6
    header files not explicitly using `int' as a return type.  To make
    it easier to see the other warnings, I've added

	`-msg_disable nonstd_implicit_int'

    to the `CXXFLAGS' before building this time.


Reported by: Pascal Quesseveur <abak@hol.fr>

    I have encountered some problems when compiling ddd on DEC Alpha 
    station running Digital UNIX 4.0 with gcc version 2.7.2.2:

    ddd/config.h created by configure is wrong: symbol 
    HAVE_GETHOSTNAME_DECL must be defined in config.h since include file 
    /usr/include/unistd.h contains a prototype for gethostname. This 
    prototype is
        int gethostname(char *, size_t)
    when symbol _XOPEN_SOURCE_EXTENDED is defined and
        int gethostname (char *, int)
    in the other cases. There is a conflict with the prototype defined in
    ddd/hostname.C.

    The `ddd/Makefile' created by configure is wrong: variables
    LIBNSL, NON_XLIBS and LIBGEN have incorrect values - the values
    must be null to link ddd correctly.

Jim Tarrant <jtarrant@inri.co.uk> reports:

    To compile DDD-3.0 on our Digital Unix 4.0D workstations with GCC
    2.8.1, I had to turn optimization off while building (use `make
    CXXOPT=-DNDEBUG' to build DDD).


FreeBSD
=======

Reported by:  taob@gate.sinica.edu.tw (Brian Tao)

    Use `gmake' (GNU make) instead of `make' for building DDD.



GCC
===

GCC 3.0 prereleases
-------------------

    Building DDD with GCC 3.0 prerelases on Intel/Linux currently
    leads to duplicate template instantiations.  Recompiling the
    conflicting objects without optimization should make the problem
    go away.  Use something like:

       $ rm buttons.o DataDisp.o settings.o BreakPoint.o ddd.o session.o
       $ make CXXOPT=

    to rebuild DDD.


GCC and LIBG++
--------------

    If you have multiple copies of gcc and/or libg++ installed, be
    sure that the referenced versions match each other.  This is a
    common source for various problems.


HP-UX
=====

Reported by: Andrew Gaylard <apg@users.sf.net>

    HP-UX 10.20's SOM linker has problems with linking DDD.  To work
    around it, it is necessary to build without debugging information
    (stripping after compiling doesn't help).

    It is also necessary to link with the Motif library statically.
    This is taken care of by the configure script.

    To compile DDD-3.3.8 for HP-UX 10.20 with g++ 3.x:

    1. ./configure --with-athena-includes=/usr/contrib/X11R6/include \
                   --with-athena-libraries=/usr/contrib/X11R6/lib

    2. make CFLAGS=-O2 CXXFLAGS=-O2

    (If configure fails to link statically Motif, it can be achieved with
    "make LIBXM=/usr/lib/Motif1.2_R6/libXm.a")

    Starting ddd-3.3.9, "./configure CFLAGS=-O3 CXXFLAGS=-O3; make" should
    be enough.  It seems that as features are added to DDD, the optimisation
    level needs to increase, or linking fails...

    DDD-3.3.9 builds on HP-UX 11.11 (aka 11i), with some fiddling.  The
    following process may be overkill, but is known to work:
    - Install HP's December 2003 patchset.
    - Install the linker patch PHSS_28871 (or PHSS_28869 for 11.00).
    - Install the HP-UX "developer's toolkit"; you can get it from
        http://www.software.hp.com/portal/swdepot/displayProductInfo.do?productNumber=B3394BA
      (many thanks to Chris Seip of HP for this link!)
    - Build and install binutils 2.14 (I used /usr/local).  I also installed
      m4, bison, flex, make and zlib.
    - Build and install gcc-3.3.2 or gcc-3.4.0, using
         ../configure --with-gnu-as --with-as=/usr/local/bin/as
    - At this point, DDD's "./configure; make; make install" will work.

    If anyone's tried building DDD with HP's aCC, I'd like to hear from you.

Reported by: Tuomo Tikkanen <Tuomo.Tikkanen@nokia.com>

    To use HP's aCC to build ddd 3.3.9, setting CXXFLAGS='-AA' is necessary.


Irix
====

    Using the MIPSPro compilers:

    To compile ddd 3.3.9, CXXFLAGS needs to include "-LANG:std".

    To use Motif 2.1, the configure line is:
    env CC='cc -n32' CXX='CC -n32' \
     CFLAGS='-O' CXXFLAGS='-O -LANG:std' \
     ./configure \
     --with-motif-includes=/usr/Motif-2.1/include \
     --with-motif-libraries=/usr/Motif-2.1/lib32 \
     --x-libraries=/usr/lib32

LessTif
=======

    To use DDD with LessTif, get a recent LessTif release from
    `http://www.lesstif.org'.  Be sure to apply the patches found in
    the `patches/' subdirectory.

    With DDD 3.1.6 and LessTif 0.88.9, the following problems are
    currently known:

    * Resizing the plot window does not work properly.

    See the DDD WWW page for further issues and patches.

Linux
=====

Reported by: Andrew Gaylard <apg@users.sf.net>

    If the command window appears as follows on startup:

        GNU DDD 3.3.7 (i686-pc-linux-gnu), by Dorothea L(gdb)�

    then you probably have $LANG set to something like "en_US.UTF-8".
    Setting it to either "C" or "en_US.iso885915", or unsetting it completely
    will fix this problem.

    Alternatively, link with Lesstif.

    This has been observed on Redhat-8.1, but probably affects other
    Unixes as well.

Intel
-----

Reported by: Jim Van Zandt <jrv@vanzandt.mv.com>

     Under slackware 3.1, the file permissions in `/dev/ptyp?' do not
     allow for DDD <-> GDB interaction.  I did "cd /dev; rm pty*;
     MAKEDEV ptyp ptyq ptys ptyt", the former permissions and device
     numbers were restored, and DDD worked.
     [Can anyone tell me how to circumvent this within DDD?  - AZ]


Reported by:  Bernie Borenstein <c372321@hc1056.mdc.com>

     Make sure you use libc version 4.6.27 or later.  Otherwise some
     Motif versions will cause DDD to crash as soon as `Open
     Program...' is selected (or any other file selection dialog is
     opened).  Linux Motif's are very sensitive about this.

     As an intermediate workaround, use the GDB `file' and `core'
     commands; to open a specific source, use the GDB `info file
     FUNCTION' command, where FUNCTION is a function defined in that
     source file.


Alpha
-----

Reported by:  J.H.M. Dassen <jdassen@wi.leidenuniv.nl>

    The kernel headers before Linux 2.1.61 and 2.0.32 don't work
    correctly with glibc.  Compiling C programs is possible in most
    cases but C++ programs have (due to the change of the name lookups
    for `struct's) problems.  One prominent example is `struct
    fd_set'.
     
    There might be some problems left but 2.1.61/2.0.32 fix most of
    the known ones.  See the BUGS file for other known problems.


Pmac
----

Reported by:  Ryan Ware <ware@shocking.com>

    I just wanted to let you know that (unlike previous versions of
    DDD) 2.99 compiles almost straight out of the box for linux-pmac.
    The only thing I had to change was the optimization level to O1.
    O2 broke the compiler.  It looks and runs great.  Thanks.  I look
    forward to many hours of using it.


MacOS X
=======

    Build may fail on case sensitive file systems as ddd and Ddd conflict.
    See http://mail.gnu.org/archive/html/ddd/2002-09/msg00024.html.
    Patches are welcome.


OSF/1
=====

Reported by:  Marc Mengel <mengel@fnal.gov>

    On our OSF1 V3.2 machine, one has to turn of -g, or the 
    assembler chokes when compiling ddd.C.


Solaris 2.x
===========

Reported by: Joe VanAndel <vanandel@ucar.edu>

    When compiling for Solaris (SPARC) with X11R6.1 on Solaris 2.5.1, 
    LDFLAGS='-lICE -lSM -lsocket' ./configure  <configure_flags>
    
    so that all the necessary X libraries are linked in.

Reported by:  Matthias Klose <doko@cs.tu-berlin.de>

    If you configure DDD in Solaris with gcc and you have installed
    the libg++/libstdc++ libraries as shared libraries, you may try to
    run configure with LDFLAGS set to -R<prefix of libstdc++>/lib. If
    libstdc++/libg++ are installed in /usr/xyz, call configure with

	LDFLAGS=-R/usr/xyz/lib configure  <configure flags ...>

Reported by:  Blair Zajac <blair@olympia.gps.caltech.edu>

    When using Sun cc to compile `libiberty' as shipped with DDD, change
    `extern char *__builtin_alloca();' to `extern void
    *__builtin_alloca();' in `alloca-norm.h' to get the code to compile.
    This does not happen with GCC.

SunOS
=====

SunOS 4.1 and X11R6
-------------------

Reported by:  dmitzel@everest.hitc.com (Danny J. Mitzel) and
    doko@cs.tu-berlin.de (Matthias Klose)

    Using certain Motif and Athena libraries may cause
    `_vendorShellWidgetClass' to be defined twice.  A possible
    workaround is to configure DDD to run without Athena widgets
    (i.e. in `config.h', undefine `HAVE_ATHENA_WIDGETS' and remove the
    -lXaw flag from the `Makefile' linking command).


SunOS 4.1 and Sun C++
---------------------

Reported by:	Franklin Chen <chen@adi.com>

    On SunOS 4.1.x, with Sun C++ 4.0.1, `config.h' needs to end up with
        #define SIGHANDLERARGS int, ...
    rather than
        #define SIGHANDLERARGS int
    to avoid compile errors in a number of source files.

Tru64
=====

Reported by: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>

    Using the Compaq C++ compiler Version 6.5, it is necessary
    to use "CXX='cxx' CXXFLAGS='-std ansi -D__USE_STD_IOSTREAM -nousing_std'
    ./configure" to build ddd 3.3.9 and later.
    (CXXFLAGS='-std strict_ansi -nopure_cname' should do as well).


UNIXWARE
========

Reported by: Vinnie Shelton  <shelton@icd.teradyne.com>

    For Unixware, I have to set up `ddd/Makefile' as follows
    after configuration:

    LINK.cc = env LD_RUN_PATH=/usr/X11R6/lib $(CXX) $(CXXBINDING) $(LDFLAGS)

X11R4
=====

Reported by:  mlj@gensym.com (Magnus Ljungberg)

    You may need to prohibit the use of the _XEditResCheckMessages()
    function by entering a line saying '#undef HAVE_X11_XMU_EDITRES_H' in
    `ddd.C'.

$Id$