aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
1994-11-11 * hpux-core.c (hpux_core_struct): Delete handles for theJeff Law1-0/+11
data, reg and stack sections. They're never used. Delete accessor macros. (make_bfd_asection): Use bfd_make_section_anyway since debugging cores from dynamic executables may have several sections with the same logical name. (hpux_core_core_file_p): Don't save handles to data, reg and stack sections. Handle CORE_TEXT, CORE_MMF and CORE_SHM.
1994-11-08 * bout.c (callj_callback): Add new argument shrinking. Change allIan Lance Taylor1-0/+11
callers. Handle relocs against section symbols correctly. If not shrinking, don't subtract out dstidx; the subtraction is already in the object file. PR 5883.
1994-11-04configure.in: fix ns32knetbsd_vec -> pc532netbsd_vecKen Raeburn1-0/+3
1994-11-03aoutx.h fixes from netKen Raeburn1-0/+6
1994-11-03go32 patches from djKen Raeburn2-1/+9
1994-11-03Makefile.in (ALL_MACHINES): Include m68knetbsd.o.Ken Raeburn1-0/+2
1994-11-03i386linux.mh: include -lm in EXTRALIBSKen Raeburn1-0/+4
1994-11-02 * archive.c (normalize): Change to take a BFD as an argument.Ian Lance Taylor1-0/+13
Change VMS version to use bfd_alloc rather than malloc, so that we don't lose the memory forever. (_bfd_construct_extended_name_table): Check the name of an archive entry which is not being extended, and correct it if it is wrong. This is necessary in case the archive was constructed by another program which put an entry in the extended name table which we don't plan to put in ourselves. From jjc@jclark.com (James Clark). (bfd_dont_truncate_arname): Check return value of normalize.
1994-11-01 * elf32-hppa.c (ELF32_PARISC_SX_SIZE): Define.Ian Lance Taylor1-0/+20
(ELF32_PARISC_SX_GET, ELF32_PARISC_SX_PUT): Define. (symextn_entry): Don't define. (symext_chain_size): Change type to bfd_size_type. (symextn_contents): Change type to bfd_byte *. (elf32_hppa_backend_begin_write_processing): Use ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS). (elf32_hppa_size_symext): Likewise. Also, change type of sizep to bfd_size_type *. (elf_hppa_tc_make_sections): Cast symextn_contents assignment to bfd_byte *. Use ELF32_PARISC_SX_PUT instead of direct assignment. (elf32_hppa_backend_symbol_table_processing): Use ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS). Use ELF32_PARISC_SX_GET insetad of direct assignment. (elf32_hppa_read_symext_info): Change type of contents, and its assignment cast, to bfd_byte *. Use ELF32_PARISC_SX_SIZE instead of sizeof (symextn_entry). Use symext_entryS instead of symextn_entry. Use ELF32_PARISC_SX_GET instead of direct assignment.
1994-10-31 * archive.c (bfd_dont_truncate_arname): Add the ar paddingIan Lance Taylor2-1/+7
character, if there is room for it, even if the name is the maximum length. PR 5859.
1994-10-31 * elfcode.h (assign_file_positions_except_relocs): Sort the ELFIan Lance Taylor1-0/+6
headers by section address when assigning file positions. (elf_sort_hdrs): New static function.
1994-10-31 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Create DT_INITIan Lance Taylor2-8/+41
and DT_FINI dynamic entries based on the existence of _init and _fini symbols, not on the .init and .fini sections. This is compatible with some SVR4 linkers. (elf_bfd_final_link): Corresponding change.
1994-10-30 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't move aIan Lance Taylor1-0/+5
symbol with a PLT entry into the .plt section if it is defined in a regular file. * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
1994-10-29 * linker.c (_bfd_generic_link_add_archive_symbols): It's not anIan Lance Taylor2-0/+10
error if an empty archive has no symbol table. * ecoff.c (ecoff_link_add_archive_symbols): Likewise. * elfcode.h (elf_link_add_archive_symbols): Likewise.
1994-10-28NetBSD/m68k support, based on work by mikeb@snow.datametrics.com:J.T. Conklin6-2/+69
* config.bfd (m68*-*-netbsd*): Use m68k-nbsd as bfd_name. * configure.in (m68knetbsd_vec): Added. * targets.c (bfd_m68knetbsd_vec): Added. * hosts/m68knbsd.h, config/m68k-nbsd.mt, m68knetbsd.c: New files. * Makefile.in (BFD32_BACKENDS, CFILES): Add m68knetbsd.c. miscellaneous cleanup required by all netbsd targets, based on work by Andrew Cagney <cagney@highland.com.au>: * netbsd.h (N_MAGIC, N_SET_MAGIC, N_GETMAGIC, N_GETMAGIC2, N_TXTADDR, N_TXTOFF, N_ALIGN, N_DATADDR, N_DATOFF): Removed. Generic a.out definitions work. * i386nbsd.c, ns32knbsd.c, sparcnbsd.c (__LDPGSZ): Removed. (MY(write_object_contents)): Use NetBSD's magic numbers
1994-10-27 * libelf.h (struct bfd_elf_section_data): Add field dynindx.Ian Lance Taylor5-93/+222
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Don't finalize the .dynsym, .dynstr or .hash sections until after the backend size_dynamic_sections routine, so that it can add dynamic symbols if it wants to. * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't define the symbol to be in the .plt section when generating a shared library if it is a defined symbol. * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise. (elf32_sparc_size_dynamic_sections): When generating a shared library, allocate space for a dynamic symbol for each output section, storing the index in the dynindx field of the ELF section data. Adjust the other dynindx fields to account for this. (elf32_sparc_adjust_dynindx): New static function. (elf32_sparc_relocate_section): When copying a reloc into a shared library, use the original addend as appropriate. Convert an R_SPARC_32 reloc into an R_SPARC_RELATIVE reloc. Use the dynamic symbol index of the output section, not the normal symbol index. (elf32_sparc_finish_dynamic_sections): Don't die if a section does not exist when setting the value of the dynamic tags. Write out a dynamic symbol for each output section.
1994-10-26 * aoutx.h (aout_link_input_section): Don't bother to read or writeIan Lance Taylor2-4/+25
the relocs if there aren't any.
1994-10-25 * Makefile.in (ALL_MACHINES): Add tekhex.o.Ian Lance Taylor2-3/+2
* targets.c (bfd_target_vector): If SELECT_VECS is not defined, include tekhex_vec. * tekhex.c (NIBBLE, ISHEX): Cast array arguments to unsigned char. (getvalue, getsym, out): Likewise. (find_chunk): Remove unused variable s. (first_phase): Remove unused variable s. (pass_over): Remove unused variable address. (tekhex_object_p): Remove unused variable section. (move_section_contents): Change return type from boolean to void. (tekhex_write_object_contents): Remove unused variables tdata and list.
1994-10-25 * linker.c (enum link_action): Add CIND.Ian Lance Taylor2-59/+211
(link_action): Change COMMON_ROW\indr from MDEF to CREF. Change INDR_ROW\common from MDEF to CIND. (_bfd_generic_link_add_one_symbol): In CREF case, handle an existing symbol which is indirect rather than defined. Add new CIND case.
1994-10-24 Change S-record backend to use multiple sections to handle gaps inIan Lance Taylor1-0/+33
file. * srec.c (srec_data_list_struct): Move field next from last place to first. Change type of data to bfd_byte *. (struct srec_symbol): Define. (tdata_type): Remove done_symbol_read, count, strings, symbol_idx, string_size, string_idx. Change type of symbols to struct srec_symbol *. Add symtail and csymbols. (low, high): Remove. (size_symbols, fillup_symbols, size_srec, fillup): Remove. (white, skipwhite, pass_over, object_p): Remove. (srec_mkobject): Call srec_init. Adjust tdata initialization for field changes. (srec_get_byte, srec_bad_byte): New static functions. (srec_new_symbol, srec_scan): New static functions. (srec_object_p): Change type of b to bfd_byte. Explicitly set wrong_format error. Call srec_mkobject and srec_scan instead of object_p. (symbolsrec_object_p): Likewise. Also, change b to be only two bytes. (srec_read_section): New static function. (srec_get_section_contents): Call srec_read_section rather than pass_over. Handle zero length section correctly. (set_set_arch_mach): Change from function to macro. (srec_set_section_contents): Change data to bfd_byte *. (srec_write_record): Change data, end and src to bfd_byte *. (srec_write_header): Change buffer and dst to bfd_byte *. (srec_write_section): Change location to bfd_byte *. (srec_write_terminator): Change buffer to bfd_byte *. (srec_get_symtab_upper_bound): Don't call srec_get_section_contents. (srec_get_symtab): Rewrite.
1994-10-24 * ecoff.c (ecoff_set_symbol_info): Set udata.i to 0, not NULL.Ian Lance Taylor2-5/+10
1994-10-21* libaout.h (machine_type): added M_68K_NETBSD and M_SPARC_NETBSD.J.T. Conklin5-8/+153
* i386netbsd.c, ns32knetbsd.c, sparcnetbsd.c: removed RCS Id's. changed how PAGE_SIZE and SEGMENT_SIZE are defined so they are consistant with each other. * netbsd.h (N_HEADER_IN_TEXT, TEXT_START_ADDR): NetBSD fits its header into the start of its text segment.
1994-10-21 * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add case forIan Lance Taylor3-40/+108
_construct_extended_name_table. (bfd_target): Add _bfd_construct_extended_name_table. * archive.c (_bfd_archive_bsd_construct_extended_name_table): New function. (_bfd_archive_coff_construct_extended_name_table): New function. (_bfd_construct_extended_name_table): Renamed by adding a leading underscore, and made externally visible. Added trailing_slash argument, and used it instead of elf_style. Changed type of tablen to bfd_size_type *. (_bfd_write_archive_contents): Use BFD_SEND to call construct_extended_name_table. Use the returned name. * libbfd-in.h (_bfd_construct_extended_name_table): Declare. (_bfd_noarchive_construct_extended_name_table): Define. (_bfd_archive_bsd_construct_extended_name_table): Declare. (_bfd_archive_coff_construct_extended_name_table): Declare. * bfd-in2.h: Rebuild. * libbfd.h: Rebuild. * som.c (som_construct_extended_name_table): New static function. * aout-target.h (MY_construct_extended_name_table): Define. * coff-rs6000.c (rs6000coff_construct_extended_name_table): Define. * ieee.c (ieee_construct_extended_name_table): Define. * libecoff.h (_bfd_ecoff_construct_extended_name_table): Define. * oasys.c (oasys_construct_extended_name_table): Define.
1994-10-21fix BFD_ASSERT callsIan Lance Taylor2-6/+6
1994-10-21remove unused variableIan Lance Taylor1-1/+0
1994-10-21 Fix the ELF linker to not require an interpreter if no dynamicIan Lance Taylor5-600/+934
objects were seen, even when linking PIC code. * libelf.h (ELF_LINK_HASH_NEEDS_PLT): Define. (struct elf_link_hash_table): Add field dynamic_sections_created. * elfcode.h (elf_link_record_dynamic_symbol): Create dynstr if it doesn't already exist. (elf_link_add_object_symbols): Create dynamic sections based on dynamic_sections_created field, not dynobj field. Don't bother to set dynobj. (elf_link_create_dynamic_sections): If dynamic sections were already created, don't do anything. If dynobj is already set, use it; otherwise, set it to the bfd argument. Don't initialize dynsymcount. Only create dynstr if it does not exist. Set dynamic_sections_created to true. (NAME(bfd_elf,size_dynamic_sections)): Skip most of this function if no dynamic objects were seen. (elf_adjust_dynamic_symbol): If a symbol has the ELF_LINK_HASH_NEEDS_PLT flag set, let the backend adjust it. (elf_bfd_final_link): Change most decisions based on dynobj to check dynamic_sections_created instead. (elf_link_output_extsym): Only handle dynamic symbols if a dynamic object was seen. * elf.c (_bfd_elf_link_hash_table_init): Initialize new field dynamic_sections_created. Set dynsymcount to 1, not 0. * elf32-i386.c (elf_i386_create_dynamic_sections): Call elf_i386_create_got_section rather than creating the .got and .got.plt sections. (elf_i386_create_got_section): New static function. (elf_i386_check_relocs): Just call elf_i386_create_got_section if a GOT table is needed, not bfd_elf32_link_create_dynamic_sections. Only create the .rel.got section, and only make space for a reloc, for a global symbol or when generating a shared object. For a R_386_PLT32 reloc, just set the ELF_LINK_HASH_NEEDS_PLT flag. (elf_i386_adjust_dynamic_symbol): Rework initial assertion to permit ELF_LINK_HASH_NEEDS_PLT non dynamic symbols. Create a procedure linkage table entry for such symbols. But, if no dynamic objects were seen, never create a PLT entry. (elf_i386_size_dynamic_sections): If no dynamic objects were seen, skip most of this function, and force the size of the .rel.got section to zero. (elf_i386_relocate_section): For a R_386_GOT32 reloc against a global symbol when no dynamic object was seen, initialize the contents of the .got section. For a R_386_GOT32 against a local symbol, only create a R_386_RELATIVE reloc when generating a shared object. Treat a R_386_PLT32 reloc against a symbol for which we did not create a PLT entry as a R_386_PC32 reloc. (elf_i386_finish_dynamic_sections): Only fiddle with the dynamic entries and the PLT if we saw a dynamic object. * elf32-sparc.c (elf_sparc_howto_table): Fix R_SPARC_PC22 by setting rightshift to 10. Fix R_SPARC_WPLT20 by setting rightshift to 2, size to 2, bitsize to 30, and dst_mask to 0x3fffffff. (elf32_sparc_create_dynamic_sections): Don't set the size of the .plt section. Call elf32_sparc_create_got_section rather than creating the .got section. (elf32_sparc_check_relocs): Call elf32_sparc_create_got_section if a GOT table is needed, not bfd_elf32_link_create_dynamic_sections. Only create the .rela.got section, and only make space for a reloc, for a global symbol or when generating a shared object. Set the alignment of the .rela.got section to 2. For a R_SPARC_WPLT30 reloc, just set the ELF_LINK_HASH_NEEDS_PLT flag. (elf32_sparc_adjust_dynamic_symbol): Rework initial assertion to permit ELF_LINK_HASH_NEDS_PLT non dynamic symbols. Create a procedure linkage table for such symbols. But, if no dynamic objects were seen, never create a PLT entry. Initialize the size of the .plt section. (elf32_sparc_size_dynamic_sections): If no dynamic objects were seen, skip most of this function, and force the size of the .rela.got section to zero. Strip empty reloc sections, and strip an empty .plt section. (elf32_sparc_relocate_section): For a GOT reloc against a global symbol when no dynamic object was seen, initialize the contents of the .got section. For a GOT reloc against a local symbol, only create a R_SPARC_RELATIVE reloc when generating a shared object. Treat a R_SPARC_WPLT30 reloc against a symbol for which we did not create a PLT entry as a R_SPARC_WDISP30 reloc. (elf32_sparc_finish_dynamic_sections): Only fiddle with the dynamic entries and the PLT if we saw a dynamic object.
1994-10-20 * elfcode.h (elf_map_symbols): Don't worry about section symbolsIan Lance Taylor2-82/+87
in a section not owned by any BFD. (elf_section_from_bfd_section): Separate out loop which calls backend routine. Check bfd_section and call the backend routine even for a section not owned by any BFD. * elf32-mips.c (mips_elf_section_from_bfd_section): Handle .acommon section.
1994-10-19 * coffgen.c (coff_print_symbol): Make names for section number andJim Kingdon1-0/+7
storage class slightly more verbose. It's not clear how many characters I can justify using up, but before this change they both were abbreviated "sc" which is (IMHO) clearly unacceptable.
1994-10-19 * binary.c (binary_set_section_contents): Set the base fileIan Lance Taylor1-0/+3
position from the lowest section VMA, not the start address.
1994-10-19 * aoutx.h (NAME(aout,slurp_symbol_table)): Don't return an errorIan Lance Taylor3-80/+129
if there are no symbols. * coffgen.c (coff_get_normalized_symtab): Likewise. * hp300hpux.c (MY(slurp_symbol_table)): Likewise.
1994-10-18rebuilt dependenciesIan Lance Taylor1-0/+1
1994-10-18 * binary.c: New file for raw binary output format.Ian Lance Taylor5-6/+187
* Makefile.in (BFD_LIBS): Add binary.o. (CFILES): Add binary.c. * targets.c (binary_vec): Declare. (bfd_target_vector): Include binary_vec.
1994-10-18 * aout-target.h (MY_bfd_copy_private_section_data): Only copyIan Lance Taylor1-1/+5
subformat to another bfd_target_aout_flavour file.
1994-10-18 * srec.c (tdata_type): Add field tail.Ian Lance Taylor2-8/+38
(srec_mkobject): Initialize tail. (srec_set_section_contents): Sort S record list by address.
1994-10-17 * oasys.c (oasys_slurp_symbol_table): Use udata.p rather than justIan Lance Taylor2-6/+43
udata.
1994-10-17 * elfcode.h (elf_map_symbols): Sort the symbols into a new array,Ian Lance Taylor1-9/+0
rather than messing with Elf_Sym_Extra. Store the symbol index in the udata.i field. (swap_out_syms): Use outbound_syms as a pointer rather than as an array. Don't worry about elf_sym_num. (elf_symbol_from_bfd_symbol): Use udata.i rather than just udata. * libelf.h (struct elf_sym_extra): Don't define. (Elf_Sym_Extra): Don't define. (struct elf_obj_tdata): Remove sym_extra field. (elf_sym_extra): Don't define. * elf32-hppa.c (elf32_hppa_backend_final_write_processing): Use udata.i rather than elf_sym_extra array. (elf32_hppa_backend_symbol_table_processing): Don't set symextn_hdr->size; just use sh_size.
1994-10-17 Use a hash table when writing out ELF symbol names.Ian Lance Taylor5-378/+1046
* elfcode.h (elf_stringtab_init): New static function. (bfd_new_strtab, bfd_add_to_strtab, bfd_add_2_to_strtab): Remove. Change all callers to use elf_stringtab_init or _bfd_stringtab_add, and get stringtab lengths using _bfd_stringtab_size. (elf_fake_sections): Change ignored argument to pointer to boolean, and set the boolean to true if an error occurs. If an error has already occurred, don't do anything. (assign_section_numbers): Just set sh_size, not contents. (elf_compute_section_file_positions): Pass the address of a boolean to elf_fake_sections. Pass the address of a bfd_strtab_hash to swap_out_syms. Write out the .strtab section. (prep_headers): Change shstrtab to bfd_strtab_hash. (swap_out_syms): Take a pointer to a bfd_strtab_hash as an argument. Set it to the symbol names. (NAME(bfd_elf,write_object_contents)): Write out the section header names using _bfd_stringtab_emit. (elf_debug_section): Remove first argument; get the section name via the bfd_section pointer. Change caller. (elf_bfd_final_link): Write out the symbol names using _bfd_stringtab_emit. Likewise for the .dynstr section contents. Free the symbol names at the end of the function. (elf_link_input_bfd): Remove the last argument, output_names, from relocate_section. Save the old symbol contents before calling elf_link_output_sym, and restore them afterward. * libelf.h (struct elf_link_hash_table): Change dynstr field to struct bfd_strtab_hash. (struct elf_backend_data): Remove last argument, output_names, from elf_backend_relocate_section field. (struct strtab): Don't define. (struct elf_obj_tdata): Change strtab_ptr field to struct bfd_strtab_hash. * elf32-hppa.c (elf32_hppa_relocate_section): Remove last argument, output_names. * elf32-i386.c (elf_i386_relocate_section): Likewise. * elf32-mips.c (mips_elf_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1994-10-17Fix thinko in ian's ChangeLog entryJim Kingdon1-1/+1
1994-10-17 * libbfd-in.h (DEFAULT_STRING_SPACE_SIZE): Don't define.Ian Lance Taylor1-0/+5
(bfd_add_to_string_table): Don't declare. * libbfd.h: Rebuild. * libbfd.c (bfd_add_to_string_table): Remove.
1994-10-17 * elfcode.h (elf_swap_shdr_in): Use rawdata, not bfd_section.Ian Lance Taylor5-2092/+2116
Clear contents field. (bfd_section_from_shdr): In SHT_STRTAB case, check bfd_section, not rawdata. Don't set rawdata if e_shstrndx. Use bfd_section rather than rawdata in commented out code. In SHT_REL[A] case, don't bother to check elf_section_data of section returned by section_from_elf_index. (elf_fake_sections): Set bfd_section, not rawdata. Don't set size. (elf_map_symbols): Don't set elf_num_section_syms. Don't create section symbols that already exist. (assign_file_position_for_section): Use bfd_section, not rawdata. (section_from_elf_index): Just check bfd_section field. (elf_section_from_bfd_section): Likewise. (elf_debug_section): Don't print rawdata, contents, or size. (elf_link_add_object_symbols): Don't error out if section_from_elf_index returns NULL. (elf_bfd_final_link): Check return value from section_from_elf_index against NULL, not bfd_is_abs_section. (elf_link_input_bfd): Don't check section_from_elf_index return value. * libelf.h (struct elf_obj_tdata): Remove num_section_syms field. (elf_num_section_syms): Don't define. * elf.c (elf_get_str_section): Store section contents in contents field rather than rawdata field. (elf_string_from_elf_section): Likewise. (_bfd_elf_make_section_from_shdr): Store BFD section pointer in bfd_section field rather than rawdata field. * elf32-hppa.c (elf32_hppa_read_symext_info): Use bfd_section rather than rawdata. (elf32_hppa_size_stubs): Likewise. * elf32-mips.c (mips_elf_final_write_processing): Use bfd_section rathern than rawdata. (mips_elf_section_from_shdr): Likewise. (mips_elf_section_processing): Likewise. (mips_elf_section_from_bfd_section): Remove rawdata check.
1994-10-17 * srec.c (pass_over): Set the start address for S7, S8 or S9.Ian Lance Taylor2-1/+23
1994-10-14update to version 2.5Ken Raeburn2-1/+5
1994-10-14 * bfd.c (bfd_scan_vma): Cast end to be non const before passing itIan Lance Taylor1-0/+5
to strtoul.
1994-10-13 * bfd.c (bfd_scan_vma): Pass end argument on to strtoul.Ian Lance Taylor2-4/+23
1994-10-12 * ecoff.c (ecoff_set_symbol_info): Mark local stProc or stLabelIan Lance Taylor2-118/+307
symbols as BSF_DEBUGGING. PR 5769.
1994-10-12* opncls.c (bfd_realloc): Deleted, since it's broken and fixing it would makeKen Raeburn2-0/+11
it slow. Besides, it isn't used much. * elfcode.h (elf_map_symbols): Always allocate new storage for the symbol table.
1994-10-12 * rs6000-core.c (rs6000coff_core_file_matches_executable_p): MakeIan Lance Taylor1-0/+3
str1 and str2 const pointers.
1994-10-12 * Makefile.in (INSTALL): Use top level install.sh script.Ian Lance Taylor1-0/+10
* config/README (INSTALL): Remove. * config/delta88.mh (INSTALL): Remove. * config/i386v4.mh (INSTALL): Remove. * config/irix4.mh (INSTALL): Remove. * config/irix5.mh (INSTALL): Remove. * config/ncrt3000.mh (INSTALL): Remove.
1994-10-11Tue Oct 11 13:57:56 1994 Eric Youngdale (eric@andante.aib.com)Ian Lance Taylor1-0/+11
* elf32-i386.c (elf_i386_check_relocs): Make sure that a symbol with a global offset table entry or a procedure linkage table entry is added to the dynamic symbol table. * elf32-sparc.c (elf32_sparc_check_relocs): Likewise. * elf32-i386.c (elf_i386_adjust_dynamic_symbol): If a symbol has already gotten a procedure linkage table entry, change the definition to the PLT entry. * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
1994-10-11 * lynx-core.c (lynx_core_file_p): SPARC Lynx appears to startIan Lance Taylor1-0/+5
dumping the .data section in a core file at a page boundary.