home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / PROBLEMS < prev    next >
Text File  |  1998-12-02  |  15KB  |  459 lines

  1. Problems in building and installing DDD                          -*- text -*-
  2. ***************************************
  3.  
  4. This file lists problems encountered when building and installing DDD
  5. in various environments.
  6.  
  7. Table of Contents
  8. =================
  9.  
  10.     * Ada
  11.     * AIX
  12.     * DEC
  13.     * FreeBSD
  14.     * GCC
  15.       + GCC optimization errors
  16.       + GCC and libg++
  17.       + EGCS 1.1
  18.     * HP-UX
  19.     * LessTif
  20.     * Linux
  21.     * OSF/1
  22.     * Solaris 2.x
  23.     * SunOS
  24.       + SunOS 4.1 and X11R6
  25.       + SunOS 4.1 and Sun C++
  26.     * Unixware
  27.     * X11R4
  28.  
  29. ADA
  30. ===
  31.  
  32. Reported by: Rick Flower <Rick.Flower@trw.com>
  33.  
  34.     To debug Ada programs created with Gnat, you need a set of GDB
  35.     patches.  The current best set of patches for GDB 4.16 can be
  36.     found at `ftp://cs.nyu.edu/pub/gnat/gdb'.
  37.  
  38.  
  39. AIX
  40. ===
  41.  
  42. Reported by: Brian Cameron <bcameron@tuc.com>
  43.  
  44.     When compiling DDD using EGCS, you may get a conflict between
  45.     <math.h> and the <exception> header.  As a workaround, create a
  46.     local `math.h' file that contains:
  47.  
  48.     #define exception math_exception
  49.     #include_next <math.h>
  50.     #undef math_exception
  51.  
  52.  
  53. Reported by: Andreas Zeller <ddd@ips.cs.tu-bs.de>
  54.  
  55.     Because of a limitation in the AIX linker, linking of DDD may stop
  56.     with the message "TOC overflow".  The AIX Table of Contents (TOC)
  57.     by default has only 16,384 entries; DDD has far more symbols.
  58.  
  59.     If you use GCC 2.8.0 or later, `configure' should already have
  60.     fixed this for you.  In other configurations, there are three ways
  61.     to fix this problem:
  62.  
  63.     1. Add the flag `-Wl,-bbigtoc' to the `LDFLAGS' definition in
  64.        `ddd/Makefile' and retype `make'.  This makes the AIX linker
  65.        use a larger TOC.
  66.  
  67.     2. If this does not work, add the flags `-mno-fp-in-toc' and
  68.        `-mno-sum-in-toc' to the `CXXFLAGS' definition in
  69.        `ddd/Makefile' and recompile all.  Each of these options causes
  70.        GCC to produce very slightly slower and larger code at the
  71.        expense of conserving TOC space.
  72.  
  73.     3. If this still does not work, add the flag `-mminimal-toc' to
  74.        the `CXXFLAGS' definition in `ddd/Makefile' and recompile all.
  75.        When you specify this option, GCC will produce code that is
  76.        slower and larger but which uses extremely little TOC space.
  77.  
  78.  
  79. Reported by:    Jacek M. Holeczek <holeczek@us.edu.pl>
  80.  
  81.     This "howto" describes the way one can get ddd-3.0 compiled on AIX 4.1
  82.     using standard AIX utilities: C Set ++ for AIX Compiler (xlC), lex
  83.     and yacc. The same procedure should be valid on AIX 4.2 and AIX 3.2.
  84.  
  85.     First unpack the source distribution and go to the ddd-3.0 subdirectory.
  86.  
  87.     Then set some environment variables:
  88.             export CC=xlC
  89.             export CXX=xlC
  90.             export CFLAGS="-O"
  91.             export CXXFLAGS="-O"
  92.             export LDFLAGS="-O"
  93.             unset LIBPATH
  94.  
  95.     If you decide NOT to use gnu gcc, flex, and bison you may also
  96.     need to remove the /usr/local/bin (or any other subdirectory where
  97.     you keep gnu executables) from the PATH environment variable (so
  98.     that the ./configure script will not find them, and it will find
  99.     standard AIX xlC, lex, and yacc):
  100.             export PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
  101.  
  102.     Then run configure:
  103.             ./configure -v
  104.  
  105.     On AIX 3.2 you might need to add a line in ./ddd/config.h in form:
  106.             #define HAVE_GETHOSTNAME_DECL 1
  107.     (On AIX 4.1, AIX 4.2 you should have it already defined by ./configure.)
  108.  
  109.     If you decide NOT to use gnu flex and gnu bison and use standard
  110.     AIX lex and yacc instead, you have to remove some files:
  111.  
  112.             rm ./ddd/vsl-gramma.C ./ddd/vsl-gramma.h
  113.             rm ./ddd/vsl-lex.C
  114.             rm ./ddd/rxscan.C
  115.  
  116.     Now run "make clean" and then "make".
  117.  
  118.     If you decided to use standard AIX lex and yacc the make will
  119.     complain (while working on ./ddd/vsl-lex.*, ./ddd/vsl-gramma.*,
  120.     ./ddd/rxscan.*):
  121.             lextoC: cannot determine lex type -- reverting to flex
  122.             yacctoC: cannot determine yaccpar type -- reverting to bison
  123.     You can safely ignore these messages (they come from ./ddd/lextoC
  124.     and ./ddd/yacctoC and mean that they have no AIX lex and yacc
  125.     specific entries). Later on, the make will crash while compiling 
  126.     ./ddd/VSLRead.C. You have to edit ./ddd/vsl-gramma.C (after the
  127.     ./ddd/vsl-gramma.C is newly created by yacc) and modify the
  128.     declaration of vslerror:
  129.             extern "C" void vslerror(char *s);       // added "C"
  130.  
  131.     and the definition of vslparse:
  132.             #ifdef __cplusplus
  133.             // extern "C"                           // commented extern "C"
  134.             #endif /* __cplusplus */
  135.             int
  136.             vslparse()
  137.  
  138.     In case you created ./ddd/rxscan.C with AIX 4.1 lex (from the
  139.     ./ddd/rxscan.L) you additionally need to modify one line in the
  140.     beginning of this file increasing YYLMAX from 200 to 8192 (this is
  141.     a result of a bug in AIX 4.1 lex, most probably not present on
  142.     both AIX 3.2 and AIX 4.2 - note here that you will not get any
  143.     compile time errors if you do not modify it, but your executable
  144.     will be broken):
  145.  
  146.             # define YYLMAX 8192
  147.  
  148.     then run "make" again.  You should get no other warnings/errors except:
  149.       - when compiling ./ddd/mainloop.C:
  150.     68  1500-010: (W) WARNING in ddd_main_loop(): Infinite loop.  
  151.             Program may not stop.
  152.         ( this is intentional, you can safely ignore it ).
  153.     Finally run "make strip" and "make install".  Have fun ...
  154.  
  155. DEC
  156. ===
  157.  
  158. Reported by: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>
  159.  
  160.     When using DEC's C++ compiler 6.0, more than 99% of the warnings I
  161.     get *normally* when building ddd are complaints about the X11R6
  162.     header files not explicitly using `int' as a return type.  To make
  163.     it easier to see the other warnings, I've added
  164.  
  165.     `-msg_disable nonstd_implicit_int'
  166.  
  167.     to the `CXXFLAGS' before building this time.
  168.  
  169.  
  170. Reported by: Pascal Quesseveur <abak@hol.fr>
  171.  
  172.     I have encountered some problems when compiling ddd on DEC Alpha 
  173.     station running Digital UNIX 4.0 with gcc version 2.7.2.2:
  174.  
  175.     ddd/config.h created by configure is wrong: symbol 
  176.     HAVE_GETHOSTNAME_DECL must be defined in config.h since include file 
  177.     /usr/include/unistd.h contains a prototype for gethostname. This 
  178.     prototype is
  179.         int gethostname(char *, size_t)
  180.     when symbol _XOPEN_SOURCE_EXTENDED is defined and
  181.         int gethostname (char *, int)
  182.     in the other cases. There is a conflict with the prototype defined in
  183.     ddd/hostname.C.
  184.  
  185.     The `ddd/Makefile' created by configure is wrong: variables
  186.     LIBNSL, NON_XLIBS and LIBGEN have incorrect values - the values
  187.     must be null to link ddd correctly.
  188.  
  189. Jim Tarrant <jtarrant@inri.co.uk> reports:
  190.  
  191.     To compile DDD-3.0 on our Digital Unix 4.0D workstations with GCC
  192.     2.8.1, I had to turn optimization off while building (use `make
  193.     CXXOPT=-DNDEBUG' to build DDD).
  194.  
  195.  
  196. FreeBSD
  197. =======
  198.  
  199. Reported by:  taob@gate.sinica.edu.tw (Brian Tao)
  200.  
  201.     Use `gmake' (GNU make) instead of `make' for building DDD.
  202.  
  203.  
  204.  
  205. GCC
  206. ===
  207.  
  208. GCC Optimization Errors
  209. -----------------------
  210.  
  211.     If DDD crashes after a few interactions, try building DDD without
  212.     optimization. Just type `cd ddd; rm *.o; make CXXOPT=-DNDEBUG ddd'
  213.     to re-build DDD.
  214.  
  215.  
  216. GCC and LIBG++
  217. --------------
  218.  
  219.     If you have multiple copies of gcc and/or libg++ installed, be
  220.     sure that the referenced versions match each other.  This is a
  221.     common source for various problems.
  222.  
  223.  
  224. HP-UX
  225. =====
  226.  
  227. Reported by:  (various)
  228.  
  229.     On HP-UX 10.01, if you cannot link DDD or get an illegal
  230.     instruction at start-up, this is due to some bugs in the X11 and
  231.     Motif libraries as shipped by HP.  Mark Harig <markh@landmark.com>
  232.     says that some patches to X11 and Motif libraries are required to
  233.     build DDD on HP-UX 10.01.  You can find these patches at:
  234.     `ftp://us-support.external.hp.com/hp-ux_patches/'; he found the
  235.     patches he needed in the directory `s700_800/10.X'.
  236.  
  237.     In that directory are the files:
  238.  
  239.        PHSS_10789  (the patch for S700/S800, HP-UX 10.20)
  240.        PHSS_10789.txt (description of the patch and instructions)  
  241.  
  242.     You might also need patch PHSS_10688, PHSS_9810, PHSS_9811,
  243.     PHSS_9813, and PHSS_9815.  Because the patch file names change as
  244.     new patches are created, you should look in this directory for the
  245.     file 'catalog', which lists the patch file names along with brief
  246.     descriptions.
  247.  
  248.     According to some DDD users, linking problems on HP-UX can be
  249.     solved by using patched versions of the GNU binutils (such as ld
  250.     and ar) instead of the HP-UX binutils.  For more information on
  251.     HP-PA versions of the GNU tools, see
  252.     `ftp://jaguar.cs.utah.edu/dist/pagnutools.html'.
  253.  
  254.     Frank Hofmann <hofmann@wpax01.physik.uni-wuerzburg.de> fixed an
  255.     `Invalid loader fixup for symbol _XtInheritTranslations,
  256.     xmPrimitiveClassRec' by replacing `XtInheritTranslations' by
  257.     `NULL' in `GraphEdit.C' and `ScrolledGE.C' and replacing
  258.     `xmPrimitiveClassRec' with `XmPrimitiveWidgetClass' in
  259.     `GraphEdit.C'.
  260.  
  261.     Roy Dragseth <royd@math.uit.no> says that you must link against
  262.     the X11R6 version of Xmu, the X11R4 version gave an error on
  263.     _XEditResCheckMessages being undefined at the link stage.
  264.  
  265.     Ivar Ruyter <ivarr@troll.hz.kfa-juelich.de> states: Build
  266.     everything statically and add `-l:libdld.sl' to the LIBS line in
  267.     the Makefile, voila you have a nice new Christmas Present.
  268.     This also worked for Hal Manuel <hemanuel@esy.com>.
  269.  
  270.     Roy Dragseth <royd@math.uit.no> adds:
  271.     Statically link as stated above. Actually it is only
  272.     neccessary to statically link libXm, so if you exchange 
  273.             -L/usr/lib/Motif1.2 -lXm
  274.     with
  275.             /usr/lib/Motif1.2/libXm.a
  276.     in the link step DDD works fine. This might be useful for people
  277.     who don't have the gnu linker. It also makes the executable ~1Mb
  278.     smaller than when you add -l:libdld.sl to the link step.
  279.  
  280.     Lassi A. Tuura <Lassi.Tuura@cern.ch> suggests to use the option
  281.     `-mmillicode-long-calls' when compiling.  It should permit fixes
  282.     into shared library calls (these errors only occur with shared
  283.     libraries).
  284.  
  285. LessTif
  286. =======
  287.     
  288.     To use DDD with LessTif, get a recent LessTif release from
  289.     `http://www.lesstif.org'.
  290.  
  291.     With LessTif 0.87, the following problems are currently known:
  292.  
  293.     * The `Preferences' dialog may need manual resize.
  294.  
  295.     * Option menus in `GDB Settings' are only displayed partially.
  296.  
  297.     * Resizing the plot window does not work properly.
  298.  
  299.     * Accelerators like Ctrl+L do not work in the plot window.
  300.  
  301.     See the DDD WWW page for further issues and patches.
  302.  
  303. Linux
  304. =====
  305.  
  306. EGCS
  307. ----
  308.  
  309.     EGCS 1.1 may produce errors like
  310.  
  311.     warning: ANSI C++ forbids declaration `__in' with no type
  312.  
  313.     This is an EGCS bug, which has been fixed for the upcoming
  314.     egcs-1.1.1 release.  As a workaround, create a file `sys/wait.h'
  315.     in the DDD source directory that contains the following lines:
  316.  
  317.     #include_next <sys/wait.h>
  318.  
  319.     #undef __WAIT_INT
  320.     #define __WAIT_INT(status)      (*(int *) &(status))
  321.  
  322.  
  323. Intel
  324. -----
  325.  
  326. Reported by: Jim Van Zandt <jrv@vanzandt.mv.com>
  327.  
  328.      Under slackware 3.1, the file permissions in `/dev/ptyp?' do not
  329.      allow for DDD <-> GDB interaction.  I did "cd /dev; rm pty*;
  330.      MAKEDEV ptyp ptyq ptys ptyt", the former permissions and device
  331.      numbers were restored, and DDD worked.
  332.      [Can anyone tell me how to circumvent this within DDD?  - AZ]
  333.  
  334.  
  335. Reported by:  Bernie Borenstein <c372321@hc1056.mdc.com>
  336.  
  337.      Make sure you use libc version 4.6.27 or later.  Otherwise some
  338.      Motif versions will cause DDD to crash as soon as `Open
  339.      Program...' is selected (or any other file selection dialog is
  340.      opened).  Linux Motif's are very sensitive about this.
  341.  
  342.      As an intermediate workaround, use the GDB `file' and `core'
  343.      commands; to open a specific source, use the GDB `info file
  344.      FUNCTION' command, where FUNCTION is a function defined in that
  345.      source file.
  346.  
  347.  
  348. Alpha
  349. -----
  350.  
  351. Reported by:  J.H.M. Dassen <jdassen@wi.leidenuniv.nl>
  352.  
  353.     The kernel headers before Linux 2.1.61 and 2.0.32 don't work
  354.     correctly with glibc.  Compiling C programs is possible in most
  355.     cases but C++ programs have (due to the change of the name lookups
  356.     for `struct's) problems.  One prominent example is `struct
  357.     fd_set'.
  358.      
  359.     There might be some problems left but 2.1.61/2.0.32 fix most of
  360.     the known ones.  See the BUGS file for other known problems.
  361.  
  362.  
  363. Pmac
  364. ----
  365.  
  366. Reported by:  Ryan Ware <ware@shocking.com>
  367.  
  368.     I just wanted to let you know that (unlike previous versions of
  369.     DDD) 2.99 compiles almost straight out of the box for linux-pmac.
  370.     The only thing I had to change was the optimization level to O1.
  371.     O2 broke the compiler.  It looks and runs great.  Thanks.  I look
  372.     forward to many hours of using it.
  373.  
  374.  
  375. OSF/1
  376. =====
  377.  
  378. Reported by:  Marc Mengel <mengel@fnal.gov>
  379.  
  380.     On our OSF1 V3.2 machine, one has to turn of -g, or the 
  381.     assembler chokes when compiling ddd.C.
  382.  
  383.  
  384. Solaris 2.x
  385. ===========
  386.  
  387. Reported by: Joe VanAndel <vanandel@ucar.edu>
  388.  
  389.     When compiling for Solaris (SPARC) with X11R6.1 on Solaris 2.5.1, 
  390.     LDFLAGS='-lICE -lSM -lsocket' ./configure  <configure_flags>
  391.     
  392.     so that all the necessary X libraries are linked in.
  393.  
  394. Reported by:  Matthias Klose <doko@cs.tu-berlin.de>
  395.  
  396.     If you configure DDD in Solaris with gcc and you have installed
  397.     the libg++/libstdc++ libraries as shared libraries, you may try to
  398.     run configure with LDFLAGS set to -R<prefix of libstdc++>/lib. If
  399.     libstdc++/libg++ are installed in /usr/xyz, call configure with
  400.  
  401.     LDFLAGS=-R/usr/xyz/lib configure  <configure flags ...>
  402.  
  403. Reported by:  Blair Zajac <blair@olympia.gps.caltech.edu>
  404.  
  405.     When using Sun cc to compile `libiberty' as shipped with DDD, change
  406.     `extern char *__builtin_alloca();' to `extern void
  407.     *__builtin_alloca();' in `alloca-norm.h' to get the code to compile.
  408.     This does not happen with GCC.
  409.  
  410. SunOS
  411. =====
  412.  
  413. SunOS 4.1 and X11R6
  414. -------------------
  415.  
  416. Reported by:  dmitzel@everest.hitc.com (Danny J. Mitzel) and
  417.     doko@cs.tu-berlin.de (Matthias Klose)
  418.  
  419.     Using certain Motif and Athena libraries may cause
  420.     `_vendorShellWidgetClass' to be defined twice.  A possible
  421.     workaround is to configure DDD to run without Athena widgets
  422.     (i.e. in `config.h', undefine `HAVE_ATHENA_WIDGETS' and remove the
  423.     -lXaw flag from the `Makefile' linking command).
  424.  
  425.  
  426. SunOS 4.1 and Sun C++
  427. ---------------------
  428.  
  429. Reported by:    Franklin Chen <chen@adi.com>
  430.  
  431.     On SunOS 4.1.x, with Sun C++ 4.0.1, `config.h' needs to end up with
  432.         #define SIGHANDLERARGS int, ...
  433.     rather than
  434.         #define SIGHANDLERARGS int
  435.     to avoid compile errors in a number of source files.
  436.  
  437. UNIXWARE
  438. ========
  439.  
  440. Reported by: Vinnie Shelton  <shelton@icd.teradyne.com>
  441.  
  442.     For Unixware, I have to set up `ddd/Makefile' as follows 
  443.     after configuration:
  444.  
  445.     LINK.cc = env LD_RUN_PATH=/usr/X11R6/lib $(CXX) $(CXXBINDING) $(LDFLAGS)
  446.  
  447. X11R4
  448. =====
  449.  
  450. Reported by:  mlj@gensym.com (Magnus Ljungberg)
  451.  
  452.     You may need to prohibit the use of the _XEditResCheckMessages()
  453.     function by entering a line saying '#undef HAVE_X11_XMU_EDITRES_H' in
  454.     `ddd.C'.
  455.  
  456.  
  457.  
  458. $Id: PROBLEMS,v 1.90 1998/12/02 08:25:12 zeller Exp $
  459.