aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-03-13Introduce cp_print_valueTom Tromey2-4/+169
This adds cp_print_value, a value-based analogue of cp_print_val, and changes cp_print_value_fields to use it. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * cp-valprint.c (cp_print_value_fields): Update. (cp_print_value): New function.
2020-03-13Introduce cp_print_value_fields and c_value_print_structTom Tromey5-11/+322
This adds cp_print_value_fields and c_value_print_struct, value-based analogues of the corresponding val-printing functions. Note that the Modula-2 printing code also calls cp_print_val_fields, and so is updated to call the function function. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * m2-valprint.c (m2_value_print_inner): Use cp_print_value_fields. * cp-valprint.c (cp_print_value_fields): New function. * c-valprint.c (c_value_print_struct): New function. (c_value_print_inner): Use c_value_print_struct. * c-lang.h (cp_print_value_fields): Declare.
2020-03-13Introduce c_value_print_arrayTom Tromey2-2/+102
This adds c_value_print_array, a value-based analogue of c_val_print_array. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print_array): New function. (c_value_print_inner): Use it.
2020-03-13Introduce c_value_print_memberptrTom Tromey2-2/+23
This adds c_value_print_memberptr, a value-based analogue of c_val_print_memberptr. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print_memberptr): New function. (c_value_print_inner): Use it.
2020-03-13Introduce c_value_print_intTom Tromey2-3/+37
This adds c_value_print_int, a value-based analogue of c_val_print_int. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print_int): New function. (c_value_print_inner): Use it.
2020-03-13Introduce c_value_print_ptrTom Tromey2-2/+43
This adds c_value_print_ptr, a value-based analogue of c_val_print_ptr. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print_ptr): New function. (c_value_print_inner): Use it.
2020-03-13Rewrite c_value_print_innerTom Tromey2-2/+65
This rewrites c_value_print_inner, copying in the body of c_val_print_inner and adusting as needed. This will form the base of future changes to fully convert this to using the value-based API gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print_inner): Rewrite.
2020-03-13Introduce generic_value_print_complexTom Tromey2-2/+30
This adds generic_value_print_complex, a value-based analogue of generic_val_print_complex. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print_complex): New function. (generic_value_print): Use it.
2020-03-13Simplify generic_val_print_floatTom Tromey2-14/+21
This changes generic_val_print_float not to call val_print_scalar_formatted. This lets generic_value_print then use value_print_scalar_formatted instead. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_val_print_float): Don't call val_print_scalar_formatted. (generic_val_print, generic_value_print): Update.
2020-03-13Introduce generic_value_print_charTom Tromey2-3/+36
This adds generic_value_print_char, a value-based analogue of generic_val_print_char. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print_char): New function (generic_value_print): Use it.
2020-03-13Introduce generic_value_print_intTom Tromey2-2/+19
This adds generic_value_print_int, a value-based analogue of generic_val_print_int. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print_int): New function. (generic_value_print): Use it.
2020-03-13Introduce generic_value_print_boolTom Tromey2-2/+35
This adds generic_value_print_bool, a value-based analogue of generic_val_print_bool. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print_bool): New function. (generic_value_print): Use it.
2020-03-13Simplify generic_val_print_funcTom Tromey2-20/+26
This removes the call to val_print_scalar_formatted from generic_val_print_func, allowing generic_value_print to call the value-based variant instead. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_val_print_func): Simplify. (generic_val_print, generic_value_print): Update.
2020-03-13Remove generic_val_print_flagsTom Tromey2-27/+22
This remove generic_val_print_flags in favor of using the value-based API where possible. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_val_print_flags): Remove. (generic_val_print, generic_value_print): Update. (val_print_type_code_flags): Add original_value parameter.
2020-03-13Fix generic_val_print_enum for value-based printingTom Tromey2-15/+22
This removes a call to val_print_scalar_formatted from generic_val_print_enum, preferring to do the work in the callers. This lets generic_value_print use the value-based API. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_val_print): Update. (generic_value_print): Update. * valprint.c (generic_val_print_enum): Don't call val_print_scalar_formatted.
2020-03-13Introduce generic_value_print_ptrTom Tromey2-4/+27
This introduces generic_value_print_ptr, a value-based analogue of generic_val_print_ptr, and changes generic_value_print to use it. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print): Call generic_value_print_ptr. * valprint.c (generic_value_print_ptr): New function.
2020-03-13Initial rewrite of generic_value_printTom Tromey2-3/+106
This rewrites generic_value_print, by copying in the body of generic_val_print and making the needed adjustments. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (generic_value_print): Rewrite.
2020-03-13Convert Pascal to value-based APITom Tromey2-0/+315
This finishes the conversion of Pascal to the value-based API, by introducing two more value-based analogues of existing val-print functions. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * p-valprint.c (pascal_object_print_value_fields) (pascal_object_print_value): New functions.
2020-03-13Rewrite pascal_value_print_innerTom Tromey2-2/+340
This rewrites pascal_value_print_inner, copying in the body of pascal_val_print_inner and adusting as needed. This will form the base of future changes to fully convert this to using the value-based API. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * p-valprint.c (pascal_value_print_inner): Rewrite.
2020-03-13Convert Fortran printing to value-based APITom Tromey2-2/+169
This finishes the conversion of the Fortran printing code to the value-based API. The body of f_val_print is copied into f_value_print_innner, and then modified as needed to use the value API. Note that not all calls must be updated. For example, f77_print_array remains "val-like", because it does not result in any calls to val_print (f77_print_array_1 calls common_val_print, which is nominally value-based). gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * f-valprint.c (f_value_print_innner): Rewrite.
2020-03-13Convert Modula-2 printing to value-based APITom Tromey2-17/+214
This finishes the conversion of Modula-2 printing to the value-based API. It does so by copying the body of m2_val_print into m2_value_print_inner, and then introducing new functions as needed to use the value API. The "val_" API code continues to exist, because it's still possible for it to be called via some paths. This code will all be removed at the end of the series. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * m2-valprint.c (m2_print_unbounded_array): New overload. (m2_print_unbounded_array): Update. (m2_print_array_contents): Take a struct value. (m2_value_print_inner): Rewrite.
2020-03-13Convert D printing to value-based APITom Tromey4-4/+39
As with Rust and Go, it was straightforward to convert D to the value-based API directly. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * d-valprint.c (dynamic_array_type): Call d_value_print_inner. (d_value_print_inner): New function. * d-lang.h (d_value_print_inner): Declare. * d-lang.c (d_language_defn): Use d_value_print_inner.
2020-03-13Convert Go printing to value-based APITom Tromey4-1/+50
This introduces go_value_print_inner, a modified copy of go_val_print. Unlike some of the other languages, Go was straightforward to convert to the value-based API all at once, so this patch takes that approach. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * go-valprint.c (go_value_print_inner): New function. * go-lang.h (go_value_print_inner): Declare. * go-lang.c (go_language_defn): Use go_value_print_inner.
2020-03-13Convert Rust printing to value-based APITom Tromey2-58/+70
For Rust, it was simple to convert the printing code to the value-based API all at once. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * rust-lang.c (val_print_struct, rust_print_enum): Use the value API. (rust_val_print): Rewrite. (rust_value_print_inner): New function, from rust_val_print. (rust_language_defn): Use rust_value_print_inner.
2020-03-13Introduce ada_value_print_innerTom Tromey4-1/+23
This introduces ada_value_print_inner. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * ada-valprint.c (ada_value_print_inner): New function. * ada-lang.h (ada_value_print_inner): Declare. * ada-lang.c (ada_language_defn): Use ada_value_print_inner.
2020-03-13Introduce f_value_print_innnerTom Tromey4-1/+23
This introduces f_value_print_innner. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * f-valprint.c (f_value_print_innner): New function. * f-lang.h (f_value_print_innner): Declare. * f-lang.c (f_language_defn): Use f_value_print_innner.
2020-03-13Introduce pascal_value_print_innerTom Tromey4-1/+25
This introduces pascal_value_print_inner. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * p-valprint.c (pascal_value_print_inner): New function. * p-lang.h (pascal_value_print_inner): Declare. * p-lang.c (pascal_language_defn): Use pascal_value_print_inner.
2020-03-13Introduce m2_value_print_innerTom Tromey4-1/+22
This introduces m2_value_print_inner. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * m2-valprint.c (m2_value_print_inner): New function. * m2-lang.h (m2_value_print_inner): Declare. * m2-lang.c (m2_language_defn): Use m2_value_print_inner.
2020-03-13Introduce c_value_print_innerTom Tromey6-6/+32
This introduces c_value_print_inner, which implements the la_value_print_inner method for the C family of languages. In this patch, it is just a simple wrapper of c_val_print. However, subsequent patches will convert it to use the value API. The transformation is done this way to make each patch easier to review. Future patches will apply this same treatment to other languages as well. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * opencl-lang.c (opencl_language_defn): Use c_value_print_inner. * objc-lang.c (objc_language_defn): Use c_value_print_inner. * c-valprint.c (c_value_print_inner): New function. * c-lang.h (c_value_print_inner): Declare. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Use c_value_print_inner.
2020-03-13Make pascal_object_print_value_fields staticTom Tromey3-9/+14
pascal_object_print_value_fields is only needed in p-valprint.c, so make it static. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * p-valprint.c (pascal_object_print_value_fields): Now static. * p-lang.h (pascal_object_print_value_fields): Don't declare.
2020-03-13Simplify c_val_print_arrayTom Tromey2-6/+5
This slightly simplifies c_val_print_array by moving a variable to a more inner scope and removing a dead assignment. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_val_print_array): Simplify.
2020-03-13Introduce value_print_array_elementsTom Tromey3-0/+135
This introduces value_print_array_elements, which is an analogue of val_print_array_elements that uses the value API. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (value_print_array_elements): New function. * valprint.h (value_print_array_elements): Declare.
2020-03-13Two simple uses of value_print_scalar_formattedTom Tromey3-8/+8
A couple of spots could be easily converted to use value_print_scalar_formatted. This patch makes this change. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * printcmd.c (print_formatted): Use value_print_scalar_formatted. * mips-tdep.c (mips_print_register): Use value_print_scalar_formatted.
2020-03-13Introduce value_print_scalar_formattedTom Tromey3-0/+55
This introduces a value_print_scalar_formatted, which is an analogue of val_print_scalar_formatted that uses the value API. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.h (value_print_scalar_formatted): Declare. * valprint.c (value_print_scalar_formatted): New function.
2020-03-13Introduce generic_value_printTom Tromey3-0/+28
This introduces generic_value_print, which is a value-based analogue to generic_val_print. For now this is unused and simply calls generic_val_print, but subsequent patches will both change this function to work using the value API directly, and convert callers of generic_val_print to call this instead. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.h (generic_value_print): Declare. * valprint.c (generic_value_print): New function.
2020-03-13Introduce la_value_print_innerTom Tromey14-3/+48
The plan for removing val_print is, essentially, to first duplicate printing code as needed to use the value API; and then remove the val_print code. This makes it possible to do the changes incrementally while keeping everything working. This adds a new la_value_print_inner function pointer to struct language_defn. Eventually this will replace la_val_print. This patch also changes printing to prefer this API, when available -- but no language defines it yet. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (do_val_print): Call la_value_print_inner, if available. * rust-lang.c (rust_language_defn): Update. * p-lang.c (pascal_language_defn): Update. * opencl-lang.c (opencl_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * m2-lang.c (m2_language_defn): Update. * language.h (struct language_defn) <la_value_print_inner>: New member. * language.c (unknown_language_defn, auto_language_defn): Update. * go-lang.c (go_language_defn): Update. * f-lang.c (f_language_defn): Update. * d-lang.c (d_language_defn): Update. * c-lang.c (c_language_defn, cplus_language_defn) (asm_language_defn, minimal_language_defn): Update. * ada-lang.c (ada_language_defn): Update.
2020-03-13Use common_val_print in c-valprint.cTom Tromey5-37/+37
This changes c_value_print to call common_val_print. This is more complicated than the usual sort of common_val_print change, due to the handling of RTTI. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * c-valprint.c (c_value_print): Use common_val_print. gdb/testsuite/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * gdb.base/printcmds.exp (test_print_strings): Add regression test. * gdb.base/printcmds.c (charptr): New typedef. (teststring2): New global.
2020-03-13Use common_val_print in cp-valprint.cTom Tromey2-5/+5
This changes a spot in cp-valprint.c to use common_val_print rather than val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * cp-valprint.c (cp_print_static_field): Use common_val_print.
2020-03-13Use common_val_print in f-valprint.cTom Tromey2-8/+8
This changes a couple spots in f-valprint.c to use common_val_print rather than val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * f-valprint.c (f77_print_array_1, f_val_print): Use common_val_print.
2020-03-13Use common_val_print in riscv-tdep.cTom Tromey2-9/+8
This changes some spots in riscv-tdep.c to use common_val_print rather than val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * riscv-tdep.c (riscv_print_one_register_info): Use common_val_print.
2020-03-13Use common_val_print in mi-main.cTom Tromey2-3/+5
This changes a spot in mi-main.c to use common_val_print rather than val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * mi/mi-main.c (output_register): Use common_val_print.
2020-03-13Use common_val_print in infcmd.cTom Tromey2-9/+8
This changes some spots in infcmd.c to use common_val_print (which, despite its name, is a value-based API) rather than val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * infcmd.c (default_print_one_register_info): Use common_val_print.
2020-03-13Introduce common_val_print_checkedTom Tromey4-1/+28
A (much) later patch will remove the call to value_check_printable from common_val_print. This will needed to preserve some details of how optimized-out structures are printed. However, doing this will also break dw2-op-out-param.exp. Making the change causes "bt" to print: However, the test wants to see: ... operand2=<optimized out> That is, a wholly-optimized out structure should not print its fields. So, this patch introduces a new common_val_print_checked, which calls value_check_printable first, and then arranges to use it in the one spot that affects the test suite. I was not completely sure if it would be preferable to change the test. However, I reasoned that, assuming this output was intentional in the first place, in a backtrace space is at a premium and so this is a reasonable approach. In other spots calling common_val_print, this behavior is probably unintended, or at least a "don't care". gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.h (common_val_print_checked): Declare. * valprint.c (common_val_print_checked): New function. * stack.c (print_frame_arg): Use common_val_print_checked.
2020-03-13Refactor val_print and common_val_printTom Tromey2-28/+50
This changes val_print and common_val_print to use a new helper function. A theme in the coming patches is that calls to val_print itself should be removed. This is the first such patch; at the end of the series, we'll remove val_print and simplify do_val_print. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (do_val_print): New function, from val_print. (val_print): Use do_val_print. (common_val_print): Use do_val_print.
2020-03-13Use scoped_value_mark in value_printTom Tromey2-0/+6
Switching the low-level printing to use the value API means we will be using more temporary values. This adds a scoped_value_mark to value_print, so that these intermediates are destroyed in a timely way. gdb/ChangeLog 2020-03-13 Tom Tromey <tom@tromey.com> * valprint.c (value_print): Use scoped_value_mark.
2020-03-13gdb/testsuite: Remove paths and make test names uniqueAndrew Burgess2-7/+18
Removes paths from some test names, and make the test names unique in the gdb.base/break-interp.exp test file. gdb/testsuite/ChangeLog: * gdb.base/break-interp.exp: Use the tail of the filename, not the full path in the test name. (test_ld): Add some with_test_prefix blocks to make test names unique.
2020-03-14Implement NT_NETBSDCORE_LWPSTATUS (NetBSD-Core)Kamil Rytarowski6-3/+29
bfd/ChangeLog: * elf.c (elfcore_grok_netbsd_note): Add support for NT_NETBSDCORE_LWPSTATUS notes. binutils/ChangeLog: * readelf.c (get_netbsd_elfcore_note_type): Add support for NT_NETBSDCORE_LWPSTATUS notes. include/ChangeLog: * elf/common.h (NT_NETBSDCORE_LWPSTATUS): New define.
2020-03-13Register NT_NETBSDCORE_AUXV (NetBSD-Core)Kamil Rytarowski2-0/+5
* elf/common.h (NT_NETBSDCORE_AUXV): New define.
2020-03-13Add support for non-contiguous memory regionsChristophe Lyon46-11/+1186
2020-01-06 Christophe Lyon <christophe.lyon@linaro.org> bfd/ * bfd-in2.h: Regenerate. * section.c (asection): Add already_assigned field. (BFD_FAKE_SECTION): Add default initializer for it. * ecoff.c (bfd_debug_section): Initialize already_assigned field. * elf32-arm.c (arm_build_one_stub): Add support for non_contiguous_regions. * elf32-csky.c (csky_build_one_stub): Likewise. * elf32-hppa.c (hppa_build_one_stub): Likewise. * elf32-m68hc11.c (m68hc11_elf_build_one_stub): Likewise. * elf32-m68hc12.c (m68hc12_elf_build_one_stub): Likewise. * elf32-metag.c (metag_build_one_stub): Likewise. * elf32-nios2.c (nios2_build_one_stub): Likewise. * elf64-ppc.c (ppc_build_one_stub): Likewise. (ppc_size_one_stub): Likewise. * elfnn-aarch64.c (aarch64_build_one_stub): Likewise. * elflink.c (elf_link_input_bfd): Likewise. include/ * bfdlink.h (bfd_link_info): Add non_contiguous_regions and non_contiguous_regions_warnings fields. ld/ * ldlang.c (lang_add_section): Add support for non_contiguous_regions. (size_input_section): Likewise. (lang_size_sections_1): Likewise. (process_insert_statements): Likewise. * ldlex.h (option_values): Add OPTION_NON_CONTIGUOUS_REGIONS and OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS. * lexsup.c (ld_options): Add entries for --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings. (parse_args): Handle it. * NEWS: Add --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings. * ld.texi: Add --enable-non-contiguous-regions and --enable-non-contiguous-regions-warnings documentation. * emultempl/armelf.em (elf32_arm_add_stub_section): Add SEC_LINKER_CREATED flag. * emultempl/xtensaelf.em (ld_build_required_section_dependence): Emit an error when --enable-non-contiguous-regions is used. * testsuite/ld-elf/non-contiguous.d: New. * testsuite/ld-elf/non-contiguous.ld: New. * testsuite/ld-elf/non-contiguous.s: New. * testsuite/ld-arm/arm-elf.exp: Run the new tests. * testsuite/ld-arm/arm-elf/non-contiguous-arm.s: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm2.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm3.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm4.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm4.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm5.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm5.ld: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm6.d: New. * testsuite/ld-arm/arm-elf/non-contiguous-arm6.ld: New. * testsuite/ld-powerpc/powerpc.exp: Run new tests. * testsuite/ld-powerpc/non-contiguous-powerpc.d: New. * testsuite/ld-powerpc/non-contiguous-powerpc.ld: New. * testsuite/ld-powerpc/non-contiguous-powerpc.sd: New. * testsuite/ld-powerpc/non-contiguous-powerpc64.d: New.
2020-03-13x86: Check static link of dynamic objectsH.J. Lu11-4/+90
On Linux/x86, when -static is passed to gcc, gcc passes it to linker before all input files suitable for creating static executable. X86 linker will report error for dynamic input objects if -static is passed at command-line before all input files without --dynamic-linker unless --no-dynamic-linker is used. bfd/ PR ld/24920 * elf-linker-x86.h (elf_linker_x86_params): Add static_before_all_inputs and has_dynamic_linker. * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Report dynamic input objects if -static is passed at command-line before all input files without --dynamic-linker unless --no-dynamic-linker is used. ld/ PR ld/24920 * emulparams/elf32_x86_64.sh: Use static.sh. * emulparams/elf_i386.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * emulparams/static.sh: New file. * emultempl/elf-x86.em: Include "ldlex.h". * testsuite/ld-elf/pr24920.err: New file. * testsuite/ld-elf/linux-x86.exp: Run ld/24920 tests.