Re: problem resolving foreign function (I think)

DJ <[email protected]> Thu, 12 Mar 2015 16:53:56 -0400
Newsgroups gmane.lisp.clsql.general
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------000705030506050201080606
Content-Type: multipart/alternative;
	boundary="------------040007090603080107040009"


--------------040007090603080107040009
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Thanks for looking into this, Russ.

As mentioned in my second post, I have (a) a version of clsql_mysql64.so 
from a debian package, and (b) a version of the same as built by 
quicklisp. The first one works, the quicklisp one does not.

I dumped out the info in both versions of the library using readelf on 
my Linux Mint 17 system. FWIW I am attaching the output files from 
readelf. There are some differences; perhaps these reflect ld flag 
changes that you speak of. I could also send a gzipped version of the 
shared library build by quicklisp. Let me know if such attachments are a 
no-no on this mailing list.

I don't know whether this readelf  stuff will tell anyone anything. I am 
far from expert at linux development, but frankly digging around with 
this has been instructive. Actually it is high time that I learn what's 
under the covers with linux development. Learning about ELF format, gcc, 
ld, ld-linux.so and so on is long overdue for me. I have merrily plugged 
along just using CL since I switched from OS X to linux, but the 
chickens have now come home to roost, I suppose.

Meanwhile, I can actually continue my CL project using the shared 
library from the debian package.

Best,

- DJ -

On 15-03-12 10:21 AM, Russ Tyndall wrote:
> I played with my development environment and tried loading with only 
> quicklisp libraries.  On the latest quicklisp (clsql-20150302), I can 
> load :clsql-mysql by simply quickloading it on my Ubuntu 14.04.  It 
> takes care of all the building / loading aspects correctly.  There 
> were some problems with load flags in previous versions that have been 
> fixed (somewhat) recently.
>
> Perhaps you are not running the latest release? `(ql:update-all-dists)`
>
> Just a shot in the dark, but I dont have much else in the way of help 
> on this.
>
> Cheers,
> Russ Tyndall
> Acceleration.net
>
>
> On 03/12/2015 09:30 AM, Russ Tyndall wrote:
>> Sorry for the late reply.
>>
>> The real problem is that the mysql backend works for me, and is the 
>> back end I use the least.  I also am not a foreign library guru.  
>> This combination of these leaves me unable to offer much real advice 
>> here.
>>
>> I dont think this is a quicklisp problem, but I guess its possible.  
>> I think its standard for the 32bit build to fail on 64bit systems.  
>> Quicklisp pretty much just packages what is available, so if there is 
>> a bug in quicklisp, its probably a bug on our end.
>>
>> I am looking into it, but so far don't have an answer for you,
>> Cheers,
>> Russ Tyndall
>> Acceleration.net
>>
>>
>> On 03/11/2015 11:40 PM, DJ wrote:
>>> I am having some trouble with the quicklisp version of clsql on my 
>>> system as mentioned in my previous post.
>>>
>>> If this is really something I should post on the quicklisp site, let 
>>> me know please.
>>>
>>> Details again:
>>>
>>> On 15-03-06 10:58 PM, DJ wrote:
>>>
>>>> I can connect to a mysql database, but when I do any query with 
>>>> (clsql:query...) I get:
>>>>
>>>>     Can't resolve foreign symbol "clsql_mysql_field_flags"
>>>>
>>>>
>>>> So, here is the setup. I am running:
>>>>
>>>> Linux Mint 17 64-bit
>>>> Clozure CL Version 1.10-r16196 64-bit
>>>
>>> The problem seems to be with the version of clsql_mysql64.so that 
>>> gets built for the quicklisp package. I have attached the output 
>>> from make to this post. I am not very expert at C development. I 
>>> note that the 32-bit library could not be built. The only other 
>>> suspicious thing is that ls reports some kind of problem:
>>>
>>>     ld: warning: cannot find entry symbol _start
>>>
>>> I don't know whether that is the problem.
>>>
>>> I have different problems if I install the cl-sql-mysql debian 
>>> package. But if I just download that package and use the shared 
>>> library (clsql_mysql64.so) from it, clsql works. It seems I also 
>>> have to suppress loading the local quicklisp shared library by 
>>> commenting out a line in mysql-loader.lisp that pushes that path.
>>>
>>> I tried something simple to see whether the shared library built by 
>>> for quicklisp would work. In ccl you can just do for example 
>>> (open-shared-library "blah") and then (external 
>>> "clsql_mysql_field_flags") to see whether the foreign function can 
>>> be located. When I load the library from the debian package, the 
>>> clsql functions resolve. But they don't  resolve if I use the 
>>> library build for quicklisp. There is something funny about that 
>>> shared library, but it is beyond my expertise to track down just what.
>>>
>>> Hoping for help; thanks.
>>>
>>> - DJ -
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> CLSQL mailing list
>>> [email protected]
>>> http://lists.b9.com/cgi-bin/mailman/listinfo/clsql
>>
>>
>>
>> _______________________________________________
>> CLSQL mailing list
>> [email protected]
>> http://lists.b9.com/cgi-bin/mailman/listinfo/clsql
>
>
>
> _______________________________________________
> CLSQL mailing list
> [email protected]
> http://lists.b9.com/cgi-bin/mailman/listinfo/clsql


