🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.c++.leda
Article #151

LEDA-3.2.3 on Solaris 2.4

#151
From: Olivier L'Heureux
Date: Fri, 27 Oct 1995 10:40
235 lines
9780 bytes
--Multipart Fri Oct 27 11:40:54 1995
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

Hello,

I loaded "LEDA-R-3.2.3" library, and I compiled it. I noted all the
potential problems and reported them here. It may help other users.

I compiled LEDA on a Sun SPARCstation 20.
The operating system was Solaris 2.4 (SunOS 5.4) with patch 101945-13.
The compiler used was gcc version 2.7.0.

By the way, I succeeded to compile LEDA as shared library, it is
not so difficult.  Without the sharing libraries, compiling all the
programmes with `-g -O' requires more than 100 MB ! More in another
post.

						Olivier L'Heureux

----------------------------------------------------------------------

Laboratoire de microélectronique de l'Université catholique de Louvain

e-mail:	lheureux@dice.ucl.ac.be	               B-1348 Louvain-la-Neuve
<URL:http://www.dice.ucl.ac.be/~lheureux>                      Belgium
MIME/PGP accepted

--------------------------
1) Compilation of the libraries: OK !

  Only one problem happened. I compiled the library with both options
  "-g" (debugging) and "-O" (optimisation). (Yes, I had to change the
  Makefile ! ). "_mw_mat1.c" and "_mw_mat2.c" do not support both
  options; I had to compile them without "-g". It is propably an
  overflow in gcc-2.7.0, the generated assembly source is more than 2
  MB !
  -------------
  ../../c++  -I../../incl -g -O -DLEDA_CHECKING_OFF -c _mw_mat1.c
  cc1plus: /var/tmp/cca001DQ.s: I/O error
  make[2]: [_mw_mat1.o] Error 1 (ignored)
  ../../c++  -I../../incl -g -O -DLEDA_CHECKING_OFF -c _mw_mat2.c
  cc1plus: /var/tmp/cca001DT.s: I/O error
  make[2]: [_mw_mat2.o] Error 1 (ignored)
  -------------

  To compile with more than one option, insert lines like these in
  LEDA-3.2.3/makefile: 

  -------------
  lib_gO: 
	cd src;  $(MAKE) -i FLAGS="\"-g -O\""


  pro_gO:
	cd prog; $(MAKE) -i FLAGS="\"-g -O\""

  -------------

2) Compilation of the programmes:

  2.1) The `prog/graph/short' programme calls an algorithm
       "STATIC_DIJKSTA" wich does not exist, compilation crashes.
  2.2) The `prog/graph/shorttest' programme #includes <LEDA/node_slist.h>, 
       which does not exist, compilation crashes.
  2.3) The programmes linked with `-lX11' needs to be linked with
       `-lsocket' on Solaris 2.x. Here is a typical error message:

    -------------
    ../../c++ -g -O -o bin_tree bin_tree.o ../../libP.a ../../libG.a ../../libL.a ../../libWx.a -lX11 -lm
    Undefined			first referenced
     symbol  			    in file
    socket                              /usr/X11R5/lib/libX11.so
    xdrmem_create                       /usr/X11R5/lib/libX11.so
    gethostbyname                       /usr/X11R5/lib/libX11.so
    setsockopt                          /usr/X11R5/lib/libX11.so
    authdes_create                      /usr/X11R5/lib/libX11.so
    inet_addr                           /usr/X11R5/lib/libX11.so
    connect                             /usr/X11R5/lib/libX11.so
    ld: fatal: Symbol referencing errors. No output written to bin_tree
    make[2]: [bin_tree] Error 1 (ignored)
    -------------

        The Makefiles in the directories "prog/windows" and
        "prog/demo" should be updated with the following patch:

--Multipart Fri Oct 27 11:40:54 1995
Content-Type: text/plain; charset=US-ASCII

*** Makefile    Tue Oct 24 12:04:19 1995
--- Makefile.orig       Fri Sep 15 15:43:10 1995
***************
*** 1,5 ****
   
! UNIXLIB = -L../.. -lP -lG -lL -lWx -lX11 -lm -lsocket
  
  DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  
--- 1,5 ----
   
! UNIXLIB = ../../libP.a ../../libG.a ../../libL.a ../../libWx.a -lX11 -lm
  
  DOSLIB = ..\\..\\libp.lib ..\\..\\libg.lib ..\\..\\libl.lib ..\\..\\libwx.lib
  
--Multipart Fri Oct 27 11:40:54 1995
Content-Type: text/plain; charset=US-ASCII


  2.4) The programmes `prog/seeep/test.c' and `prog/seeep/demo.c' does
       not compile.

