aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2012-11-06 05:51:17 +0000
committerAlan Modra <amodra@bigpond.net.au>2012-11-06 05:51:17 +0000
commit0fd6ba5f6f11d27b086dcfd6e09152a5da3e2d34 (patch)
treef571ba0ee53aa185571d882838e1432a7146b056
parent1af0a55685a8206d65aa258aed5c2afa5d46aef4 (diff)
downloadbinutils-0fd6ba5f6f11d27b086dcfd6e09152a5da3e2d34.tar.gz
bfd/
* coff-tic4x.c (tic4x_coff0_vec, tic4x_coff0_beh_vec, tic4x_coff1_vec, tic4x_coff1_beh_vec, tic4x_coff2_vec, tic4x_coff2_beh_vec): Allow SEC_CODE and SEC_READONLY in section flags. gas/ * config/tc-tic4x.c: Remove alignment TODO comments. (tic4x_do_align): Enable subseg_text_p test.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/coff-tic4x.c24
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-tic4x.c9
4 files changed, 31 insertions, 14 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ebec0d78d..0f27dab46 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,12 @@
2012-11-06 Alan Modra <amodra@gmail.com>
+ * coff-tic4x.c (tic4x_coff0_vec, tic4x_coff0_beh_vec,
+ tic4x_coff1_vec, tic4x_coff1_beh_vec, tic4x_coff2_vec,
+ tic4x_coff2_beh_vec): Allow SEC_CODE and SEC_READONLY in
+ section flags.
+
+2012-11-06 Alan Modra <amodra@gmail.com>
+
* elf64-ppc.c (struct ppc_link_hash_table): Add dot_toc_dot.
(ppc64_elf_size_stubs): Lookup ".TOC.".
(ppc64_elf_relocate_section): Resolve special symbol ".TOC.".
diff --git a/bfd/coff-tic4x.c b/bfd/coff-tic4x.c
index 5814faf75..c59894a04 100644
--- a/bfd/coff-tic4x.c
+++ b/bfd/coff-tic4x.c
@@ -261,19 +261,31 @@ tic4x_reloc_processing (arelent *relent,
/* TI COFF v0, DOS tools (little-endian headers). */
-CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff0_vec, "coff0-tic4x", HAS_LOAD_PAGE, 0, '_', NULL, & ticoff0_swap_table);
+CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff0_vec, "coff0-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ NULL, &ticoff0_swap_table);
/* TI COFF v0, SPARC tools (big-endian headers). */
-CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff0_beh_vec, "coff0-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff0_vec, & ticoff0_swap_table);
+CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff0_beh_vec, "coff0-beh-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ &tic4x_coff0_vec, &ticoff0_swap_table);
/* TI COFF v1, DOS tools (little-endian headers). */
-CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff1_vec, "coff1-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff0_beh_vec, & ticoff1_swap_table);
+CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff1_vec, "coff1-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ &tic4x_coff0_beh_vec, &ticoff1_swap_table);
/* TI COFF v1, SPARC tools (big-endian headers). */
-CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff1_beh_vec, "coff1-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff1_vec, & ticoff1_swap_table);
+CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff1_beh_vec, "coff1-beh-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ &tic4x_coff1_vec, &ticoff1_swap_table);
/* TI COFF v2, TI DOS tools output (little-endian headers). */
-CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff2_vec, "coff2-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff1_beh_vec, COFF_SWAP_TABLE);
+CREATE_LITTLE_COFF_TARGET_VEC(tic4x_coff2_vec, "coff2-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ &tic4x_coff1_beh_vec, COFF_SWAP_TABLE);
/* TI COFF v2, TI SPARC tools output (big-endian headers). */
-CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff2_beh_vec, "coff2-beh-tic4x", HAS_LOAD_PAGE, 0, '_', &tic4x_coff2_vec, COFF_SWAP_TABLE);
+CREATE_BIGHDR_COFF_TARGET_VEC(tic4x_coff2_beh_vec, "coff2-beh-tic4x",
+ HAS_LOAD_PAGE, SEC_CODE | SEC_READONLY, '_',
+ &tic4x_coff2_vec, COFF_SWAP_TABLE);
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9ad252f61..ad6fcb643 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2012-11-06 Alan Modra <amodra@gmail.com>
+ * config/tc-tic4x.c: Remove alignment TODO comments.
+ (tic4x_do_align): Enable subseg_text_p test.
+
+2012-11-06 Alan Modra <amodra@gmail.com>
+
* config/tc-ppc.c (ppc_elf_adjust_symtab): New function, split out..
(ppc_frob_file_before_adjust): ..from here.
(md_apply_fix): Set BSF_KEEP on .TOC. if not @tocbase.
diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c
index 1764b0bc4..dd21000b6 100644
--- a/gas/config/tc-tic4x.c
+++ b/gas/config/tc-tic4x.c
@@ -27,11 +27,6 @@
o .align cannot handle fill-data-width larger than 0xFF/8-bits. It
should be possible to define a 32-bits pattern.
- o .align fills all section with NOP's when used regardless if has
- been used in .text or .data. (However the .align is primarily
- intended used in .text sections. If you require something else,
- use .align <size>,0x00)
-
o .align: Implement a 'bu' insn if the number of nop's exceeds 4
within the align frag. if(fragsize>4words) insert bu fragend+1
first.
@@ -2966,9 +2961,7 @@ tic4x_do_align (int alignment,
{
if (fill == NULL)
{
- /* FIXME: subseg_text_p tests SEC_CODE which isn't in allowed
- section flags. See bfd/coff-tic4x.c target vecs. */
- if (1 || subseg_text_p (now_seg))
+ if (subseg_text_p (now_seg))
{
char nop[4];