From 9bd0d6499c6f30e5a63661561e9860752d3c3b35 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 20 Sep 1993 23:29:42 +0000 Subject: [PATCH] * read.c (get_stab_string_offset): Make non-static. Make arguments const. Don't align strings to 4 byte boundaries. * read.h: Declare get_stab_string_offset. * config/obj-elf.c (obj_elf_section): Set SEC_ALLOC as well as SEC_LOAD for progbits section. (obj_elf_init_stab_section): New function. (adjust_stab_sections): Add casts to avoid warnings. * config/obj-elf.h (INIT_STAB_SECTION): Call obj_elf_init_stab_section. (OBJ_PROCESS_STAB): Removed definition. --- gas/ChangeLog | 15 ++++++++++++++- gas/config/obj-elf.c | 31 ++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index dd0d3a5efa1..0360ab5afcb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,16 @@ +Mon Sep 20 19:23:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (get_stab_string_offset): Make non-static. Make + arguments const. Don't align strings to 4 byte boundaries. + * read.h: Declare get_stab_string_offset. + * config/obj-elf.c (obj_elf_section): Set SEC_ALLOC as well as + SEC_LOAD for progbits section. + (obj_elf_init_stab_section): New function. + (adjust_stab_sections): Add casts to avoid warnings. + * config/obj-elf.h (INIT_STAB_SECTION): Call + obj_elf_init_stab_section. + (OBJ_PROCESS_STAB): Removed definition. + Fri Sep 17 18:12:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) * config/obj-elf.h (S_GET_SIZE): Define. @@ -6,7 +19,7 @@ Fri Sep 17 18:12:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) Thu Sep 16 14:23:08 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) - * tc.h: Declare tc_gen_reloc differently depending upong + * tc.h: Declare tc_gen_reloc differently depending upon RELOC_EXPANSION_POSSIBLE. * config/obj-elf.c (obj_elf_section): Only set flags when first creating the section. diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 603c70780d9..86997bb9dd9 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -358,7 +358,7 @@ obj_elf_section (xxx) CHECK ("write", SEC_READONLY, 1); CHECK ("alloc", SEC_ALLOC | SEC_LOAD, 0); CHECK ("execinstr", SEC_CODE, 1); - CHECK ("progbits", SEC_LOAD, 1); + CHECK ("progbits", SEC_ALLOC | SEC_LOAD, 1); #undef CHECK p = input_line_pointer; @@ -714,6 +714,31 @@ obj_elf_ident (ignore) subseg_set (old_section, old_subsection); } +/* The first entry in a .stabs section is special. */ + +void +obj_elf_init_stab_section (seg) + segT seg; +{ + extern char *logical_input_file, *physical_input_file; + char *p; + const char *file; + unsigned int stroff; + + p = frag_more (12); + file = logical_input_file; + if (file == NULL) + file = physical_input_file; + if (file == NULL) + file = "UNKNOWN"; + stroff = get_stab_string_offset (file, segment_name (seg)); + know (stroff == 1); + md_number_to_chars (p, stroff, 4); + seg_info (seg)->stabu.p = p; +} + +/* Fill in the counts in the first entry in a .stabs section. */ + static void adjust_stab_sections (abfd, sec, xxx) bfd *abfd; @@ -743,8 +768,8 @@ adjust_stab_sections (abfd, sec, xxx) p = seg_info (sec)->stabu.p; assert (p != 0); - bfd_h_put_16 (abfd, (bfd_vma) nsyms, p + 6); - bfd_h_put_32 (abfd, (bfd_vma) strsz, p + 8); + bfd_h_put_16 (abfd, (bfd_vma) nsyms, (bfd_byte *) p + 6); + bfd_h_put_32 (abfd, (bfd_vma) strsz, (bfd_byte *) p + 8); } void -- 2.30.2