build regression from c153693: Simplify module TOC handling

Michael Ellerman mpe at ellerman.id.au
Wed Feb 10 10:03:24 AEDT 2016


On Tue, 2016-02-09 at 22:02 +0100, Dinar Valeev wrote:

> On Tue, Feb 9, 2016 at 5:28 PM, Peter Robinson <pbrobinson at gmail.com> wrote:

> > Hi Alan,
> >
> > Your patch for "powerpc: Simplify module TOC handling" is causing the
> > Fedora ppc64le to fail to build with depmod failures. Reverting the
> > commit fixes it for us on rawhide.

> Anton's patch [1] fixes it.
>
> [1] https://build.opensuse.org/package/view_file/Base:System/kmod/depmod-Ignore_PowerPC64_ABIv2_.TOC.symbol.patch

Yep, you need an updated depmod.

Anton sent a patch to linux-modules, reproduced below for the benefit of the
list archive:

depmod: Ignore PowerPC64 ABIv2 .TOC. symbol

The .TOC. symbol on the PowerPC64 ABIv2 identifies the GOT
pointer, similar to how other architectures use _GLOBAL_OFFSET_TABLE_.

This is not a symbol that needs relocation, and should be ignored
by depmod.

---
 tools/depmod.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/depmod.c b/tools/depmod.c
index 6e9bb4d..a2e07c1 100644
--- a/tools/depmod.c
+++ b/tools/depmod.c
@@ -2153,6 +2153,8 @@ static void depmod_add_fake_syms(struct depmod *depmod)
 	depmod_symbol_add(depmod, "__this_module", true, 0, NULL);
 	/* On S390, this is faked up too */
 	depmod_symbol_add(depmod, "_GLOBAL_OFFSET_TABLE_", true, 0, NULL);
+	/* On PowerPC64 ABIv2, .TOC. is more or less _GLOBAL_OFFSET_TABLE_ */
+	depmod_symbol_add(depmod, "TOC.", true, 0, NULL);
 }

 static int depmod_load_symvers(struct depmod *depmod, const char *filename)
--
2.5.0



More information about the Linuxppc-dev mailing list