--------------040007090603080107040009
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dwindows-1252"
      http-equiv=3D"Content-Type">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Thanks for looking into this, Russ.<br>
    <br>
    As mentioned in my second post, I have (a) a version of
    clsql_mysql64.so from a debian package, and (b) a version of the
    same as built by quicklisp. The first one works, the quicklisp one
    does not.<br>
    <br>
    I dumped out the info in both versions of the library using readelf
    on my Linux Mint 17 system. FWIW I am attaching the output files
    from readelf. There are some differences; perhaps these reflect ld
    flag changes that you speak of. I could also send a gzipped version
    of the shared library build by quicklisp. Let me know if such
    attachments are a no-no on this mailing list.<br>
    <br>
    I don't know whether this readelf=A0 stuff will tell anyone anything.
    I am far from expert at linux development, but frankly digging
    around with this has been instructive. Actually it is high time that
    I learn what's under the covers with linux development. Learning
    about ELF format, gcc, ld, ld-linux.so and so on is long overdue for
    me. I have merrily plugged along just using CL since I switched from
    OS X to linux, but the chickens have now come home to roost, I
    suppose.<br>
    <br>
    Meanwhile, I can actually continue my CL project using the shared
    library from the debian package.<br>
    <br>
    Best,<br>
    <br>
    - DJ -<br>
    <br>
    <div class=3D"moz-cite-prefix">On 15-03-12 10:21 AM, Russ Tyndall
      wrote:<br>
    </div>
    <blockquote cite=3D"mid:[email protected]" type=3D"ci=
te">
      <meta content=3D"text/html; charset=3Dwindows-1252"
        http-equiv=3D"Content-Type">
      I played with my development environment and tried loading with
      only quicklisp libraries.=A0 On the latest quicklisp
      (clsql-20150302), I can load :clsql-mysql by simply quickloading
      it on my Ubuntu 14.04.=A0 It takes care of all the building /
      loading aspects correctly.=A0 There were some problems with load
      flags in previous versions that have been fixed (somewhat)
      recently.=A0 <br>
      <br>
      Perhaps you are not running the latest release?
      `(ql:update-all-dists)`<br>
      <br>
      Just a shot in the dark, but I dont have much else in the way of
      help on this.<br>
      <br>
      Cheers,<br>
      Russ Tyndall<br>
      Acceleration.net<br>
      <br>
      <br>
      <div class=3D"moz-cite-prefix">On 03/12/2015 09:30 AM, Russ Tyndall
        wrote:<br>
      </div>
      <blockquote cite=3D"mid:[email protected]"
        type=3D"cite">
        <meta content=3D"text/html; charset=3Dwindows-1252"
          http-equiv=3D"Content-Type">
        Sorry for the late reply.<br>
        <br>
        The real problem is that the mysql backend works for me, and is
        the back end I use the least.=A0 I also am not a foreign library
        guru.=A0 This combination of these leaves me unable to offer much
        real advice here.<br>
        <br>
        I dont think this is a quicklisp problem, but I guess its
        possible.=A0 I think its standard for the 32bit build to fail on
        64bit systems.=A0 Quicklisp pretty much just packages what is
        available, so if there is a bug in quicklisp, its probably a bug
        on our end.<br>
        <br>
        I am looking into it, but so far don't have an answer for you,<br=
