2022-12-08 19:22:07

by Mikhail Zhilkin

[permalink] [raw]
Subject: [PATCH] mtd: parsers: scpart: fix __udivdi3 undefined on mips

This fixes the following compile error on mips architecture with clang
version 16.0.0 reported by the 0-DAY CI Kernel Test Service:
ld.lld: error: undefined symbol: __udivdi3
referenced by scpart.c
mtd/parsers/scpart.o:(scpart_parse) in archive drivers/built-in.a

As a workaround this makes 'offs' a 32-bit type. This is enough, because
the mtd containing partition table practically does not exceed 1 MB. We
can revert this when the [Link] has been resolved.

Link: https://github.com/ClangBuiltLinux/linux/issues/1635
Fixes: 9b78ef0c7997 ("mtd: parsers: add support for Sercomm partitions")
Reported-by: kernel test robot <[email protected]>
Suggested-by: Arnd Bergmann <[email protected]>
Signed-off-by: Mikhail Zhilkin <[email protected]>
---
drivers/mtd/parsers/scpart.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/parsers/scpart.c b/drivers/mtd/parsers/scpart.c
index 02601bb33de4..6e5e11c37078 100644
--- a/drivers/mtd/parsers/scpart.c
+++ b/drivers/mtd/parsers/scpart.c
@@ -50,7 +50,7 @@ static int scpart_scan_partmap(struct mtd_info
*master, loff_t partmap_offs,
int cnt = 0;
int res = 0;
int res2;
- loff_t offs;
+ uint32_t offs;
size_t retlen;
struct sc_part_desc *pdesc = NULL;
struct sc_part_desc *tmpdesc;
--
2.34.1


2022-12-08 21:34:02

by Mikhail Zhilkin

[permalink] [raw]
Subject: Re: [PATCH] mtd: parsers: scpart: fix __udivdi3 undefined on mips

Hi guys,

I'm sorry. I noticed that the patch below is broken. For some time now I can't send patches using git-send-mail since the gmail changed the authentication process and I have to use Thunderbird. The Thunderbird broke the line in the patch.

I've already sent the PATCH v2.

Link:
https://lore.kernel.org/linux-mtd/[email protected]/

Have a nice day!

--
Best regards,
Mikhail

On 12/8/2022 9:59 PM, Mikhail Zhilkin wrote:

> This fixes the following compile error on mips architecture with clang
> version 16.0.0 reported by the 0-DAY CI Kernel Test Service:
> ld.lld: error: undefined symbol: __udivdi3
> referenced by scpart.c
> mtd/parsers/scpart.o:(scpart_parse) in archive drivers/built-in.a
>
> As a workaround this makes 'offs' a 32-bit type. This is enough, because
> the mtd containing partition table practically does not exceed 1 MB. We
> can revert this when the [Link] has been resolved.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/1635
> Fixes: 9b78ef0c7997 ("mtd: parsers: add support for Sercomm partitions")
> Reported-by: kernel test robot <[email protected]>
> Suggested-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Mikhail Zhilkin <[email protected]>
> ---
> drivers/mtd/parsers/scpart.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/parsers/scpart.c b/drivers/mtd/parsers/scpart.c
> index 02601bb33de4..6e5e11c37078 100644
> --- a/drivers/mtd/parsers/scpart.c
> +++ b/drivers/mtd/parsers/scpart.c
> @@ -50,7 +50,7 @@ static int scpart_scan_partmap(struct mtd_info
> *master, loff_t partmap_offs,
> int cnt = 0;
> int res = 0;
> int res2;
> - loff_t offs;
> + uint32_t offs;
> size_t retlen;
> struct sc_part_desc *pdesc = NULL;
> struct sc_part_desc *tmpdesc;