[PATCH] fs/erofs: Fix build for m68k

Kuan-Wei Chiu visitorckw at gmail.com
Sat Apr 25 18:12:27 CEST 2026


Hi Daniel,

On Sun, Apr 19, 2026 at 07:01:23PM +0900, Daniel Palmer wrote:
> Currently the use of roundup() causes GCC to emit a reference
> to __udivdi3() on m68k and we don't have that:
> 
> /usr/bin/m68k-linux-gnu-ld.bfd: fs/erofs/data.o: in function `erofs_map_blocks':
> u-boot/fs/erofs/data.c:81:(.text.erofs_map_blocks+0x126): undefined reference to `__udivdi3'
> /usr/bin/m68k-linux-gnu-ld.bfd: u-boot/fs/erofs/data.c:81:(.text.erofs_map_blocks+0x458): undefined reference to `__udivdi3'
> 
> We could add it but since unit is 4 or 8 we can actually just
> switch the code to use round_up() instead and not output
> __udivdi3() in the first place.
> 
> Signed-off-by: Daniel Palmer <daniel at thingy.jp>
> ---
>  fs/erofs/data.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/erofs/data.c b/fs/erofs/data.c
> index b58ec6fcc666..95873846f62d 100644
> --- a/fs/erofs/data.c
> +++ b/fs/erofs/data.c
> @@ -78,7 +78,7 @@ int erofs_map_blocks(struct erofs_inode *inode,
>  		unit = EROFS_BLOCK_MAP_ENTRY_SIZE;	/* block map */
>  
>  	chunknr = map->m_la >> vi->u.chunkbits;
> -	pos = roundup(iloc(vi->nid) + vi->inode_isize +
> +	pos = round_up(iloc(vi->nid) + vi->inode_isize +
>  		      vi->xattr_isize, unit) + unit * chunknr;

Since round_up(x, y) requires y to be a power of two, I was wondering
if it might be worth adding an assertion here to ensure this?

Additionally, a bit further down in erofs_map_blocks(), there is
another instance where roundup() is used. I haven't checked the
generated assembly, but I'm guessing it didn't fail because gcc was
smart enough to optimize it into a right shift? Since erofs_blksiz() is
defined as (1u << sbi.blkszbits), it is also guaranteed to be a power
of two. Perhaps we should replace that one with round_up() as well, for
safety and consistency?

Regards,
Kuan-Wei

>  
>  	err = erofs_blk_read(buf, erofs_blknr(pos), 1);
> -- 
> 2.53.0
> 


More information about the U-Boot mailing list