>
        Cheers,<br>
        Russ Tyndall<br>
        Acceleration.net<br>
        <br>
        <br>
        <div class=3D"moz-cite-prefix">On 03/11/2015 11:40 PM, DJ wrote:<=
br>
        </div>
        <blockquote cite=3D"mid:[email protected]" type=3D"cite"=
>
          <meta content=3D"text/html; charset=3Dwindows-1252"
            http-equiv=3D"Content-Type">
          I am having some trouble with the quicklisp version of clsql
          on my system as mentioned in my previous post.<br>
          <br>
          If this is really something I should post on the quicklisp
          site, let me know please.<br>
          <br>
          Details again:<br>
          <br>
          <div class=3D"moz-cite-prefix">On 15-03-06 10:58 PM, DJ wrote:<=
br>
          </div>
          <br>
          <blockquote cite=3D"mid:[email protected]" type=3D"cite"=
> I
            can connect to a mysql database, but when I do any query
            with (clsql:query...) I get:<br>
            <br>
            <blockquote>Can't resolve foreign symbol
              "clsql_mysql_field_flags"<br>
            </blockquote>
            <br>
            So, here is the setup. I am running:<br>
            <br>
            Linux Mint 17 64-bit<br>
            Clozure CL Version 1.10-r16196 64-bit<br>
          </blockquote>
          <br>
          The problem seems to be with the version of clsql_mysql64.so
          that gets built for the quicklisp package. I have attached the
          output from make to this post. I am not very expert at C
          development. I note that the 32-bit library could not be
          built. The only other suspicious thing is that ls reports some
          kind of problem:<br>
          <br>
          <blockquote>ld: warning: cannot find entry symbol _start<br>
          </blockquote>
          I don't know whether that is the problem.<br>
          <br>
          I have different problems if I install the cl-sql-mysql debian
          package. But if I just download that package and use the
          shared library (clsql_mysql64.so) from it, clsql works. It
          seems I also have to suppress loading the local quicklisp
          shared library by commenting out a line in mysql-loader.lisp
          that pushes that path.<br>
          <br>
          I tried something simple to see whether the shared library
          built by for quicklisp would work. In ccl you can just do for
          example (open-shared-library "blah") and then (external
          "clsql_mysql_field_flags") to see whether the foreign function
          can be located. When I load the library from the debian
          package, the clsql functions resolve. But they don't=A0 resolve
          if I use the library build for quicklisp. There is something
          funny about that shared library, but it is beyond my expertise
          to track down just what.<br>
          <br>
          Hoping for help; thanks.<br>
          <br>
          - DJ -<br>
          <br>
          <br>
          <br>
          <br>
          <fieldset class=3D"mimeAttachmentHeader"></fieldset>
          <br>
          <pre wrap=3D"">_______________________________________________
CLSQL mailing list
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-abbreviated" href=3D"ma=
ilto:[email protected]">[email protected]</a>
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-freetext" href=3D"http:=
//lists.b9.com/cgi-bin/mailman/listinfo/clsql">http://lists.b9.com/cgi-bi=
n/mailman/listinfo/clsql</a>
</pre>
        </blockquote>
        <br>
        <br>
        <fieldset class=3D"mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap=3D"">_______________________________________________
CLSQL mailing list
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-abbreviated" href=3D"ma=
ilto:[email protected]">[email protected]</a>
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-freetext" href=3D"http:=
//lists.b9.com/cgi-bin/mailman/listinfo/clsql">http://lists.b9.com/cgi-bi=
n/mailman/listinfo/clsql</a>
</pre>
      </blockquote>
      <br>
      <br>
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap=3D"">_______________________________________________
CLSQL mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:[email protected]">CLSQL@=
b9.com</a>
<a class=3D"moz-txt-link-freetext" href=3D"http://lists.b9.com/cgi-bin/ma=
ilman/listinfo/clsql">http://lists.b9.com/cgi-bin/mailman/listinfo/clsql<=
/a>
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------040007090603080107040009--

