aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2000-08-14 20:13:39 +0000
committerJim Wilson <wilson@tuliptree.org>2000-08-14 20:13:39 +0000
commitc43c2cc5fab9b4e50144fd1a7dce611a7ccc1c6a (patch)
treeff25a461a5f91e955243c0dd54d30cda47c1ea3a /bfd
parentdb4f6831161cdf3627169e82344b82b1c6813ef1 (diff)
downloadgdb-c43c2cc5fab9b4e50144fd1a7dce611a7ccc1c6a.zip
gdb-c43c2cc5fab9b4e50144fd1a7dce611a7ccc1c6a.tar.gz
gdb-c43c2cc5fab9b4e50144fd1a7dce611a7ccc1c6a.tar.bz2
Add support for IA-64 specific elf header flags.
bfd/ 2000-08-14 Jim Wilson <wilson@cygnus.com> * elf64-ia64.c (elf64_ia64_merge_private_bfd_data): Handle EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP, and EF_IA_64_NOFUNCDESC_CONS_GP. (elf64_ia64_print_private_bfd_data): Likewise. Also handle EF_IA_64_ABSOLUTE. gas/ 2000-08-14 Jim Wilson <wilson@cygnus.com> * config/tc-ia64.c (md_longopts): Add -mconstant-gp and -mauto-pic. (md_parse_option): Add OPTION_MCONSTANT_GP and OPTION_MAUTO_PIC. (md_begin): Change assignment to md.flag to OR in the new bit. include/elf/ 2000-08-14 Jim Wilson <wilson@cygnus.com> * elf/ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP, EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf64-ia64.c30
2 files changed, 36 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5f3534c..f58853d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2000-08-14 Jim Wilson <wilson@cygnus.com>
+
+ * elf64-ia64.c (elf64_ia64_merge_private_bfd_data): Handle
+ EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP, and EF_IA_64_NOFUNCDESC_CONS_GP.
+ (elf64_ia64_print_private_bfd_data): Likewise. Also handle
+ EF_IA_64_ABSOLUTE.
+
2000-08-11 Alexandre Oliva <aoliva@redhat.com>
* elf32-sh.c (sh_elf_set_mach_from_flags): Make it static.
diff --git a/bfd/elf64-ia64.c b/bfd/elf64-ia64.c
index 11704e5..f1ea331 100644
--- a/bfd/elf64-ia64.c
+++ b/bfd/elf64-ia64.c
@@ -3974,6 +3974,10 @@ elf64_ia64_merge_private_bfd_data (ibfd, obfd)
if (in_flags == out_flags)
return true;
+ /* Output has EF_IA_64_REDUCEDFP set only if all inputs have it set. */
+ if (!(in_flags & EF_IA_64_REDUCEDFP) && (out_flags & EF_IA_64_REDUCEDFP))
+ elf_elfheader (obfd)->e_flags &= ~EF_IA_64_REDUCEDFP;
+
if ((in_flags & EF_IA_64_TRAPNIL) != (out_flags & EF_IA_64_TRAPNIL))
{
(*_bfd_error_handler)
@@ -4001,6 +4005,25 @@ elf64_ia64_merge_private_bfd_data (ibfd, obfd)
bfd_set_error (bfd_error_bad_value);
ok = false;
}
+ if ((in_flags & EF_IA_64_CONS_GP) != (out_flags & EF_IA_64_CONS_GP))
+ {
+ (*_bfd_error_handler)
+ (_("%s: linking constant-gp files with non-constant-gp files"),
+ bfd_get_filename (ibfd));
+
+ bfd_set_error (bfd_error_bad_value);
+ ok = false;
+ }
+ if ((in_flags & EF_IA_64_NOFUNCDESC_CONS_GP)
+ != (out_flags & EF_IA_64_NOFUNCDESC_CONS_GP))
+ {
+ (*_bfd_error_handler)
+ (_("%s: linking auto-pic files with non-auto-pic files"),
+ bfd_get_filename (ibfd));
+
+ bfd_set_error (bfd_error_bad_value);
+ ok = false;
+ }
return ok;
}
@@ -4015,11 +4038,16 @@ elf64_ia64_print_private_bfd_data (abfd, ptr)
BFD_ASSERT (abfd != NULL && ptr != NULL);
- fprintf (file, "private flags = %s%s%s%s\n",
+ fprintf (file, "private flags = %s%s%s%s%s%s%s%s\n",
(flags & EF_IA_64_TRAPNIL) ? "TRAPNIL, " : "",
(flags & EF_IA_64_EXT) ? "EXT, " : "",
(flags & EF_IA_64_BE) ? "BE, " : "LE, ",
+ (flags & EF_IA_64_REDUCEDFP) ? "REDUCEDFP, " : "",
+ (flags & EF_IA_64_CONS_GP) ? "CONS_GP, " : "",
+ (flags & EF_IA_64_NOFUNCDESC_CONS_GP) ? "NOFUNCDESC_CONS_GP, " : "",
+ (flags & EF_IA_64_ABSOLUTE) ? "ABSOLUTE, " : "",
(flags & EF_IA_64_ABI64) ? "ABI64" : "ABI32");
+
_bfd_elf_print_private_bfd_data (abfd, ptr);
return true;
}