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

2006-03-20 Thread Florian Weimer
* Andreas Jochens:

 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.

That's because ppc64 uses function descriptors.  It would probably
make sense for binutils to mostly hide this distinction (unless there
is a compelling reason not to do it).

 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.

I still think this should be addressed in nm.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



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

2006-03-02 Thread Andreas Jochens
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:
 ldf *ABS*   db185.c
 ld  .text   .text
 ld  .data   .data
 ld  .bss    .bss
 ld  .toc    .toc
 ld  .debug_abbrev   .debug_abbrev
 ld  .debug_info .debug_info
 ld  .debug_line .debug_line
 ld  .rodata.str1.8  .rodata.str1.8
00d8 l F .opd   0080 db185_prefix
00c0 l F .opd   0080 db185_compare
00f0 l F .opd   0054 db185_hash
0018 l F .opd   009c db185_close
0030 l F .opd   010c db185_del
0048 l F .opd   006c db185_fd
0060 l F .opd   0120 db185_get
0078 l F .opd   03c0 db185_put
0090 l F .opd   01b0 db185_seq
00a8 l F .opd   00dc db185_sync
 ld  .opd    .opd
 ld  .debug_frame    .debug_frame
 ld  .debug_loc  .debug_loc
 ld  .debug_pubnames 
.debug_pubnames
 ld  .debug_aranges  .debug_aranges
 ld  .debug_str  .debug_str
 ld  .comment    .comment
 g F .opd   0754 __db185_open
 *UND*   db_create
 *UND*   __os_calloc
 *UND*   __os_free
 *UND*   __os_set_errno
 *UND*   __db_oflags
 *UND*   __os_exists
 *UND*   __os_openhandle
 *UND*   __os_closehandle



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

db185.o: file format elf64-x86-64

SYMBOL TABLE:
 ldf *ABS*   db185.c
 ld  .text   .text
 ld  .data   .data
 ld  .bss    .bss
 ld  .debug_abbrev   .debug_abbrev
 ld  .debug_info .debug_info
 ld  .debug_line .debug_line
 ld  .rodata.str1.8  .rodata.str1.8
 ld  .rodata.str1.1  .rodata.str1.1
0c00 l F .text  003a db185_prefix
0bc0 l F .text  003a db185_compare
0590 l F .text  004f db185_close
05e0 l F .text  009b db185_del
0680 l F .text  0034 db185_fd
06c0 l F .text  00c4 db185_get
0790 l F .text  0278 db185_put
0a10 l F .text  0136 db185_seq
0b50 l F .text  006e db185_sync
0c40 l F .text  0016 db185_hash

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

2006-03-01 Thread Adam Conrad
Andreas Jochens wrote:
 
 The attached patch disables the use of the Versions script on ppc64.
 With this patch 'db4.4' can be compiled on ppc64.

Surely, there must be a way to resolve this bug without disabling
versioned symbols on ppc64... Given the number of packages in the
distribution that link twice to libdb, via transient library
dependencies, versioned symbols are pretty much a must.

... Adam



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



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

2006-03-01 Thread Andreas Jochens
Hello,

thank you for your reply to my report!

On 06-Mar-01 22:24, Adam Conrad wrote:
 Andreas Jochens wrote:
  
  The attached patch disables the use of the Versions script on ppc64.
  With this patch 'db4.4' can be compiled on ppc64.
 
 Surely, there must be a way to resolve this bug without disabling
 versioned symbols on ppc64... Given the number of packages in the

Of course, but I do not know how to do this properly.

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.

There are other packages that have the same problem on ppc64, e.g.
cyrus-sasl2, libdebian-installer and of course the other dbx.y packages.

Currently the ppc64 port uses patched versions of these packages
which disable the version scripts entirely. Any suggestions how to 
fix this properly are welcome.

Regards
Andreas Jochens


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



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

2006-03-01 Thread Florian Weimer
* 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?


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]