--------------000705030506050201080606
Content-Type: text/plain; charset=UTF-8;
 name="debian-so.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="debian-so.txt"

ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x6b0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          3352 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         4
  Size of section headers:           64 (bytes)
  Number of section headers:         14
  Section header string table index: 13

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .hash             HASH            0000000000000120 000120 0000a8 04   A  2   0  8
  [ 2] .dynsym           DYNSYM          00000000000001c8 0001c8 000228 18   A  3   2  8
  [ 3] .dynstr           STRTAB          00000000000003f0 0003f0 000170 00   A  0   0  1
  [ 4] .gnu.version      VERSYM          0000000000000560 000560 00002e 02   A  2   0  2
  [ 5] .gnu.version_r    VERNEED         0000000000000590 000590 000020 00   A  3   1  8
  [ 6] .rela.plt         RELA            00000000000005b0 0005b0 000090 18   A  2   7  8
  [ 7] .plt              PROGBITS        0000000000000640 000640 000070 10  AX  0   0 16
  [ 8] .text             PROGBITS        00000000000006b0 0006b0 000281 00  AX  0   0  4
  [ 9] .rodata           PROGBITS        0000000000000934 000934 000004 00   A  0   0  4
  [10] .eh_frame         PROGBITS        0000000000000938 000938 0001c0 00   A  0   0  8
  [11] .dynamic          DYNAMIC         0000000000200af8 000af8 000160 10  WA  3   0  8
  [12] .got.plt          PROGBITS        0000000000200c58 000c58 000048 08  WA  0   0  8
  [13] .shstrtab         STRTAB          0000000000000000 000ca0 000071 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x000af8 0x000af8 R E 0x200000
  LOAD           0x000af8 0x0000000000200af8 0x0000000000200af8 0x0001a8 0x0001a8 RW  0x200000
  DYNAMIC        0x000af8 0x0000000000200af8 0x0000000000200af8 0x000160 0x000160 RW  0x8
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x8

 Section to Segment mapping:
  Segment Sections...
   00     .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.plt .plt .text .rodata .eh_frame 
   01     .dynamic .got.plt 
   02     .dynamic 
   03     

Dynamic section at offset 0xaf8 contains 17 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libmysqlclient.so.18]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname: [clsql_mysql]
 0x0000000000000004 (HASH)               0x120
 0x0000000000000005 (STRTAB)             0x3f0
 0x0000000000000006 (SYMTAB)             0x1c8
 0x000000000000000a (STRSZ)              368 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000003 (PLTGOT)             0x200c58
 0x0000000000000002 (PLTRELSZ)           144 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x5b0
 0x000000006ffffffe (VERNEED)            0x590
 0x000000006fffffff (VERNEEDNUM)         1
 0x000000006ffffff0 (VERSYM)             0x560
 0x0000000000000000 (NULL)               0x0

Relocation section '.rela.plt' at offset 0x5b0 contains 6 entries:
    Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
0000000000200c70  0000000800000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_data_seek + 0
0000000000200c78  0000000d00000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_affected_rows + 0
0000000000200c80  0000000f00000007 R_X86_64_JUMP_SLOT     0000000000000000 malloc + 0
0000000000200c88  0000001300000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_insert_id + 0
0000000000200c90  0000001400000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_stmt_affected_rows + 0
0000000000200c98  0000001600000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_num_rows + 0

The decoding of unwind sections for machine type Advanced Micro Devices X86-64 is not currently supported.

Symbol table '.dynsym' contains 23 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000000006b0     0 SECTION LOCAL  DEFAULT    8 
     2: 00000000000007a7    17 FUNC    GLOBAL DEFAULT    8 clsql_mysql_field_flags
     3: 0000000000000768    63 FUNC    GLOBAL DEFAULT    8 clsql_mysql_insert_id
     4: 00000000000007c9    17 FUNC    GLOBAL DEFAULT    8 clsql_mysql_field_name
     5: 0000000000000828   202 FUNC    GLOBAL DEFAULT    8 bind_param
     6: 0000000000200ca0     0 NOTYPE  GLOBAL DEFAULT   12 _edata
     7: 0000000000000729    63 FUNC    GLOBAL DEFAULT    8 clsql_mysql_affected_rows
     8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_data_seek
     9: 00000000000007ec    18 FUNC    GLOBAL DEFAULT    8 clsql_mysql_field_max_length
    10: 00000000000007da    18 FUNC    GLOBAL DEFAULT    8 clsql_mysql_field_length
    11: 00000000000007b8    17 FUNC    GLOBAL DEFAULT    8 clsql_mysql_field_type
    12: 00000000000006b0    58 FUNC    GLOBAL DEFAULT    8 clsql_mysql_data_seek
    13: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_affected_rows
    14: 00000000000007fe    42 FUNC    GLOBAL DEFAULT    8 allocate_bind
    15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND malloc@GLIBC_2.2.5 (2)
    16: 0000000000200ca0     0 NOTYPE  GLOBAL DEFAULT   12 _end
    17: 00000000000008f2    63 FUNC    GLOBAL DEFAULT    8 clsql_mysql_stmt_affected_rows
    18: 0000000000200ca0     0 NOTYPE  GLOBAL DEFAULT   12 __bss_start
    19: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_insert_id
    20: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_stmt_affected_rows
    21: 00000000000006ea    63 FUNC    GLOBAL DEFAULT    8 clsql_mysql_num_rows
    22: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_num_rows

