Thanks. If you dont mind, i will open a bug repor for you and post your
finidings there. If you have anything else, please let me know if i can
assist.

Best regards

2010/9/18 Pavel Pisa <[email protected]>

> Hello all,
>
> I have noticed, that pxefixup does not set IMAGE_SCN_MEM_NOT_PAGED flag
> for read-only data section ".rdata". May it be, that it is problem
> for my own build of tools
>
> 586-mingw32-gcc (GCC) 4.4.2 and
> GNU ld (GNU Binutils) 2.20.51.20100608
>
> I have fixed the problem by preparing modified LD script version
> which collect object files .rdata section into .text section
> for my driver build.
>
> But .rdata is legitimate section and it is automatically
> generated by GCC. I have not found information in Wiki
> or list archives, that there is some way/patch to deal
> with this situation. But if it is allowed, that WDM
> driver binaries contains readonly section then data paging
> could lead to horrible consequences. Possible fix
>
>
> diff --git a/reactos/tools/pefixup.c b/reactos/tools/pefixup.c
> index f908a9a..d6ec1f4 100644
> --- a/reactos/tools/pefixup.c
> +++ b/reactos/tools/pefixup.c
> @@ -381,6 +381,7 @@ int main(int argc, char **argv)
>          if (!strcmp((char*)section_header->Name, ".text") ||
>              !strcmp((char*)section_header->Name, ".data") ||
>              !strcmp((char*)section_header->Name, ".idata") ||
> +             !strcmp((char*)section_header->Name, ".rdata") ||
>              !strcmp((char*)section_header->Name, ".bss"))
>          {
>             section_header->Characteristics |=
> htodl(IMAGE_SCN_MEM_NOT_PAGED);
>
> If .rdata are not allowed or should be used only for pseudo_reloc,
> then the ldscript for kernel code should be provided.
>
>
> Missing flag for .rdata section in objdump ouput
>
> $ i586-mingw32-objdump --headers ul_wdm.sys
> BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in
> section .text
> BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in
> section .data
> BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in
> section .bss
> BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in
> section .idata
>
> ul_wdm.sys:     file format pei-i386
>
> Sections:
> Idx Name          Size      VMA               LMA               File off
>  Algn
>  0 .text         0000cabc  00011000  00011000  00001000  2**2
>                  CONTENTS, ALLOC, LOAD, READONLY, CODE
>  1 .data         000000e8  0001e000  0001e000  0000e000  2**2
>                  CONTENTS, ALLOC, LOAD, DATA
>  2 .rdata        00003c20  0001f000  0001f000  0000f000  2**2
>                  CONTENTS, ALLOC, LOAD, READONLY, DATA
>  3 .bss          00000050  00023000  00023000  00000000  2**2
>                  ALLOC
>  4 .edata        00000033  00024000  00024000  00013000  2**2
>                  CONTENTS, ALLOC, LOAD, READONLY, DATA
>  5 .idata        000008c4  00025000  00025000  00014000  2**2
>                  CONTENTS, ALLOC, LOAD, DATA
>  6 .rsrc         0000035c  00026000  00026000  00015000  2**2
>                  CONTENTS, ALLOC, LOAD, DATA
>  7 .reloc        00000cd4  00027000  00027000  00016000  2**2
>                  CONTENTS, ALLOC, LOAD, READONLY, DATA
>  8 .rossym       0001576d  00028000  00028000  00017000  2**2
>                  CONTENTS, READONLY, NEVER_LOAD, EXCLUDE
>
> _______________________________________________
> Ros-dev mailing list
> [email protected]
> http://www.reactos.org/mailman/listinfo/ros-dev
>
_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to