diff options
author | Ian Lance Taylor <ian@airs.com> | 1995-09-06 22:53:43 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1995-09-06 22:53:43 +0000 |
commit | b7577823b60110d3b33ac7753e68a0291f0b132a (patch) | |
tree | 2889e39d803567e04add5e03ef7fcf6302651c52 /bfd/bfd-in2.h | |
parent | dd6ed5ab2ddcf5b307b5b847ff336ff51e9d3974 (diff) | |
download | gdb-b7577823b60110d3b33ac7753e68a0291f0b132a.zip gdb-b7577823b60110d3b33ac7753e68a0291f0b132a.tar.gz gdb-b7577823b60110d3b33ac7753e68a0291f0b132a.tar.bz2 |
* configure.in: Call AC_CONFIG_HEADER. Substitute
HOST_64BIT_LONG. Check that various header files exist. Check
that fcntl exists. Call BFD_BINARY_FOPEN. Check whether malloc
and/or free need to be declared. Don't make a link to sysdep.h.
Define TRAD_HEADER for various hosts.
* configure: Rebuild.
* configure.host: Don't set my_host. Add definitions taken from
host header files for various entries. Remove entries which now
do nothing.
* acconfig.h: New file.
* config.h.in: New file, built by autoheader.
* sysdep.h: New file.
* Makefile.in (do_distclean): Don't remove sysdep.h.
(RECONFIG): Remove.
(LOCAL_H_DEPS): New variable.
($(BFD_LIBS)): Use $(LOCAL_H_DEPS) rather than libbfd.h and
$(RECONFIG).
($(BFD_MACHINES), $(BFD_BACKENDS)): Likewise.
($(OPTIONAL_BACKENDS)): Likewise.
(stmp-bfd.h): Just substitute for BFD_HOST_64BIT_LONG, rather than
looking through sysdep.h.
* bfd-in.h (BFD_HOST_64BIT_LONG): Define; set by Makefile.
(BFD_HOST_64_BIT): Define based on BFD_HOST_64BIT_LONG.
(fprintf_vma, sprintf_vma): Likewise.
(int64_type, uint64_type): Don't define.
* bfd-in2.h: Rebuild.
* archures.c, bfd.c, srec.c: Include <ctype.h>.
* elfcore.h: Check HAVE_SYS_PROCFS_H rather than HAVE_PROCFS.
* lynx-core.c: Include stuff from old hosts/lynx.h.
* opncls.c (bfd_fdopenr): Check HAVE_FNCTL and defined (F_GETFL),
rather than NO_FCNTL.
* targets.c (bfd_target_list): Check HOST_HPPAHPUX and ! __STDC__
rather than NATIVE_HPPAHPUX_COMPILER.
* trad-core.c: Don't include <errno.h>. Include TRAD_HEADER if it
is defined.
* hosts/*.h: Remove all header files which merely include,
declare, and define things. Leave header files which define
information needed by trad-core.c.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r-- | bfd/bfd-in2.h | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index ced4171..62858a5 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -52,8 +52,9 @@ extern "C" { #include "obstack.h" /* These two lines get substitutions done by commands in Makefile.in. */ -#define BFD_VERSION "@VERSION@" +#define BFD_VERSION "@VERSION@" #define BFD_ARCH_SIZE @WORDSIZE@ +#define BFD_HOST_64BIT_LONG @BFD_HOST_64BIT_LONG@ #if BFD_ARCH_SIZE >= 64 #define BFD64 @@ -67,9 +68,6 @@ extern "C" { #endif #endif -/* 64-bit type definition (if any) from bfd's sysdep.h goes here */ - - /* forward declaration */ typedef struct _bfd bfd; @@ -109,43 +107,42 @@ typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; typedef long int file_ptr; /* Support for different sizes of target format ints and addresses. - If the host implements 64-bit values, it defines BFD_HOST_64_BIT to - be the appropriate type. Otherwise, this code will fall back on - gcc's "long long" type if gcc is being used. BFD_HOST_64_BIT must - be defined in such a way as to be a valid type name by itself or - with "unsigned" prefixed. It should be a signed type by itself. + If the type `long' is at least 64 bits, BFD_HOST_64BIT_LONG will be + set to 1 above. Otherwise, if gcc is being used, this code will + use gcc's "long long" type. Otherwise, the compilation will fail + if 64-bit targets are requested. */ - If neither is the case, then compilation will fail if 64-bit - targets are requested. If you don't request any 64-bit targets, - you should be safe. */ +#ifdef BFD64 -#ifdef BFD64 - -#if defined (__GNUC__) && !defined (BFD_HOST_64_BIT) +#ifndef BFD_HOST_64_BIT +#if BFD_HOST_64BIT_LONG +#define BFD_HOST_64_BIT long +#else +#ifdef __GNUC__ #define BFD_HOST_64_BIT long long -typedef BFD_HOST_64_BIT int64_type; -typedef unsigned BFD_HOST_64_BIT uint64_type; -#endif - -#if !defined (uint64_type) && defined (__GNUC__) -#define uint64_type unsigned long long -#define int64_type long long -#endif -#ifndef uint64_typeLOW -#define uint64_typeLOW(x) ((unsigned long)(((x) & 0xffffffff))) -#define uint64_typeHIGH(x) ((unsigned long)(((x) >> 32) & 0xffffffff)) -#endif +#endif /* defined (__GNUC__) */ +#endif /* ! BFD_HOST_64BIT_LONG */ +#endif /* ! defined (BFD_HOST_64_BIT) */ typedef unsigned BFD_HOST_64_BIT bfd_vma; typedef BFD_HOST_64_BIT bfd_signed_vma; typedef unsigned BFD_HOST_64_BIT bfd_size_type; typedef unsigned BFD_HOST_64_BIT symvalue; + #ifndef fprintf_vma +#if BFD_HOST_64BIT_LONG +#define sprintf_vma(s,x) sprintf (s, "%016lx", x) +#define fprintf_vma(f,x) fprintf (f, "%016lx", x) +#else +#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff))) +#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff)) #define fprintf_vma(s,x) \ - fprintf(s,"%08lx%08lx", uint64_typeHIGH(x), uint64_typeLOW(x)) + fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x)) #define sprintf_vma(s,x) \ - sprintf(s,"%08lx%08lx", uint64_typeHIGH(x), uint64_typeLOW(x)) + sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x)) #endif +#endif + #else /* not BFD64 */ /* Represent a target address. Also used as a generic unsigned type @@ -391,6 +388,11 @@ extern struct bfd_hash_entry *bfd_hash_lookup PARAMS ((struct bfd_hash_table *, const char *, boolean create, boolean copy)); +/* Replace an entry in a hash table. */ +extern void bfd_hash_replace + PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *old, + struct bfd_hash_entry *nw)); + /* Base method for creating a hash table entry. */ extern struct bfd_hash_entry *bfd_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, |