Menu

undefined reference to `__fpclassifyl'

Michael G.
2022-05-24
2022-08-21
  • Michael G.

    Michael G. - 2022-05-24

    Just installed Fedora 36 and wanted to see if CDE would build.

    Everything was going swimmingly until:


    /home/griffinm/cdesktopenv-code/cde/programs/dtksh/ksh93/src/cmd/ksh93/sh/streval.c:349: undefined reference to pow' /usr/bin/ld: libshell.a(strdata.o): in functionlocal_fpclassify':
    /home/griffinm/cdesktopenv-code/cde/programs/dtksh/ksh93/arch/linux.i386-64/src/cmd/ksh93/./FEATURE/math:78: undefined reference to __fpclassifyl' /usr/bin/ld: libshell.a(strdata.o): in functionlocal_issubnormal':
    /home/griffinm/cdesktopenv-code/cde/programs/dtksh/ksh93/arch/linux.i386-64/src/cmd/ksh93/./FEATURE/math:86: undefined reference to __fpclassifyl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x2d0): undefined reference toacosl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x2e8): undefined reference to acoshl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x300): undefined reference toasinl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x318): undefined reference to asinhl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x330): undefined reference toatanl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x348): undefined reference to atan2l' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x360): undefined reference toatanhl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x378): undefined reference to cbrtl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x390): undefined reference toceill'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x3c0): undefined reference to cosl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x3d8): undefined reference tocoshl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x3f0): undefined reference to erfl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x408): undefined reference toerfcl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x420): undefined reference to expl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x438): undefined reference toexp2l'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x450): undefined reference to expm1l' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x468): undefined reference tofabsl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x480): undefined reference to fabsl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x498): undefined reference tofdiml'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x4c8): undefined reference to floorl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x4e0): undefined reference tofloorl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x4f8): undefined reference to fmal' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x510): undefined reference tofmaxl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x528): undefined reference to fminl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x540): undefined reference tofmodl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x570): undefined reference to hypotl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x588): undefined reference toilogbl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x6c0): undefined reference to j0l' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x6d8): undefined reference toj1l'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x6f0): undefined reference to jnl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x720): undefined reference tolgammal'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x738): undefined reference to logl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x750): undefined reference tolog10l'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x768): undefined reference to log1pl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x780): undefined reference tolog2l'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x798): undefined reference to logbl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x7b0): undefined reference tonearbyintl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x7c8): undefined reference to nextafterl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x7e0): undefined reference tonexttowardl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x7f8): undefined reference to powl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x810): undefined reference toremainderl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x828): undefined reference to rintl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x840): undefined reference toroundl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x858): undefined reference to scalbl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x8a0): undefined reference tosinl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x8b8): undefined reference to sinhl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x8d0): undefined reference tosqrtl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x8e8): undefined reference to tanl' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x900): undefined reference totanhl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x918): undefined reference to tgammal' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x930): undefined reference totruncl'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x948): undefined reference to y0l' /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x960): undefined reference toy1l'
    /usr/bin/ld: libshell.a(strdata.o):(.rodata+0x978): undefined reference to `ynl'
    collect2: error: ld returned 1 exit status
    mamake [cmd/ksh93]: *** exit code 1 making ksh
    mamake: *** exit code 1 making cmd/ksh93
    mamake: *** exit code 1 making all
    package: make done at Tue May 24 11:46:50 EDT 2022 in /home/griffinm/cdesktopenv-code/cde/programs/dtksh/ksh93/arch/linux.i386-64
    make[2]: *** [Makefile:1135: init.c] Error 1
    make[2]: Leaving directory '/home/griffinm/cdesktopenv-code/cde/programs/dtksh'
    make[1]: *** [Makefile:444: all-recursive] Error 1
    make[1]: Leaving directory '/home/griffinm/cdesktopenv-code/cde/programs'
    make: *** [Makefile:583: all-recursive] Error 1


    Not sure if there's a dependency error or what, but any help is appreciated.

     
  • Roger Brown

    Roger Brown - 2022-05-25

    Yes, I found the same thing with fedora 36, whereas fedora-35 worked well. The ksh93 component is an external project referenced by cdesktopenv and it would be really better if they fixed it. It may be as simple as requiring an extra "-lm" in the linking step.

    If you want to see if you can get something running on fedora-36 you could try a compiled package built for fedora-35.

    https://sourceforge.net/projects/rhubarb-pi/files/fedora/35/

    If you install dtlogin-service is should be just a matter of using

    # systemctl enable dtlogin
    
     
  • Michael G.

    Michael G. - 2022-05-25

    Thx Roger. I'll try it out.

     
  • Michael G.

    Michael G. - 2022-05-26

    Yeah, those "work", but i wonder if there is a couple of code edits we could fix. I'll keep trying and see if i can get it working.

     
  • Michael G.

    Michael G. - 2022-05-26

    I see where adding the "-lm" might help. Although it looks like that would be an option off of the cc invocation.

     
  • Michael G.

    Michael G. - 2022-06-02

    @Roger - would that -lm option need to go in the Makefile(s)?

    How hard would it be to test that?

     
    • Roger Brown

      Roger Brown - 2022-06-02

      It might be easy to test by finding the right Makefile used as the ksh93 build and trying it to see if the dependencies disappear. However the real trick is putting the option in the correct configuration for the platforms that need it. Although automake is used for CDE itself, the ksh93 component is its own contained project which does its own thing.

       

Log in to post a comment.

MongoDB Logo MongoDB