- Removed oso_readonly and oso_noload section options, it is enough to have just oso_write and oso_load to express possible section states.

git-svn-id: trunk@21825 -
This commit is contained in:
sergei 2012-07-09 12:58:37 +00:00
parent 2638bc01d9
commit 712f5d1c26
3 changed files with 20 additions and 33 deletions

View File

@ -120,11 +120,7 @@ interface
oso_Data, oso_Data,
{ Is loaded into memory } { Is loaded into memory }
oso_load, oso_load,
{ Not loaded into memory } { Writable }
oso_noload,
{ Read only }
oso_readonly,
{ Read/Write }
oso_write, oso_write,
{ Contains executable instructions } { Contains executable instructions }
oso_executable, oso_executable,
@ -908,7 +904,7 @@ implementation
const const
secoptions : array[TAsmSectiontype] of TObjSectionOptions = ([], secoptions : array[TAsmSectiontype] of TObjSectionOptions = ([],
{user} [oso_Data,oso_load,oso_write,oso_keep], {user} [oso_Data,oso_load,oso_write,oso_keep],
{code} [oso_Data,oso_load,oso_readonly,oso_executable,oso_keep], {code} [oso_Data,oso_load,oso_executable,oso_keep],
{Data} [oso_Data,oso_load,oso_write,oso_keep], {Data} [oso_Data,oso_load,oso_write,oso_keep],
{ TODO: Fix sec_rodata be read-only-with-relocs} { TODO: Fix sec_rodata be read-only-with-relocs}
{roData} [oso_Data,oso_load,oso_write,oso_keep], {roData} [oso_Data,oso_load,oso_write,oso_keep],
@ -920,29 +916,29 @@ implementation
,oso_keep ,oso_keep
{$endif FPC_USE_TLS_DIRECTORY} {$endif FPC_USE_TLS_DIRECTORY}
], ],
{pdata} [oso_data,oso_load,oso_readonly {$ifndef x86_64},oso_keep{$endif}], {pdata} [oso_data,oso_load {$ifndef x86_64},oso_keep{$endif}],
{stub} [oso_Data,oso_load,oso_readonly,oso_executable], {stub} [oso_Data,oso_load,oso_executable],
{data_nonlazy} [oso_Data,oso_load,oso_write], {data_nonlazy} [oso_Data,oso_load,oso_write],
{data_lazy} [oso_Data,oso_load,oso_write], {data_lazy} [oso_Data,oso_load,oso_write],
{init_func} [oso_Data,oso_load], {init_func} [oso_Data,oso_load],
{term_func} [oso_Data,oso_load], {term_func} [oso_Data,oso_load],
{stab} [oso_Data,oso_noload,oso_debug], {stab} [oso_Data,oso_debug],
{stabstr} [oso_Data,oso_noload,oso_strings,oso_debug], {stabstr} [oso_Data,oso_strings,oso_debug],
{iData2} [oso_Data,oso_load,oso_write], {iData2} [oso_Data,oso_load,oso_write],
{iData4} [oso_Data,oso_load,oso_write], {iData4} [oso_Data,oso_load,oso_write],
{iData5} [oso_Data,oso_load,oso_write], {iData5} [oso_Data,oso_load,oso_write],
{iData6} [oso_Data,oso_load,oso_write], {iData6} [oso_Data,oso_load,oso_write],
{iData7} [oso_Data,oso_load,oso_write], {iData7} [oso_Data,oso_load,oso_write],
{eData} [oso_Data,oso_load,oso_readonly], {eData} [oso_Data,oso_load],
{eh_frame} [oso_Data,oso_load,oso_readonly], {eh_frame} [oso_Data,oso_load],
{debug_frame} [oso_Data,oso_noload,oso_debug], {debug_frame} [oso_Data,oso_debug],
{debug_info} [oso_Data,oso_noload,oso_debug], {debug_info} [oso_Data,oso_debug],
{debug_line} [oso_Data,oso_noload,oso_debug], {debug_line} [oso_Data,oso_debug],
{debug_abbrev} [oso_Data,oso_noload,oso_debug], {debug_abbrev} [oso_Data,oso_debug],
{fpc} [oso_Data,oso_load,oso_write,oso_keep], {fpc} [oso_Data,oso_load,oso_write,oso_keep],
{toc} [oso_Data,oso_load,oso_readonly], {toc} [oso_Data,oso_load],
{init} [oso_Data,oso_load,oso_readonly,oso_executable,oso_keep], {init} [oso_Data,oso_load,oso_executable,oso_keep],
{fini} [oso_Data,oso_load,oso_readonly,oso_executable,oso_keep], {fini} [oso_Data,oso_load,oso_executable,oso_keep],
{objc_class} [oso_data,oso_load], {objc_class} [oso_data,oso_load],
{objc_meta_class} [oso_data,oso_load], {objc_meta_class} [oso_data,oso_load],
{objc_cat_cls_meth} [oso_data,oso_load], {objc_cat_cls_meth} [oso_data,oso_load],

View File

@ -769,16 +769,11 @@ const pemagic : array[0..3] of byte = (
include(aoptions,oso_debug); include(aoptions,oso_debug);
if flags and PE_SCN_CNT_UNINITIALIZED_DATA=0 then if flags and PE_SCN_CNT_UNINITIALIZED_DATA=0 then
include(aoptions,oso_data); include(aoptions,oso_data);
if (flags and PE_SCN_LNK_REMOVE<>0) or if (flags and (PE_SCN_LNK_REMOVE or PE_SCN_MEM_DISCARDABLE)=0) then
(flags and PE_SCN_MEM_DISCARDABLE<>0) then
include(aoptions,oso_noload)
else
include(aoptions,oso_load); include(aoptions,oso_load);
{ read/write } { read/write }
if flags and PE_SCN_MEM_WRITE<>0 then if flags and PE_SCN_MEM_WRITE<>0 then
include(aoptions,oso_write) include(aoptions,oso_write);
else
include(aoptions,oso_readonly);
{ alignment } { alignment }
alignflag:=flags and PE_SCN_ALIGN_MASK; alignflag:=flags and PE_SCN_ALIGN_MASK;
if alignflag=PE_SCN_ALIGN_64BYTES then if alignflag=PE_SCN_ALIGN_64BYTES then
@ -2336,7 +2331,7 @@ const pemagic : array[0..3] of byte = (
begin begin
idataExeSec:=FindExeSection('.idata'); idataExeSec:=FindExeSection('.idata');
if idataExeSec<>nil then if idataExeSec<>nil then
idataExeSec.SecOptions:=idataExeSec.SecOptions - [oso_write] + [oso_readonly]; idataExeSec.SecOptions:=idataExeSec.SecOptions - [oso_write];
end; end;
{ Section headers } { Section headers }

View File

@ -677,13 +677,9 @@ implementation
include(aoptions,oso_strings); include(aoptions,oso_strings);
{ Section Flags } { Section Flags }
if Ashflags and SHF_ALLOC<>0 then if Ashflags and SHF_ALLOC<>0 then
include(aoptions,oso_load) include(aoptions,oso_load);
else
include(aoptions,oso_noload);
if Ashflags and SHF_WRITE<>0 then if Ashflags and SHF_WRITE<>0 then
include(aoptions,oso_write) include(aoptions,oso_write);
else
include(aoptions,oso_readonly);
if Ashflags and SHF_EXECINSTR<>0 then if Ashflags and SHF_EXECINSTR<>0 then
include(aoptions,oso_executable); include(aoptions,oso_executable);
end; end;