summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/deffilep.y18
2 files changed, 22 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 51248e7c7d..b166e4a033 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,9 @@
2010-05-25 Kai Tietz <kai.tietz@onevision.com>
+
+ * deffilep.y (opt_name): Allow leading dot.
+ (dot_name): Likewise.
+ (anylang_id): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Enable by
default auto_import.
(gld${EMULATION_NAME}_handle_option): Warn about v1.
diff --git a/ld/deffilep.y b/ld/deffilep.y
index 1104c49cc8..36214d9fc0 100644
--- a/ld/deffilep.y
+++ b/ld/deffilep.y
@@ -224,6 +224,12 @@ attr:
;
opt_name: ID { $$ = $1; }
+ | '.' ID
+ {
+ char *name = xmalloc (strlen ($2) + 2);
+ sprintf (name, ".%s", $2);
+ $$ = name;
+ }
| ID '.' ID
{
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
@@ -252,6 +258,12 @@ opt_base: BASE '=' NUMBER { $$ = $3;}
;
dot_name: ID { $$ = $1; }
+ | '.' ID
+ {
+ char *name = xmalloc (strlen ($2) + 2);
+ sprintf (name, ".%s", $2);
+ $$ = name;
+ }
| dot_name '.' ID
{
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
@@ -261,6 +273,12 @@ dot_name: ID { $$ = $1; }
;
anylang_id: ID { $$ = $1; }
+ | '.' ID
+ {
+ char *id = xmalloc (strlen ($2) + 2);
+ sprintf (id, ".%s", $2);
+ $$ = id;
+ }
| anylang_id '.' opt_digits opt_id
{
char *id = xmalloc (strlen ($1) + 1 + strlen ($3) + strlen ($4) + 1);