Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"zfs: Unknown symbol __udivmoddi4" with gcc-7 and 32bit #6417

Closed
woffs opened this issue Jul 27, 2017 · 2 comments
Closed

"zfs: Unknown symbol __udivmoddi4" with gcc-7 and 32bit #6417

woffs opened this issue Jul 27, 2017 · 2 comments
Labels
Type: Architecture Indicates an issue is specific to a single processor architecture Type: Building Indicates an issue related to building binaries

Comments

@woffs
Copy link

woffs commented Jul 27, 2017

System information

Type Version/Name
Distribution Name archlinux
Distribution Version
Linux Kernel 4.9.11
Architecture i386
ZFS Version 0.7.0
SPL Version 0.7.0

Describe the problem you're observing

modprobe zfs
causes
zfs: Unknown symbol __udivmoddi4 (err 0)
in dmesg

Describe how to reproduce the problem

compile and install zfs-dkms-git from archlinux-aur on a 32bit system

This is apparently related to gcc-7 on 32bit only.

@behlendorf behlendorf added Type: Architecture Indicates an issue is specific to a single processor architecture Type: Building Indicates an issue related to building binaries labels Jul 28, 2017
@loli10K
Copy link
Contributor

loli10K commented Jul 31, 2017

Illumos is having a similar issue: https://www.illumos.org/issues/8500 (loader: need __divmoddi4 and __udivmoddi4).

We could ship __divmoddi4/__udivmoddi4 with the SPL like it was done for __udivdi3.

@behlendorf
Copy link
Contributor

We could ship __divmoddi4/__udivmoddi4 with the SPL like it was done for __udivdi3.

Yes, that's going to be the cleanest fix. The alternative will be invasive changes to the core ZFS code.

tonyhutter pushed a commit to openzfs/spl that referenced this issue Aug 3, 2017
gcc-7 seems to use __udivmoddi4 for 64-bit division on 32-bit arch. This
patch implement them so we don't get undefined reference error.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: loli10K <[email protected]>
Signed-off-by: Chunwei Chen <[email protected]>
Closes openzfs/zfs#6417
Closes #636
Fabian-Gruenbichler pushed a commit to Fabian-Gruenbichler/spl that referenced this issue Sep 6, 2017
gcc-7 seems to use __udivmoddi4 for 64-bit division on 32-bit arch. This
patch implement them so we don't get undefined reference error.

Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: loli10K <[email protected]>
Signed-off-by: Chunwei Chen <[email protected]>
Closes openzfs/zfs#6417
Closes openzfs#636
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Architecture Indicates an issue is specific to a single processor architecture Type: Building Indicates an issue related to building binaries
Projects
None yet
Development

No branches or pull requests

3 participants