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