Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 659488

Summary: net-misc/dahdi-2.11.1-r1 cc1: error: -mcmodel not supported in this configuration
Product: Gentoo Linux Reporter: ernsteiswuerfel <erhard_f>
Component: Current packagesAssignee: Jaco Kroon <jaco>
Status: RESOLVED FIXED    
Severity: normal CC: chainsaw, doug-gentoo, jstein, proxy-maint
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: PPC   
OS: Linux   
URL: https://github.com/gentoo/gentoo/pull/15154
See Also: https://github.com/gentoo/gentoo/pull/15154
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info
build.log
build.log (3.1.0, ppc)
emerge --info (3.1.0, ppc)
div_s64-for-32-bit-arches.patch
build.log (3.1.0-r1 + patch, ppc)
build.log (3.1.0-r1, ppc)
Patch for 32-bit build, against ebuild 3.1.0-r1
Patch for 32-bit build, against ebuild 3.1.0-r1
build.log (3.1.0-r1 , ppc)
build.log (3.1.0-r1 + patch, ppc)

Description ernsteiswuerfel archtester 2018-06-28 13:42:41 UTC
Created attachment 537536 [details]
emerge --info

cc1: error: -mcmodel not supported in this configuration
make[3]: *** [scripts/Makefile.build:313: /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/ap400/ap400_drv.o] Error 1
make[2]: *** [scripts/Makefile.build:559: /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/ap400] Error 2
make[2]: *** Waiting for unfinished jobs....
cc1: error: -mcmodel not supported in this configuration
  powerpc-unknown-linux-gnu-gcc -Wp,-MD,/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/.oct6100_channel.o.d  -nostdinc -isystem /usr/lib/gcc/powerpc-unknown-linux-gnu/7.3.0/include -I./arch/powerpc/include -I./arch/powerpc/include/generated  -I./include -I./arch/powerpc/include/uapi -I./arch/powerpc/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Iarch/powerpc -DHAVE_AS_ATHIGH=1 -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -DCC_HAVE_ASM_GOTO -msoft-float -pipe -Iarch/powerpc -mtraceback=no -mabi=elfv1 -mcall-aixdesc -mcmodel=medium -mno-pointers-to-nested-functions -mtune=power7 -mcpu=power5 -mno-altivec -mno-vsx -mno-spe -mspe=no -funit-at-a-time -fno-dwarf2-cfi-asm -mno-string -Wa,-maltivec -Wa,-mpower4 -mabi=elfv1 -mcall-aixdesc -mbig-endian -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-int-in-bool-context -O2 --param=allow-store-data-races=0 -fplugin=./scripts/gcc-plugins/structleak_plugin.so -fplugin-arg-structleak_plugin-byref-all -DSTRUCTLEAK_PLUGIN -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -Wno-unused-const-variable -fomit-frame-pointer -fno-var-tracking-assignments -gsplit-dwarf -gdwarf-4 -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/.. -Wno-undef -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/include -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api  -DMODULE -mcmodel=large  -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/include -I/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi -DHAVE_WAIT_FOR_COMPLETION_TIMEOUT=1 -DKBUILD_BASENAME='"oct6100_channel"' -DKBUILD_MODNAME='"oct612x"' -c -o /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c
make[3]: *** [scripts/Makefile.build:312: /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o] Error 1
make[3]: *** Waiting for unfinished jobs....
cc1: error: -mcmodel not supported in this configuration
make[3]: *** [scripts/Makefile.build:312: /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o] Error 1
make[2]: *** [scripts/Makefile.build:559: /var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi/oct612x] Error 2
make[1]: *** [Makefile:1571: _module_/var/tmp/portage/net-misc/dahdi-2.11.1-r1/work/dahdi-linux-2.11.1/drivers/dahdi] Error 2
make[1]: Leaving directory '/usr/src/linux-4.17.2-gentoo'
make: *** [Makefile:74: modules] Error 2
 * ERROR: net-misc/dahdi-2.11.1-r1::gentoo failed (compile phase):
Comment 1 ernsteiswuerfel archtester 2018-06-28 13:44:02 UTC
Created attachment 537538 [details]
build.log
Comment 2 Jaco Kroon 2020-01-18 14:28:48 UTC
Hi Erhard,