Histogram for bucket list length (total of 17 buckets):
 Length  Number     % of total  Coverage
      0  3          ( 17.6%)
      1  7          ( 41.2%)     33.3%
      2  7          ( 41.2%)    100.0%

Version symbols section '.gnu.version' contains 23 entries:
 Addr: 0000000000000560  Offset: 0x000560  Link: 2 (.dynsym)
  000:   0 (*local*)       0 (*local*)       1 (*global*)      1 (*global*)   
  004:   1 (*global*)      1 (*global*)      1 (*global*)      1 (*global*)   
  008:   0 (*local*)       1 (*global*)      1 (*global*)      1 (*global*)   
  00c:   1 (*global*)      0 (*local*)       1 (*global*)      2 (GLIBC_2.2.5)
  010:   1 (*global*)      1 (*global*)      1 (*global*)      0 (*local*)    
  014:   0 (*local*)       1 (*global*)      0 (*local*)    

Version needs section '.gnu.version_r' contains 1 entries:
 Addr: 0x0000000000000590  Offset: 0x000590  Link: 3 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 1
  0x0010:   Name: GLIBC_2.2.5  Flags: none  Version: 2

--------------000705030506050201080606
Content-Type: text/plain; charset=UTF-8;
 name="quicklisp-so.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="quicklisp-so.txt"

ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x550
  Start of program headers:          64 (bytes into file)
  Start of section headers:          15488 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         7
  Size of section headers:           64 (bytes)
  Number of section headers:         23
  Section header string table index: 20

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .interp           PROGBITS        00000000000001c8 0001c8 00000f 00   A  0   0  1
  [ 2] .hash             HASH            00000000000001d8 0001d8 000040 04   A  3   0  8
  [ 3] .dynsym           DYNSYM          0000000000000218 000218 000108 18   A  4   2  8
  [ 4] .dynstr           STRTAB          0000000000000320 000320 0000d5 00   A  0   0  1
  [ 5] .gnu.version      VERSYM          00000000000003f6 0003f6 000016 02   A  3   0  2
  [ 6] .gnu.version_r    VERNEED         0000000000000410 000410 000040 00   A  4   2  8
  [ 7] .rela.plt         RELA            0000000000000450 000450 000090 18   A  3   8  8
  [ 8] .plt              PROGBITS        00000000000004e0 0004e0 000070 10  AX  0   0 16
  [ 9] .text             PROGBITS        0000000000000550 000550 000134 00  AX  0   0 16
  [10] .eh_frame         PROGBITS        0000000000000688 000688 000180 00   A  0   0  8
  [11] .dynamic          DYNAMIC         0000000000200e18 000e18 0001a0 10  WA  4   0  8
  [12] .got              PROGBITS        0000000000200fb8 000fb8 000048 08  WA  0   0  8
  [13] .comment          PROGBITS        0000000000000000 001000 000024 01  MS  0   0  1
  [14] .debug_aranges    PROGBITS        0000000000000000 001024 000030 00      0   0  1
  [15] .debug_info       PROGBITS        0000000000000000 001054 001488 00      0   0  1
  [16] .debug_abbrev     PROGBITS        0000000000000000 0024dc 000279 00      0   0  1
  [17] .debug_line       PROGBITS        0000000000000000 002755 00010f 00      0   0  1
  [18] .debug_str        PROGBITS        0000000000000000 002864 000f4a 01  MS  0   0  1
  [19] .debug_loc        PROGBITS        0000000000000000 0037ae 0003ff 00      0   0  1
  [20] .shstrtab         STRTAB          0000000000000000 003bad 0000d1 00      0   0  1
  [21] .symtab           SYMTAB          0000000000000000 004240 000450 18     22  24  8
  [22] .strtab           STRTAB          0000000000000000 004690 00022b 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  PHDR           0x000040 0x0000000000000040 0x0000000000000040 0x000188 0x000188 R E 0x8
  INTERP         0x0001c8 0x00000000000001c8 0x00000000000001c8 0x00000f 0x00000f R   0x1
      [Requesting program interpreter: /lib/ld64.so.1]
  LOAD           0x000000 0x0000000000000000 0x0000000000000000 0x000808 0x000808 R E 0x200000
  LOAD           0x000e18 0x0000000000200e18 0x0000000000200e18 0x0001e8 0x0001e8 RW  0x200000
  DYNAMIC        0x000e18 0x0000000000200e18 0x0000000000200e18 0x0001a0 0x0001a0 RW  0x8
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x10
  GNU_RELRO      0x000e18 0x0000000000200e18 0x0000000000200e18 0x0001e8 0x0001e8 R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.plt .plt .text .eh_frame 
   03     .dynamic .got 
   04     .dynamic 
   05     
   06     .dynamic .got 

