Message ID | 20100630160422.3087bdf0.sfr@canb.auug.org.au (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Benjamin Herrenschmidt |
Headers | show |
> Just whitelist these extra compiler generated symbols. > Fixes these errors: [...] I've used an identical patch for almost a year now, so... > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Segher Boessenkool <segher@kernel.crashing.org> You probably also need something similar to http://git.infradead.org/ users/segher/linux.git/commitdiff/ 98194f54cc8e19ecd752bc10e2d19ef94074f502 (note: only build-tested, not run-tested). Segher > --- > arch/powerpc/kernel/prom_init_check.sh | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/ > kernel/prom_init_check.sh > index 1ac136b..9f82f49 100644 > --- a/arch/powerpc/kernel/prom_init_check.sh > +++ b/arch/powerpc/kernel/prom_init_check.sh > @@ -52,12 +52,18 @@ do > if [ "${UNDEF:0:9}" = "_restgpr_" ]; then > OK=1 > fi > + if [ "${UNDEF:0:10}" = "_restgpr0_" ]; then > + OK=1 > + fi > if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then > OK=1 > fi > if [ "${UNDEF:0:9}" = "_savegpr_" ]; then > OK=1 > fi > + if [ "${UNDEF:0:10}" = "_savegpr0_" ]; then > + OK=1 > + fi > if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then > OK=1 > fi > -- > 1.7.1 > > -- > Cheers, > Stephen Rothwell sfr@canb.auug.org.au > http://www.canb.auug.org.au/~sfr/ > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev
Hi Segher, On Thu, 1 Jul 2010 00:16:40 +0200 Segher Boessenkool <segher@kernel.crashing.org> wrote: > > I've used an identical patch for almost a year now, so... > > > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> > Acked-by: Segher Boessenkool <segher@kernel.crashing.org> Thanks. > You probably also need something similar to http://git.infradead.org/ > users/segher/linux.git/commitdiff/ > 98194f54cc8e19ecd752bc10e2d19ef94074f502 > (note: only build-tested, not run-tested). See http://patchwork.ozlabs.org/patch/57379/ submitted yesterday.
>> You probably also need something similar to http://git.infradead.org/ >> users/segher/linux.git/commitdiff/ >> 98194f54cc8e19ecd752bc10e2d19ef94074f502 >> (note: only build-tested, not run-tested). > > See http://patchwork.ozlabs.org/patch/57379/ submitted yesterday. Yeah saw that right after I hit "send" :-) Either it's way more complete than what I did, or way more complex because we still don't link with libgcc :-P Segher
On Thu, 1 Jul 2010 00:50:36 +0200 Segher Boessenkool <segher@kernel.crashing.org> wrote: > > >> You probably also need something similar to http://git.infradead.org/ > >> users/segher/linux.git/commitdiff/ > >> 98194f54cc8e19ecd752bc10e2d19ef94074f502 > >> (note: only build-tested, not run-tested). > > > > See http://patchwork.ozlabs.org/patch/57379/ submitted yesterday. > > Yeah saw that right after I hit "send" :-) Either it's way more > complete than what I did, or way more complex because we still > don't link with libgcc :-P Actually, the 64bit versions of the routines are supplied by the linker, so the vmlinux links fine. But for modules, the final link is actually done by the kernel module loader, thus we need to provide those routines in this case. linking against libgcc would not have helped.
>>> See http://patchwork.ozlabs.org/patch/57379/ submitted yesterday. >> >> Yeah saw that right after I hit "send" :-) Either it's way more >> complete than what I did, or way more complex because we still >> don't link with libgcc :-P > > Actually, the 64bit versions of the routines are supplied by the > linker, > so the vmlinux links fine. But for modules, the final link is > actually > done by the kernel module loader, thus we need to provide those > routines > in this case. linking against libgcc would not have helped. Right, so "more complete" it is :-) I now checked that patch in detail, and it looks good to me. Thank you for tackling this! Segher
diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh index 1ac136b..9f82f49 100644 --- a/arch/powerpc/kernel/prom_init_check.sh +++ b/arch/powerpc/kernel/prom_init_check.sh @@ -52,12 +52,18 @@ do if [ "${UNDEF:0:9}" = "_restgpr_" ]; then OK=1 fi + if [ "${UNDEF:0:10}" = "_restgpr0_" ]; then + OK=1 + fi if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then OK=1 fi if [ "${UNDEF:0:9}" = "_savegpr_" ]; then OK=1 fi + if [ "${UNDEF:0:10}" = "_savegpr0_" ]; then + OK=1 + fi if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then OK=1 fi
Just whitelist these extra compiler generated symbols. Fixes these errors: Error: External symbol '_restgpr0_14' referenced from prom_init.c Error: External symbol '_restgpr0_20' referenced from prom_init.c Error: External symbol '_restgpr0_22' referenced from prom_init.c Error: External symbol '_restgpr0_24' referenced from prom_init.c Error: External symbol '_restgpr0_25' referenced from prom_init.c Error: External symbol '_restgpr0_26' referenced from prom_init.c Error: External symbol '_restgpr0_27' referenced from prom_init.c Error: External symbol '_restgpr0_28' referenced from prom_init.c Error: External symbol '_restgpr0_29' referenced from prom_init.c Error: External symbol '_restgpr0_31' referenced from prom_init.c Error: External symbol '_savegpr0_14' referenced from prom_init.c Error: External symbol '_savegpr0_20' referenced from prom_init.c Error: External symbol '_savegpr0_22' referenced from prom_init.c Error: External symbol '_savegpr0_24' referenced from prom_init.c Error: External symbol '_savegpr0_25' referenced from prom_init.c Error: External symbol '_savegpr0_26' referenced from prom_init.c Error: External symbol '_savegpr0_27' referenced from prom_init.c Error: External symbol '_savegpr0_28' referenced from prom_init.c Error: External symbol '_savegpr0_29' referenced from prom_init.c Error: External symbol '_savegpr0_31' referenced from prom_init.c Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> --- arch/powerpc/kernel/prom_init_check.sh | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)