GCC Compilation problem in HP LINUX server

Andrew Haley aph@redhat.com
Tue Aug 4 15:01:00 GMT 2009


Helge Bahmann wrote:
> On Tue, 4 Aug 2009, gkarthi29 wrote:
>> Still i cannot believe that there is no option is linux compilers to
>> dereference the null pointer as like in AIX and some other HP server.
>> strange. %-|
> 
> There is actually nothing the compiler could do to map something at
> address zero; there might be some funny ELF flag that the linker could
> put into your executable and that is honoured by the run-time loader,
> but I don't know (I doubt it).
> 
> On Linux there you can have the zero page mapped by running your program
> through the following wrapper:
> ---
> #include <linux/personality.h>
> #include <unistd.h>
> 
> main()
> {
>     personality(MMAP_PAGE_ZERO);
>     char *cmd[]={"/path/to/your/broken/app", 0};
>     execv(cmd[0], cmd);
> }
> ---
> This will get you a single page mapped at address zero (depending on the
> brokenness of your app this may not be enough and you have to map more
> than that manually).
> 
> But as already pointed out, better fix the mess.

Indeed.  Even with real memory at address zero, gcc knows that null pointer
accesses can't happen and will delete code in some cases.

Andrew.



More information about the Gcc-help mailing list