home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume25 / sybperl / part01 / BUGS next >
Text File  |  1991-11-11  |  2KB  |  45 lines

  1.  
  2.     
  3.     The Sybase DB-Library - Perl savestr() conflict
  4.     ------------------------------------------------
  5.  
  6.  
  7.     Ah! The joys of tying different packages together!
  8.  
  9.     Both Perl and DB-Library have a function called savestr(). The
  10.     DB-Library version is used in dbcmd() to add an SQL command to the
  11.     list of commands pointed to by dpproc->dbcmdbuf, and in dbuse() as
  12.     well. Now there are several ways to work around this problem.
  13.  
  14.     1) Compile sybperl.c with -DBROKEN_DBCMD. I've written some code
  15.        that emulates calls to dbcmd() and dbuse(). This works OK on my
  16.        machine/OS/Version of Perl/Version of DBlib, but it relies on
  17.        the internal storing method used by DBlib, and that might
  18.        change in the future.
  19.  
  20.     2) Recompile Perl (specifically, uperl.o in the Perl source
  21.        directory) with some suitable flags (eg -Dsavestr=p_savestr).
  22.        This does not create any compatibility problems, but is a
  23.        lengthy procedure.
  24.  
  25.     3) Do something like:
  26.        cc -c sybperl.c
  27.        ld -r -o sybperl2.o sybperl.o -lsybdb
  28.        [edit sybperl2.o and replace `_savestr' with something like `_savest1']
  29.        cc -o sybperl uperl.o sybperl2.o
  30.        This is not a bad solution, but won't work if you have shared
  31.        library versions of libsybdb.a
  32.  
  33.     4) Edit uperl.o and replace savestr with something else. This is
  34.        the solution I've chosen as the default. It is relatively fast,
  35.        does not rely on any internal knowledge of DB-Library, and does
  36.        not require Perl to be recompiled.
  37.  
  38.     The Makefile gives some information on how to achieve these
  39.     different options.
  40.        
  41.     Thanks to Teemu Torma for providing the initial input on this problem.    
  42.  
  43.  
  44.     Michael
  45.