#define offsetof(TYPE, MEMBER) ((size_t) &(((TYPE *) 0)->MEMBER))
#endif
+#if defined (HAVE_FSEEKO64)
+#define FSEEK_FUNC fseeko64
+#elif defined (HAVE_FSEEKO)
+#define FSEEK_FUNC fseeko
+#else
+#define FSEEK_FUNC fseek
+#endif
+
typedef struct elf_section_list
{
Elf_Internal_Shdr * hdr;
return NULL;
}
- if (fseek (filedata->handle, filedata->archive_file_offset + offset,
+ if (FSEEK_FUNC (filedata->handle, filedata->archive_file_offset + offset,
SEEK_SET))
{
if (reason)
if (segment->p_offset >= filedata->file_size
|| segment->p_filesz > filedata->file_size - segment->p_offset
|| segment->p_filesz - 1 >= (size_t) -2
- || fseek (filedata->handle,
+ || FSEEK_FUNC (filedata->handle,
filedata->archive_file_offset + (long) segment->p_offset,
SEEK_SET))
error (_("Unable to find program interpreter name\n"));
&& filedata->file_header.e_ident[EI_CLASS] == ELFCLASS64)
hash_ent_size = 8;
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata, filedata->dynamic_info[DT_HASH],
sizeof nb + sizeof nc)),
uint64_t buckets_vma;
unsigned long hn;
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata,
filedata->dynamic_info_DT_GNU_HASH,
else
buckets_vma += bitmaskwords * 8;
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata, buckets_vma, 4)),
SEEK_SET))
maxchain -= filedata->gnusymidx;
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata,
buckets_vma + 4 * (filedata->ngnubuckets
}
while ((byte_get (nb, 4) & 1) == 0);
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata, (buckets_vma
+ 4 * filedata->ngnubuckets),
if (filedata->dynamic_info_DT_MIPS_XHASH)
{
- if (fseek (filedata->handle,
+ if (FSEEK_FUNC (filedata->handle,
(filedata->archive_file_offset
+ offset_from_vma (filedata, (buckets_vma
+ 4 * (filedata->ngnubuckets
ret = false;
}
- if (fseek (filedata->handle, current_pos, SEEK_SET) != 0)
+ if (FSEEK_FUNC (filedata->handle, current_pos, SEEK_SET) != 0)
{
error (_("%s: failed to seek back to start of object files "
"in the archive\n"),
char * qualified_name;
/* Read the next archive header. */
- if (fseek (filedata->handle, arch.next_arhdr_offset, SEEK_SET) != 0)
+ if (FSEEK_FUNC (filedata->handle, arch.next_arhdr_offset, SEEK_SET) != 0)
{
error (_("%s: failed to seek to next archive header\n"),
arch.file_name);
/* The nested archive file will have been opened and setup by
get_archive_member_name. */
- if (fseek (nested_arch.file, filedata->archive_file_offset,
+ if (FSEEK_FUNC (nested_arch.file, filedata->archive_file_offset,
SEEK_SET) != 0)
{
error (_("%s: failed to seek to archive member.\n"),