mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 21:09:24 +02:00
- 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:
parent
2638bc01d9
commit
712f5d1c26
@ -120,11 +120,7 @@ interface
|
||||
oso_Data,
|
||||
{ Is loaded into memory }
|
||||
oso_load,
|
||||
{ Not loaded into memory }
|
||||
oso_noload,
|
||||
{ Read only }
|
||||
oso_readonly,
|
||||
{ Read/Write }
|
||||
{ Writable }
|
||||
oso_write,
|
||||
{ Contains executable instructions }
|
||||
oso_executable,
|
||||
@ -908,7 +904,7 @@ implementation
|
||||
const
|
||||
secoptions : array[TAsmSectiontype] of TObjSectionOptions = ([],
|
||||
{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],
|
||||
{ TODO: Fix sec_rodata be read-only-with-relocs}
|
||||
{roData} [oso_Data,oso_load,oso_write,oso_keep],
|
||||
@ -920,29 +916,29 @@ implementation
|
||||
,oso_keep
|
||||
{$endif FPC_USE_TLS_DIRECTORY}
|
||||
],
|
||||
{pdata} [oso_data,oso_load,oso_readonly {$ifndef x86_64},oso_keep{$endif}],
|
||||
{stub} [oso_Data,oso_load,oso_readonly,oso_executable],
|
||||
{pdata} [oso_data,oso_load {$ifndef x86_64},oso_keep{$endif}],
|
||||
{stub} [oso_Data,oso_load,oso_executable],
|
||||
{data_nonlazy} [oso_Data,oso_load,oso_write],
|
||||
{data_lazy} [oso_Data,oso_load,oso_write],
|
||||
{init_func} [oso_Data,oso_load],
|
||||
{term_func} [oso_Data,oso_load],
|
||||
{stab} [oso_Data,oso_noload,oso_debug],
|
||||
{stabstr} [oso_Data,oso_noload,oso_strings,oso_debug],
|
||||
{stab} [oso_Data,oso_debug],
|
||||
{stabstr} [oso_Data,oso_strings,oso_debug],
|
||||
{iData2} [oso_Data,oso_load,oso_write],
|
||||
{iData4} [oso_Data,oso_load,oso_write],
|
||||
{iData5} [oso_Data,oso_load,oso_write],
|
||||
{iData6} [oso_Data,oso_load,oso_write],
|
||||
{iData7} [oso_Data,oso_load,oso_write],
|
||||
{eData} [oso_Data,oso_load,oso_readonly],
|
||||
{eh_frame} [oso_Data,oso_load,oso_readonly],
|
||||
{debug_frame} [oso_Data,oso_noload,oso_debug],
|
||||
{debug_info} [oso_Data,oso_noload,oso_debug],
|
||||
{debug_line} [oso_Data,oso_noload,oso_debug],
|
||||
{debug_abbrev} [oso_Data,oso_noload,oso_debug],
|
||||
{eData} [oso_Data,oso_load],
|
||||
{eh_frame} [oso_Data,oso_load],
|
||||
{debug_frame} [oso_Data,oso_debug],
|
||||
{debug_info} [oso_Data,oso_debug],
|
||||
{debug_line} [oso_Data,oso_debug],
|
||||
{debug_abbrev} [oso_Data,oso_debug],
|
||||
{fpc} [oso_Data,oso_load,oso_write,oso_keep],
|
||||
{toc} [oso_Data,oso_load,oso_readonly],
|
||||
{init} [oso_Data,oso_load,oso_readonly,oso_executable,oso_keep],
|
||||
{fini} [oso_Data,oso_load,oso_readonly,oso_executable,oso_keep],
|
||||
{toc} [oso_Data,oso_load],
|
||||
{init} [oso_Data,oso_load,oso_executable,oso_keep],
|
||||
{fini} [oso_Data,oso_load,oso_executable,oso_keep],
|
||||
{objc_class} [oso_data,oso_load],
|
||||
{objc_meta_class} [oso_data,oso_load],
|
||||
{objc_cat_cls_meth} [oso_data,oso_load],
|
||||
|
@ -769,16 +769,11 @@ const pemagic : array[0..3] of byte = (
|
||||
include(aoptions,oso_debug);
|
||||
if flags and PE_SCN_CNT_UNINITIALIZED_DATA=0 then
|
||||
include(aoptions,oso_data);
|
||||
if (flags and PE_SCN_LNK_REMOVE<>0) or
|
||||
(flags and PE_SCN_MEM_DISCARDABLE<>0) then
|
||||
include(aoptions,oso_noload)
|
||||
else
|
||||
if (flags and (PE_SCN_LNK_REMOVE or PE_SCN_MEM_DISCARDABLE)=0) then
|
||||
include(aoptions,oso_load);
|
||||
{ read/write }
|
||||
if flags and PE_SCN_MEM_WRITE<>0 then
|
||||
include(aoptions,oso_write)
|
||||
else
|
||||
include(aoptions,oso_readonly);
|
||||
include(aoptions,oso_write);
|
||||
{ alignment }
|
||||
alignflag:=flags and PE_SCN_ALIGN_MASK;
|
||||
if alignflag=PE_SCN_ALIGN_64BYTES then
|
||||
@ -2336,7 +2331,7 @@ const pemagic : array[0..3] of byte = (
|
||||
begin
|
||||
idataExeSec:=FindExeSection('.idata');
|
||||
if idataExeSec<>nil then
|
||||
idataExeSec.SecOptions:=idataExeSec.SecOptions - [oso_write] + [oso_readonly];
|
||||
idataExeSec.SecOptions:=idataExeSec.SecOptions - [oso_write];
|
||||
end;
|
||||
|
||||
{ Section headers }
|
||||
|
@ -677,13 +677,9 @@ implementation
|
||||
include(aoptions,oso_strings);
|
||||
{ Section Flags }
|
||||
if Ashflags and SHF_ALLOC<>0 then
|
||||
include(aoptions,oso_load)
|
||||
else
|
||||
include(aoptions,oso_noload);
|
||||
include(aoptions,oso_load);
|
||||
if Ashflags and SHF_WRITE<>0 then
|
||||
include(aoptions,oso_write)
|
||||
else
|
||||
include(aoptions,oso_readonly);
|
||||
include(aoptions,oso_write);
|
||||
if Ashflags and SHF_EXECINSTR<>0 then
|
||||
include(aoptions,oso_executable);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user