Bug#354809: [Pkg-db-devel] Bug#354809: db4.4: FTBFS (ppc64): syntax error in VERSION script

Andreas Jochens aj at andaco.de
Thu Mar 2 11:45:55 UTC 2006


Hello,

On 06-Mar-01 23:16, Florian Weimer wrote:
> * Andreas Jochens:
> > Looking at the output of 'nm' I found that the symbols which are marked 
> > with 'T' on other architectures have a 'D' on ppc64 instead. However, 
> > there are also symbols which have a 'D' on other architectures and on 
> > ppc64 as well. I do not know how to filter out the correct list of 
> > symbols for the 'global:' section on ppc64.
> 
> This smells like a binutils bug.  The documentation is quite clear;
> 
>    * The symbol type.  At least the following types are used; others
>      are, as well, depending on the object file format.  If lowercase,
>      the symbol is local; if uppercase, the symbol is global (external).
>      [...]
>     `D'
>           The symbol is in the initialized data section.
>      [...]
>     `T'
>           The symbol is in the text (code) section.
> 
> Or is the ppc64 documentation different?

not the documentation but the object file format indeed seems to be
different on ppc64. 

Looking at the attached two outputs of 'objdump -t' for the file 
'obj/.libs/db185.o' on ppc64 and amd64 it appears that the symbols that 
are in the '.text' section on amd64 are in a section named '.opd' on 
ppc64.

I am not an object file format expert at all, but I would take this 
as an indication that the current method of parsing of the nm output 
to create the Versions script is not really portable.

Regards
Andreas Jochens


ppc64:db4.4-4.4.20/obj/.libs# objdump -t db185.o

db185.o:     file format elf64-powerpc

SYMBOL TABLE:
0000000000000000 l    df *ABS*  0000000000000000 db185.c
0000000000000000 l    d  .text  0000000000000000 .text
0000000000000000 l    d  .data  0000000000000000 .data
0000000000000000 l    d  .bss   0000000000000000 .bss
0000000000000000 l    d  .toc   0000000000000000 .toc
0000000000000000 l    d  .debug_abbrev  0000000000000000 .debug_abbrev
0000000000000000 l    d  .debug_info    0000000000000000 .debug_info
0000000000000000 l    d  .debug_line    0000000000000000 .debug_line
0000000000000000 l    d  .rodata.str1.8 0000000000000000 .rodata.str1.8
00000000000000d8 l     F .opd   0000000000000080 db185_prefix
00000000000000c0 l     F .opd   0000000000000080 db185_compare
00000000000000f0 l     F .opd   0000000000000054 db185_hash
0000000000000018 l     F .opd   000000000000009c db185_close
0000000000000030 l     F .opd   000000000000010c db185_del
0000000000000048 l     F .opd   000000000000006c db185_fd
0000000000000060 l     F .opd   0000000000000120 db185_get
0000000000000078 l     F .opd   00000000000003c0 db185_put
0000000000000090 l     F .opd   00000000000001b0 db185_seq
00000000000000a8 l     F .opd   00000000000000dc db185_sync
0000000000000000 l    d  .opd   0000000000000000 .opd
0000000000000000 l    d  .debug_frame   0000000000000000 .debug_frame
0000000000000000 l    d  .debug_loc     0000000000000000 .debug_loc
0000000000000000 l    d  .debug_pubnames        0000000000000000 
.debug_pubnames
0000000000000000 l    d  .debug_aranges 0000000000000000 .debug_aranges
0000000000000000 l    d  .debug_str     0000000000000000 .debug_str
0000000000000000 l    d  .comment       0000000000000000 .comment
0000000000000000 g     F .opd   0000000000000754 __db185_open
0000000000000000         *UND*  0000000000000000 db_create
0000000000000000         *UND*  0000000000000000 __os_calloc
0000000000000000         *UND*  0000000000000000 __os_free
0000000000000000         *UND*  0000000000000000 __os_set_errno
0000000000000000         *UND*  0000000000000000 __db_oflags
0000000000000000         *UND*  0000000000000000 __os_exists
0000000000000000         *UND*  0000000000000000 __os_openhandle
0000000000000000         *UND*  0000000000000000 __os_closehandle



amd64:db4.4-4.4.20/obj/.libs# objdump -t db185.o

db185.o:     file format elf64-x86-64

SYMBOL TABLE:
0000000000000000 l    df *ABS*  0000000000000000 db185.c
0000000000000000 l    d  .text  0000000000000000 .text
0000000000000000 l    d  .data  0000000000000000 .data
0000000000000000 l    d  .bss   0000000000000000 .bss
0000000000000000 l    d  .debug_abbrev  0000000000000000 .debug_abbrev
0000000000000000 l    d  .debug_info    0000000000000000 .debug_info
0000000000000000 l    d  .debug_line    0000000000000000 .debug_line
0000000000000000 l    d  .rodata.str1.8 0000000000000000 .rodata.str1.8
0000000000000000 l    d  .rodata.str1.1 0000000000000000 .rodata.str1.1
0000000000000c00 l     F .text  000000000000003a db185_prefix
0000000000000bc0 l     F .text  000000000000003a db185_compare
0000000000000590 l     F .text  000000000000004f db185_close
00000000000005e0 l     F .text  000000000000009b db185_del
0000000000000680 l     F .text  0000000000000034 db185_fd
00000000000006c0 l     F .text  00000000000000c4 db185_get
0000000000000790 l     F .text  0000000000000278 db185_put
0000000000000a10 l     F .text  0000000000000136 db185_seq
0000000000000b50 l     F .text  000000000000006e db185_sync
0000000000000c40 l     F .text  0000000000000016 db185_hash
0000000000000000 l    d  .rodata        0000000000000000 .rodata
0000000000000000 l    d  .debug_frame   0000000000000000 .debug_frame
0000000000000000 l    d  .eh_frame      0000000000000000 .eh_frame
0000000000000000 l    d  .debug_loc     0000000000000000 .debug_loc
0000000000000000 l    d  .debug_pubnames        0000000000000000 
.debug_pubnames
0000000000000000 l    d  .debug_aranges 0000000000000000 .debug_aranges
0000000000000000 l    d  .debug_str     0000000000000000 .debug_str
0000000000000000 l    d  .note.GNU-stack        0000000000000000 
.note.GNU-stack
0000000000000000 l       .rodata.str1.8 0000000000000000 .LC0
0000000000000000 l       .rodata.str1.1 0000000000000000 .LC1
0000000000000040 l       .rodata.str1.8 0000000000000000 .LC2
0000000000000000 l    d  .comment       0000000000000000 .comment
0000000000000000 g     F .text  0000000000000582 __db185_open
0000000000000000         *UND*  0000000000000000 _GLOBAL_OFFSET_TABLE_
0000000000000000         *UND*  0000000000000000 db_create
0000000000000000         *UND*  0000000000000000 __os_calloc
0000000000000000         *UND*  0000000000000000 __os_free
0000000000000000         *UND*  0000000000000000 __os_set_errno
0000000000000000         *UND*  0000000000000000 __db_oflags
0000000000000000         *UND*  0000000000000000 __os_exists
0000000000000000         *UND*  0000000000000000 __os_openhandle
0000000000000000         *UND*  0000000000000000 __os_closehandle




More information about the Pkg-db-devel mailing list