From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20093 invoked by alias); 18 Aug 2009 17:55:42 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 19865 invoked by uid 306); 18 Aug 2009 17:55:38 -0000 Date: Tue, 18 Aug 2009 17:55:00 -0000 Message-ID: <20090818175538.19850.qmail@sourceware.org> From: tromey@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-tromey-python: Merged from master X-Git-Refname: refs/heads/archer-tromey-python X-Git-Reftype: branch X-Git-Oldrev: b20f57ef041cd30a910ca69e23eda602f66bd20b X-Git-Newrev: dd29526f9cda7477ebfba97c4352c541ae33f3c0 X-SW-Source: 2009-q3/txt/msg00130.txt.bz2 List-Id: The branch, archer-tromey-python has been updated via dd29526f9cda7477ebfba97c4352c541ae33f3c0 (commit) via 2160da1bc16af71a3a1ecc80da9f8ca9c2b9c2fb (commit) via 19a50d12edce0600e6e784c1edb3ada364e315f6 (commit) via 7d85f8dcdcb4b149fc5c8d1264fd143389966d90 (commit) via b2bd124143030a72ceffe8164b95eca30c136a71 (commit) via 2d2cca06c04577fedc2547a9d22213bf2ce5944b (commit) via 7b89e85c0e6ec79862388fffa7f37097023ff996 (commit) via 9213c4b80953bfb0cd4f413449804cfea7083b8c (commit) via 2e49d7624aa051e6fc923ad075c8d5a8b760b03a (commit) via 668e15338216bae8b420ac7622e451fbd41f7150 (commit) via 61b721bf40f1b08c51e333356223aac25779efce (commit) via 0ad8a5906cd65758e6050bdf59b893a0b1c20bc9 (commit) via c6cbb4c87a8a8903e4f7e2d4d037beae680fe5bc (commit) via 99a1bce6066d10c5559be4243c64e886a92687aa (commit) via dd87a5db41262aab0329681424c8d8a1edc6b12d (commit) via 11715aed715d97aed37e850e6aed85c041c547b5 (commit) via 1b42f8399e862443ca8d7d5d37ecfd66c18a7aeb (commit) via c727449bc8cdba5f6dfcf740e6c11e4cebc179b8 (commit) via e183d2cfa59f743c78af6709f65fd2c12b151ad6 (commit) via caf5aafaa5dde02dedc24b18bf82be878fda61d6 (commit) via f110b5c19bb171d4893376e6e4b731683f2fc31a (commit) via 013c637ee0cd488e79d73206a0347df969d2f33a (commit) via a9e8bba767b606fbc72af7fc3dddf01342b70143 (commit) via 1269417bec740667b9112ed1077973236f89ac9f (commit) via 309a0bf052482b2dfaf80805361e1c50121f3809 (commit) via 444b5d7ba1da7e5f8e5855e45cd0f97a27ed6660 (commit) via 2d0c1b4a85e6ce82b3346bd055009f2f83fbc5a0 (commit) via ec6ee3bdbdf3dab75cbb2695cf5daf8672d2b97a (commit) via d7fb0f9994ed73f8b9b09e0324033e4fd1549582 (commit) via 82648c0411ee11b4ba5446997e202bcb682fd369 (commit) via 8c3a12a4542b48fcc9286fe35958ce994518f9e5 (commit) via 59ef00384e7090beba9b50dce1d9de4f7a083105 (commit) via cd7936dd5f6446cddcaced61977d13d36ee3df63 (commit) via e04c6dd6e43c2355c0389fe30f8b11e602920438 (commit) via 4632ac375052eaf0f6c638d9fe4f2959d799fbe8 (commit) via 54dd223ddbd82c5a846c6cdf8372512f39c5658a (commit) via a34bf48e95e74e62b58e1a959c550ec210796fc7 (commit) via 3a4a1cd00493e6df57c6d04dd256c85df36f5e15 (commit) via 057cd711e007579f6ec8e33566ec1528da7f71c9 (commit) via 9bd682c83d9636b3a97d06e94ae2e94811da51ec (commit) via d7ccfaeb4b4d6211576953c569ecfc16a1712c92 (commit) via e9df0b5df91c17060de2d71d66fbaec585f7fa7e (commit) via 23607494a76710915a18d6950fd8000e4208c319 (commit) via 4d72a8acfb389eb9206c01cd645899c36e465c5c (commit) via 3243d462b669c03b8e21f84ed542a48fc282dd05 (commit) via 26bdd5db2249b0f585a680549e77acffba0bc191 (commit) via eef2ca5ca19f807f442d2650c199959a109206cf (commit) via a4c38b28019d1ebdf7878b3968fb5801a499bd59 (commit) via 6e6929cb64d47bea3352ff5ea4dff2701aa70242 (commit) via 88e8595bfdcb97a3f56ff8e80382b616a35acdf9 (commit) via 89b6141beaf5c956d960c8574c3e5c29039795f0 (commit) via bb302b667f66316788bfcd23c664eea147fa4b89 (commit) via 457eeee446ec8bacc19e44af58850abf678bf257 (commit) via cc5e106a518f17beec15e0a8a25269fdb409e3ef (commit) via 51e8f26171e0ea91793f20d73c280af17f7a0515 (commit) via 26e4fb48926180055435328d4f67d72d57d48ce0 (commit) via 65ff865ea8511ec980efc2de5cec60bf4e7a6ae4 (commit) via 3e7f7255a2c831f94015e6624fe788dd4137ca4f (commit) via fbbc85bad636ce65fbb7f93c601ec7ad3ea99389 (commit) via 54d17db6f9a0923e4d22848bac6bbb15d5f594f1 (commit) via 0a455fbadba64d2543fd2b6e4db587aa75742659 (commit) via f80adbadde1c393245886ba552e52db127c960f3 (commit) via 64e9019a85a8d0dc0e5fe2beed6abeb1da67dbed (commit) via 1d5318dc45855f473ad33e4bafa8bf2effb25ccb (commit) via 57cf4a5f772468936aff9ebb62e4e397989baf12 (commit) via 1d349d49a76c08f6a5186518fc6a988a1c2519c9 (commit) via 4a1ddb7af6265b14166560a5a8780cac38fe5714 (commit) via 86866f8195e3bf342978b7c2440f012ad9a85bc4 (commit) via 23d99e586244496a9997a0882e3905eda4524050 (commit) via add11f5965470355efd26795cb71bb32ad8b8fc0 (commit) via 72d61d7ad7cbec581e39e01789ccb101ba1ff458 (commit) via a096cf45b9b40cdf83bd7ce681ab65183a788fcf (commit) from b20f57ef041cd30a910ca69e23eda602f66bd20b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit dd29526f9cda7477ebfba97c4352c541ae33f3c0 Merge: b20f57ef041cd30a910ca69e23eda602f66bd20b 2160da1bc16af71a3a1ecc80da9f8ca9c2b9c2fb Author: Tom Tromey Date: Tue Aug 18 11:54:38 2009 -0600 Merged from master ----------------------------------------------------------------------- Summary of changes: ChangeLog | 4 + bfd/ChangeLog | 121 ++ bfd/coff-stgo32.c | 98 +- bfd/coffcode.h | 5 + bfd/configure | 18 +- bfd/configure.in | 18 +- bfd/elf-eh-frame.c | 8 + bfd/elf.c | 19 +- bfd/elf32-arm.c | 35 +- bfd/elf32-bfin.c | 661 +++++--- bfd/elf32-m32c.c | 31 +- bfd/elf32-ppc.c | 73 +- bfd/elflink.c | 8 + bfd/libcoff-in.h | 3 + bfd/libcoff.h | 3 + bfd/merge.c | 1 + bfd/opncls.c | 16 +- bfd/po/fi.po | 2025 ++++++++++++---------- bfd/version.h | 2 +- config.guess | 12 +- config.sub | 20 +- config/ChangeLog | 25 + config/lead-dot.m4 | 9 +- config/mh-cygwin | 3 + config/mh-ppc-aix | 13 +- config/tls.m4 | 18 + config/unwind_ipinfo.m4 | 8 +- config/warnings.m4 | 9 +- gdb/ChangeLog | 318 ++++ gdb/Makefile.in | 3 +- gdb/aix-thread.c | 3 +- gdb/amd64-linux-tdep.c | 1298 ++++++++++++++ gdb/amd64-tdep.c | 101 ++ gdb/arm-tdep.c | 2 +- gdb/bfd-target.c | 44 +- gdb/cli/cli-setshow.c | 3 +- gdb/dwarf2-frame.c | 5 +- gdb/dwarf2expr.c | 16 + gdb/dwarf2expr.h | 2 + gdb/dwarf2loc.c | 10 +- gdb/gdbarch.c | 6 +- gdb/gdbarch.sh | 6 +- gdb/i386-darwin-tdep.c | 146 ++- gdb/i386-linux-tdep.c | 26 +- gdb/i386-tdep.c | 1445 ++++++++------- gdb/i386-tdep.h | 35 + gdb/infrun.c | 3 +- gdb/language.c | 415 +++--- gdb/language.h | 9 - gdb/linespec.c | 7 +- gdb/linux-record.c | 2579 +++++++++++++++------------ gdb/linux-record.h | 5 +- gdb/objfiles.c | 78 +- gdb/python/python-frame.c | 3 +- gdb/python/python-type.c | 4 +- gdb/python/python-value.c | 3 +- gdb/record.c | 1 - gdb/remote.c | 272 ++-- gdb/solib-darwin.c | 30 +- gdb/solib.c | 2 +- gdb/symfile.c | 10 +- gdb/target.c | 30 +- gdb/testsuite/ChangeLog | 23 + gdb/testsuite/gdb.arch/altivec-abi.exp | 1 + gdb/testsuite/gdb.arch/altivec-regs.exp | 2 + gdb/testsuite/gdb.base/default.exp | 2 +- gdb/testsuite/gdb.base/help.exp | 3 +- gdb/testsuite/gdb.base/setshow.exp | 15 + gdb/testsuite/gdb.threads/killed.exp | 2 +- gdb/testsuite/gdb.threads/manythreads.exp | 2 +- gdb/testsuite/gdb.threads/staticthreads.exp | 2 +- gdb/top.c | 107 +- gdb/typeprint.c | 3 +- gdb/ui-file.c | 6 +- gdb/ui-file.h | 4 +- gdb/utils.c | 5 +- gdb/varobj.c | 3 +- gdb/version.in | 2 +- gdb/xtensa-tdep.c | 6 +- include/ChangeLog-9103 | 2 +- include/coff/ChangeLog | 15 + include/coff/go32exe.h | 6 +- include/coff/internal.h | 13 +- include/coff/ti.h | 16 +- include/elf/ChangeLog | 33 + include/elf/arm.h | 16 +- include/elf/bfin.h | 88 +- include/elf/common.h | 64 +- libdecnumber/ChangeLog | 7 + libdecnumber/decCommon.c | 2 + libdecnumber/decContext.c | 4 + libiberty/ChangeLog | 5 + libiberty/Makefile.in | 10 + sim/m32c/ChangeLog | 14 + sim/m32c/config.in | 15 + sim/m32c/configure | 155 ++ sim/m32c/configure.in | 2 + sim/m32c/main.c | 29 +- sim/m32c/mem.c | 16 + 99 files changed, 7188 insertions(+), 3698 deletions(-) First 500 lines of diff: diff --git a/ChangeLog b/ChangeLog index 64dc5aa..4ee1147 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-08-17 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + 2009-08-06 Michael Eager * configure.ac: Add Microblaze target. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e7d0e94..f9c4c6d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,124 @@ +2009-08-16 Doug Evans + + * opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec, + at least don't leak memory. + +2009-08-13 DJ Delorie + + * elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes + if needed. + +2009-08-12 Nick Clifton + + * po/fi.po: Updated Finnish translation. + +2009-08-11 Bernd Schmidt + + Merge some FRV FDPIC changes into the Blackfin code. + * elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to + summary reloc information. + (bfinfdpic_dynamic_got_plt_info): New. + (_bfin_create_got_section): Create the PLT section here. + (elf32_bfinfdpic_create_dynamic_sections): Not here. + (_bfinfdpic_count_nontls_entries): Move out of... + (_bfinfdpic_count_got_plt_entries): ... here. + (_bfinfdpic_count_relocs_fixups): Likewise. + (_bfinfdpic_reset_got_plt_entries): New. + (_bfinfdpic_size_got_plt): Move out of... + (elf32_bfinfdpic_size_dynamic_sections): ... here. + (bfinfdpic_relocate_section): Be careful not to call + _bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs. + (bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info): + New functions. + (elf_backend_discard_info): Define for FD-PIC. + +2009-08-11 Alan Modra + + * elflink.c: Add FIXMEs for some places that require octets_per_byte + adjustments. + * elf-eh-frame.c: Likewise. + * merge.c: Likewise. + +2009-08-11 Alan Modra + + * configure.in: Remove elf-ifunc.lo from common ELF files. Add + to x86 and x86_64 configurations. + * configure: Regenerate. + +2009-08-10 Jan Kratochvil + + Stop using bfd_usrdata in libbfd. + * coff-stgo32.c (bfd_coff_go32stub): Remove. + (stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE. + (adjust_filehdr_in_post): Declare the abfd parameter as unused. + Replace STUBSIZE by GO32_STUBSIZE. Save now the stub in + filehdr_dst->u.go32.stub. New comment with the reason. + (adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE. + Substitute the removed macro bfd_coff_go32stub. + (adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre) + (adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre) + (adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE. + (create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data): + Replace STUBSIZE by GO32_STUBSIZE. Substitute the removed macro + bfd_coff_go32stub. + * coffcode.h (coff_mkobject_hook): Initialize coff->go32stub. + * libcoff-in.h (coff_data_type): New field go32stub. + * libcoff.h: Regenerated. + +2009-08-10 Jan Kratochvil + + Fix go32 stub preservation by objcopy. + * coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc. + (go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD + go32stub. + +2009-08-10 Nathan Sidwell + + * elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local + symbols. + (elf32_arm_final_link_relocate): Treat local undefined symbols the + same as global undefined symbols. + (elf32_arm_relocate_section): Give an error for local undefined + non-weak symbols, unless the reloc will not use the symbol. + +2009-08-10 Nathan Sidwell + + * elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11. + (ppc_elf_relax_section): Use symbol index to distinguish + relocatable stubs. + +2009-08-10 Alan Modra + + * elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections. + +2009-08-10 Alan Modra + + * elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt + info for STT_GNU_IFUNC. + * elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry + on got refs in case the symbol turns out to be ifunc. + (ppc_elf_gc_sweep_hook): Similarly. + (ppc_elf_adjust_dynamic_symbol): Adjust assertion. + (allocate_dynrelocs): Don't specially allocate got relocs for ifunc. + (ppc_elf_size_dynamic_sections): Likewise. + (ppc_elf_relocate_section): Likewise. + +2009-08-09 Bernd Schmidt + + From Mike Frysinger + * elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs, + bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook, + _bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section, + bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs, + bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs): + Adjust to match the renamed reloc definitions. + +2009-08-08 Alan Modra + + PR 10494 + * elf.c (_bfd_elf_make_section_from_shdr): When setting up section + LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers. + 2009-08-07 Tom Tromey * elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict diff --git a/bfd/coff-stgo32.c b/bfd/coff-stgo32.c index b8928be..9b43cb6 100644 --- a/bfd/coff-stgo32.c +++ b/bfd/coff-stgo32.c @@ -102,9 +102,6 @@ static bfd_boolean #include "coff-i386.c" -/* I hold in the usrdata the stub. */ -#define bfd_coff_go32stub bfd_usrdata - /* This macro is used, because I cannot assume the endianess of the host system. */ #define _H(index) (H_GET_16 (abfd, (header+index*2))) @@ -112,7 +109,7 @@ static bfd_boolean /* These bytes are a 2048-byte DOS executable, which loads the COFF image into memory and then runs it. It is called 'stub'. */ -static const unsigned char stub_bytes[STUBSIZE] = +static const unsigned char stub_bytes[GO32_STUBSIZE] = { #include "go32stub.h" }; @@ -120,7 +117,7 @@ static const unsigned char stub_bytes[STUBSIZE] = /* I have not commented each swap function below, because the technique is in any function the same. For the ...in function, - all the pointers are adjusted by adding STUBSIZE and for the + all the pointers are adjusted by adding GO32_STUBSIZE and for the ...out function, it is subtracted first and after calling the standard swap function it is reset to the old value. */ @@ -132,25 +129,20 @@ static const unsigned char stub_bytes[STUBSIZE] = static void adjust_filehdr_in_post (abfd, src, dst) - bfd *abfd; + bfd *abfd ATTRIBUTE_UNUSED; PTR src; PTR dst; { FILHDR *filehdr_src = (FILHDR *) src; struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst; - ADJUST_VAL (filehdr_dst->f_symptr, STUBSIZE); + ADJUST_VAL (filehdr_dst->f_symptr, GO32_STUBSIZE); - /* Save now the stub to be used later. */ - bfd_coff_go32stub (abfd) = (PTR) bfd_alloc (abfd, (bfd_size_type) STUBSIZE); - - /* Since this function returns no status, I do not set here - any bfd_error_... - That means, before the use of bfd_coff_go32stub (), this value - should be checked if it is != NULL. */ - if (bfd_coff_go32stub (abfd) == NULL) - return; - memcpy (bfd_coff_go32stub (abfd), filehdr_src->stub, STUBSIZE); + /* Save now the stub to be used later. Put the stub data to FILEHDR_DST + first as coff_data (abfd) still does not exist. It may not even be ever + created as we are just checking the file format of ABFD. */ + memcpy (filehdr_dst->go32stub, filehdr_src->stub, GO32_STUBSIZE); + filehdr_dst->f_flags |= F_GO32STUB; } static void @@ -166,13 +158,13 @@ adjust_filehdr_out_pre (abfd, in, out) create_go32_stub (abfd); /* Copy the stub to the file header. */ - if (bfd_coff_go32stub (abfd) != NULL) - memcpy (filehdr_out->stub, bfd_coff_go32stub (abfd), STUBSIZE); + if (coff_data (abfd)->go32stub != NULL) + memcpy (filehdr_out->stub, coff_data (abfd)->go32stub, GO32_STUBSIZE); else /* Use the default. */ - memcpy (filehdr_out->stub, stub_bytes, STUBSIZE); + memcpy (filehdr_out->stub, stub_bytes, GO32_STUBSIZE); - ADJUST_VAL (filehdr_in->f_symptr, -STUBSIZE); + ADJUST_VAL (filehdr_in->f_symptr, -GO32_STUBSIZE); } static void @@ -183,7 +175,7 @@ adjust_filehdr_out_post (abfd, in, out) { struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in; /* Undo the above change. */ - ADJUST_VAL (filehdr_in->f_symptr, STUBSIZE); + ADJUST_VAL (filehdr_in->f_symptr, GO32_STUBSIZE); } static void @@ -194,9 +186,9 @@ adjust_scnhdr_in_post (abfd, ext, in) { struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in; - ADJUST_VAL (scnhdr_int->s_scnptr, STUBSIZE); - ADJUST_VAL (scnhdr_int->s_relptr, STUBSIZE); - ADJUST_VAL (scnhdr_int->s_lnnoptr, STUBSIZE); + ADJUST_VAL (scnhdr_int->s_scnptr, GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_relptr, GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_lnnoptr, GO32_STUBSIZE); } static void @@ -207,9 +199,9 @@ adjust_scnhdr_out_pre (abfd, in, out) { struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in; - ADJUST_VAL (scnhdr_int->s_scnptr, -STUBSIZE); - ADJUST_VAL (scnhdr_int->s_relptr, -STUBSIZE); - ADJUST_VAL (scnhdr_int->s_lnnoptr, -STUBSIZE); + ADJUST_VAL (scnhdr_int->s_scnptr, -GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_relptr, -GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_lnnoptr, -GO32_STUBSIZE); } static void @@ -220,9 +212,9 @@ adjust_scnhdr_out_post (abfd, in, out) { struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in; - ADJUST_VAL (scnhdr_int->s_scnptr, STUBSIZE); - ADJUST_VAL (scnhdr_int->s_relptr, STUBSIZE); - ADJUST_VAL (scnhdr_int->s_lnnoptr, STUBSIZE); + ADJUST_VAL (scnhdr_int->s_scnptr, GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_relptr, GO32_STUBSIZE); + ADJUST_VAL (scnhdr_int->s_lnnoptr, GO32_STUBSIZE); } static void @@ -239,7 +231,7 @@ adjust_aux_in_post (abfd, ext1, type, class, indx, numaux, in1) if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class)) { - ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, STUBSIZE); + ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE); } } @@ -257,7 +249,7 @@ adjust_aux_out_pre (abfd, inp, type, class, indx, numaux, extp) if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class)) { - ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, -STUBSIZE); + ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, -GO32_STUBSIZE); } } @@ -275,7 +267,7 @@ adjust_aux_out_post (abfd, inp, type, class, indx, numaux, extp) if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class)) { - ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, STUBSIZE); + ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE); } } @@ -296,7 +288,7 @@ create_go32_stub (abfd) bfd *abfd; { /* Do it only once. */ - if (bfd_coff_go32stub (abfd) == NULL) + if (coff_data (abfd)->go32stub == NULL) { char *stub; struct stat st; @@ -362,32 +354,31 @@ create_go32_stub (abfd) goto stub_end; } /* Now we found a correct stub (hopefully). */ - bfd_coff_go32stub (abfd) - = (PTR) bfd_alloc (abfd, (bfd_size_type) coff_start); - if (bfd_coff_go32stub (abfd) == NULL) + coff_data (abfd)->go32stub = bfd_alloc (abfd, (bfd_size_type) coff_start); + if (coff_data (abfd)->go32stub == NULL) { close (f); return; } lseek (f, 0L, SEEK_SET); - if ((unsigned long) read (f, bfd_coff_go32stub (abfd), coff_start) + if ((unsigned long) read (f, coff_data (abfd)->go32stub, coff_start) != coff_start) { - bfd_release (abfd, bfd_coff_go32stub (abfd)); - bfd_coff_go32stub (abfd) = NULL; + bfd_release (abfd, coff_data (abfd)->go32stub); + coff_data (abfd)->go32stub = NULL; } close (f); } stub_end: /* There was something wrong above, so use now the standard builtin stub. */ - if (bfd_coff_go32stub (abfd) == NULL) + if (coff_data (abfd)->go32stub == NULL) { - bfd_coff_go32stub (abfd) - = (PTR) bfd_alloc (abfd, (bfd_size_type) STUBSIZE); - if (bfd_coff_go32stub (abfd) == NULL) + coff_data (abfd)->go32stub + = bfd_alloc (abfd, (bfd_size_type) GO32_STUBSIZE); + if (coff_data (abfd)->go32stub == NULL) return; - memcpy (bfd_coff_go32stub (abfd), stub_bytes, STUBSIZE); + memcpy (coff_data (abfd)->go32stub, stub_bytes, GO32_STUBSIZE); } } @@ -403,13 +394,20 @@ go32_stubbed_coff_bfd_copy_private_bfd_data (ibfd, obfd) if (ibfd->xvec != obfd->xvec) return TRUE; - /* Check if both have a valid stub. */ - if (bfd_coff_go32stub (ibfd) == NULL - || bfd_coff_go32stub (obfd) == NULL) + /* Check if we have a source stub. */ + if (coff_data (ibfd)->go32stub == NULL) return TRUE; + /* As adjust_filehdr_out_pre may get called only after this function, + optionally allocate the output stub. */ + if (coff_data (obfd)->go32stub == NULL) + coff_data (obfd)->go32stub = bfd_alloc (obfd, + (bfd_size_type) GO32_STUBSIZE); + /* Now copy the stub. */ - memcpy (bfd_coff_go32stub (obfd), bfd_coff_go32stub (ibfd), STUBSIZE); + if (coff_data (obfd)->go32stub != NULL) + memcpy (coff_data (obfd)->go32stub, coff_data (ibfd)->go32stub, + GO32_STUBSIZE); return TRUE; } diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 4b748b4..1cc860a 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1992,6 +1992,11 @@ coff_mkobject_hook (bfd * abfd, abfd->flags |= HAS_DEBUG; #endif + if ((internal_f->f_flags & F_GO32STUB) != 0) + coff->go32stub = (char *) bfd_alloc (abfd, (bfd_size_type) GO32_STUBSIZE); + if (coff->go32stub != NULL) + memcpy (coff->go32stub, internal_f->go32stub, GO32_STUBSIZE); + return coff; } #endif diff --git a/bfd/configure b/bfd/configure index 9871cbe..c6dbb9c 100755 --- a/bfd/configure +++ b/bfd/configure @@ -21146,7 +21146,7 @@ selarchs="$f" # Target backend .o files. tb= -elf="elf.lo elflink.lo elf-attrs.lo elf-ifunc.lo elf-strtab.lo +elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo" for vec in $selvecs @@ -21211,10 +21211,10 @@ do bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; bfd_elf32_i386_dragonfly_vec) - tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; + tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; @@ -21322,10 +21322,10 @@ do bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_tradbigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; - bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; bfd_mmo_vec) tb="$tb mmo.lo" target_size=64 ;; bfd_powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;; bfd_powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;; diff --git a/bfd/configure.in b/bfd/configure.in index 7396f19..0a8d486 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -650,7 +650,7 @@ selarchs="$f" # Target backend .o files. tb= -elf="elf.lo elflink.lo elf-attrs.lo elf-ifunc.lo elf-strtab.lo +elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-eh-frame.lo dwarf1.lo" for vec in $selvecs @@ -715,10 +715,10 @@ do bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;; bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;; bfd_elf32_i386_dragonfly_vec) - tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; - bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-vxworks.lo elf32.lo $elf" ;; + tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_freebsd_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_vxworks_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; + bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;; bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;; bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;; @@ -826,10 +826,10 @@ do bfd_elf64_sparc_freebsd_vec) tb="$tb elf64-sparc.lo elfxx-sparc.lo elf-vxworks.lo elf64.lo $elf"; target_size=64 ;; bfd_elf64_tradbigmips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf64_tradlittlemips_vec) tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; - bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; - bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_l1om_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; + bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;; bfd_mmo_vec) tb="$tb mmo.lo" target_size=64 ;; bfd_powerpc_pe_vec) tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;; bfd_powerpc_pei_vec) tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;; diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c index 2dbe63f..17c01b2 100644 --- a/bfd/elf-eh-frame.c +++ b/bfd/elf-eh-frame.c @@ -537,18 +537,21 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info, local_cies = bfd_zmalloc (num_cies * sizeof (*local_cies)); REQUIRE (local_cies); + /* FIXME: octets_per_byte. */ #define ENSURE_NO_RELOCS(buf) \ REQUIRE (!(cookie->rel < cookie->relend \ && (cookie->rel->r_offset \ < (bfd_size_type) ((buf) - ehbuf)) \ && cookie->rel->r_info != 0)) + /* FIXME: octets_per_byte. */ #define SKIP_RELOCS(buf) \ while (cookie->rel < cookie->relend \ && (cookie->rel->r_offset \ < (bfd_size_type) ((buf) - ehbuf))) \ cookie->rel++ hooks/post-receive -- Repository for Project Archer.