Bug 426100 - elfutils uses off64_t which does not exist on ia64
Summary: elfutils uses off64_t which does not exist on ia64
Keywords:
Status: CLOSED DUPLICATE of bug 377241
Alias: None
Product: Fedora
Classification: Fedora
Component: elfutils
Version: rawhide
Hardware: ia64
OS: Linux
high
high
Target Milestone: ---
Assignee: Roland McGrath
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: fedora-ia64
TreeView+ depends on / blocked
 
Reported: 2007-12-18 15:58 UTC by Doug Chapman
Modified: 2007-12-19 03:10 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-12-19 03:10:14 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Doug Chapman 2007-12-18 15:58:11 UTC
Description of problem:
Previous versions (such as elfutils-0.125 in RHEL5) of elfutils used off_t in
libelf.h.  At some point after this was changed to off64_t.  From digging
through the header files it appears that off64_t is only used on systems that
can have either 32 or 64 bit variants such as x86.  On ia64 only off_t is defined.

This causes code that includes libelf.h to fail to build.

I wasn't able to find anything in the changelog explaining why the change from
off_t to off64_t was made.  Not sure if the right fix is to go back to off_t or
perhaps to do some #ifdef ia64 magic.

I will be happy to try out any ideas if you do not have easy access to an ia64
system.

Version-Release number of selected component (if applicable):
elfutils-0.131-1.fc9

How reproducible:
100%

Steps to Reproduce:
1. build and install latest elfutils on ia64
2. try building kexec-tools rpm
3.
  
Actual results:
/usr/include/libelf.h:98: error: expected specifier-qualifier-list before 'off64_t'
/usr/include/libelf.h:160: error: expected specifier-qualifier-list before 'off64_t'
/usr/include/libelf.h:201: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'elf_update'
/usr/include/libelf.h:207: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'elf_getbase'
/usr/include/libelf.h:305: error: expected declaration specifiers or '...'
before 'off64_t'
/usr/include/libelf.h:317: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'elf_getaroff'


Expected results:


Additional info:

Comment 1 Doug Chapman 2007-12-19 02:32:14 UTC
The ltrace package fails to build due to this as well.


Comment 2 Roland McGrath 2007-12-19 03:10:14 UTC
Use -D_FILE_OFFSET_BITS=64 (or autoconf equivalent) to work around, and also to
avoid the bugs with old libelf versions on 32-bit machines.

*** This bug has been marked as a duplicate of 377241 ***


Note You need to log in before you can comment on or make changes to this bug.