===================================================================
@@ -9392,6 +9392,8 @@ tables, and hence is desirable if it wor
@hook TARGET_WANT_DEBUG_PUB_SECTIONS
+@hook TARGET_FORCE_AT_COMP_DIR
+
@hook TARGET_DELAY_SCHED2
@hook TARGET_DELAY_VARTRACK
===================================================================
@@ -2749,6 +2749,13 @@ DEFHOOKPOD
bool, false)
DEFHOOKPOD
+(force_at_comp_dir,
+ "True if the @code{AT_comp_dir} attribute should be emitted for each \
+ compilation unit. This attribute is required for the darwin linker \
+ to emit debug information.",
+ bool, false)
+
+DEFHOOKPOD
(delay_sched2, "True if sched2 is not to be run at its normal place. \
This usually means it will be run as part of machine-specific reorg.",
bool, false)
===================================================================
@@ -21949,7 +21949,7 @@ dwarf2out_finish (const char *filename)
/* Add the name for the main input file now. We delayed this from
dwarf2out_init to avoid complications with PCH. */
add_name_attribute (comp_unit_die (), remap_debug_filename (filename));
- if (!IS_ABSOLUTE_PATH (filename))
+ if (!IS_ABSOLUTE_PATH (filename) || targetm.force_at_comp_dir)
add_comp_dir_attribute (comp_unit_die ());
else if (get_AT (comp_unit_die (), DW_AT_comp_dir) == NULL)
{
===================================================================
@@ -414,6 +414,8 @@ extern GTY(()) int darwin_ms_struct;
#define TARGET_WANT_DEBUG_PUB_SECTIONS true
+#define TARGET_FORCE_AT_COMP_DIR true
+
/* When generating stabs debugging, use N_BINCL entries. */
#define DBX_USE_BINCL