From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11329 invoked by alias); 18 Aug 2015 20:50:38 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 11302 invoked by uid 9674); 18 Aug 2015 20:50:37 -0000 Date: Tue, 18 Aug 2015 20:50:00 -0000 Message-ID: <20150818205037.11177.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] jankratochvil/gdbserverbuildid: mainbuildid X-Git-Refname: refs/heads/jankratochvil/gdbserverbuildid X-Git-Reftype: branch X-Git-Oldrev: a4faa57625e8354219ccc5c0c22ed64d30990a9c X-Git-Newrev: 295a8e9aac03bc1d9e4171d390547dfe36f091b1 X-SW-Source: 2015-q3/txt/msg00035.txt.bz2 List-Id: The branch, jankratochvil/gdbserverbuildid has been updated discards a4faa57625e8354219ccc5c0c22ed64d30990a9c (commit) discards e409aea34676677025d83d1b0ca5153b1ddc1b00 (commit) discards ef91dfde292089e454f63342bf4cc6b5fc51b048 (commit) discards b65862108ecb81b2f5bdd4b7325ca7cea8fba2da (commit) discards c042c3a5c6209625cad0a2671d4a146b6f942e32 (commit) discards 3d1add591c515f8f5bdbc0e9cf0d60d0ca4e0810 (commit) discards e7b2efaeddb23cb53b3fb0e60a58f14d5bd547da (commit) discards 463b80107127bbceee4b146197d576a315594869 (commit) discards 3ec45cbb78911212f77a261f7e62d49144b1d7ac (commit) discards 249f0191c52a135cbfc7721d0cdc8f783a965603 (commit) discards 944f86c952083e8f022921226a18ff34d7f08f1a (commit) discards 233fa00f011d0b2dedaa6680431f454f15d74741 (commit) discards d0bd1ea6bc0dd7b4b0cd6c8a140066b08b019141 (commit) discards d8d61243c6a097dddf7b7224c4fe488dbe0b41a5 (commit) discards f1661fce9fefd5e3190a75520fbb7f22a0b104dc (commit) discards d2b3d4db62cb5466a997ad9a278e5e8884c64838 (commit) discards 2020b631c3e55c8bff0162e6403748af93021451 (commit) discards 8b8251d655e27031fe477776f346a3f4ab2ba4ab (commit) discards 740940f25b9788f8e96881cc53dde8566c9861bf (commit) discards 689d3b1eab59efe92fc7fef265df74cdec16ea41 (commit) discards cee275608439f3e18a6b35132dca4a520b86b635 (commit) discards 174fa76532b7de4ab71abb8265caacc3f494fb1d (commit) discards 765f034443db1384d1896ae154817187a281bec9 (commit) discards f445c8ebbca61b6be9a9c39d7c6b83803bc788c6 (commit) discards aada6c38c98e1d611550d3ea09f79c271336c8f1 (commit) discards 6ef1a4beb8acba2f1b796cb76878a02830b01dba (commit) discards 95d808aa74c22213702c684daec079a23c50431a (commit) discards 148c1b780165bb005eb0589b759d94c3298b489a (commit) discards 199878b64f2627b21199d5f934405e7fb3c70d57 (commit) discards 0901913cf7b0dad6ddf01241b20af881eb7a43f2 (commit) discards 47498547bc0aa3debec59ad458a18a5612bc9604 (commit) discards 89fa75c615cbd3ebb1e3c804ba7f51d2682d5ca6 (commit) discards 6d7d4da8f7097b4dd84029ed20ca9272622a64f2 (commit) discards cfeca82d7f630591c93f1a47b84742294aa84a57 (commit) via 295a8e9aac03bc1d9e4171d390547dfe36f091b1 (commit) via 62ef4dab59b9919fa01adc1f47b31a87b24d9679 (commit) via 0135e550ce15ed1b3796c16b1a77b09410395681 (commit) via fef4666f6b3f3ffbd9c2e85f2990514772a84895 (commit) via 985601646481aefd6304f398be8b03545c877559 (commit) via 1eb21b54e9572702cb377dd2c401242d03c541f3 (commit) via 749f69903be8e96e0d0362408eb9f5dbb4c681fb (commit) via 170204351e1aff6160e08ca6e3d420cd901ef9c3 (commit) via b74795165b852e4427d14968b77a668262b2b61b (commit) via 3865249c28d15498ad90589719c5ce0e0582de25 (commit) via 40d06717b5315f7770f4e3dd763cf55897578ecf (commit) via ea0ea3b46c08a5922a8cfdbf784d3669a42ad4c9 (commit) via 902f3ad6b7b42c21d891a220be74c783366907de (commit) via c976bc3030cad2ff2b9135c3e63982a9446c04a3 (commit) via de12313d1abfe8467a42df3ea4cea698f2c566b8 (commit) via a4e19f0c9c7087922910fb56d8a709a4a99bc86b (commit) via 4b60037e3600142aa6e3d0dbceccc6432b51694b (commit) via 015dc972aa3cd7c7d71bcb368bf8af110e0efe7b (commit) via 6c4892292153b82202d598a5c75f4d7f333737ac (commit) via 69d58245ab0758763c4c14da6fb09d4ea93754e3 (commit) via 0cb6c2225a22f28f09c821934dc32911ce868034 (commit) via d9cbc96668c5af6ba19f937e80635e7d80d2dccc (commit) via 548608ab3b42c9376055224ccd5ecd6fc7bdc52c (commit) via 7cd5067be92346752ad6dde93a938d596582484a (commit) via fee553fc5696a90209ffc0f1b2a4e3fe0cf7b162 (commit) via 758d882951dd2084b80a7ab0ab249eebd447c87c (commit) via 675af07c3197652f1d6cfe1ae16c299f8e12c44a (commit) via 28bea9dcc9f5d5c3aae0a83a11a7f75d7abc31b3 (commit) via 0b1ba7f7810a813a5ecd883b4d31c87a09a7ecdd (commit) via fdbe940d41ab5212b13c0e2c9de2210290bd0f39 (commit) via 07980d2eb445547f2c40bddbba0593c631f4b4cc (commit) via d24163121891e5c67c2837c266831c5ca99328ee (commit) via fa5a5a47b32c04b28dc134c9443c3d0d13b93f7b (commit) via 6ebf8fd4c922433ab739998eb8696f3b705d3689 (commit) via 4e1626f5a8d73573d6cf593fabe5bc80f7b3e04e (commit) via 26d56a939e9e54e09d46ea6e9678463ac344fa33 (commit) via cae1fbbb7e3d770702a0d7a5027b46835e6adc13 (commit) via 2b4bf6afd4506165007c0e76bc7c4381031cfaf6 (commit) via 44b4145b723b43b175d4378c77bd79faaaa80312 (commit) via 566f5e3b385a99c09b5babc9f90dae93e052d52c (commit) via 18989b3c5642e2ba533e02737797dcf06134229b (commit) via c04fe68f6b94815d3f49c9aed64b2c388d45f4aa (commit) via 0e1862bb401f47716446aef143b2bf7a4563f541 (commit) via b2a33439909493f5bf93ada871bd588f365d61f4 (commit) via fe875424a05df7c4055cd9382ab76f65e952c4dd (commit) via 43417696fe32416607940258ded622c121872515 (commit) via f6721e4955d86bf879b5225f2d128a5a8ddfcae8 (commit) via 71b57e37fe94bbc17f57f8f9ca5e9c5400cedd6b (commit) via 7f3706ebfeb44e6b1f39f95fe44b7099a91c32c9 (commit) via ad89c2aa677c28c76ffd5a35e2b36eece4d82597 (commit) via 2309f875707215e9b6dfbd9af866f6ead3ccaff5 (commit) via 919b75f7e28942fe320dc533759f88131f160bf3 (commit) via 26a4b92c9131ab952f3db9bcafa82fb2360d19b6 (commit) via db2ed2e0b910376fd2bf4c2bc5d626315c4269c6 (commit) via 1762568fd6bd84f1b1a488375cf320a1efa06b22 (commit) via a40f728f5cb20a41cfff68ef523a0025bbc6f402 (commit) via 8763cedeec7f0a1daea41c2231bda165652e273b (commit) via 51cdc99310171d6c53d2d00103a0ce34374d0b9b (commit) via 95cf586902b681310e63ee06d89ba2498d1d5dcf (commit) via e3ae3c4345fa14f2f3b0b2c5d4d23760af9f74f5 (commit) from a4faa57625e8354219ccc5c0c22ed64d30990a9c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 295a8e9aac03bc1d9e4171d390547dfe36f091b1 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 mainbuildid commit 62ef4dab59b9919fa01adc1f47b31a87b24d9679 Author: Jan Kratochvil Date: Sun Aug 16 22:11:19 2015 +0200 sticky Message-ID: <559A7C37.6020501@redhat.com> On 07/03/2015 04:44 PM, Pedro Alves wrote: > (I still suspect that if we reverse the sense of the flag, then > its management ends up being more centralized, as then the > place that sets it is also the place that needs to check it, > instead of doing that in multiple places. But, see below.) It didn't seem fair to impose a subjective preference, so I tried this in order to understand it myself, and I now agree that is really doesn't make much difference, as then we'd have to mark auto-discovered in a few more places that I wasn't originally seeing. There's at least the execd handling in infrun.c, and also spu_symbol_file_add_from_memory. As I was playing with this already, I poked at the other review points I made, and came up with the variant of the patch below. > This function is called while the passed in PID is not the > current inferior. E.g., the remote_add_inferior path. > > Therefore seems to me that these symbol_file_add_main / exec_file_attach > calls can change the symbols of the wrong inferior. ... > I also notice that reread_symbols has an exec_file_attach > call which seems to me results in losing the is_user_supplied > flag if the executable's timestamp changed, at least here: > >> + /* Attempt to open the file that was executed to create this >> + inferior. If the user has explicitly specified executable >> + and/or symbol files then warn the user if their choices do >> + not match. Otherwise, set exec_file and symfile_objfile to >> + the new file. */ >> + exec_file_locate_attach (ptid_get_pid (inferior_ptid), from_tty); >> + >> + if (exec_file_is_user_supplied) >> { >> reopen_exec_file (); >> reread_symbols (); > > > I also notice that the clone-inferior command ends up with > an exec_file_attach call in clone_program_space. That one > should probably be setting the is_user_supplied flag too, > I'd think. Or at least, copying it from the original. > > At this point, I'm wondering about adding a parameter to > exec_file_attach to force considering (now and in future) > the right value to put in the flag in each case. I tried this too (see patch below). As this requires touching the user-supplied paths anyway, it didn't really matter to tag files user-supplied or auto-discovered, so I reverted back to user-supplied. For symbols, we already have the add_flags, so I added SYMFILE_USER_SUPPLIED instead of a new boolean. > >> @@ -2490,11 +2490,14 @@ attach_command_post_wait (char *args, int from_tty, int async_exec) >> inferior = current_inferior (); >> inferior->control.stop_soon = NO_STOP_QUIETLY; >> >> - /* If no exec file is yet known, try to determine it from the >> - process itself. */ >> - if (get_exec_file (0) == NULL) >> - exec_file_locate_attach (ptid_get_pid (inferior_ptid), from_tty); >> - else >> + /* Attempt to open the file that was executed to create this >> + inferior. If the user has explicitly specified executable >> + and/or symbol files then warn the user if their choices do >> + not match. Otherwise, set exec_file and symfile_objfile to >> + the new file. */ >> + exec_file_locate_attach (ptid_get_pid (inferior_ptid), from_tty); >> + >> + if (exec_file_is_user_supplied) >> { >> reopen_exec_file (); >> reread_symbols (); > > It seems to me that we should be able to move these reopen/reread > calls inside exec_file_locate_attach. I did this too. What do you think of the version below? I also tweaked the warnings a bit, to explicitly say "mismatch". This would still need docs/NEWS changes, and a test would be good too. commit 0135e550ce15ed1b3796c16b1a77b09410395681 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 hexallocate commit fef4666f6b3f3ffbd9c2e85f2990514772a84895 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 locatetest commit 985601646481aefd6304f398be8b03545c877559 Author: Jan Kratochvil Date: Thu Aug 13 16:17:19 2015 +0200 Tests for validate symbol file using build-id New testcase. gdb/testsuite/ChangeLog 2015-07-15 Aleksandar Ristovski Date: Thu Aug 13 16:17:18 2015 +0200 buildidwarn commit 749f69903be8e96e0d0362408eb9f5dbb4c681fb Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidsolibbfdopen commit 170204351e1aff6160e08ca6e3d420cd901ef9c3 Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidverify commit b74795165b852e4427d14968b77a668262b2b61b Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidsolibsearch commit 3865249c28d15498ad90589719c5ce0e0582de25 Author: Jan Kratochvil Date: Thu Aug 13 16:17:18 2015 +0200 buildidtofile commit 40d06717b5315f7770f4e3dd763cf55897578ecf Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidproto commit ea0ea3b46c08a5922a8cfdbf784d3669a42ad4c9 Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidtobfd commit 902f3ad6b7b42c21d891a220be74c783366907de Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidforcemove commit c976bc3030cad2ff2b9135c3e63982a9446c04a3 Author: Jan Kratochvil Date: Thu Aug 13 16:17:17 2015 +0200 buildidfreefix commit de12313d1abfe8467a42df3ea4cea698f2c566b8 Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 openpsymfile commit a4e19f0c9c7087922910fb56d8a709a4a99bc86b Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 openpsolib commit 4b60037e3600142aa6e3d0dbceccc6432b51694b Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 Make openp() to use file_location Hi, openp() remains as a backward compatibility wrapper. Jan commit 015dc972aa3cd7c7d71bcb368bf8af110e0efe7b Author: Jan Kratochvil Date: Thu Aug 13 16:17:16 2015 +0200 Add file_location utility functions Hi, build id verification faces a problem current codebase calls openp() and similar functions which search many directories and after they find the file they return its filename. Caller then typically opens that file as BFD. But to search the directories openp() needs to open each file it iterates to verify their build-id. Then it would close the file and caller would reopen it again. This is inefficient (+racy), so a new intermediate representation of the found files is created (file_location). Another possibility would be to depends on bfd cache as being done in exec_file_attach. But then a similar problem is needed for callers which want only fd (and not bfd). Besides that I find depending on pending make_cleanup_bfd_unref() from openp() calls would be tricky. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * defs.h (enum openp_flags): Add OPF_IS_BFD. * gdb_bfd.c (fileio_errno_to_host): Make it public. * gdb_bfd.h (fileio_errno_to_host): Add prototype. * source.c: Include inferior.h and gdb/fileio.h. (file_location_enoent, file_location_free, file_location_cleanup) (file_location_is_valid, file_location_from_filename) (file_location_to_bfd, filename_to_bfd): New functions. * source.h (struct file_location): New definition. (file_location_enoent, file_location_free, file_location_is_valid) (file_location file_location_from_filename, file_location_to_bfd) (filename_to_bfd): New prototypes. commit 6c4892292153b82202d598a5c75f4d7f333737ac Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 gdb_bfd_open_from_target: Optionally do not close fd Hi, gdb_bfd_open_from_target currently always embedded passed fd into returned BFD and closed that fd after closing that BFD. As one cannot do dup() for target fileio FDs one could not use FD after BFD using it has been closed. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * gdb_bfd.c (gdb_bfd_iovec_fileio_close_nop): New function. (gdb_bfd_open_from_target): Add parameter do_close. Optionally pass gdb_bfd_iovec_fileio_close_nop. (gdb_bfd_open): Update caller. * gdb_bfd.h (gdb_bfd_open_from_target): Update prototype. commit 69d58245ab0758763c4c14da6fb09d4ea93754e3 Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 gdb_bfd_open_from_target: Support real fd Hi, gdb_bfd_open_from_target is extended so that it can be now passed also some non-(-1) fd. non-(-1) fd was not supported for remote files in mainline. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * gdb_bfd.c (gdb_bfd_iovec_fileio_open_fd): New function. (gdb_bfd_open_from_target): Conditionally use it. commit 0cb6c2225a22f28f09c821934dc32911ce868034 Author: Jan Kratochvil Date: Thu Aug 13 16:17:15 2015 +0200 Provide new gdb_bfd_open_from_target Hi, later code needs to call the gdb_bfd_openr_iovec part of gdb_bfd_open with more special parameters. So it is refactored out first (and extended later in the next patches). Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * gdb_bfd.c (gdb_bfd_open_from_target): New function from ... (gdb_bfd_open): ... here. Call it. * gdb_bfd.h (gdb_bfd_open_from_target): New prototype. commit d9cbc96668c5af6ba19f937e80635e7d80d2dccc Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 Code cleanup: openp parameter filename_opened is never NULL Hi, this parameter is never passed as NULL in the codebase so the check can be removed. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * source.c (openp): Update function comment for filename_opened. Remove NULL check for filename_opened. commit 548608ab3b42c9376055224ccd5ecd6fc7bdc52c Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 Code cleanup: Remove openp parameter mode Hi, simplify the code, make it also suitable for more code refactorings. The new flag OPF_OPEN_RW_TMP is removed later in this patch series. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * cli/cli-cmds.c (find_and_open_script): Update openp caller. * defs.h (enum openp_flags): Add OPF_OPEN_RW_TMP. (openp): Remove parameter mode. * dwarf2read.c (try_open_dwop_file): Update openp caller. * exec.c (exec_file_attach): Likewise. * nto-tdep.c (nto_find_and_open_solib): Remove parameter o_flags, update openp caller. * nto-tdep.h (nto_find_and_open_solib): Remove parameter o_flags. * solib.c (solib_find_2): Update openp and find_and_open_solib caller. * solist.h (struct target_so_ops): Remove parameter o_flags from find_and_open_solib method. * source.c (openp): Change parameter mode to a new variable. (source_full_path_of, find_and_open_source): Update openp caller. * symfile.c (symfile_bfd_open): Likewise. commit 7cd5067be92346752ad6dde93a938d596582484a Author: Jan Kratochvil Date: Thu Aug 13 16:17:14 2015 +0200 Code cleanup: Remove OPF_RETURN_REALPATH Hi, OPF_RETURN_REALPATH is used only at the end of openp() to convert the returned values. That is not useful, code can be simplified if callers that passed OPF_RETURN_REALPATH adjust the returned values on their own. Or at least it helps further refactorizations. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * cli/cli-cmds.c (find_and_open_script): Remove OPF_RETURN_REALPATH. Call gdb_realpath_and_xfree. * defs.h (enum openp_flags): Add OPF_NONE, remove OPF_RETURN_REALPATH. * dwarf2read.c (try_open_dwop_file): Remove OPF_RETURN_REALPATH. Call gdb_realpath_and_xfree. * nto-tdep.c (nto_find_and_open_solib): Remove OPF_RETURN_REALPATH. Call gdb_realpath_and_xfree and xstrdup. * solib.c (solib_find_2): New variable temp_pathname_is_realpath. Remove OPF_RETURN_REALPATH. Conditionally call gdb_realpath_and_xfree. * source.c (openp): Remove OPF_RETURN_REALPATH processing. (source_full_path_of, find_and_open_source): Remove OPF_RETURN_REALPATH. Call gdb_realpath_and_xfree. * symfile.c (symfile_bfd_open): Likewise. * utils.c (gdb_realpath_and_xfree): New function. * utils.h (gdb_realpath_and_xfree): New prototype. commit fee553fc5696a90209ffc0f1b2a4e3fe0cf7b162 Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 Code cleanup: Add enum for openp_flags Hi, it is for many reasons better, in C++ it could be even type safe. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * cli/cli-cmds.c (find_and_open_script): Use enum openp_flags for search_flags. * defs.h (OPF_TRY_CWD_FIRST, OPF_SEARCH_IN_PATH, OPF_RETURN_REALPATH): Wrap them to a new ... (enum openp_flags): ... enum. (openp): Update prototype. * dwarf2read.c (try_open_dwop_file): Use enum openp_flags for flags. * source.c (openp): Update opts parameter type. commit 758d882951dd2084b80a7ab0ab249eebd447c87c Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 Change sysroot to ":target:" Hi, that is try "" first and "target:" second. Various performance problems should be fixed by trying to look up the remote file first on local filesystem. Thanks to build-ids it is quick and safe to verify both files are the same build. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * NEWS (Changes since GDB 7.10): Mention sysroot. * main.c (captured_main): Initialize new gdb_sysroot. gdb/testsuite/ChangeLog * gdb.base/attach.exp (do_attach_tests): Update sysroot parsing. * gdb.base/break-probes.exp: Likewise. commit 675af07c3197652f1d6cfe1ae16c299f8e12c44a Author: Jan Kratochvil Date: Thu Aug 13 16:17:13 2015 +0200 Permit multiple sysroot directories Hi, the goal is to have both "" and "target:" as the default gdb_sysroot, in this order. Therefore permit multiple directory components of gdb_sysroot. Jan gdb/ChangeLog 2015-08-18 Jan Kratochvil * NEWS (Changes since GDB 7.10): Mention set sysroot and show sysroot. * solib.c: Include source.h. (solib_find_1): Rename to ... (solib_find_2): ... here and change the sysroot variable to parameter. (solib_find_1): Call it using dirnames_to_char_ptr_vec_target_exc. * source.c (dirnames_to_char_ptr_vec_target_exc): New function. * source.h (dirnames_to_char_ptr_vec_target_exc): New declaration. gdb/doc/ChangeLog 2015-08-18 Jan Kratochvil * gdb.texinfo (Files): Permit set sysroot and show sysroot to have multiple components. commit 28bea9dcc9f5d5c3aae0a83a11a7f75d7abc31b3 Author: Jan Kratochvil Date: Tue Aug 18 19:44:27 2015 +0200 Code cleanup: Make solib_find_1 variable const Hi, it gets used in the next patch. Jan 2015-08-18 Jan Kratochvil * solib.c (solib_find_1): Make sysroot variable const. commit 0b1ba7f7810a813a5ecd883b4d31c87a09a7ecdd Author: Jan Kratochvil Date: Tue Aug 18 19:44:27 2015 +0200 Validate symbol file using build-id Consumer part of the "build-id" attribute. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Validate symbol file using build-id. * NEWS (Changes since GDB 7.10): Add 'set validate-build-id' and 'show validate-build-id'. Add build-id attribute. * solib-darwin.c (_initialize_darwin_solib): Assign validate value. * solib-dsbt.c (_initialize_dsbt_solib): Ditto. * solib-frv.c (_initialize_frv_solib): Ditto. * solib-spu.c (set_spu_solib_ops): Ditto. * solib-svr4.c: Include rsp-low.h. (NOTE_GNU_BUILD_ID_NAME): New define. (svr4_validate): New function. (svr4_copy_library_list): Duplicate field build_id. (library_list_start_library): Parse 'build-id' attribute. (svr4_library_attributes): Add 'build-id' attribute. (_initialize_svr4_solib): Assign validate value. * solib-target.c (solib.h): Include. (_initialize_solib_target): Assign validate value. * solib.c (validate_build_id, show_validate_build_id): New. (solib_map_sections): Use ops->validate. (clear_so): Free build_id. (default_solib_validate): New function. (_initialize_solib): Add "validate-build-id". * solib.h (default_solib_validate): New declaration. * solist.h (struct so_list): New fields 'build_idsz' and 'build_id'. (target_so_ops): New field 'validate'. gdb/doc/ChangeLog 2015-07-15 Jan Kratochvil * gdb.texinfo (Files): Add 'set validate-build-id' and 'show validate-build-id'. commit fdbe940d41ab5212b13c0e2c9de2210290bd0f39 Author: Jan Kratochvil Date: Tue Aug 18 19:44:26 2015 +0200 gdbserver build-id attribute generator Producer part of the new "build-id" XML attribute. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * features/library-list-svr4.dtd (library-list-svr4): New 'build-id' attribute. gdb/doc/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * gdb.texinfo (Library List Format for SVR4 Targets): Add 'build-id' in description, example, new attribute in dtd. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski gdbserver build-id attribute generator. * linux-low.c (linux-maps.h, search.h, rsp-low.h): Include. (ElfXX_Ehdr, ElfXX_Phdr, ElfXX_Nhdr): New. (ELFXX_FLD, ELFXX_SIZEOF, ELFXX_ROUNDUP, BUILD_ID_INVALID): New. (find_phdr): New. (get_dynamic): Use find_pdhr to traverse program headers. (struct mapping_entry, mapping_entry_s, free_mapping_entry_vec) (compare_mapping_entry_range, struct find_memory_region_callback_data) (read_build_id, find_memory_region_callback, lrfind_mapping_entry) (get_hex_build_id): New. (linux_qxfer_libraries_svr4): Add optional build-id attribute to reply XML document. commit 07980d2eb445547f2c40bddbba0593c631f4b4cc Author: Jan Kratochvil Date: Tue Aug 18 19:44:26 2015 +0200 Move linux_find_memory_regions_full & co. This should be just a move with no changes. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Move linux_find_memory_regions_full & co. * linux-tdep.c (linux-maps.h): Include. (gdb_regex.h): Remove the include. (enum filterflags, struct smaps_vmflags, read_mapping, decode_vmflags) (mapping_is_anonymous_p, dump_mapping_p): Moved to common/linux-maps.c. (linux_find_memory_region_ftype): Moved typedef to common/linux-maps.h. (linux_find_memory_regions_full): Moved definition to common/linux-maps.c. * common/linux-maps.c: Include ctype.h, target/target-utils.h, gdb_regex.h and target/target.h. (struct smaps_vmflags, read_mapping, decode_vmflags) (mapping_is_anonymous_p, dump_mapping_p): Move from linux-tdep.c. (linux_find_memory_regions_full): Move from linux-tdep.c. * common/linux-maps.h (read_mapping): New declaration. (linux_find_memory_region_ftype, enum filterflags): Moved from linux-tdep.c. (linux_find_memory_regions_full): New declaration. * target.c (target/target-utils.h): Include. (read_alloc_pread_ftype): Moved typedef to target/target-utils.h. (read_alloc, read_stralloc_func_ftype, read_stralloc): Moved definitions to target/target-utils.c. * target.h (target_fileio_read_stralloc): Move it to target/target.h. * target/target-utils.c (read_alloc, read_stralloc): Move definitions from target.c. * target/target-utils.h (read_alloc_pread_ftype): New typedef. (read_alloc): New declaration. (read_stralloc_func_ftype): New typedef. (read_stralloc): New declaration. * target/target.h (target_fileio_read_stralloc): Move it from target.h. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski * target.c: Include target/target-utils.h and fcntl.h. (target_fileio_read_stralloc_1_pread, target_fileio_read_stralloc_1) (target_fileio_read_stralloc): New functions. commit d24163121891e5c67c2837c266831c5ca99328ee Author: Jan Kratochvil Date: Tue Aug 18 19:44:26 2015 +0200 Prepare linux_find_memory_regions_full & co. for move Prepare code for move into gdb/common/. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Prepare linux_find_memory_regions_full & co. for move. * linux-tdep.c (linux_find_memory_region_ftype): Comment. (linux_find_memory_regions_full): Change signature and prepare for moving to linux-maps. (linux_find_memory_regions_data): Rename field 'obfd' to 'data'. (linux_find_memory_regions_thunk): New. (linux_find_memory_regions_thunk): Use 'data' field instead of 'obfd'. (linux_find_memory_regions_gdb): New. (linux_find_memory_regions): Rename argument 'obfd' to 'func_data'. (linux_make_mappings_corefile_notes): Use linux_find_memory_regions_gdb. * target.c (read_alloc_pread_ftype): New typedef. (target_fileio_read_alloc_1_pread): New function. (read_alloc): Refactor from target_fileio_read_alloc_1. (read_stralloc_func_ftype): New typedef. (target_fileio_read_alloc_1): New implementation. Use read_alloc. (read_stralloc): Refactored from target_fileio_read_stralloc. (target_fileio_read_stralloc): New implementation, use read_stralloc. commit fa5a5a47b32c04b28dc134c9443c3d0d13b93f7b Author: Jan Kratochvil Date: Tue Aug 18 19:44:26 2015 +0200 Move gdb_regex* to common/ Later patches need regex support also in gdbserver. gdb/ChangeLog 2015-07-15 Jan Kratochvil * Makefile.in (HFILES_NO_SRCDIR): Change gdb_regex.h to common/gdb_regex.h. (COMMON_OBS): Add gdb_regex.o. (gdb_regex.o): New. * common/common.m4 (GDB_AC_COMMON): Add gdb_use_included_regex, --without-included-regex and USE_INCLUDED_REGEX. * common/gdb_regex.c: New file from utils.c functions. * common/gdb_regex.h: Move it here from gdb_regex.h, update include file wrapping define name. * configure: Rebuilt. * configure.ac (gdb_use_included_regex, --without-included-regex) (USE_INCLUDED_REGEX): Move them to common/common.m4. * gdb_regex.h: Move it to common/gdb_regex.h. * utils.c: Remove include gdb_regex.h. (do_regfree_cleanup, make_regfree_cleanup, get_regcomp_error) (compile_rx_or_error): Move them to common/gdb_regex.c. gdb/gdbserver/ChangeLog 2015-07-15 Jan Kratochvil * Makefile.in (OBS): Add gdb_regex.o. (gdb_regex.o): New. * config.in: Rebuilt. * configure: Rebuilt. commit 6ebf8fd4c922433ab739998eb8696f3b705d3689 Author: Jan Kratochvil Date: Tue Aug 18 19:44:25 2015 +0200 Create empty common/linux-maps.[ch] and common/target-utils.[ch] Prepare new files for later move. gdb/ChangeLog 2015-07-15 Aleksandar Ristovski Create empty common/linux-maps.[ch] and common/target-utils.[ch]. * Makefile.in (ALL_TARGET_OBS): Add linux-maps.o. (HFILES_NO_SRCDIR); Add common/linux-maps.h, common/target-utils.h. (COMMON_OBS): Add target-utils.o. (linux-maps.o, target-utils.o): New. * target/target-utils.c: New file. * target/target-utils.h: New file. * common/linux-maps.c: New file. * common/linux-maps.h: New file. * configure.tgt (aarch64*-*-linux*, alpha*-*-linux*) (am33_2.0*-*-linux*, arm*-*-linux*, bfin-*-*linux*, cris*, frv-*-*) (hppa*-*-linux*, i[34567]86-*-linux*, ia64-*-linux*, m32r*-*-linux*) (m68*-*-linux*, microblaze*-linux-*, microblaze*-*-linux*) (mips*-*-linux*, nios2*-*-linux*, powerpc*-*-linux*, s390*-*-linux*) (sh*-*-linux*, sparc-*-linux*, sparc64-*-linux*, tic6x-*-*linux) (tilegx-*-linux*, x86_64-*-linux*, xtensa*-*-linux*): Add linux-maps.o to gdb_target_obs. gdb/gdbserver/ChangeLog 2015-07-15 Aleksandar Ristovski Create empty common/linux-maps.[ch] and common/target-utils.[ch]. * Makefile.in (OBS): Add target-utils.o. (linux-maps.o, target-utils.o): New. * configure.srv (srv_linux_obj): Add linux-maps.o. commit 4e1626f5a8d73573d6cf593fabe5bc80f7b3e04e Author: H.J. Lu Date: Tue Aug 18 10:43:19 2015 -0700 Add another test for PR ld/18841 PR ld/18841 * ld-ifunc/ifunc.exp: Add another test for PR ld/18841. * ld-ifunc/pr18841c.c: New file. commit 26d56a939e9e54e09d46ea6e9678463ac344fa33 Author: Sandra Loosemore Date: Tue Aug 18 10:29:54 2015 -0700 Fix mis-parsing of hex register numbers in 'T' stop replies. 2015-08-18 Sandra Loosemore gdb/ * remote.c (strprefix): New. (remote_parse_stop_reply): Use strprefix instead of strncmp to ensure exact match of keyword. commit cae1fbbb7e3d770702a0d7a5027b46835e6adc13 Author: H.J. Lu Date: Tue Aug 18 09:47:59 2015 -0700 Return reloc_class_ifunc for reloc against IFUNC elf_XXX_reloc_type_class should return reloc_class_ifunc for relocation against STT_GNU_IFUNC symbol. bfd/ PR ld/18841 * elf-bfd.h (elf_link_hash_table): Add dynsym. * elf32-i386.c (elf_i386_reloc_type_class): Return reloc_class_ifunc for relocation against STT_GNU_IFUNC symbol. * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise. * elflink.c (_bfd_elf_link_create_dynamic_sections): Set dynsym. (bfd_elf_size_dynsym_hash_dynstr): Use dynsym. (elf_final_link_info): Remove dynsym_sec. (elf_link_output_extsym): Replace dynsym_sec with dynsym. (bfd_elf_final_link): Remove reference to dynsym_sec. Replace dynsym_sec with dynsym. ld/testsuite/ PR ld/18841 * ld-ifunc/ifunc.exp: Add a test for PR ld/18841. * ld-ifunc/pr18841.out: New file. * ld-ifunc/pr18841a.c: Likewise. * ld-ifunc/pr18841b.c: Likewise. commit 2b4bf6afd4506165007c0e76bc7c4381031cfaf6 Author: Andrew Burgess Date: Tue Aug 18 17:09:41 2015 +0100 gdb/doc: Fix build of 'info' manual. In commit 18989b3c5642e2ba533e02737797dcf06134229b I broke the creation of gdb's info manual; I added a new section without adding a suitable menu entry. This commit adds the missing menu entry and fixes the build of gdb's info manual. gdb/doc/ChangeLog: * gdb.texinfo (GDB Files): Add 'File Caching' menu entry. commit 44b4145b723b43b175d4378c77bd79faaaa80312 Author: Jiong Wang Date: Tue Aug 18 16:50:56 2015 +0100 [AArch64] Cleanup TLS relocation types which don't go through GOT table This patch done two types of cleanup: * in aarch64_reloc_got_type and elfNN_aarch64_relocate_section We don't need those redundant "case" check, as they can be merged with the "default" which just "break". * in elfNN_aarch64_gc_sweep_hook and elfNN_aarch64_check_relocs All TLS local executable relocations and some local dynamic relocations (those calculate module offset) actually don't need GOT entry, so remove them from GOT entry counting. 2015-08-18 Jiong Wang bfd/ * elfnn-aarch64.c (aarch64_reloc_got_type): Delete useless check. (elfNN_aarch64_relocate_section): Likewise. (elfNN_aarch64_gc_sweep_hook): Likewise. (elfNN_aarch64_check_relocs): Likewise. commit 566f5e3b385a99c09b5babc9f90dae93e052d52c Author: Andrew Burgess Date: Mon Apr 13 16:56:23 2015 +0100 gdb: Add debug tracing for bfd cache activity. This patch adds a new debug flag bfd-cache, which when set to non-zero produces debugging log messages relating to gdb's bfd cache. gdb/ChangeLog: * gdb_bfd.c (debug_bfd_cache): New variable. (show_bfd_cache_debug): New function. (gdb_bfd_open): Add debug logging. (gdb_bfd_ref): Likewise. (gdb_bfd_unref): Likewise. (_initialize_gdb_bfd): Add new set/show command. * NEWS: Mention new command. gdb/doc/ChangeLog: * gdb.texinfo (File Caching): Document "set/show debug bfd-cache". commit 18989b3c5642e2ba533e02737797dcf06134229b Author: Andrew Burgess Date: Mon Apr 13 16:31:21 2015 +0100 gdb: New maintenance command to disable bfd sharing. In some rare maintainer cases it is desirable to be able to disable bfd sharing. This patch adds new commands maintenance set/show commands for bfd-sharing, allowing gdb's bfd cache to be turned off. gdb/ChangeLog: * gdb_bfd.c (bfd_sharing): New variable. (show_bfd_sharing): New function. (gdb_bfd_open): Check bfd_sharing variable. (_initialize_gdb_bfd): Add new set/show command. * NEWS: Mention new command. gdb/doc/ChangeLog: * gdb.texinfo (Maintenance Commands): Move documentation of "main info bfds" to... (File Caching): A New section. Outline bfd caching, and add new description for "main set/show bfd-sharing". commit c04fe68f6b94815d3f49c9aed64b2c388d45f4aa Author: Andrew Burgess Date: Mon Apr 13 14:53:48 2015 +0100 gdb: Improve cache matching criteria for the bfd cache. Within gdb open bfd objects are reused where possible if an attempt is made to reopen a file that is already being debugged. To spot if the on disc file has changed gdb currently examines the mtime of the file and compares it to the mtime of the open bfd in the cache. A problem exists when the on disc file is being rapidly regenerated, as happens, for example, with automated testing. In some cases the file is generated so quickly that the mtime appears not to change, while the on disc file has changed. This patch extends the bfd cache to also hold the file size of the file, the inode of the file, and the device id of the file; gdb can then compare filename, file size, mtime, inode, and device id to determine if an existing bfd object can be reused. gdb/ChangeLog: * gdb_bfd.c (struct gdb_bfd_data): Add size, inode, and device id field. (struct gdb_bfd_cache_search): Likewise. (eq_bfd): Compare the size, inode, and device id fields. (gdb_bfd_open): Initialise the size, inode, and device id fields. (gdb_bfd_ref): Likewise. (gdb_bfd_unref): Likewise. commit 0e1862bb401f47716446aef143b2bf7a4563f541 Author: H.J. Lu Date: Tue Aug 18 05:51:03 2015 -0700 Add output_type to bfd_link_info The "shared" field in bfd_link_info is set for both DSO and and PIE. There are separate fields for executable and relocatable outputs. This patch adds an "output_type" field: enum output_type { type_unknown = 0, type_executable, type_dll, type_relocatable }; and a "pic" field to bfd_link_info to replace shared, executable and relocatable fields so that we can use the "output_type" field to check for output type and the "pic" field check if output is PIC. Macros, bfd_link_executable, bfd_link_dll, bfd_link_relocatable, bfd_link_pic and bfd_link_pie, are provided to check for output features. bfd/ * bfd/aoutx.h: Replace shared, executable, relocatable and pie fields with bfd_link_executable, bfd_link_dll, bfd_link_relocatable, bfd_link_pic and bfd_link_pie. * bfd/bout.c: Likewise. * bfd/coff-alpha.c: Likewise. * bfd/coff-arm.c: Likewise. * bfd/coff-i386.c: Likewise. * bfd/coff-i960.c: Likewise. * bfd/coff-m68k.c: Likewise. * bfd/coff-mcore.c: Likewise. * bfd/coff-mips.c: Likewise. * bfd/coff-ppc.c: Likewise. * bfd/coff-rs6000.c: Likewise. * bfd/coff-sh.c: Likewise. * bfd/coff-tic80.c: Likewise. * bfd/coff-x86_64.c: Likewise. * bfd/coff64-rs6000.c: Likewise. * bfd/coffgen.c: Likewise. * bfd/cofflink.c: Likewise. * bfd/ecoff.c: Likewise. * bfd/ecofflink.c: Likewise. * bfd/elf-bfd.h: Likewise. * bfd/elf-eh-frame.c: Likewise. * bfd/elf-ifunc.c: Likewise. * bfd/elf-m10200.c: Likewise. * bfd/elf-m10300.c: Likewise. * bfd/elf-s390-common.c: Likewise. * bfd/elf-vxworks.c: Likewise. * bfd/elf.c: Likewise. * bfd/elf32-arm.c: Likewise. * bfd/elf32-avr.c: Likewise. * bfd/elf32-bfin.c: Likewise. * bfd/elf32-cr16.c: Likewise. * bfd/elf32-cr16c.c: Likewise. * bfd/elf32-cris.c: Likewise. * bfd/elf32-crx.c: Likewise. * bfd/elf32-d10v.c: Likewise. * bfd/elf32-dlx.c: Likewise. * bfd/elf32-epiphany.c: Likewise. * bfd/elf32-fr30.c: Likewise. * bfd/elf32-frv.c: Likewise. * bfd/elf32-ft32.c: Likewise. * bfd/elf32-h8300.c: Likewise. * bfd/elf32-hppa.c: Likewise. * bfd/elf32-i370.c: Likewise. * bfd/elf32-i386.c: Likewise. * bfd/elf32-i860.c: Likewise. * bfd/elf32-ip2k.c: Likewise. * bfd/elf32-iq2000.c: Likewise. * bfd/elf32-lm32.c: Likewise. * bfd/elf32-m32c.c: Likewise. * bfd/elf32-m32r.c: Likewise. * bfd/elf32-m68hc11.c: Likewise. * bfd/elf32-m68hc1x.c: Likewise. * bfd/elf32-m68k.c: Likewise. * bfd/elf32-mcore.c: Likewise. * bfd/elf32-mep.c: Likewise. * bfd/elf32-metag.c: Likewise. * bfd/elf32-microblaze.c: Likewise. * bfd/elf32-moxie.c: Likewise. * bfd/elf32-msp430.c: Likewise. * bfd/elf32-mt.c: Likewise. * bfd/elf32-nds32.c: Likewise. * bfd/elf32-nios2.c: Likewise. * bfd/elf32-or1k.c: Likewise. * bfd/elf32-ppc.c: Likewise. * bfd/elf32-rl78.c: Likewise. * bfd/elf32-rx.c: Likewise. * bfd/elf32-s390.c: Likewise. * bfd/elf32-score.c: Likewise. * bfd/elf32-score7.c: Likewise. * bfd/elf32-sh-symbian.c: Likewise. * bfd/elf32-sh.c: Likewise. * bfd/elf32-sh64.c: Likewise. * bfd/elf32-spu.c: Likewise. * bfd/elf32-tic6x.c: Likewise. * bfd/elf32-tilepro.c: Likewise. * bfd/elf32-v850.c: Likewise. * bfd/elf32-vax.c: Likewise. * bfd/elf32-visium.c: Likewise. * bfd/elf32-xc16x.c: Likewise. * bfd/elf32-xstormy16.c: Likewise. * bfd/elf32-xtensa.c: Likewise. * bfd/elf64-alpha.c: Likewise. * bfd/elf64-hppa.c: Likewise. * bfd/elf64-ia64-vms.c: Likewise. * bfd/elf64-mmix.c: Likewise. * bfd/elf64-ppc.c: Likewise. * bfd/elf64-s390.c: Likewise. * bfd/elf64-sh64.c: Likewise. * bfd/elf64-x86-64.c: Likewise. * bfd/elflink.c: Likewise. * bfd/elfnn-aarch64.c: Likewise. * bfd/elfnn-ia64.c: Likewise. * bfd/elfxx-mips.c: Likewise. * bfd/elfxx-sparc.c: Likewise. * bfd/elfxx-tilegx.c: Likewise. * bfd/i386linux.c: Likewise. * bfd/linker.c: Likewise. * bfd/m68klinux.c: Likewise. * bfd/pdp11.c: Likewise. * bfd/pe-mips.c: Likewise. * bfd/peXXigen.c: Likewise. * bfd/reloc.c: Likewise. * bfd/reloc16.c: Likewise. * bfd/sparclinux.c: Likewise. * bfd/sunos.c: Likewise. * bfd/vms-alpha.c: Likewise. * bfd/xcofflink.c: Likewise. include/ * include/bfdlink.h (output_type): New enum. (bfd_link_executable): New macro. (bfd_link_dll): Likewise. (bfd_link_relocatable): Likewise. (bfd_link_pic): Likewise. (bfd_link_pie): Likewise. (bfd_link_info): Remove shared, executable, pie and relocatable. Add output_type and pic. ld/ * ld/ldctor.c: Replace shared, executable, relocatable and pie fields with bfd_link_executable, bfd_link_dll, bfd_link_relocatable, bfd_link_pic and bfd_link_pie. * ld/ldemul.c: Likewise. * ld/ldfile.c: Likewise. * ld/ldlang.c: Likewise. * ld/ldmain.c: Likewise. * ld/ldwrite.c: Likewise. * ld/lexsup.c: Likewise. * ld/pe-dll.c: Likewise. * ld/plugin.c: Likewise. * ld/emultempl/aarch64elf.em: Likewise. * ld/emultempl/aix.em: Likewise. * ld/emultempl/alphaelf.em: Likewise. * ld/emultempl/armcoff.em: Likewise. * ld/emultempl/armelf.em: Likewise. * ld/emultempl/avrelf.em: Likewise. * ld/emultempl/beos.em: Likewise. * ld/emultempl/cr16elf.em: Likewise. * ld/emultempl/elf-generic.em: Likewise. * ld/emultempl/elf32.em: Likewise. * ld/emultempl/genelf.em: Likewise. * ld/emultempl/generic.em: Likewise. * ld/emultempl/gld960.em: Likewise. * ld/emultempl/gld960c.em: Likewise. * ld/emultempl/hppaelf.em: Likewise. * ld/emultempl/irix.em: Likewise. * ld/emultempl/linux.em: Likewise. * ld/emultempl/lnk960.em: Likewise. * ld/emultempl/m68hc1xelf.em: Likewise. * ld/emultempl/m68kcoff.em: Likewise. * ld/emultempl/m68kelf.em: Likewise. * ld/emultempl/metagelf.em: Likewise. * ld/emultempl/mipself.em: Likewise. * ld/emultempl/mmo.em: Likewise. * ld/emultempl/msp430.em: Likewise. * ld/emultempl/nds32elf.em: Likewise. * ld/emultempl/needrelax.em: Likewise. * ld/emultempl/nios2elf.em: Likewise. * ld/emultempl/pe.em: Likewise. * ld/emultempl/pep.em: Likewise. * ld/emultempl/ppc32elf.em: Likewise. * ld/emultempl/ppc64elf.em: Likewise. * ld/emultempl/sh64elf.em: Likewise. * ld/emultempl/solaris2.em: Likewise. * ld/emultempl/spuelf.em: Likewise. * ld/emultempl/sunos.em: Likewise. * ld/emultempl/tic6xdsbt.em: Likewise. * ld/emultempl/ticoff.em: Likewise. * ld/emultempl/v850elf.em: Likewise. * ld/emultempl/vms.em: Likewise. * ld/emultempl/vxworks.em: Likewise. commit b2a33439909493f5bf93ada871bd588f365d61f4 Author: Pedro Alves Date: Tue Aug 18 11:04:30 2015 +0100 x86/Linux: disable all-stop on top of non-stop Markus reported that ASNS breaks target record-btrace. In particular, the gdb.btrace/multi-thread-step.exp test fails (both with BTS and PT tracing) with a crash in py-inferior.c: Program received signal SIGSEGV, Segmentation fault. 0x00000000006aa40d in add_thread_object (tp=0x27d32d0) at /users/mmetzger/team/gdb/git/gdb/python/py-inferior.c:337 337 entry->next = inf_obj->threads; My machine doesn't support BTS nor PT, so I missed this... Disabling ASNS temporarily on x86 until this is addressed. Tested on x86_64 Fedora 20. gdb/ChangeLog: 2015-08-18 Pedro Alves * linux-nat.c (linux_nat_always_non_stop_p): If the linux_ops target implements to_always_non_stop_p, call it. * x86-linux-nat.c (x86_linux_always_non_stop_p): New function. (x86_linux_create_target): Install it as to_always_non_stop_p method. commit fe875424a05df7c4055cd9382ab76f65e952c4dd Author: Alan Modra Date: Tue Aug 18 16:44:48 2015 +0930 Use $SED in bfd Makefile PR 18667 * Makefile.am: Use $(SED) in place of sed throughout. * Makefile.in: Regenerate. commit 43417696fe32416607940258ded622c121872515 Author: Alan Modra Date: Tue Aug 18 16:43:18 2015 +0930 PPC64: Allow .TOC. in linker script to override backend calculated value bfd/ * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't redefine .TOC. if already defined, and set linker_def. (ppc64_elf_set_toc): Use .TOC. value if defined other than by the backend. ld/ * ldexp.c (exp_fold_tree_1): Clear linker_def on symbol assignment. commit f6721e4955d86bf879b5225f2d128a5a8ddfcae8 Author: GDB Administrator Date: Tue Aug 18 00:00:08 2015 +0000 Automatic date update in version.in commit 71b57e37fe94bbc17f57f8f9ca5e9c5400cedd6b Author: Doug Evans Date: Mon Aug 17 13:07:11 2015 -0700 ui-out.c (default_ui_out_impl): Add comment. gdb/ChangeLog: * ui-out.c (default_ui_out_impl): Add comment. commit 7f3706ebfeb44e6b1f39f95fe44b7099a91c32c9 Author: Iain Buclaw Date: Mon Aug 17 21:45:42 2015 +0200 [D] Implement looking up members of D enums. In D, all named enums are explicitly scoped (the C++ equivalent of enum class) so they should be handled as such in the language-specific symbol lookup routines. However so as to support D compilers that don't emit enums as DW_AT_enum_class, need to make sure that appropriate checks for TYPE_DECLARED_CLASS are done. gdb/ChangeLog * d-exp.y (type_aggregate_p): New function. (PrimaryExpression : TypeExp '.' IdentifierExp): Use it. (classify_inner_name): Likewise. * d-namespace.c (d_lookup_nested_symbol): Handle TYPE_CODE_ENUM. commit ad89c2aa677c28c76ffd5a35e2b36eece4d82597 Author: Keith Seitz Date: Thu Aug 13 11:56:50 2015 -0700 Move strace -m/explicit location test to strace.exp One of the build slaves shows this error running explicit.exp: (gdb) strace -m gdbfoobarbaz Remote failure reply: E.In-process agent library not loaded in process. Fast and static tracepoints unavailable. (gdb) FAIL: gdb.linespec/explicit.exp: strace -m gdbfoobarbaz There are two big problems with this test: 1) The expected output is actually not what the test is meant to test for. 2) This test should really only run where it is supported. This is most easily fixed by moving the test to gdb.trace/strace.exp. gdb/testsuite/ChangeLog * gdb.linespec/explicit.exp: Move strace test from here ... * gdb.trace/strace.exp: ... to here. commit 2309f875707215e9b6dfbd9af866f6ead3ccaff5 Author: Alan Modra Date: Mon Aug 17 12:01:58 2015 +0930 Regen binutils/configure Looks like previous regen wasn't using current sources. * configure: Regenerate. commit 919b75f7e28942fe320dc533759f88131f160bf3 Author: Alan Modra Date: Mon Aug 17 11:51:44 2015 +0930 Trailing space in opcodes/ generated files HJ recently removed trailing space in binutils files, but unfortunately they return when regenerating files in opcodes. This fixes the regen process. * cgen.sh: Trim trailing space from cgen output. * ia64-gen.c (print_dependency_table): Don't generate trailing space. (print_dis_table): Likewise. * opc2c.c (dump_lines): Likewise. (orig_filename): Warning fix. * ia64-asmtab.c: Regenerate. commit 26a4b92c9131ab952f3db9bcafa82fb2360d19b6 Author: GDB Administrator Date: Mon Aug 17 00:00:08 2015 +0000 Automatic date update in version.in commit db2ed2e0b910376fd2bf4c2bc5d626315c4269c6 Author: Alan Modra Date: Mon Aug 17 09:05:42 2015 +0930 Rationalize ARM .align * gas/config/tc-arm.c (s_align): Delete. (md_pseudo_table): Use s_align_ptwo for "align". * gas/config/tc-arm.h (TC_ALIGN_ZERO_IS_DEFAULT): Define. * read.c (s_align): Modify for TC_ALIGN_ZERO_IS_DEFAULT. commit 1762568fd6bd84f1b1a488375cf320a1efa06b22 Author: Doug Evans Date: Sat Aug 15 22:08:47 2015 -0700 psymtab.c (add_psymbol_to_bcache): Remove "val" arg. gdb/ChangeLog: * psymtab.c (add_psymbol_to_bcache): Remove "val" arg. All callers updated. (add_psymbol_to_list): Ditto. commit a40f728f5cb20a41cfff68ef523a0025bbc6f402 Author: GDB Administrator Date: Sun Aug 16 00:00:08 2015 +0000 Automatic date update in version.in commit 8763cedeec7f0a1daea41c2231bda165652e273b Author: Doug Evans Date: Sat Aug 15 16:46:20 2015 -0700 Add end_psymtab_common, have all debug info readers call it. gdb/ChangeLog: * dbxread.c (dbx_end_psymtab): Renamed from end_psymtab. All callers updated. Call end_psymtab_common. * dwarf2read.c (process_psymtab_comp_unit_reader): Call end_psymtab_common. (build_type_psymtabs_reader): Ditto. * psympriv.h (sort_pst_symbols): Delete. (end_psymtab_common): Declare. * psymtab.c (sort_pst_symbols): Make static. (end_psymtab_common): New function. * xcoffread.c (xcoff_end_psymtab): Call end_psymtab_common. commit 51cdc99310171d6c53d2d00103a0ce34374d0b9b Author: Doug Evans Date: Sat Aug 15 16:25:53 2015 -0700 Use macros for some enum bit field sizes. gdb/ChangeLog: * defs.h (LANGUAGE_BITS): Define. * psympriv.h (partial_symbol) : Use SYMBOL_DOMAIN_BITS. (partial_symbol) : Use SYMBOL_ACLASS_BITS. * symtab.h (general_symbol_info> : Usage LANGUAGE_BITS. (minimal_symbol_type): Add nr_minsym_types. (MINSYM_TYPE_BITS): Define. (minimal_symbol) : Use MINSYM_TYPE_BITS. (domain_enum_tag): Add NR_DOMAINS. (SYMBOL_DOMAIN_BITS): Change from 4 to 3. (SYMBOL_ACLASS_BITS): Define from 6 to 5. commit 95cf586902b681310e63ee06d89ba2498d1d5dcf Author: Doug Evans Date: Sat Aug 15 15:51:00 2015 -0700 objfiles.h,psympriv.h,psymtab.c: Whitespace. gdb/ChangeLog: * objfiles.h: Whitespace cleanup. * psympriv.h: Whitespace cleanup. * psymtab.c: Whitespace/coding convention cleanup. commit e3ae3c4345fa14f2f3b0b2c5d4d23760af9f74f5 Author: Patrick Palka Date: Tue Jul 28 15:00:58 2015 -0400 Fix invoking "[kill|detach] inferiors" on inferiors that are not running Invoking either of the above commands on an inferior that's not running triggers the following assert failure: .../binutils-gdb/gdb/thread.c:514: internal-error: any_thread_of_process: Assertion `pid != 0' failed. The fix is straightforward. This patch also adds a test to check the basic functionality of these commands, along with testing this fix in particular. Tested on x86_64 Linux. gdb/ChangeLog: * inferior.c (detach_inferior_command): Don't call any_thread_of_process when pid is 0. (kill_inferior_command): Likewise. gdb/testsuite/ChangeLog: * gdb.base/kill-detach-inferiors-cmd.exp: New test file. * gdb.base/kill-detach-inferiors-cmd.c: New test file. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 146 ++ bfd/Makefile.am | 28 +- bfd/Makefile.in | 28 +- bfd/aoutx.h | 16 +- bfd/bout.c | 2 +- bfd/coff-alpha.c | 16 +- bfd/coff-arm.c | 20 +- bfd/coff-i386.c | 2 +- bfd/coff-i960.c | 6 +- bfd/coff-m68k.c | 2 +- bfd/coff-mcore.c | 2 +- bfd/coff-mips.c | 4 +- bfd/coff-ppc.c | 16 +- bfd/coff-rs6000.c | 2 +- bfd/coff-sh.c | 4 +- bfd/coff-tic80.c | 2 +- bfd/coff-x86_64.c | 2 +- bfd/coff64-rs6000.c | 2 +- bfd/coffgen.c | 2 +- bfd/cofflink.c | 44 +- bfd/ecoff.c | 8 +- bfd/ecofflink.c | 12 +- bfd/elf-bfd.h | 5 +- bfd/elf-eh-frame.c | 14 +- bfd/elf-ifunc.c | 16 +- bfd/elf-m10200.c | 4 +- bfd/elf-m10300.c | 52 +- bfd/elf-s390-common.c | 17 +- bfd/elf-vxworks.c | 4 +- bfd/elf.c | 14 +- bfd/elf32-arm.c | 125 +- bfd/elf32-avr.c | 8 +- bfd/elf32-bfin.c | 72 +- bfd/elf32-cr16.c | 24 +- bfd/elf32-cr16c.c | 2 +- bfd/elf32-cris.c | 86 +- bfd/elf32-crx.c | 4 +- bfd/elf32-d10v.c | 8 +- bfd/elf32-dlx.c | 2 +- bfd/elf32-epiphany.c | 4 +- bfd/elf32-fr30.c | 4 +- bfd/elf32-frv.c | 71 +- bfd/elf32-ft32.c | 2 +- bfd/elf32-h8300.c | 4 +- bfd/elf32-hppa.c | 76 +- bfd/elf32-i370.c | 26 +- bfd/elf32-i386.c | 126 +- bfd/elf32-i860.c | 2 +- bfd/elf32-ip2k.c | 4 +- bfd/elf32-iq2000.c | 4 +- bfd/elf32-lm32.c | 42 +- bfd/elf32-m32c.c | 12 +- bfd/elf32-m32r.c | 67 +- bfd/elf32-m68hc11.c | 2 +- bfd/elf32-m68hc1x.c | 4 +- bfd/elf32-m68k.c | 48 +- bfd/elf32-mcore.c | 6 +- bfd/elf32-mep.c | 2 +- bfd/elf32-metag.c | 71 +- bfd/elf32-microblaze.c | 55 +- bfd/elf32-moxie.c | 4 +- bfd/elf32-msp430.c | 6 +- bfd/elf32-mt.c | 4 +- bfd/elf32-nds32.c | 77 +- bfd/elf32-nios2.c | 80 +- bfd/elf32-or1k.c | 52 +- bfd/elf32-ppc.c | 168 +- bfd/elf32-rl78.c | 10 +- bfd/elf32-rx.c | 4 +- bfd/elf32-s390.c | 100 +- bfd/elf32-score.c | 35 +- bfd/elf32-score7.c | 36 +- bfd/elf32-sh-symbian.c | 2 +- bfd/elf32-sh.c | 143 +- bfd/elf32-sh64.c | 8 +- bfd/elf32-spu.c | 10 +- bfd/elf32-tic6x.c | 57 +- bfd/elf32-tilepro.c | 86 +- bfd/elf32-v850.c | 6 +- bfd/elf32-vax.c | 30 +- bfd/elf32-visium.c | 4 +- bfd/elf32-xc16x.c | 2 +- bfd/elf32-xstormy16.c | 8 +- bfd/elf32-xtensa.c | 56 +- bfd/elf64-alpha.c | 69 +- bfd/elf64-hppa.c | 68 +- bfd/elf64-ia64-vms.c | 54 +- bfd/elf64-mmix.c | 10 +- bfd/elf64-ppc.c | 145 ++- bfd/elf64-s390.c | 90 +- bfd/elf64-sh64.c | 66 +- bfd/elf64-x86-64.c | 118 +- bfd/elflink.c | 143 +- bfd/elfnn-aarch64.c | 112 +- bfd/elfnn-ia64.c | 92 +- bfd/elfxx-mips.c | 135 +- bfd/elfxx-sparc.c | 122 +- bfd/elfxx-tilegx.c | 88 +- bfd/i386linux.c | 2 +- bfd/linker.c | 10 +- bfd/m68klinux.c | 2 +- bfd/pdp11.c | 12 +- bfd/pe-mips.c | 6 +- bfd/peXXigen.c | 4 +- bfd/reloc.c | 2 +- bfd/reloc16.c | 2 +- bfd/sparclinux.c | 2 +- bfd/sunos.c | 42 +- bfd/version.h | 2 +- bfd/vms-alpha.c | 2 +- bfd/xcofflink.c | 8 +- binutils/ChangeLog | 4 + binutils/configure | 93 +- gas/ChangeLog | 7 + gas/config/tc-arm.c | 49 +- gas/config/tc-arm.h | 1 + gas/read.c | 5 + gdb/ChangeLog | 97 ++ gdb/NEWS | 14 + gdb/cli/cli-cmds.c | 2 +- gdb/common/filestuff.c | 2 - gdb/d-exp.y | 19 +- gdb/d-namespace.c | 1 + gdb/dbxread.c | 93 +- gdb/defs.h | 7 + gdb/doc/ChangeLog | 15 + gdb/doc/gdb.texinfo | 56 +- gdb/dwarf2read.c | 40 +- gdb/exec.c | 1 - gdb/gdb_bfd.c | 139 ++- gdb/gdb_bfd.h | 3 +- gdb/inferior.c | 10 + gdb/linux-nat.c | 2 + gdb/main.c | 3 +- gdb/mdebugread.c | 54 +- gdb/objfiles.h | 288 ++-- gdb/psympriv.h | 17 +- gdb/psymtab.c | 194 ++-- gdb/remote.c | 36 +- gdb/solib.c | 13 +- gdb/source.c | 42 +- gdb/source.h | 19 + gdb/stabsread.h | 16 +- gdb/symtab.h | 38 +- gdb/testsuite/ChangeLog | 10 + gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c | 25 + .../gdb.base/kill-detach-inferiors-cmd.exp | 62 + gdb/testsuite/gdb.base/main-mismatch.exp | 159 +-- gdb/testsuite/gdb.linespec/explicit.exp | 4 - gdb/testsuite/gdb.trace/strace.exp | 5 + gdb/ui-out.c | 2 +- gdb/utils.c | 2 + gdb/x86-linux-nat.c | 11 + gdb/xcoffread.c | 29 +- include/ChangeLog | 11 + include/bfdlink.h | 30 +- ld/ChangeLog | 59 + ld/emultempl/aarch64elf.em | 4 +- ld/emultempl/aix.em | 21 +- ld/emultempl/alphaelf.em | 8 +- ld/emultempl/armcoff.em | 8 +- ld/emultempl/armelf.em | 6 +- ld/emultempl/avrelf.em | 4 +- ld/emultempl/beos.em | 10 +- ld/emultempl/cr16elf.em | 4 +- ld/emultempl/elf-generic.em | 2 +- ld/emultempl/elf32.em | 50 +- ld/emultempl/genelf.em | 4 +- ld/emultempl/generic.em | 10 +- ld/emultempl/gld960.em | 8 +- ld/emultempl/gld960c.em | 8 +- ld/emultempl/hppaelf.em | 6 +- ld/emultempl/irix.em | 2 +- ld/emultempl/linux.em | 10 +- ld/emultempl/lnk960.em | 10 +- ld/emultempl/m68hc1xelf.em | 2 +- ld/emultempl/m68kcoff.em | 12 +- ld/emultempl/m68kelf.em | 4 +- ld/emultempl/metagelf.em | 4 +- ld/emultempl/mipself.em | 2 +- ld/emultempl/mmo.em | 2 +- ld/emultempl/msp430.em | 12 +- ld/emultempl/nds32elf.em | 8 +- ld/emultempl/needrelax.em | 2 +- ld/emultempl/nios2elf.em | 8 +- ld/emultempl/pe.em | 32 +- ld/emultempl/pep.em | 32 +- ld/emultempl/ppc32elf.em | 3 +- ld/emultempl/ppc64elf.em | 12 +- ld/emultempl/sh64elf.em | 3 +- ld/emultempl/solaris2.em | 6 +- ld/emultempl/spuelf.em | 8 +- ld/emultempl/sunos.em | 23 +- ld/emultempl/tic6xdsbt.em | 2 +- ld/emultempl/ticoff.em | 8 +- ld/emultempl/v850elf.em | 2 +- ld/emultempl/vms.em | 2 +- ld/emultempl/vxworks.em | 2 +- ld/ldctor.c | 4 +- ld/ldemul.c | 6 +- ld/ldexp.c | 1 + ld/ldfile.c | 2 +- ld/ldlang.c | 43 +- ld/ldmain.c | 7 +- ld/ldwrite.c | 4 +- ld/lexsup.c | 46 +- ld/pe-dll.c | 6 +- ld/plugin.c | 10 +- ld/testsuite/ChangeLog | 14 + ld/testsuite/ld-ifunc/ifunc.exp | 32 + ld/testsuite/ld-ifunc/pr18841.out | 1 + ld/testsuite/ld-ifunc/pr18841a.c | 12 + ld/testsuite/ld-ifunc/pr18841b.c | 21 + ld/testsuite/ld-ifunc/pr18841c.c | 17 + opcodes/ChangeLog | 9 + opcodes/cgen.sh | 23 +- opcodes/ia64-asmtab.c | 1621 ++++++++++---------- opcodes/ia64-gen.c | 20 +- opcodes/opc2c.c | 7 +- 219 files changed, 4406 insertions(+), 3506 deletions(-) create mode 100644 gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c create mode 100644 gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp create mode 100644 ld/testsuite/ld-ifunc/pr18841.out create mode 100644 ld/testsuite/ld-ifunc/pr18841a.c create mode 100644 ld/testsuite/ld-ifunc/pr18841b.c create mode 100644 ld/testsuite/ld-ifunc/pr18841c.c First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 09f7650..c0fbbe9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,149 @@ +2015-08-18 Jiong Wang + + * elfnn-aarch64.c (aarch64_reloc_got_type): Delete useless check. + (elfNN_aarch64_relocate_section): Likewise. + (elfNN_aarch64_gc_sweep_hook): Likewise. + (elfNN_aarch64_check_relocs): Likewise. + +2015-08-18 H.J. Lu + + PR ld/18841 + * elf-bfd.h (elf_link_hash_table): Add dynsym. + * elf32-i386.c (elf_i386_reloc_type_class): Return + reloc_class_ifunc for relocation against STT_GNU_IFUNC symbol. + * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise. + * elflink.c (_bfd_elf_link_create_dynamic_sections): Set dynsym. + (bfd_elf_size_dynsym_hash_dynstr): Use dynsym. + (elf_final_link_info): Remove dynsym_sec. + (elf_link_output_extsym): Replace dynsym_sec with dynsym. + (bfd_elf_final_link): Remove reference to dynsym_sec. Replace + dynsym_sec with dynsym. + +2015-08-18 H.J. Lu + + * bfd/aoutx.h: Replace shared, executable, relocatable and pie + fields with bfd_link_executable, bfd_link_dll, + bfd_link_relocatable, bfd_link_pic and bfd_link_pie. + * bfd/bout.c: Likewise. + * bfd/coff-alpha.c: Likewise. + * bfd/coff-arm.c: Likewise. + * bfd/coff-i386.c: Likewise. + * bfd/coff-i960.c: Likewise. + * bfd/coff-m68k.c: Likewise. + * bfd/coff-mcore.c: Likewise. + * bfd/coff-mips.c: Likewise. + * bfd/coff-ppc.c: Likewise. + * bfd/coff-rs6000.c: Likewise. + * bfd/coff-sh.c: Likewise. + * bfd/coff-tic80.c: Likewise. + * bfd/coff-x86_64.c: Likewise. + * bfd/coff64-rs6000.c: Likewise. + * bfd/coffgen.c: Likewise. + * bfd/cofflink.c: Likewise. + * bfd/ecoff.c: Likewise. + * bfd/ecofflink.c: Likewise. + * bfd/elf-bfd.h: Likewise. + * bfd/elf-eh-frame.c: Likewise. + * bfd/elf-ifunc.c: Likewise. + * bfd/elf-m10200.c: Likewise. + * bfd/elf-m10300.c: Likewise. + * bfd/elf-s390-common.c: Likewise. + * bfd/elf-vxworks.c: Likewise. + * bfd/elf.c: Likewise. + * bfd/elf32-arm.c: Likewise. + * bfd/elf32-avr.c: Likewise. + * bfd/elf32-bfin.c: Likewise. + * bfd/elf32-cr16.c: Likewise. + * bfd/elf32-cr16c.c: Likewise. + * bfd/elf32-cris.c: Likewise. + * bfd/elf32-crx.c: Likewise. + * bfd/elf32-d10v.c: Likewise. + * bfd/elf32-dlx.c: Likewise. + * bfd/elf32-epiphany.c: Likewise. + * bfd/elf32-fr30.c: Likewise. + * bfd/elf32-frv.c: Likewise. + * bfd/elf32-ft32.c: Likewise. + * bfd/elf32-h8300.c: Likewise. + * bfd/elf32-hppa.c: Likewise. + * bfd/elf32-i370.c: Likewise. + * bfd/elf32-i386.c: Likewise. + * bfd/elf32-i860.c: Likewise. + * bfd/elf32-ip2k.c: Likewise. + * bfd/elf32-iq2000.c: Likewise. + * bfd/elf32-lm32.c: Likewise. + * bfd/elf32-m32c.c: Likewise. + * bfd/elf32-m32r.c: Likewise. + * bfd/elf32-m68hc11.c: Likewise. + * bfd/elf32-m68hc1x.c: Likewise. + * bfd/elf32-m68k.c: Likewise. + * bfd/elf32-mcore.c: Likewise. + * bfd/elf32-mep.c: Likewise. + * bfd/elf32-metag.c: Likewise. + * bfd/elf32-microblaze.c: Likewise. + * bfd/elf32-moxie.c: Likewise. + * bfd/elf32-msp430.c: Likewise. + * bfd/elf32-mt.c: Likewise. + * bfd/elf32-nds32.c: Likewise. + * bfd/elf32-nios2.c: Likewise. + * bfd/elf32-or1k.c: Likewise. + * bfd/elf32-ppc.c: Likewise. + * bfd/elf32-rl78.c: Likewise. + * bfd/elf32-rx.c: Likewise. + * bfd/elf32-s390.c: Likewise. + * bfd/elf32-score.c: Likewise. + * bfd/elf32-score7.c: Likewise. + * bfd/elf32-sh-symbian.c: Likewise. + * bfd/elf32-sh.c: Likewise. + * bfd/elf32-sh64.c: Likewise. + * bfd/elf32-spu.c: Likewise. + * bfd/elf32-tic6x.c: Likewise. + * bfd/elf32-tilepro.c: Likewise. + * bfd/elf32-v850.c: Likewise. + * bfd/elf32-vax.c: Likewise. + * bfd/elf32-visium.c: Likewise. + * bfd/elf32-xc16x.c: Likewise. + * bfd/elf32-xstormy16.c: Likewise. + * bfd/elf32-xtensa.c: Likewise. + * bfd/elf64-alpha.c: Likewise. + * bfd/elf64-hppa.c: Likewise. + * bfd/elf64-ia64-vms.c: Likewise. + * bfd/elf64-mmix.c: Likewise. + * bfd/elf64-ppc.c: Likewise. + * bfd/elf64-s390.c: Likewise. + * bfd/elf64-sh64.c: Likewise. + * bfd/elf64-x86-64.c: Likewise. + * bfd/elflink.c: Likewise. + * bfd/elfnn-aarch64.c: Likewise. + * bfd/elfnn-ia64.c: Likewise. + * bfd/elfxx-mips.c: Likewise. + * bfd/elfxx-sparc.c: Likewise. + * bfd/elfxx-tilegx.c: Likewise. + * bfd/i386linux.c: Likewise. + * bfd/linker.c: Likewise. + * bfd/m68klinux.c: Likewise. + * bfd/pdp11.c: Likewise. + * bfd/pe-mips.c: Likewise. + * bfd/peXXigen.c: Likewise. + * bfd/reloc.c: Likewise. + * bfd/reloc16.c: Likewise. + * bfd/sparclinux.c: Likewise. + * bfd/sunos.c: Likewise. + * bfd/vms-alpha.c: Likewise. + * bfd/xcofflink.c: Likewise. + +2015-08-18 Alan Modra + + PR 18667 + * Makefile.am: Use $(SED) in place of sed throughout. + * Makefile.in: Regenerate. + +2015-08-18 Alan Modra + + * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't redefine .TOC. + if already defined, and set linker_def. + (ppc64_elf_set_toc): Use .TOC. value if defined other than by + the backend. + 2015-08-14 Alan Modra PR ld/18759 diff --git a/bfd/Makefile.am b/bfd/Makefile.am index e28904a..bf73057 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -860,7 +860,7 @@ noinst_LIBRARIES = libbfd.a libbfd_a_SOURCES = stamp-lib: libbfd.la - libtooldir=`$(LIBTOOL) --config | sed -n -e 's/^objdir=//p'`; \ + libtooldir=`$(LIBTOOL) --config | $(SED) -n -e 's/^objdir=//p'`; \ if [ -f $$libtooldir/libbfd.a ]; then \ cp $$libtooldir/libbfd.a libbfd.tmp; \ $(RANLIB) libbfd.tmp; \ @@ -875,7 +875,7 @@ libbfd.a: stamp-lib ; @true # itself, but is included by targets.c. targmatch.h: config.bfd targmatch.sed rm -f targmatch.h - sed -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new + $(SED) -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new mv -f targmatch.new targmatch.h # When compiling archures.c and targets.c, supply the default target @@ -919,49 +919,49 @@ endif elf32-target.h : elfxx-target.h rm -f elf32-target.h - sed -e s/NN/32/g < $(srcdir)/elfxx-target.h > elf32-target.new + $(SED) -e s/NN/32/g < $(srcdir)/elfxx-target.h > elf32-target.new mv -f elf32-target.new elf32-target.h elf64-target.h : elfxx-target.h rm -f elf64-target.h - sed -e s/NN/64/g < $(srcdir)/elfxx-target.h > elf64-target.new + $(SED) -e s/NN/64/g < $(srcdir)/elfxx-target.h > elf64-target.new mv -f elf64-target.new elf64-target.h elf32-aarch64.c : elfnn-aarch64.c rm -f elf32-aarch64.c echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf32-aarch64.new - sed -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c >> elf32-aarch64.new + $(SED) -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c >> elf32-aarch64.new mv -f elf32-aarch64.new elf32-aarch64.c elf64-aarch64.c : elfnn-aarch64.c rm -f elf64-aarch64.c echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf64-aarch64.new - sed -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c >> elf64-aarch64.new + $(SED) -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c >> elf64-aarch64.new mv -f elf64-aarch64.new elf64-aarch64.c elf32-ia64.c : elfnn-ia64.c rm -f elf32-ia64.c - sed -e s/NN/32/g < $(srcdir)/elfnn-ia64.c > elf32-ia64.new + $(SED) -e s/NN/32/g < $(srcdir)/elfnn-ia64.c > elf32-ia64.new mv -f elf32-ia64.new elf32-ia64.c elf64-ia64.c : elfnn-ia64.c rm -f elf64-ia64.c - sed -e s/NN/64/g < $(srcdir)/elfnn-ia64.c > elf64-ia64.new + $(SED) -e s/NN/64/g < $(srcdir)/elfnn-ia64.c > elf64-ia64.new mv -f elf64-ia64.new elf64-ia64.c peigen.c : peXXigen.c rm -f peigen.c - sed -e s/XX/pe/g < $(srcdir)/peXXigen.c > peigen.new + $(SED) -e s/XX/pe/g < $(srcdir)/peXXigen.c > peigen.new mv -f peigen.new peigen.c pepigen.c : peXXigen.c rm -f pepigen.c - sed -e s/XX/pep/g < $(srcdir)/peXXigen.c > pepigen.new + $(SED) -e s/XX/pep/g < $(srcdir)/peXXigen.c > pepigen.new mv -f pepigen.new pepigen.c pex64igen.c: peXXigen.c rm -f pex64igen.c - sed -e s/XX/pex64/g < $(srcdir)/peXXigen.c > pex64igen.new + $(SED) -e s/XX/pex64/g < $(srcdir)/peXXigen.c > pex64igen.new mv -f pex64igen.new pex64igen.c BFD_H_DEPS= $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h @@ -1042,18 +1042,18 @@ DISTCLEANFILES = $(BUILD_CFILES) $(BUILD_HFILES) libtool-soversion bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in @echo "creating $@" - @bfd_version=`echo "$(VERSION)" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ + @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ bfd_version_string="\"$(VERSION)\"" ;\ bfd_soversion="$(VERSION)" ;\ bfd_version_package="\"$(PKGVERSION)\"" ;\ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ . $(srcdir)/development.sh ;\ if test "$$development" = true ; then \ - bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ + bfd_version_date=`$(SED) -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ fi ;\ - sed -e "s,@bfd_version@,$$bfd_version," \ + $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ -e "s,@bfd_version_package@,$$bfd_version_package," \ -e "s,@report_bugs_to@,$$report_bugs_to," \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index aa885e3..9fd0d68 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -1961,7 +1961,7 @@ stamp-ofiles: Makefile ofiles: stamp-ofiles ; @true stamp-lib: libbfd.la - libtooldir=`$(LIBTOOL) --config | sed -n -e 's/^objdir=//p'`; \ + libtooldir=`$(LIBTOOL) --config | $(SED) -n -e 's/^objdir=//p'`; \ if [ -f $$libtooldir/libbfd.a ]; then \ cp $$libtooldir/libbfd.a libbfd.tmp; \ $(RANLIB) libbfd.tmp; \ @@ -1976,7 +1976,7 @@ libbfd.a: stamp-lib ; @true # itself, but is included by targets.c. targmatch.h: config.bfd targmatch.sed rm -f targmatch.h - sed -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new + $(SED) -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new mv -f targmatch.new targmatch.h # When compiling archures.c and targets.c, supply the default target @@ -2005,49 +2005,49 @@ dwarf2.lo: dwarf2.c Makefile elf32-target.h : elfxx-target.h rm -f elf32-target.h - sed -e s/NN/32/g < $(srcdir)/elfxx-target.h > elf32-target.new + $(SED) -e s/NN/32/g < $(srcdir)/elfxx-target.h > elf32-target.new mv -f elf32-target.new elf32-target.h elf64-target.h : elfxx-target.h rm -f elf64-target.h - sed -e s/NN/64/g < $(srcdir)/elfxx-target.h > elf64-target.new + $(SED) -e s/NN/64/g < $(srcdir)/elfxx-target.h > elf64-target.new mv -f elf64-target.new elf64-target.h elf32-aarch64.c : elfnn-aarch64.c rm -f elf32-aarch64.c echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf32-aarch64.new - sed -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c >> elf32-aarch64.new + $(SED) -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c >> elf32-aarch64.new mv -f elf32-aarch64.new elf32-aarch64.c elf64-aarch64.c : elfnn-aarch64.c rm -f elf64-aarch64.c echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf64-aarch64.new - sed -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c >> elf64-aarch64.new + $(SED) -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c >> elf64-aarch64.new mv -f elf64-aarch64.new elf64-aarch64.c elf32-ia64.c : elfnn-ia64.c rm -f elf32-ia64.c - sed -e s/NN/32/g < $(srcdir)/elfnn-ia64.c > elf32-ia64.new + $(SED) -e s/NN/32/g < $(srcdir)/elfnn-ia64.c > elf32-ia64.new mv -f elf32-ia64.new elf32-ia64.c elf64-ia64.c : elfnn-ia64.c rm -f elf64-ia64.c - sed -e s/NN/64/g < $(srcdir)/elfnn-ia64.c > elf64-ia64.new + $(SED) -e s/NN/64/g < $(srcdir)/elfnn-ia64.c > elf64-ia64.new mv -f elf64-ia64.new elf64-ia64.c peigen.c : peXXigen.c rm -f peigen.c - sed -e s/XX/pe/g < $(srcdir)/peXXigen.c > peigen.new + $(SED) -e s/XX/pe/g < $(srcdir)/peXXigen.c > peigen.new mv -f peigen.new peigen.c pepigen.c : peXXigen.c rm -f pepigen.c - sed -e s/XX/pep/g < $(srcdir)/peXXigen.c > pepigen.new + $(SED) -e s/XX/pep/g < $(srcdir)/peXXigen.c > pepigen.new mv -f pepigen.new pepigen.c pex64igen.c: peXXigen.c rm -f pex64igen.c - sed -e s/XX/pex64/g < $(srcdir)/peXXigen.c > pex64igen.new + $(SED) -e s/XX/pex64/g < $(srcdir)/peXXigen.c > pex64igen.new mv -f pex64igen.new pex64igen.c $(BFD32_LIBS) \ $(BFD64_LIBS) \ @@ -2110,18 +2110,18 @@ stmp-lcoff-h: $(LIBCOFF_H_FILES) bfdver.h: $(srcdir)/version.h $(srcdir)/development.sh $(srcdir)/Makefile.in @echo "creating $@" - @bfd_version=`echo "$(VERSION)" | sed -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ + @bfd_version=`echo "$(VERSION)" | $(SED) -e 's/\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\)\.*\([^\.]*\).*/\1.00\2.00\3.00\4.00\5/' -e 's/\([^\.]*\)\..*\(..\)\..*\(..\)\..*\(..\)\..*\(..\)$$/\1\2\3\4\5/'` ;\ bfd_version_string="\"$(VERSION)\"" ;\ bfd_soversion="$(VERSION)" ;\ bfd_version_package="\"$(PKGVERSION)\"" ;\ report_bugs_to="\"$(REPORT_BUGS_TO)\"" ;\ . $(srcdir)/development.sh ;\ if test "$$development" = true ; then \ - bfd_version_date=`sed -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ + bfd_version_date=`$(SED) -n -e 's/.*DATE //p' < $(srcdir)/version.h` ;\ bfd_version_string="\"$(VERSION).$${bfd_version_date}\"" ;\ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\ fi ;\ - sed -e "s,@bfd_version@,$$bfd_version," \ + $(SED) -e "s,@bfd_version@,$$bfd_version," \ -e "s,@bfd_version_string@,$$bfd_version_string," \ -e "s,@bfd_version_package@,$$bfd_version_package," \ -e "s,@report_bugs_to@,$$report_bugs_to," \ diff --git a/bfd/aoutx.h b/bfd/aoutx.h index e3bd2dd..f78b910 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -3946,7 +3946,7 @@ aout_link_input_section_std (struct aout_final_link_info *flaginfo, BFD_ASSERT (input_bfd->xvec->header_byteorder == output_bfd->xvec->header_byteorder); - relocatable = flaginfo->info->relocatable; + relocatable = bfd_link_relocatable (flaginfo->info); syms = obj_aout_external_syms (input_bfd); strings = obj_aout_external_strings (input_bfd); sym_hashes = obj_aout_sym_hashes (input_bfd); @@ -4212,7 +4212,7 @@ aout_link_input_section_std (struct aout_final_link_info *flaginfo, /* Now warn if a global symbol is undefined. We could not do this earlier, because check_dynamic_reloc might want to skip this reloc. */ - if (hundef && ! flaginfo->info->shared && ! r_baserel) + if (hundef && ! bfd_link_pic (flaginfo->info) && ! r_baserel) { const char *name; @@ -4300,7 +4300,7 @@ aout_link_input_section_ext (struct aout_final_link_info *flaginfo, BFD_ASSERT (input_bfd->xvec->header_byteorder == output_bfd->xvec->header_byteorder); - relocatable = flaginfo->info->relocatable; + relocatable = bfd_link_relocatable (flaginfo->info); syms = obj_aout_external_syms (input_bfd); strings = obj_aout_external_strings (input_bfd); sym_hashes = obj_aout_sym_hashes (input_bfd); @@ -4616,7 +4616,7 @@ aout_link_input_section_ext (struct aout_final_link_info *flaginfo, do this earlier, because check_dynamic_reloc might want to skip this reloc. */ if (hundef - && ! flaginfo->info->shared + && ! bfd_link_pic (flaginfo->info) && r_type != (unsigned int) RELOC_BASE10 && r_type != (unsigned int) RELOC_BASE13 && r_type != (unsigned int) RELOC_BASE22) @@ -4749,7 +4749,7 @@ aout_link_input_section (struct aout_final_link_info *flaginfo, /* If we are producing relocatable output, the relocs were modified, and we now write them out. */ - if (flaginfo->info->relocatable && rel_size > 0) + if (bfd_link_relocatable (flaginfo->info) && rel_size > 0) { if (bfd_seek (flaginfo->output_bfd, *reloff_ptr, SEEK_SET) != 0) return FALSE; @@ -5335,7 +5335,7 @@ NAME (aout, final_link) (bfd *abfd, asection *o; bfd_boolean have_link_order_relocs; - if (info->shared) + if (bfd_link_pic (info)) abfd->flags |= DYNAMIC; aout_info.info = info; @@ -5363,7 +5363,7 @@ NAME (aout, final_link) (bfd *abfd, { bfd_size_type sz; - if (info->relocatable) + if (bfd_link_relocatable (info)) { if (bfd_get_flavour (sub) == bfd_target_aout_flavour) { @@ -5407,7 +5407,7 @@ NAME (aout, final_link) (bfd *abfd, } } - if (info->relocatable) + if (bfd_link_relocatable (info)) { if (obj_textsec (abfd) != NULL) trsize += (_bfd_count_link_order_relocs (obj_textsec (abfd) diff --git a/bfd/bout.c b/bfd/bout.c index 8ca3c78..f356b96 100644 --- a/bfd/bout.c +++ b/bfd/bout.c @@ -1139,7 +1139,7 @@ b_out_bfd_relax_section (bfd *abfd, arelent **reloc_vector = NULL; long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); - if (link_info->relocatable) + if (bfd_link_relocatable (link_info)) (*link_info->callbacks->einfo) (_("%P%F: --relax and -r may not be used together\n")); diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c index 0fdbded..58d4e1d 100644 --- a/bfd/coff-alpha.c +++ b/bfd/coff-alpha.c @@ -1226,7 +1226,7 @@ alpha_convert_external_reloc (bfd *output_bfd ATTRIBUTE_UNUSED, unsigned long r_symndx; bfd_vma relocation; - BFD_ASSERT (info->relocatable); + BFD_ASSERT (bfd_link_relocatable (info)); if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) @@ -1405,7 +1405,7 @@ alpha_relocate_section (bfd *output_bfd, lita_sec = symndx_to_section[RELOC_SECTION_LITA]; gp = _bfd_get_gp_value (output_bfd); - if (! info->relocatable && lita_sec != NULL) + if (! bfd_link_relocatable (info) && lita_sec != NULL) { struct ecoff_section_tdata *lita_sec_data; @@ -1530,7 +1530,7 @@ alpha_relocate_section (bfd *output_bfd, not otherwise used for anything. For some reason, the address of the relocation does not appear to include the section VMA, unlike the other relocation types. */ - if (info->relocatable) + if (bfd_link_relocatable (info)) H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr, ext_rel->r_vaddr); adjust_addrp = FALSE; @@ -1683,7 +1683,7 @@ alpha_relocate_section (bfd *output_bfd, if (h == (struct ecoff_link_hash_entry *) NULL) abort (); - if (! info->relocatable) + if (! bfd_link_relocatable (info)) { if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) @@ -1726,7 +1726,7 @@ alpha_relocate_section (bfd *output_bfd, addend += r_vaddr; - if (info->relocatable) + if (bfd_link_relocatable (info)) { /* Adjust r_vaddr by the addend. */ H_PUT_64 (input_bfd, addend, ext_rel->r_vaddr); @@ -1762,7 +1762,7 @@ alpha_relocate_section (bfd *output_bfd, /* Store a value from the reloc stack into a bitfield. If hooks/post-receive -- Repository for Project Archer.