Thread: loading external modules for Mac version

Started: 2005-11-08 23:38:32
Last activity: 2005-11-11 01:19:50
Topics: SAC Help
Shang-Lin Chen
2005-11-08 23:38:32
Hello,

I am working on an external module for the Mac version of SAC2000 that
will let users interact with another program through the SAC interface,
and I'm having trouble getting it to load. Because the version of gcc on
the Mac I used to test this doesn't support the --shared option, I used
this command to compile the module:
libtool -o libstp.so stp_read.o stp_int.o stp_int_sac.o

libstp.so was compiled without any errors, but I couldn't get SAC2000 to
load it. I entered
setenv SACSOLIST libstp.so
and set LD_LIBRARY_PATH to include the directory containing libstp.so.
When I started SAC2000 and tried to load the module, I got the error
"ERROR 1028: External command does not exist:".

SAC> load stp
ERROR 1028: External command does not exist:
SAC>

Modules for Linux and Solaris, using the same source code, work
correctly. Is LD_LIBRARY_PATH the wrong environment variable on a Mac?
If you want to try out the module, its link is
http://www.data.scec.org/ftp/programs/stp/libstp.so.mac. It should be
saved as libstp.so instead of libstp.so.mac.

I was testing on OS X.

Thanks in advance!

Shang-Lin



--

Shang-Lin Chen
System administrator/Programmer/Data archivist
Southern California Earthquake Data Center
California Institute of Technology
M/C 252-21
Pasadena, CA 91125-2100



  • Brian Savage
    2005-11-09 16:50:30
    Shang-Lin

    Try setting the environment variable SACSOLIST to the location and
    filename of libstp.so. For example
    export SACSOLIST=/usr/local/sac/lib/libstp.so

    A function named stp must reside in that shared library if you are using
    the load stp command.

    By the way, what versions are you using on Linux, Solaris and Mac ?
    I would imagine the Mac version is new, but what about Linux and Solaris.

    Cheers,
    Brian
    savage13<at>dtm.ciw.edu

    Shang-Lin Chen wrote:
    Hello,

    I am working on an external module for the Mac version of SAC2000 that
    will let users interact with another program through the SAC interface,
    and I'm having trouble getting it to load. Because the version of gcc on
    the Mac I used to test this doesn't support the --shared option, I used
    this command to compile the module:
    libtool -o libstp.so stp_read.o stp_int.o stp_int_sac.o

    libstp.so was compiled without any errors, but I couldn't get SAC2000 to
    load it. I entered
    setenv SACSOLIST libstp.so
    and set LD_LIBRARY_PATH to include the directory containing libstp.so.
    When I started SAC2000 and tried to load the module, I got the error
    "ERROR 1028: External command does not exist:".

    SAC> load stp
    ERROR 1028: External command does not exist:
    SAC>

    Modules for Linux and Solaris, using the same source code, work
    correctly. Is LD_LIBRARY_PATH the wrong environment variable on a Mac?
    If you want to try out the module, its link is
    http://www.data.scec.org/ftp/programs/stp/libstp.so.mac. It should be
    saved as libstp.so instead of libstp.so.mac.

    I was testing on OS X.

    Thanks in advance!

    Shang-Lin





    • Shang-Lin Chen
      2005-11-11 01:19:50
      Brian,

      I tried your suggestion of including the path in SACSOLIST:
      export SACSOLIST=/Users/vikki/sac/sac/aux/external/libstp.so
      but when I typed 'load stp' at the SAC2000 prompt I still got the
      "External command does not exist" error.

      The versions of our Linux and Solaris modules that are on the web were
      compiled a long time ago by someone else, most likely using version
      00.57. I should probably upgrade SAC and recompile them, though the
      Linux version, at least, still works with the newest version of SAC.

      Thanks,
      Shang-Lin

      On Wed, 2005-11-09 at 08:50 -0500, Brian Savage wrote:
      Shang-Lin

      Try setting the environment variable SACSOLIST to the location and
      filename of libstp.so. For example
      export SACSOLIST=/usr/local/sac/lib/libstp.so

      A function named stp must reside in that shared library if you are using
      the load stp command.

      By the way, what versions are you using on Linux, Solaris and Mac ?
      I would imagine the Mac version is new, but what about Linux and Solaris.

      Cheers,
      Brian
      savage13<at>dtm.ciw.edu

      Shang-Lin Chen wrote:
      Hello,

      I am working on an external module for the Mac version of SAC2000 that
      will let users interact with another program through the SAC interface,
      and I'm having trouble getting it to load. Because the version of gcc on
      the Mac I used to test this doesn't support the --shared option, I used
      this command to compile the module:
      libtool -o libstp.so stp_read.o stp_int.o stp_int_sac.o

      libstp.so was compiled without any errors, but I couldn't get SAC2000 to
      load it. I entered
      setenv SACSOLIST libstp.so
      and set LD_LIBRARY_PATH to include the directory containing libstp.so.
      When I started SAC2000 and tried to load the module, I got the error
      "ERROR 1028: External command does not exist:".

      SAC> load stp
      ERROR 1028: External command does not exist:
      SAC>

      Modules for Linux and Solaris, using the same source code, work
      correctly. Is LD_LIBRARY_PATH the wrong environment variable on a Mac?
      If you want to try out the module, its link is
      http://www.data.scec.org/ftp/programs/stp/libstp.so.mac. It should be
      saved as libstp.so instead of libstp.so.mac.

      I was testing on OS X.

      Thanks in advance!

      Shang-Lin




      _______________________________________________
      sac-help mailing list
      sac-help<at>iris.washington.edu
      http://www.iris.washington.edu/mailman/listinfo/sac-help


10:15:56 v.22510d55