Dynamic section at offset 0xe18 contains 21 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libmysqlclient.so.18]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname: [clsql_mysql64]
 0x000000007ffffffd (AUXILIARY)          Auxiliary library: [PIE]
 0x0000000000000004 (HASH)               0x1d8
 0x0000000000000005 (STRTAB)             0x320
 0x0000000000000006 (SYMTAB)             0x218
 0x000000000000000a (STRSZ)              213 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x200fb8
 0x0000000000000002 (PLTRELSZ)           144 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x450
 0x0000000000000018 (BIND_NOW)           
 0x000000006ffffffb (FLAGS_1)            Flags: NOW
 0x000000006ffffffe (VERNEED)            0x410
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0x3f6
 0x0000000000000000 (NULL)               0x0

Relocation section '.rela.plt' at offset 0x450 contains 6 entries:
    Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
0000000000200fd0  0000000200000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_stmt_affected_rows + 0
0000000000200fd8  0000000400000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_insert_id + 0
0000000000200fe0  0000000500000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_num_rows + 0
0000000000200fe8  0000000600000007 R_X86_64_JUMP_SLOT     0000000000000000 malloc + 0
0000000000200ff0  0000000800000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_data_seek + 0
0000000000200ff8  0000000a00000007 R_X86_64_JUMP_SLOT     0000000000000000 mysql_affected_rows + 0

The decoding of unwind sections for machine type Advanced Micro Devices X86-64 is not currently supported.

Symbol table '.dynsym' contains 11 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000000001c8     0 SECTION LOCAL  DEFAULT    1 
     2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_stmt_affected_rows@libmysqlclient_18 (2)
     3: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 _edata
     4: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_insert_id@libmysqlclient_18 (2)
     5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_num_rows@libmysqlclient_18 (2)
     6: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND malloc@GLIBC_2.2.5 (3)
     7: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 _end
     8: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_data_seek@libmysqlclient_18 (2)
     9: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 __bss_start
    10: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_affected_rows@libmysqlclient_18 (2)

