PathScale Compiler Suite FAQ


Installation

Q: I get an error while compiling because libpscrt.so.1 is missing, but I can find it in the lib64 directory...
Q: The installation says it fails because libstdc++.so is missing...
Q: Do you support the installation of individual language versions of the compilers?
Q: Has someone tried to install the PathScale compilers on an unsupported Linux Distribution?
Q: Is it possible to specify compiler options somewhere so that they are always passed to the compiler?

I get an error while compiling because libpscrt.so.1 is missing, but I can find it in the lib64 directory. What is the problem?

The PathScale compilers require the 32-bit version of this library. Make sure this is in your library search path. This is covered in the PathScale Compiler Suite and Subscription Manager Install Guide, Section "Using Shared Libraries".

If you are installing a non-root tar file, you must configure the dynamic linker by hand. There are two ways to do this, depending on whether or not you have root privileges.

If you do not have root privileges, (using a bash shell) type the following:

$ export LD_LIBRARY_PATH=<install_directory>/lib/<version>: <install_directory>/lib/<version>/32:$LD_LIBRARY_PATH

If you have root privileges, point to shared files after a non-root tar file installation by adding the following lines to /etc/ld.so.conf (the order in which they appear does not matter):

/<install_directory>/lib/<release> /<install_directory>/lib/<release>/32

After adding these lines, run the /sbin/ldconfig program to tell the dynamic linker about these new directories. You will need root privileges to do this.

# /sbin/ldconfig

 
The installation says it fails because libstdc++.so is missing, but I can find it in the lib64 directory. What is going wrong?
There are two common reasons for this problem:
  • You do not have the 32-bit runtime environment installed.
    Our compiler is a 32-bit application. Some Linux distributions do not install the 32-bit glibc and libstdc++ runtime libraries by default. In those cases you will need to manually install them.
  • You do not have the right versions of these libraries installed
    The PathsScale Compiler Suite is based on GCC 3.3 and the associated runtime libraries. Some of the newer Linux distributions provide the GCC 3.4 or 4.0 runtime libraries by default. These systems will need compatibility libraries installed. The compatibility libraries provide the necessary versions of the libraries for the GCC 3.3 compilers.
Please see Appendix B of the PathScale Compiler Suite and Subscription Manager Install Guide for more details about package dependencies for running the compiler environment on the Linux distributions that we test.
The required RPMs are part of the Linux distributions we test on but in some cases they are not installed when the default OS installation is selected.
 
Do you support the installation of individual language versions (C, C++, Fortran) of the compilers?

We do support the installation of individual language compilers.

Note: Installing the individual compilers only works with the RPM install.

The PathScale Compiler Suite has a number of supporting RPMs that must be installed for the compilers. This list includes the RPMs named:

pathscale-base-*
pathscale-compilers-common-*
pathscale-compilers-docs-*
pathscale-compilers-libs-*
pathscale-sub-client-*

You must install all of these RPMs, but you are free to select whichever language-specific RPM you need:

pathscale-c
pathscale-c++
pathscale-f90

After you have installed the other RPMs, then install the appropriate package for the language you want. For example, to install the Fortran compiler you would type:

  # rpm -Uvh pathscale-f90-*

See Chapter 4 in the PathScale Compiler Suite and Subscription Manager Install Guide for more details on installing subsets of the PathScale Compiler Suite environment.

 
Has someone tried to install the PathScale compilers on an untested Linux distribution?

Yes, customers have tried to install the PathScale Compiler Suite on untested Linux distributions. The following is a list of the operating systems they have tried, the problems that they encountered, and any workarounds that they have reported to us.

Please remember that these are not supported distributions. Any problems encountered will only be corrected if they can be duplicated on a supported distribution.

