Re: [PATCH 05/12] m68k: move exports to definitions

From: Geert Uytterhoeven
Date: Mon Feb 01 2016 - 10:32:43 EST


Hi Al,

On Mon, Feb 1, 2016 at 3:53 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Mon, Feb 01, 2016 at 02:30:16PM +0100, Geert Uytterhoeven wrote:
>> The kernel has all the *di3 variants:
>>
>> 002eae2c T __ashldi3
>> 002eae70 T __ashrdi3
>> 002eaebc T __lshrdi3
>> 002eaf00 T __muldi3
>> 0038a6d0 R __ksymtab___ashldi3
>> 0038a6d8 R __ksymtab___ashrdi3
>> 0038ab68 R __ksymtab___lshrdi3
>> 0038ab90 R __ksymtab___muldi3
>> 003a8a5a r __kstrtab___ashldi3
>> 003a8a64 r __kstrtab___ashrdi3
>> 003a8a6e r __kstrtab___lshrdi3
>> 003a8a78 r __kstrtab___muldi3
>>
>> Hence the *si3 are missing:
>>
>> __divsi3
>> __modsi3
>> __mulsi3
>> __udivsi3
>> __umodsi3
>
> Does your .config have CPU_HAS_NO_MULDIV64? Because otherwise these objects
> won't be built and their exports had been conditional on that as well:
>
> #if defined(CONFIG_CPU_HAS_NO_MULDIV64)
> /*
> * Simpler 68k and ColdFire parts also need a few other gcc functions.
> */
> extern long long __divsi3(long long, long long);
> extern long long __modsi3(long long, long long);
> extern long long __mulsi3(long long, long long);
> extern long long __udivsi3(long long, long long);
> extern long long __umodsi3(long long, long long);
>
> EXPORT_SYMBOL(__divsi3);
> EXPORT_SYMBOL(__modsi3);
> EXPORT_SYMBOL(__mulsi3);
> EXPORT_SYMBOL(__udivsi3);
> EXPORT_SYMBOL(__umodsi3);
> #endif

Oh, I hadn't actually noticed that dependency.
No, CPU_HAS_NO_MULDIV64 is not set, as I handle the parts with MMU only.

> is what we have in mainline m68k_ksyms.c. Neither allmodconfig, nor any of
> defconfigs have it. And on a coldfire build they are built and exported as
> expected:

[...]

Then I assume everything is OK. Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds