summaryrefslogtreecommitdiffstats
path: root/ld/ld_script_parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ld_script_parser.y')
-rw-r--r--ld/ld_script_parser.y25
1 files changed, 15 insertions, 10 deletions
diff --git a/ld/ld_script_parser.y b/ld/ld_script_parser.y
index d2ffeee..71c9131 100644
--- a/ld/ld_script_parser.y
+++ b/ld/ld_script_parser.y
@@ -34,7 +34,7 @@
#include "ld_path.h"
#include "ld_exp.h"
-ELFTC_VCSID("$Id: ld_script_parser.y 2924 2013-03-17 22:53:36Z kaiwang27 $");
+ELFTC_VCSID("$Id: ld_script_parser.y 3281 2015-12-11 21:39:23Z kaiwang27 $");
struct yy_buffer_state;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
@@ -756,7 +756,10 @@ sections_sub_command
;
output_sections_desc
- : ident output_section_addr_and_type ':'
+ : ident output_section_addr_and_type ':' {
+ /* Remember the name of last output section, needed later for assignment. */
+ ld->ld_scp->lds_base_os_name = $1;
+ }
output_section_lma
output_section_align
output_section_subalign
@@ -772,16 +775,18 @@ output_sections_desc
$$->ldso_name = $1;
$$->ldso_vma = $2->ldl_entry;
$$->ldso_type = $2->ldl_next->ldl_entry;
- $$->ldso_lma = $4;
- $$->ldso_align = $5;
- $$->ldso_subalign = $6;
- $$->ldso_constraint = $7;
+ $$->ldso_lma = $5;
+ $$->ldso_align = $6;
+ $$->ldso_subalign = $7;
+ $$->ldso_constraint = $8;
memcpy(&$$->ldso_c, &ldso_c, sizeof(ldso_c));
- $$->ldso_region = $11;
- $$->ldso_lma_region = $12;
- $$->ldso_phdr = ld_script_list_reverse($13);
- $$->ldso_fill = $14;
+ $$->ldso_region = $12;
+ $$->ldso_lma_region = $13;
+ $$->ldso_phdr = ld_script_list_reverse($14);
+ $$->ldso_fill = $15;
STAILQ_INIT(&ldso_c);
+ ld->ld_scp->lds_base_os_name = 0;
+ ld->ld_scp->lds_last_os_name = $1;
}
;
OpenPOWER on IntegriCloud