Note: When using an unsupported distribution, be sure that gcc-3.3 is installed; gcc-3.3 must be installed for pathCC to work.

 
Distribution name/OS Problems encountered Workarounds
Mandrake The C & C++ compilers appear to work but the Fortran compiler fails to work.  
CentOS 4.0 for Opteron
Rocks 4.0 for Opteron
These are plain 64-bit distributions, which do not have a 32-bit libstdc++ installed. Install the 32-bit glibc
and libstdc++ on your machine.
Install the 64-bit and 32-bit versions of the compat-libstdc++ RPM.
Gentoo Users have reported success in running the PathScale compilers on Gentoo. Install the 32-bit gcc-lib compatibility libraries.
Install the rpm2targz package from the Gentoo package system.
Debian Users have reported success with the C/C++ compilers on Debian Use the SUSE 9 RPMs.

See Appendix B of the PathScale Compiler Suite and Subscription Manager Install Guide for more details about package dependencies.

More information about some of these distributions:

CentOS 4.0 for Opteron/Rocks 4.0 for Opteron

The license server will hang forever:
# /etc/rc.d/init.d/pathscale-sub start
Checking for PathScale compiler subscription:   [  OK  ]
Starting PathScale compiler subscription server:

Turns out that rocks changes the runuser command and /var/log messages gets:

 Jul  6 10:54:38 csebeo runuser: Enter file \
      in which to save the key \
       (/var/log/pathscale-sub/.ssh/id_rsa):
 Jul  6 10:56:02 csebeo runuser:      
       /var/log/pathscale-sub/.ssh/id_rsa.pub
 Jul  6 10:56:02 csebeo runuser:      
       /var/log/pathscale-sub/.ssh/id_rsa

To fix simply:

  su - psc_sub

<hit return a few times to take the default keys>

Gentoo

Here are more details about installing the libraries on Gentoo:

  1. Install the 32-bit gcc-lib compatibility libraries.
    Or, more specifically:
    emerge -v emul-linux-x86-compat
  2. Install the rpm2targz package from the Gentoo package system. Or, emerge
      -v rpm2targz
  3. Run rpm2targz on all the SUSE 9 distribution RPMs.
  4. Copy the two and some odd thousand files created to /opt/pathscale.
    In fact, use tar -zxvf directly on the *.tgz files generated in Step 3.
    They already extracted to /opt/pathscale.
  5. Follow the regular PathScale subscription server setup.
      1. Untar the binaries in a directory of choice
      2. Set PATH and LD_LIBRARY_PATH env variables

    Copy pscsubscription-<product>-*.xml to the appropriate place, set PATH to point to /opt/pathscale/bin and begin the compilation.

Note that in most cases, you don't need to modify the LD_LIBRARY_PATH. When installing RPMs, a file called /etc/ld.so.conf is automatically updated to point at the locations of the shared versions of the runtime libraries. Please refer to the PathScale Compiler Suite and Subscription Manager Install Guide for more information.

Debian

Installing the C/C++ compiler on Debian

  1. Download the source and binaries for all versions, which is the file named PathScale-Compiler-Suite-*.iso.
  2. Extract the compiler.
    1. mount -o loop PathScale-Compiler- \
      Suite-<version>.iso /mnt
    2. cd <installdir>
      We chose /usr/local/opt/pathscale as <installdir>.
    3. tar jxvf /mnt/SuSE9/tar/pathscale- \
      compilers-suse9.0-<version>_suse9.0_psc.tar.bz2
  3. Put the license file (pscsubscription-<product>-*.xml)
    into <installdir>/lib/3.0

You are done with the installation.

Installation of version 3.0 for evaluation:

  1. Download the source and binaries for all versions, which is the file named PathScale-Compiler-Suite-<version>.iso.
  2. Burn it to CD-R or try
       # mount -r -o loop PathScale-Compiler- \
           Suite-<version>.iso /mnt

    if your kernel supports the loopback device.

  3. Find PathScale-Compiler-Suite-<version>-SuSE9.tar.
  4. # cd <installdir>; tar xvf PathScale- \
    Compiler-Suite-<version>-SuSE9.tar.

    We chose /usr/local/opt/pathscale as <installdir>.
  5. Put the license file (pscsubscription-<product>-*.xml)
    into <installdir>/lib/3.0.
  6. # apt-get install ia32-libs ia32-libs-dev \
    lib32gcc1 lib32stdc++6
  7. Set PATH to include <installdir>/bin.
  8. Add <installdir>/lib/3.0 to /etc/ld.so.conf and run # ldconfig, or set LD_LIBRARY_PATH to include the directory.
  9. If # file <installdir>/bin/pathcc does not display the correct information, do this:
      # ln -s /emul/ia32-linux/lib/ld-2.3.2.so  \
           /lib/ld-linux.so.2