-------------
../../c++ -I../../incl -g -O -c test.c
test.c: In function `int main()':
test.c:61: no matching function for call to `point::point (integer, integer, integer)'
../../incl/LEDA/point.h:66: candidates are: point::point()
../../incl/LEDA/point.h:70:                 point::point(double, double)
../../incl/LEDA/point.h:74:                 point::point(vector)
../../incl/LEDA/point.h:78:                 point::point(const point &)
test.c:61: no matching function for call to `point::point (integer, integer, integer)'
../../incl/LEDA/point.h:66: candidates are: point::point()
../../incl/LEDA/point.h:70:                 point::point(double, double)
../../incl/LEDA/point.h:74:                 point::point(vector)
../../incl/LEDA/point.h:78:                 point::point(const point &)
test.c:61: in base initialization for class `segment'
test.c:68: `cmp_count' is not a member of type `point'
test.c:68: `exact_cmp_count' is not a member of type `point'
test.c:68: `exact_cmp_count' is not a member of type `point'
test.c:68: `cmp_count' is not a member of type `point'
test.c:70: `cmp_count' is not a member of type `point'
test.c:70: `exact_cmp_count' is not a member of type `point'
test.c:70: `exact_cmp_count' is not a member of type `point'
test.c:70: `cmp_count' is not a member of type `point'
test.c:71: `use_filter' is not a member of type `point'
test.c:72: `use_filter' is not a member of type `segment'
test.c:73: `cmp_count' is not a member of type `point'
test.c:73: `exact_cmp_count' is not a member of type `point'
test.c:73: `exact_cmp_count' is not a member of type `point'
test.c:73: `cmp_count' is not a member of type `point'
make: [test.o] Error 1 (ignored)
-------------
../../c++ -I../../incl -g -O -c demo.c
demo.c:3: LEDA/rat_point1.h: No such file or directory
demo.c:4: LEDA/rat_segment1.h: No such file or directory
make: [demo.o] Error 1 (ignored)
-------------

3) Documentation:
  3.1) The documentation may not be extracted without `gawk', because
       the awk scripts seems non-standard.
       The following patch for LEDA-3.2.3/man/extman.awk permits to
       use `nawk' instead. Put a symbolic link "LEDA-3.2.3/man/Awk"
       toward either `gawk' if you have it or `nawk'.

--Multipart Fri Oct 27 11:40:54 1995
Content-Type: text/plain; charset=US-ASCII

*** extman.awk	Wed Feb  1 15:09:53 1995
--- extman.awk.orig	Wed Feb  1 12:13:13 1995
***************
*** 1,5 ****
! # BEGIN { datatype = "?????????????"; }
! BEGIN { datatype = "............."; }
  
  function removeweb() 
  { x = 0; 
--- 1,4 ----
! BEGIN { datatype = "?????????????"; }
  
  function removeweb() 
  { x = 0; 
***************
*** 54,61 ****
  /\/\*{\\Mbinopfunc/ {
    split(memberfunc,arr);
    if (arr[2] !~ /[a-z,A-Z]+.*/)   # binary operator
!   {
!     sub(/arr[2]/,"",memberfunc);
      sub(/\(/,"",memberfunc);
      sub(/\)/,"",memberfunc);
      sub(/\,/,"\\ "arr[2],memberfunc);
--- 53,59 ----
  /\/\*{\\Mbinopfunc/ {
    split(memberfunc,arr);
    if (arr[2] !~ /[a-z,A-Z]+.*/)   # binary operator
!   { sub(arr[2],"",memberfunc);
      sub(/\(/,"",memberfunc);
      sub(/\)/,"",memberfunc);
      sub(/\,/,"\\ "arr[2],memberfunc);
*** tman        Mon Oct 16 17:42:02 1995
--- tman.orig   Fri Sep 15 15:43:14 1995
***************
*** 56,63 ****
  echo ""                                       >> $tmpfile.tex
  echo "\begin{document}"                 >> $tmpfile.tex
  echo "\chapter{ }"                    >> $tmpfile.tex
! # gawk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
! $MAN/Awk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
  echo "\end{document}"                 >> $tmpfile.tex
  
  
--- 56,62 ----
  echo ""                                       >> $tmpfile.tex
  echo "\begin{document}"                 >> $tmpfile.tex
  echo "\chapter{ }"                    >> $tmpfile.tex
! gawk -f $MAN/extman.awk $INCL/$1.h      >> $tmpfile.tex
  echo "\end{document}"                 >> $tmpfile.tex
  
  
--Multipart Fri Oct 27 11:40:54 1995
Content-Type: text/plain; charset=US-ASCII


  3.2) Adding a "SHELL= /bin/csh" line on top of "man/Makefile" may help.
  3.3) LaTeX errors :
         \abs : Undefined control sequence (extract/graph.tex, l.9,
                   l.10, l.45, l.50)
         Missing $ inserted. (extract/node_list.tex l.1)
       Solutions :
       Put a line "\def\abs {|}" in MANUAL.mac.
       Replace "node\\_list" by "node\_list" on line 1 of
                                       man/extract/node_list.tex.
       Replace "graph\\_misc" by "graph\_misc" on line 1 of
                                       man/extract/graph_misc.tex.
       It should probably be better to update the original .h files.

4) Programmes:
  4.1) `hash_dic' crashes with "Segmentation fault".
  4.2) `bin_tree' crashes with "Segmentation fault".
  4.3) `embedding' gives a message 
         "ERROR(2): sorry: can only embed bidirected graphs."
       with the default settings (random input = on, # segments = 40,
       node width = 12, edge width = 1)
  4.4) `hilbert' stops with "Segmentation fault".
--Multipart Fri Oct 27 11:40:54 1995--
Technical Details
Message-ID: <LHEUREUX.95Oct27114055@sphinx.dice.ucl.ac.be>
Path: arc1-ca.pugleaf.net!news.sri.ucl.ac.be!lheureux

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.sri.ucl.ac.be!lheureux
From: Olivier L'Heureux <lheureux@dice.ucl.ac.be>
Newsgroups: comp.lang.c++.leda
Subject: LEDA-3.2.3 on Solaris 2.4
Date: 27 Oct 1995 10:40:55 GMT
Organization: Lab. de Microelectronique - UCL - Belgium
Distribution: world
Message-ID: <LHEUREUX.95Oct27114055@sphinx.dice.ucl.ac.be>
NNTP-Posting-Host: ns3.dice.ucl.ac.be
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="Multipart Fri Oct 27 11:40:54 1995"
Content-Transfer-Encoding: 7bit