Symbol table '.symtab' contains 46 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000000001c8     0 SECTION LOCAL  DEFAULT    1 
     2: 00000000000001d8     0 SECTION LOCAL  DEFAULT    2 
     3: 0000000000000218     0 SECTION LOCAL  DEFAULT    3 
     4: 0000000000000320     0 SECTION LOCAL  DEFAULT    4 
     5: 00000000000003f6     0 SECTION LOCAL  DEFAULT    5 
     6: 0000000000000410     0 SECTION LOCAL  DEFAULT    6 
     7: 0000000000000450     0 SECTION LOCAL  DEFAULT    7 
     8: 00000000000004e0     0 SECTION LOCAL  DEFAULT    8 
     9: 0000000000000550     0 SECTION LOCAL  DEFAULT    9 
    10: 0000000000000688     0 SECTION LOCAL  DEFAULT   10 
    11: 0000000000200e18     0 SECTION LOCAL  DEFAULT   11 
    12: 0000000000200fb8     0 SECTION LOCAL  DEFAULT   12 
    13: 0000000000000000     0 SECTION LOCAL  DEFAULT   13 
    14: 0000000000000000     0 SECTION LOCAL  DEFAULT   14 
    15: 0000000000000000     0 SECTION LOCAL  DEFAULT   15 
    16: 0000000000000000     0 SECTION LOCAL  DEFAULT   16 
    17: 0000000000000000     0 SECTION LOCAL  DEFAULT   17 
    18: 0000000000000000     0 SECTION LOCAL  DEFAULT   18 
    19: 0000000000000000     0 SECTION LOCAL  DEFAULT   19 
    20: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS clsql_mysql.c
    21: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS 
    22: 0000000000200e18     0 OBJECT  LOCAL  DEFAULT   11 _DYNAMIC
    23: 0000000000200fb8     0 OBJECT  LOCAL  DEFAULT   12 _GLOBAL_OFFSET_TABLE_
    24: 00000000000005c0     4 FUNC    GLOBAL DEFAULT    9 clsql_mysql_field_flags
    25: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_stmt_affected_rows@@libmysqlclient_18
    26: 00000000000005a0    20 FUNC    GLOBAL DEFAULT    9 clsql_mysql_insert_id
    27: 00000000000005e0     4 FUNC    GLOBAL DEFAULT    9 clsql_mysql_field_name
    28: 0000000000000630    53 FUNC    GLOBAL DEFAULT    9 bind_param
    29: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 _edata
    30: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_insert_id@@libmysqlclient_18
    31: 0000000000000580    20 FUNC    GLOBAL DEFAULT    9 clsql_mysql_affected_rows
    32: 0000000000000600     5 FUNC    GLOBAL DEFAULT    9 clsql_mysql_field_max_length
    33: 00000000000005f0     5 FUNC    GLOBAL DEFAULT    9 clsql_mysql_field_length
    34: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_num_rows@@libmysqlclient_18
    35: 00000000000005d0     4 FUNC    GLOBAL DEFAULT    9 clsql_mysql_field_type
    36: 0000000000000550    14 FUNC    GLOBAL DEFAULT    9 clsql_mysql_data_seek
    37: 0000000000000610    21 FUNC    GLOBAL DEFAULT    9 allocate_bind
    38: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND malloc@@GLIBC_2.2.5
    39: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 _end
    40: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND _start
    41: 0000000000000670    20 FUNC    GLOBAL DEFAULT    9 clsql_mysql_stmt_affected_rows
    42: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_data_seek@@libmysqlclient_18
    43: 0000000000201000     0 NOTYPE  GLOBAL DEFAULT   12 __bss_start
    44: 0000000000000560    20 FUNC    GLOBAL DEFAULT    9 clsql_mysql_num_rows
    45: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND mysql_affected_rows@@libmysqlclient_18

Histogram for bucket list length (total of 3 buckets):
 Length  Number     % of total  Coverage
      0  0          (  0.0%)
      1  0          (  0.0%)      0.0%
      2  2          ( 66.7%)     44.4%
      3  0          (  0.0%)     44.4%
      4  0          (  0.0%)     44.4%
      5  1          ( 33.3%)    100.0%

Version symbols section '.gnu.version' contains 11 entries:
 Addr: 00000000000003f6  Offset: 0x0003f6  Link: 3 (.dynsym)
  000:   0 (*local*)       0 (*local*)       2 (libmysqlclient_18)       1 (*global*)   
  004:   2 (libmysqlclient_18)       2 (libmysqlclient_18)       3 (GLIBC_2.2.5)   1 (*global*)   
  008:   2 (libmysqlclient_18)       1 (*global*)      2 (libmysqlclient_18)    

Version needs section '.gnu.version_r' contains 2 entries:
 Addr: 0x0000000000000410  Offset: 0x000410  Link: 4 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 1
  0x0010:   Name: GLIBC_2.2.5  Flags: none  Version: 3
  0x0020: Version: 1  File: libmysqlclient.so.18  Cnt: 1
  0x0030:   Name: libmysqlclient_18  Flags: none  Version: 2

--------------000705030506050201080606
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
CLSQL mailing list
[email protected]
http://lists.b9.com/cgi-bin/mailman/listinfo/clsql

--------------000705030506050201080606--