* bfd-in.h: Always define BFD_HOST_64_BIT and BFD_HOST_U_64_BIT if

possible, rather than only if BFD64.
	* elflink.h (compute_bucket_count): Just check BFD_HOST_U_64_BIT,
	not __GNUC__.
	* bfd-in2.h: Rebuild.
This commit is contained in:
Ian Lance Taylor
1998-12-06 22:14:30 +00:00
parent fa06287137
commit 859a615e58
3 changed files with 27 additions and 18 deletions

View File

@ -1,5 +1,11 @@
Sun Dec 6 16:30:33 1998 Ian Lance Taylor <ian@cygnus.com> Sun Dec 6 16:30:33 1998 Ian Lance Taylor <ian@cygnus.com>
* bfd-in.h: Always define BFD_HOST_64_BIT and BFD_HOST_U_64_BIT if
possible, rather than only if BFD64.
* elflink.h (compute_bucket_count): Just check BFD_HOST_U_64_BIT,
not __GNUC__.
* bfd-in2.h: Rebuild.
* srec.c (srec_set_section_contents): Correct test to avoid * srec.c (srec_set_section_contents): Correct test to avoid
switching to 4 byte addresses after seeing a second section which switching to 4 byte addresses after seeing a second section which
requires 3 byte addresses. From Joel Schantz requires 3 byte addresses. From Joel Schantz

View File

@ -121,22 +121,26 @@ typedef long int file_ptr;
use gcc's "long long" type. Otherwise, BFD_HOST_64_BIT must be use gcc's "long long" type. Otherwise, BFD_HOST_64_BIT must be
defined above. */ defined above. */
#ifdef BFD64
#ifndef BFD_HOST_64_BIT #ifndef BFD_HOST_64_BIT
# if BFD_HOST_64BIT_LONG # if BFD_HOST_64BIT_LONG
# define BFD_HOST_64_BIT long # define BFD_HOST_64_BIT long
# define BFD_HOST_U_64_BIT unsigned long # define BFD_HOST_U_64_BIT unsigned long
# else # else
# ifdef __GNUC__ # ifdef __GNUC__
# if __GNUC__ >= 2
# define BFD_HOST_64_BIT long long # define BFD_HOST_64_BIT long long
# define BFD_HOST_U_64_BIT unsigned long long # define BFD_HOST_U_64_BIT unsigned long long
#else /* ! defined (__GNUC__) */ # endif /* __GNUC__ >= 2 */
#error No 64 bit integer type available
# endif /* ! defined (__GNUC__) */ # endif /* ! defined (__GNUC__) */
# endif /* ! BFD_HOST_64BIT_LONG */ # endif /* ! BFD_HOST_64BIT_LONG */
#endif /* ! defined (BFD_HOST_64_BIT) */ #endif /* ! defined (BFD_HOST_64_BIT) */
#ifdef BFD64
#ifndef BFD_HOST_64_BIT
#error No 64 bit integer type available
#endif /* ! defined (BFD_HOST_64_BIT) */
typedef BFD_HOST_U_64_BIT bfd_vma; typedef BFD_HOST_U_64_BIT bfd_vma;
typedef BFD_HOST_64_BIT bfd_signed_vma; typedef BFD_HOST_64_BIT bfd_signed_vma;
typedef BFD_HOST_U_64_BIT bfd_size_type; typedef BFD_HOST_U_64_BIT bfd_size_type;
@ -175,7 +179,9 @@ typedef unsigned long bfd_size_type;
/* Print a bfd_vma x on stream s. */ /* Print a bfd_vma x on stream s. */
#define fprintf_vma(s,x) fprintf(s, "%08lx", x) #define fprintf_vma(s,x) fprintf(s, "%08lx", x)
#define sprintf_vma(s,x) sprintf(s, "%08lx", x) #define sprintf_vma(s,x) sprintf(s, "%08lx", x)
#endif /* not BFD64 */ #endif /* not BFD64 */
#define printf_vma(x) fprintf_vma(stdout,x) #define printf_vma(x) fprintf_vma(stdout,x)
typedef unsigned int flagword; /* 32 bits of flags */ typedef unsigned int flagword; /* 32 bits of flags */

View File

@ -2240,13 +2240,10 @@ compute_bucket_count (info)
elf_link_hash_traverse (elf_hash_table (info), elf_link_hash_traverse (elf_hash_table (info),
elf_collect_hash_codes, &hashcodesp); elf_collect_hash_codes, &hashcodesp);
/* We have a problem here. The following code to optimize the table size /* We have a problem here. The following code to optimize the table
requires an integer type with more the 32 bits. If BFD_HOST_U_64_BIT size requires an integer type with more the 32 bits. If
is set or GCC 2 is used we know about such a type. */ BFD_HOST_U_64_BIT is set we know about such a type. */
#if defined BFD_HOST_U_64_BIT || __GNUC__ >= 2 #ifdef BFD_HOST_U_64_BIT
# ifndef BFD_HOST_U_64_BIT
# define BFD_HOST_U_64_BIT unsigned long long int
# endif
if (info->optimize == true) if (info->optimize == true)
{ {
unsigned long int nsyms = hashcodesp - hashcodes; unsigned long int nsyms = hashcodesp - hashcodes;
@ -2336,7 +2333,7 @@ compute_bucket_count (info)
free (counts); free (counts);
} }
else else
#endif #endif /* defined (BFD_HOST_U_64_BIT) */
{ {
/* This is the fallback solution if no 64bit type is available or if we /* This is the fallback solution if no 64bit type is available or if we
are not supposed to spend much time on optimizations. We select the are not supposed to spend much time on optimizations. We select the