Can you please check if the new dahdi 3.1.0 package solves your issue?

-mcmodel looks more like a GCC issue than a dahdi issue, but if it's still an issue I'll get the toolchain people involved to figure this one out.

In the meantime, 2.11 can no longer build against current kernels, as soon as 3.1.0 is stable I'll be removing it.

Jaco
Comment 3 ernsteiswuerfel archtester 2020-01-18 19:43:42 UTC
(In reply to Jaco Kroon from comment #2)
> Hi Erhard,
> 
> Can you please check if the new dahdi 3.1.0 package solves your issue?
On ppc 3.1.0 errors out due to another reason:

[...]
make -f ./scripts/Makefile.modpost
/var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/Kbuild:117: CPU Architecture 'powerpc' does not support VPMADT032 or HPEC. Skipping.
  sed 's/ko$/o/' /var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/modules.order | scripts/mod/modpost   -i ./Module.symvers -I /var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers  -o /var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers     -s -T - vmlinux
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__udivdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__moddi3" [/var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
make[1]: *** [Makefile:1609: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-5.4.13-gentoo'
make: *** [Makefile:74: modules] Error 2
 * ERROR: net-misc/dahdi-3.1.0::gentoo failed (compile phase):
 *   emake failed
[...]

Whereas on ppc64 (Talos II) 3.1.0 builds ok.
Comment 4 ernsteiswuerfel archtester 2020-01-18 19:44:46 UTC
Created attachment 603694 [details]
build.log (3.1.0, ppc)
Comment 5 ernsteiswuerfel archtester 2020-01-18 19:46:11 UTC
Created attachment 603696 [details]
emerge --info (3.1.0, ppc)

Portage 2.3.79 (python 3.6.9-final-0, default/linux/powerpc/ppc32/17.0/desktop/gnome/systemd, gcc-9.2.0, glibc-2.29-r7, 5.4.13-gentoo-PowerMacG4 ppc)
=================================================================
System uname: Linux-5.4.13-gentoo-PowerMacG4-ppc-7455,_altivec_supported-with-gentoo-2.6
KiB Mem:     2053972 total,    164196 free
KiB Swap:   17039352 total,  17038840 free
Timestamp of repository gentoo: Sat, 18 Jan 2020 12:00:01 +0000
Head commit of repository gentoo: 644cd5f7c83c0febf430316ab4975aa8a43c6d8e
sh bash 4.4_p23-r1
ld GNU ld (Gentoo 2.32 p2) 2.32.0
distcc 3.3.3 powerpc-unknown-linux-gnu [enabled]
app-shells/bash:          4.4_p23-r1::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17::gentoo, 3.6.9::gentoo
dev-util/cmake:           3.14.6::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.11.6-r3::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils:       2.32-r1::gentoo
sys-devel/gcc:            9.2.0-r2::gentoo
sys-devel/gcc-config:     2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://supah/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: no
    sync-rsync-verify-jobs: 2

localrepo
    location: /usr/local/portage
    masters: gentoo

libressl
    location: /var/lib/layman/libressl
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/repo/proj/libressl.git
    masters: gentoo
    priority: 50

wjn-overlay
    location: /var/lib/layman/wjn-overlay
    sync-type: laymansync
    sync-uri: https://bitbucket.org/wjn/wjn-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="ppc"
ACCEPT_LICENSE="*"
CBUILD="powerpc-unknown-linux-gnu"
CFLAGS="-Os -mcpu=7450 -pipe"
CHOST="powerpc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-Os -mcpu=7450 -pipe"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-Os -mcpu=7450 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs clean-logs config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms split-log strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-Os -mcpu=7450 -pipe"
GENTOO_MIRRORS="ftp://ftp.gwdg.de/pub/linux/gentoo ftp://ftp.fi.muni.cz/pub/linux/gentoo"
LANG="de_DE.utf8"
LC_ALL="C"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de en de_DE"
MAKEOPTS="-j26 -l3"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-2"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl alsa altivec berkdb big-endian bluetooth branding bzip2 cairo caja cdda cdr cli colord crypt cryptsetup css cups custom-cflags custom-optimization cxx dav1d dbus djvu dri dts dvd dvdr eds emboss enca encode evo exif flac fortran gdbm gif gles2 gstreamer gtk gtk3 iconv icu introspection ipv6 jpeg lcms libnotify libressl libsecret lm-sensors lzma mad mng modemmanager mp3 mp4 mpeg mtp ncurses networkmanager nls nptl ogg opengl openmp opus pam pango pcre pdf png policykit ppc ppds pulseaudio qt5 readline sdl seccomp smp spell split-usr ssl startup-notification svg system-icu system-sqlite systemd tcpd threads tiff tracker truetype udev udisks unicode upower usb vorbis vpx webp wxwidgets x264 xattr xcb xml xmp xv xvid zlib zstd" ABI_PPC="32" ADA_TARGET="gnat_2018" ALSA_CARDS="aoa aoa-fabric-layout aoa-onyx aoa-soundbus aoa-soundbus-i2s aoa-tas aoa-toonie powermac usb-audio via82xx" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_PPC="altivec" CURL_SSL="libressl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="ieee1275" INPUT_DEVICES="evdev" KERNEL="linux" L10N="de en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="AMDGPU BPF" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" RUBY_TARGETS="ruby24" SANE_BACKENDS="genesys" USERLAND="GNU" VIDEO_CARDS="fbdev radeon r300" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS
Comment 6 Jaco Kroon 2020-01-28 20:38:15 UTC
Hi,

Thanks for the feedback.  Unfortunately I don't have PPC.  Could you perhaps assist with the change in ./configure to make this work?

https://stackoverflow.com/questions/34532528/undefined-reference-to-divdi3

So it looks like somehow gcc is including libgcc related functions in the kernel compile.  Presumably due to linking 64-bit data types.  Looks like other powerpc users have run into this in-kernel, here was one of the fixes:

https://lists.freedesktop.org/archives/dri-devel/2013-August/042668.html

Any chance you could check for me for divisions in those files involving 64-bit data types and checking if similar fixes to those solves your issue?

Eg, in the xpp_usb.c file:

 885     i = usec / USEC_BUCKET;

will then become i = div64_s64(usec, USEC_BUCKET)

If that sorts it we need to file a bug upstream and submit a patch (which I'll carry local until they merge it upstream).
Comment 7 Jaco Kroon 2020-03-13 13:42:33 UTC
Hi Erhard,

I'm re-assigning to you because due to the lack of PPC I have no way to test the proposed change as per 2020/01/28.

If you can please work through that and let me know, and if possible, provide me a diff please.

If you need help with doing this, please let me know so we can make a plan.  Even if we have to back-and-forth to test various patches, I just think it would be simpler for you to "ebuild ... unpack", copy the workdir, then keep on editing sources until it builds properly, then diff that for us please.

Kind Regards,
Jaco
Comment 8 ernsteiswuerfel archtester 2020-03-13 13:47:05 UTC
(In reply to Jaco Kroon from comment #7)
> Hi Erhard,
> 
> I'm re-assigning to you because due to the lack of PPC I have no way to test
> the proposed change as per 2020/01/28.
Ah, sorry, totally forgot about this bug!

No prob, have some time to look into it on the weekend. Thanks for the hints and I will report back here.
Comment 9 Jaco Kroon 2020-03-13 14:27:22 UTC
No worries.  Please re-assign back to myself when ready.  Appreciate the help.
Comment 10 ernsteiswuerfel archtester 2020-03-28 21:05:08 UTC
I see you submitted a PR now. But I can't find the patch behind the PR to test it. Got a link?
Comment 11 Jaco Kroon 2020-03-28 21:23:53 UTC
Created attachment 626596 [details, diff]
div_s64-for-32-bit-arches.patch

Hi,

Attached the patch to fix this issue.  The PR fixes a few others too.  So I figured I'd include this and hopefully it closes this too.

Kind Regards,
Jaco
Comment 12 ernsteiswuerfel archtester 2020-03-28 22:04:20 UTC
(In reply to Jaco Kroon from comment #11)
> Created attachment 626596 [details, diff] [details, diff]
> div_s64-for-32-bit-arches.patch
> 
> Hi,
> 
> Attached the patch to fix this issue.  The PR fixes a few others too.  So I
> figured I'd include this and hopefully it closes this too.
> 
> Kind Regards,
> Jaco
Hi Jaco!

Sadly ths patch did not seem to have any influence on the ppc issue. Looks like the build errors with the same error messages as before.
Comment 13 ernsteiswuerfel archtester 2020-03-28 22:04:55 UTC
Created attachment 626616 [details]
build.log (3.1.0-r1 + patch, ppc)
Comment 14 Jaco Kroon 2020-03-30 13:06:21 UTC
Exactly the same?

It just means there are more divisions that I missed.  Can you confirm that it's still exactly those two modules that's a problem?  Or has this varied somehow by magically just becoming one?
Comment 15 ernsteiswuerfel archtester 2020-03-30 23:05:05 UTC
(In reply to Jaco Kroon from comment #14)
> Exactly the same?
> 
> It just means there are more divisions that I missed.  Can you confirm that
> it's still exactly those two modules that's a problem?  Or has this varied
> somehow by magically just becoming one?
Your assumption is correct. Thanks for pointing out!

Without patch:
[...]
/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Kbuild:125: CPU Architecture 'powerpc' does not support VPMADT032 or HPEC. Skipping.
  sed 's/ko$/o/' /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/modules.order | scripts/mod/modpost   -i ./Module.symvers -I /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers  -o /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers     -s -T - vmlinux
ERROR: "__udivdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/opvxd115/opvxd115.ko] undefined!
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__udivdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp_usb.ko] undefined!
ERROR: "__moddi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!

With patch:
[...]
/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Kbuild:125: CPU Architecture 'powerpc' does not support VPMADT032 or HPEC. Skipping.
  sed 's/ko$/o/' /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/modules.order | scripts/mod/modpost   -i ./Module.symvers -I /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers  -o /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers     -s -T - vmlinux
ERROR: "__udivdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/opvxd115/opvxd115.ko] undefined!
ERROR: "__moddi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!

So, one "__udivdi3" and one "__divdi3" error less.
Comment 16 Larry the Git Cow gentoo-dev 2020-04-09 12:38:04 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=597ea5a7c16cb7b3ead096d54f78c9369cd41e7b

commit 597ea5a7c16cb7b3ead096d54f78c9369cd41e7b
Author:     Jaco Kroon <jaco@uls.co.za>
AuthorDate: 2020-03-28 19:56:25 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2020-04-09 12:37:45 +0000

    net-misc/dahdi: build fixes.
    
    There were still some cases where specific kernel versions wouldn't
    compile.  This now compiles on all versions that I've got.
    
    Consolidated the patches for non-digium hardware (which is where most of
    the issues were).
    
    Added a patch for dealing with 64-bit division on PPC (works on amd64),
    untested on ppc where it's required.  Will also affect ARM now - as per
    newest keyword request.
    
    Fix for systems without CONFIG_PCI.
    
    Nuke empty RDEPEND= and DEPEND= lines.
    
    Bug: https://bugs.gentoo.org/659488
    Bug: https://bugs.gentoo.org/716426
    Closes: https://bugs.gentoo.org/716226
    Closes: https://bugs.gentoo.org/716468
    Package-Manager: Portage-2.3.89, Repoman-2.3.20
    Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    Closes: https://github.com/gentoo/gentoo/pull/15154
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 net-misc/dahdi/Manifest              | 2 +-
 net-misc/dahdi/dahdi-3.1.0-r1.ebuild | 5 +----
 2 files changed, 2 insertions(+), 5 deletions(-)
Comment 17 ernsteiswuerfel archtester 2020-04-12 22:44:43 UTC
Created attachment 632576 [details]
build.log (3.1.0-r1, ppc)

Even with the latest PR I still get these __udivdi3, __moddi3, __divdi3 errors:

[..]
make -f ./scripts/Makefile.modpost
/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Kbuild:125: CPU Architecture 'powerpc' does not support VPMADT032 or HPEC. Skipping.
  sed 's/ko$/o/' /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/modules.order | scripts/mod/modpost   -i ./Module.symvers -I /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers  -o /var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/Module.symvers     -s -T - vmlinux
ERROR: "__udivdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/opvxd115/opvxd115.ko] undefined!
ERROR: "__moddi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
ERROR: "__divdi3" [/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/xpp.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:94: __modpost] Error 1
Comment 18 Douglas Paul 2020-05-11 00:50:41 UTC
I'm getting this 64-bit divide/modulus problems on an i686 machine as well. I am attaching the patch I am using to give me a build that works.

Hopefully it would be useful for PPC-32bit as well.
Comment 19 Douglas Paul 2020-05-11 00:51:48 UTC
Created attachment 637820 [details, diff]
Patch for 32-bit build, against ebuild 3.1.0-r1
Comment 20 Douglas Paul 2020-05-11 01:20:18 UTC
Created attachment 637822 [details, diff]
Patch for 32-bit build, against ebuild 3.1.0-r1

Apologies for the noise. I didn't realize that there was a new version of the patchset used in -r1. I have rebased this patch so it applies against that new version.

(I've had to maintain my ebuilds separately so that I can restore support for TDM410P cards -- this is my first time with the 3.x series, due to a kernel upgrade)
Comment 21 ernsteiswuerfel archtester 2020-05-11 11:56:28 UTC
(In reply to Douglas Paul from comment #18)
> I'm getting this 64-bit divide/modulus problems on an i686 machine as well.
> I am attaching the patch I am using to give me a build that works.
> 
> Hopefully it would be useful for PPC-32bit as well.
Applied your 2nd patch on top 3.1.0-r1. Build finishes now on ppc, only some error in the install phase now. A big improvement nevertheless, thanks!

[...]
make[1]: Leaving directory '/var/tmp/portage/net-misc/dahdi-3.1.0-r1/work/dahdi-linux-3.1.0/drivers/dahdi/xpp/firmwares'
###################################################
###
### DAHDI installed successfully.
### If you have not done so before, install the package
### dahdi-tools.
###
###################################################
rm: cannot remove '/var/tmp/portage/net-misc/dahdi-3.1.0-r1/image/lib/modules/*/modules.*': No such file or directory
 * ERROR: net-misc/dahdi-3.1.0-r1::gentoo failed (install phase):
 *   Error removing bogus modules
Comment 22 ernsteiswuerfel archtester 2020-05-11 11:57:06 UTC
Created attachment 638162 [details]
build.log (3.1.0-r1 , ppc)
Comment 23 ernsteiswuerfel archtester 2020-05-11 11:58:41 UTC
Created attachment 638164 [details]
build.log (3.1.0-r1 + patch, ppc)
Comment 24 Douglas Paul 2020-05-11 14:39:59 UTC
I had this same error on x86, if the kernel being built against was not yet installed. I think it's just because depmod can't run, but I didn't look into it in more detail.

Most likely, we can just ignore the failure of that particular part. I'm not sure why there is the "|| die" part in the ebuild.
Comment 25 Jaco Kroon 2020-05-11 15:55:11 UTC
(In reply to Douglas Paul from comment #24)
> I had this same error on x86, if the kernel being built against was not yet
> installed. I think it's just because depmod can't run, but I didn't look
> into it in more detail.
> 
> Most likely, we can just ignore the failure of that particular part. I'm not
> sure why there is the "|| die" part in the ebuild.

To pick up issues like these :).

In principle we have no reason to run depmod I don't think.  Even less so during src_install phase.

Thanks for all the input guys, work is slightly crazy at the moment, I'll try to get a -r2 done in the week given the input above.  Since I don't have a 32-bit system though I'll need some testing so I'll post it here first before issuing a PR, or I can file a draft PR, whichever would be easier for those testing it?
Comment 26 ernsteiswuerfel archtester 2020-05-11 16:36:21 UTC
(In reply to Douglas Paul from comment #24)
> I had this same error on x86, if the kernel being built against was not yet
> installed. I think it's just because depmod can't run, but I didn't look
> into it in more detail.
Thanks for the hin! Rebuilding the kernel first and emerging dahdi afterwards just worked.
Comment 27 ernsteiswuerfel archtester 2020-05-11 16:38:19 UTC
(In reply to Jaco Kroon from comment #25)
> Thanks for all the input guys, work is slightly crazy at the moment, I'll
> try to get a -r2 done in the week given the input above.  Since I don't have
> a 32-bit system though I'll need some testing so I'll post it here first
> before issuing a PR, or I can file a draft PR, whichever would be easier for
> those testing it?
For me applying a patch from here by just throwing it in /etc/portage/patches/ is easier.