You are ready to start compiling.

Can you specify compiler options to be used every time the compiler is invoked?
For example, the Intel compilers have *.cfg files (icc.cfg for icc, ifort.cfg for ifort, etc.) where you can put options to be passed to the compiler every time it is invoked.
The PathScale Compiler Suite does support such a configuration file. The compiler.defaults file, located in /<install_directory>/pathscale/etc allows you to set default compilation options. The syntax in compiler.defaults file is the same as the options used on the compiler command line. Section 2.3 of the PathScale Compiler Suite User Guide covers in details how to define default compilation options for the compiler.

Back to top


Subscription Manager

Q: We purchased 2 seats for the PathScale compiler, but we seem to run out of seats...
Q: I installed the new subscription file in the /opt/pathscale/lib/ directory but the compiler still does not work.
Q: We seem to have a problem with our PathScale compiler subscription. We get the following cryptic and unhelpful error message...

We have purchased 2 seats for the PathScale compiler. But when one person stops using the compiler, I receive an error message says we don't have enough seats when another person starts using the compiler. What's wrong?
The PathScale Compiler Suite licensing behaves differently than many other compiler vendors. We follow a software developer seat model, instead of a concurrent usage model. When someone invokes the compiler, they obtain a lease for that seat for 15 minutes. Subsequent invocations of the compiler will renew the lease.

The subscription manager tracks the usage based on user name and machine name. In the current implementation this means that within the lease period if either the number of users exceeds the number of seats *or* the number of machines exceeds the number of seats, then the subscription manager will turn down the request.

The subscription daemon uses the following formula to determine if there are leases available:

     numseats = max(users, machines)

For example, if a site has 10 users and 20 machines, and the subscription specifies that the number of leases is 10, then up to 10 users can use the software on up to 10 machines (that is, up to 100 leases can be issued using combinations of the 10 users and machines).

Please see the PathScale Compiler Suite and Subscription Manager Install Guide for more information.

 

I installed the new subscription file in the /opt/pathscale/lib/ directory but the compiler still does not work. What's happening?

$ pathcc -O3 hello.c -o hello
*** Subscription: Your subscription for the PathScale 
compiler products has expired and you have exceeded 
the grace period. Your compiler will not operate
until you contact PathScale and formally renew the 
agreement. 
Compilation terminated

When installing a new subscription file, it is necessary to restart the subscription server. See the PathScale Compiler Suite and Subscription Manager Install Guide.

Double check the permissions on the subscription file. Make sure it is world readable:

  # cp pscsubscription-<product>-*.xml  \
      /opt/pathscale/lib/3.0
  # chmod ugo+r /opt/pathscale/lib/3.0/  \
      pscsubscription-<product>-*.xml

Additionally, you should ensure that any old subscription files are removed from the directory as they will interfere with more recent ones. Renaming is not sufficient. They must not be in the same directory.

 

We seem to have a problem with our PathScale compiler subscription. We get the following cryptic and unhelpful error message:

*** Subscription: You have exceeded the limits for which 
    you contracted in your PathScale subscription agreement 
    and have gone beyond any additional allowances provided 
    for unintentional or occasional use. Your usage will 
    be limited to the contracted levels until you contact 
    PathScale to increase your committed usage levels.
    Compilation terminated

What is happening is that you have exceeded the number of subscriptions that you have purchased from PathScale. The subscription manager issues a "lease" for a period of 15 minutes to a user when that user begins to use the compiler. When two users compile at the same time two "leases" are issued. The error message indicates that you need additional subscriptions.
categories [ ]