From 18498503409294889b1a7e9a5b5d53a959c6c915 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 6 Nov 2012 05:51:18 +0000 Subject: [PATCH] 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. --- bfd/ChangeLog | 7 +++++++ bfd/coff-tic4x.c | 24 ++++++++++++++++++------ gas/ChangeLog | 5 +++++ gas/config/tc-tic4x.c | 9 +-------- 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ebec0d78dbf..0f27dab4618 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2012-11-06 Alan Modra + + * 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 * elf64-ppc.c (struct ppc_link_hash_table): Add dot_toc_dot. diff --git a/bfd/coff-tic4x.c b/bfd/coff-tic4x.c index 5814faf7588..c59894a0445 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 9ad252f6192..ad6fcb64379 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2012-11-06 Alan Modra + + * config/tc-tic4x.c: Remove alignment TODO comments. + (tic4x_do_align): Enable subseg_text_p test. + 2012-11-06 Alan Modra * config/tc-ppc.c (ppc_elf_adjust_symtab): New function, split out.. diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c index 1764b0bc43e..dd21000b609 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 ,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]; -- 2.30.2