PR ld/12356
* ld.texinfo (Miscellaneous Commands): Describe LD_FEATURE.
(Expression Section): Update.
* ld.h (ld_config_type): Add sane_expr.
* ldgram.y (ifile_p1): Add LD_FEATURE.
* ldlex.l (LD_FEATYRE): New.
* ldemul.c (after_parse_default): Delete code handling ld_compatibility.
* ldexp.h (struct ldexp_control): Delete uses_defined.
* ldexp.c: Remove all uses of uses_defined.
(fold_name): Test config.sane_expr rather than ld_compatibility.
(exp_fold_tree_1): Likewise. Adjust handling of assignments
during first phase.
* ldlang.h (ld_compatibility): Delete.
(lang_ld_feature): Declare.
* ldlang.c (ld_compatibility): Delete.
(open_input_bfds): Only handle assignments for --defsym.
(lang_ld_feature): New function.
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 5850fcb..9d4d41f 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -469,7 +469,6 @@
extern lang_statement_list_type file_chain;
extern lang_statement_list_type input_file_chain;
-extern int ld_compatibility;
extern int lang_statement_iteration;
extern bfd_boolean missing_file;
@@ -651,4 +650,7 @@
ldlang_override_segment_assignment
(struct bfd_link_info *, bfd *, asection *, asection *, bfd_boolean);
+extern void
+lang_ld_feature (char *);
+
#endif