2008-05-09 Kai Tietz <kai.tietz@onevision.com>

ld/PR6502
	* emultempl/pep.em (compute_dll_image_base): Use bfd_vma instead of long
	and change return type to bfd_vma.
	(definfo): Change type of address from long to bfd_vma.
	(set_pep_value): Replace strtoul to strtoull.
	(gld_${EMULATION_NAME}_set_symbols): use bfd_vma instead of long..
	* pe-dll.c (pe_dll_generate_def_file): Use fprintf_vma to print ImageBase.
	(quick_reloc): Change argument address from int to bfd_size_type.
This commit is contained in:
Kai Tietz 2008-05-09 11:56:31 +00:00
parent 11c68c4748
commit 0ead4f8d3f
3 changed files with 25 additions and 13 deletions

View File

@ -1,3 +1,14 @@
2008-05-09 Kai Tietz <kai.tietz@onevision.com>
ld/PR6502
* emultempl/pep.em (compute_dll_image_base): Use bfd_vma instead of long
and change return type to bfd_vma.
(definfo): Change type of address from long to bfd_vma.
(set_pep_value): Replace strtoul to strtoull.
(gld_${EMULATION_NAME}_set_symbols): use bfd_vma instead of long..
* pe-dll.c (pe_dll_generate_def_file): Use fprintf_vma to print ImageBase.
(quick_reloc): Change argument address from int to bfd_size_type.
2008-05-08 Tom Tromey <tromey@redhat.com>
* ld.texinfo (PowerPC64 ELF64): Fix typo.

View File

@ -245,7 +245,7 @@ typedef struct
{
void *ptr;
int size;
int value;
bfd_vma value;
char *symbol;
int inited;
} definfo;
@ -331,7 +331,7 @@ gld_${EMULATION_NAME}_list_options (FILE *file)
static void
set_pep_name (char *name, long val)
set_pep_name (char *name, bfd_vma val)
{
int i;
@ -461,7 +461,7 @@ set_pep_value (char *name)
{
char *end;
set_pep_name (name, strtoul (optarg, &end, 0));
set_pep_name (name, (bfd_vma) strtoull (optarg, &end, 0));
if (end == optarg)
einfo (_("%P%F: invalid hex number for PE parameter '%s'\n"), optarg);
@ -640,10 +640,10 @@ strhash (const char *str)
/* Use the output file to create a image base for relocatable DLLs. */
static unsigned long
static bfd_vma
compute_dll_image_base (const char *ofile)
{
unsigned long hash = strhash (ofile);
bfd_vma hash = (bfd_vma) strhash (ofile);
return 0x61300000 + ((hash << 16) & 0x0FFC0000);
}
#endif
@ -686,16 +686,16 @@ gld_${EMULATION_NAME}_set_symbols (void)
for (j = 0; init[j].ptr; j++)
{
long val = init[j].value;
bfd_vma val = init[j].value;
lang_assignment_statement_type *rv;
rv = lang_add_assignment (exp_assop ('=', init[j].symbol,
exp_intop (val)));
if (init[j].size == sizeof (short))
*(short *) init[j].ptr = val;
*(short *) init[j].ptr = (short) val;
else if (init[j].size == sizeof (int))
*(int *) init[j].ptr = val;
*(int *) init[j].ptr = (int) val;
else if (init[j].size == sizeof (long))
*(long *) init[j].ptr = val;
*(long *) init[j].ptr = (long) val;
/* This might be a long long or other special type. */
else if (init[j].size == sizeof (bfd_vma))
*(bfd_vma *) init[j].ptr = val;

View File

@ -1447,9 +1447,10 @@ pe_dll_generate_def_file (const char *pe_out_def_filename)
quoteput (pe_def_file->name, out, 1);
if (pe_data (link_info.output_bfd)->pe_opthdr.ImageBase)
fprintf (out, " BASE=0x%lx",
(unsigned long)
pe_data (link_info.output_bfd)->pe_opthdr.ImageBase);
{
fprintf (out, " BASE=0x");
fprintf_vma (out, ((bfd_vma) pe_data (link_info.output_bfd)->pe_opthdr.ImageBase));
}
fprintf (out, "\n");
}
@ -1642,7 +1643,7 @@ static arelent *reltab = 0;
static int relcount = 0, relsize = 0;
static void
quick_reloc (bfd *abfd, int address, int which_howto, int symidx)
quick_reloc (bfd *abfd, bfd_size_type address, int which_howto, int symidx)
{
if (relcount >= relsize - 1)
{