Thread: libsac.a and sacio.a for Ubuntu 18.04.4 LTS

Started: 2020-12-03 03:51:01
Last activity: 2020-12-03 18:41:31
Topics: SAC Help
Steve Gao
2020-12-03 03:51:01
Dear all,

We are in the process of migrating to a new Linux system running Ubuntu 18.04.4 LTS, and the old libsac.a and sacio.a refuse to work with gfortran. Any hints? Thanks in advance!

Sincerely,
Stephen Gao

The error message:
/usr/bin/ld: /home/sgao/soft/SAC/lib/sacio.a(getsmsg.o): relocation R_X86_64_32S against undefined symbol `kmmsg' can not be used when making a PIE object; recompile with -fPIC

And yes, I indeed tried recompiling with -fPIC, but it still did not work.




  • George Helffrich
    2020-12-03 10:55:59
    Dear Stephen -

    My guess is that your new system’s loader isn’t processing Fortran COMMON blocks correctly. Use the unix nm command to check the type of the external symbol ‘kmmsg’ in sacio.a and see if it has “C” against it (“C” means defined in COMMON).

    A simple Fortran test program that uses COMMON blocks might also be of help troubleshooting the problem, particularly a COMMON block that is not defined in the main program but rather used amongst various subprograms called by the main program. If a BLOCK DATA subprogram is required to define that COMMON contents, your new system might be causing you trouble.

    On 3 Dec 2020, at 03:52, Steve Gao (via IRIS) <sac-help-bounce<at>lists.ds.iris.edu> wrote:

    Dear all,

    We are in the process of migrating to a new Linux system running Ubuntu 18.04.4 LTS, and the old libsac.a and sacio.a refuse to work with gfortran. Any hints? Thanks in advance!

    Sincerely,
    Stephen Gao

    The error message:
    /usr/bin/ld: /home/sgao/soft/SAC/lib/sacio.a(getsmsg.o): relocation R_X86_64_32S against undefined symbol `kmmsg' can not be used when making a PIE object; recompile with -fPIC

    And yes, I indeed tried recompiling with -fPIC, but it still did not work.




    ----------------------
    SAC Help
    Topic home: http://ds.iris.edu/message-center/topic/sac-help/ | Unsubscribe: sac-help-unsubscribe<at>lists.ds.iris.edu <sac-help-unsubscribe<at>lists.ds.iris.edu>

    Sent from the IRIS Message Center (http://ds.iris.edu/message-center/)
    Update subscription preferences at http://ds.iris.edu/account/profile/


    George Helffrich
    george<at>elsi.jp


    • Steve Gao
      2020-12-03 15:12:27
      Hi George,

      Thanks for the hints. I did nm sacio.a | grep kmmsg and the return is “000000000007b8d0 C kmnsg”. So there is a “C” against it. I have just requested the latest version of SAC and its source codes and will see if the new *.a files work or not.

      Sincerely,
      Steve

      From: sac-help-bounce<at>lists.ds.iris.edu <sac-help-bounce<at>lists.ds.iris.edu>
      Sent: Thursday, December 3, 2020 4:57 AM
      To: SAC Help <sac-help<at>lists.ds.iris.edu>
      Subject: Re: [IRIS][sac-help] libsac.a and sacio.a for Ubuntu 18.04.4 LTS

      Dear Stephen -

      My guess is that your new system’s loader isn’t processing Fortran COMMON blocks correctly. Use the unix nm command to check the type of the external symbol ‘kmmsg’ in sacio.a and see if it has “C” against it (“C” means defined in COMMON).

      A simple Fortran test program that uses COMMON blocks might also be of help troubleshooting the problem, particularly a COMMON block that is not defined in the main program but rather used amongst various subprograms called by the main program. If a BLOCK DATA subprogram is required to define that COMMON contents, your new system might be causing you trouble.


      On 3 Dec 2020, at 03:52, Steve Gao (via IRIS) <sac-help-bounce<at>lists.ds.iris.edu<sac-help-bounce<at>lists.ds.iris.edu>> wrote:

      Dear all,

      We are in the process of migrating to a new Linux system running Ubuntu 18.04.4 LTS, and the old libsac.a and sacio.a refuse to work with gfortran. Any hints? Thanks in advance!

      Sincerely,
      Stephen Gao

      The error message:
      /usr/bin/ld: /home/sgao/soft/SAC/lib/sacio.a(getsmsg.o): relocation R_X86_64_32S against undefined symbol `kmmsg' can not be used when making a PIE object; recompile with -fPIC

      And yes, I indeed tried recompiling with -fPIC, but it still did not work.




      ----------------------
      SAC Help
      Topic home: http://ds.iris.edu/message-center/topic/sac-help/ | Unsubscribe: sac-help-unsubscribe<at>lists.ds.iris.edu<sac-help-unsubscribe<at>lists.ds.iris.edu>

      Sent from the IRIS Message Center (http://ds.iris.edu/message-center/)
      Update subscription preferences at http://ds.iris.edu/account/profile/


      George Helffrich
      george<at>elsi.jp<george<at>elsi.jp>


      • George Helffrich
        2020-12-03 15:20:37
        Dear Stephen -

        Try a test Fortran program; if that fails, your new system loader is broken. Alternatively, try rebuilding your present SAC from source. If that doesn't fix the problem, a new SAC is unlikely to work on your system either.

        On 3 Dec 2020, at 15:12, Gao, Stephen S. <sgao<at>mst.edu> wrote:

        Hi George,

        Thanks for the hints. I did nm sacio.a | grep kmmsg and the return is “000000000007b8d0 C kmnsg”. So there is a “C” against it. I have just requested the latest version of SAC and its source codes and will see if the new *.a files work or not.

        Sincerely,
        Steve

        From: sac-help-bounce<at>lists.ds.iris.edu <sac-help-bounce<at>lists.ds.iris.edu> <sac-help-bounce<at>lists.ds.iris.edu <sac-help-bounce<at>lists.ds.iris.edu>>
        Sent: Thursday, December 3, 2020 4:57 AM
        To: SAC Help <sac-help<at>lists.ds.iris.edu <sac-help<at>lists.ds.iris.edu>>
        Subject: Re: [IRIS][sac-help] libsac.a and sacio.a for Ubuntu 18.04.4 LTS

        Dear Stephen -

        My guess is that your new system’s loader isn’t processing Fortran COMMON blocks correctly. Use the unix nm command to check the type of the external symbol ‘kmmsg’ in sacio.a and see if it has “C” against it (“C” means defined in COMMON).

        A simple Fortran test program that uses COMMON blocks might also be of help troubleshooting the problem, particularly a COMMON block that is not defined in the main program but rather used amongst various subprograms called by the main program. If a BLOCK DATA subprogram is required to define that COMMON contents, your new system might be causing you trouble.


        On 3 Dec 2020, at 03:52, Steve Gao (via IRIS) <sac-help-bounce<at>lists.ds.iris.edu <sac-help-bounce<at>lists.ds.iris.edu>> wrote:

        Dear all,

        We are in the process of migrating to a new Linux system running Ubuntu 18.04.4 LTS, and the old libsac.a and sacio.a refuse to work with gfortran. Any hints? Thanks in advance!

        Sincerely,
        Stephen Gao

        The error message:
        /usr/bin/ld: /home/sgao/soft/SAC/lib/sacio.a(getsmsg.o): relocation R_X86_64_32S against undefined symbol `kmmsg' can not be used when making a PIE object; recompile with -fPIC

        And yes, I indeed tried recompiling with -fPIC, but it still did not work.




        ----------------------
        SAC Help
        Topic home: http://ds.iris.edu/message-center/topic/sac-help/ | Unsubscribe: sac-help-unsubscribe<at>lists.ds.iris.edu <sac-help-unsubscribe<at>lists.ds.iris.edu>

        Sent from the IRIS Message Center (http://ds.iris.edu/message-center/)
        Update subscription preferences at http://ds.iris.edu/account/profile/



        George Helffrich
        george<at>elsi.jp <george<at>elsi.jp>


        George Helffrich
        george<at>elsi.jp


      • Vladimir Karpinsky
        2020-12-03 18:41:31
        Dear colleagues,

        03.12.2020 18:13, Steve Gao (via IRIS) wrote:
        > nm sacio.a | grep kmmsg

        I tried also:
        $ nm sac.101.6a/lib/sacio.a | grep kmmsg
        000000000007b8d0 C kmmsg
        but
        $ nm sac.102.0/lib/sacio.a | grep kmmsg
        empty output

        --
        Best regards,
        Vladimir.

        • Steve Gao
          2020-12-03 16:39:41
          George, Brian, Vladimir, and all,

          I've just received the newest SAC binary package (Version 102.0 with a date of 09/01/2020) from IRIS, and am happy to report that the lib/*.a files came with it work fine with the Ubuntu 18 system.
          Thanks for all the help!

          Sincerely,
          Steve

          -----Original Message-----
          From: sac-help-bounce<at>lists.ds.iris.edu <sac-help-bounce<at>lists.ds.iris.edu>
          Sent: Thursday, December 3, 2020 9:42 AM
          To: SAC Help <sac-help<at>lists.ds.iris.edu>
          Subject: Re: [IRIS][sac-help] libsac.a and sacio.a for Ubuntu 18.04.4 LTS

          Dear colleagues,

          03.12.2020 18:13, Steve Gao (via IRIS) wrote:
          > nm sacio.a | grep kmmsg

          I tried also:
          $ nm sac.101.6a/lib/sacio.a | grep kmmsg
          000000000007b8d0 C kmmsg
          but
          $ nm sac.102.0/lib/sacio.a | grep kmmsg
          empty output

          --
          Best regards,
          Vladimir.

          ----------------------
          SAC Help
          Topic home: http://ds.iris.edu/message-center/topic/sac-help/ | Unsubscribe: sac-help-unsubscribe<at>lists.ds.iris.edu

          Sent from the IRIS Message Center (http://ds.iris.edu/message-center/)
          Update subscription preferences at http://ds.iris.edu/account/profile/


16:00:22 v.22510d55