aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldexp.c13
2 files changed, 17 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index a0a0d2b..daba2fd 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-08 Tristan Gingold <gingold@adacore.com>
+
+ * ldexp.c (exp_print_tree): Special case for SEGMENT_START.
+ (exp_print_token): Constify.
+
2012-03-08 Alan Modra <amodra@gmail.com>
PR ld/10340
diff --git a/ld/ldexp.c b/ld/ldexp.c
index bf0e00b..59743ea 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -59,7 +59,7 @@ exp_print_token (token_code_type code, int infix_p)
static const struct
{
token_code_type code;
- char * name;
+ const char * name;
}
table[] =
{
@@ -1145,6 +1145,17 @@ exp_print_tree (etree_type *tree)
case DATA_SEGMENT_ALIGN:
case DATA_SEGMENT_RELRO_END:
function_like = TRUE;
+ break;
+ case SEGMENT_START:
+ /* Special handling because arguments are in reverse order and
+ the segment name is quoted. */
+ exp_print_token (tree->type.node_code, FALSE);
+ fputs (" (\"", config.map_file);
+ exp_print_tree (tree->binary.rhs);
+ fputs ("\", ", config.map_file);
+ exp_print_tree (tree->binary.lhs);
+ fputc (')', config.map_file);
+ return;
}
if (function_like)
{