From 4942323e5d6448127ced7c509ef4179bd509961d Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 6 Aug 2010 12:16:44 +0930 Subject: [PATCH] invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable and -mrelocatable-lib description. * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable and -mrelocatable-lib description. From-SVN: r162929 --- gcc/ChangeLog | 5 +++++ gcc/doc/invoke.texi | 23 ++++++++++++++--------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6b5099cbe4..664079203b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-08-06 Alan Modra + + * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable + and -mrelocatable-lib description. + 2010-08-05 Bernd Schmidt From Martin Thuresson diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index fb33b728e93..08d5f5f6132 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -15418,20 +15418,25 @@ unaligned memory references will be handled by the system. @itemx -mno-relocatable @opindex mrelocatable @opindex mno-relocatable -On embedded PowerPC systems generate code that allows (does not allow) -the program to be relocated to a different address at runtime. If you -use @option{-mrelocatable} on any module, all objects linked together must -be compiled with @option{-mrelocatable} or @option{-mrelocatable-lib}. +Generate code that allows (does not allow) a static executable to be +relocated to a different address at runtime. A simple embedded +PowerPC system loader should relocate the entire contents of +@code{.got2} and 4-byte locations listed in the @code{.fixup} section, +a table of 32-bit addresses generated by this option. For this to +work, all objects linked together must be compiled with +@option{-mrelocatable} or @option{-mrelocatable-lib}. +@option{-mrelocatable} code aligns the stack to an 8 byte boundary. @item -mrelocatable-lib @itemx -mno-relocatable-lib @opindex mrelocatable-lib @opindex mno-relocatable-lib -On embedded PowerPC systems generate code that allows (does not allow) -the program to be relocated to a different address at runtime. Modules -compiled with @option{-mrelocatable-lib} can be linked with either modules -compiled without @option{-mrelocatable} and @option{-mrelocatable-lib} or -with modules compiled with the @option{-mrelocatable} options. +Like @option{-mrelocatable}, @option{-mrelocatable-lib} generates a +@code{.fixup} section to allow static executables to be relocated at +runtime, but @option{-mrelocatable-lib} does not use the smaller stack +alignment of @option{-mrelocatable}. Objects compiled with +@option{-mrelocatable-lib} may be linked with objects compiled with +any combination of the @option{-mrelocatable} options. @item -mno-toc @itemx -mtoc