4 Replies Latest reply on May 13, 2009 1:33 AM by dgilmore

    library names

    sangamesh
      x86 open64

      Hello,

      The x86 open64 compilers are installed from source package on Cent OS 5.

      Found that names of some library (.so) files, doesn't start with "lib" as simple.

      Ex:

      # ls /opt/open64-4.2.2/lib/gcc-lib/x86_64-open64-linux/4.2.2/
      core.so
      em64t.so
      ipa.so                
      opteron.so 
      whirl2c.so
      barcelona.so 
      ipl.so
      be.so
      lno.so
      whirl2f.so
      ... etc

      why so? Are not these libraries?
      In case if they are, how to link them?

      One more issue: The fortran compiler is not working

      # openf90 sample.f -o sample
      /usr/bin/ld: cannot find -lfortran
      collect2: ld returned 1 exit status
      #

      Does open64 require any Fortan base libraries before install?

      Thanks in advance

        • library names
          edward_yang

          The use of "-l" actually surrounds the library name with "lib" and ".a" (not ".so").

           

          I'm not a Fortran programmer but x86 Open64 can compile Fortran code (written by others) for me, even though I didn't install gfortran on my opensuse. So your error message is probably more related to the CentOS.

           

          • library names
            dgilmore

            > Hello,
            >
            > The x86 open64 compilers are installed from source package on Cent OS 5.
            >
            > Found that names of some library (.so) files, doesn't start with "lib" as simple.
            >
            > Ex:
            >
            > # ls /opt/open64-4.2.2/lib/gcc-lib/x86_64-open64-linux/4.2.2/
            > core.so
            > em64t.so
            > ipa.so                
            > opteron.so 
            > whirl2c.so
            > barcelona.so 
            > ipl.so
            > be.so
            > lno.so
            > whirl2f.so
            > ... etc
            >
            > why so? Are not these libraries?
            > In case if they are, how to link them?
            These are not user libraries, they are DSO's that are loaded by the compiler proper.
            >
            > One more issue: The fortran compiler is not working
            >
            > # openf90 sample.f -o sample
            > /usr/bin/ld: cannot find -lfortran
            > collect2: ld returned 1 exit status
            > #
            It appears that you haven't built and installed the runtime libraries, per the instructions in the INSTALL file:

                ...
                To build the libraries, execute the following commands:

                  make lib MACHINE_TYPE=i386 BUILD_COMPILER=OSP
                  make -C osprey/targx8664_builtonia32 BUILD_COMPILER=OSP
                ...
            >
            > Does open64 require any Fortan base libraries before install?
            >
            > Thanks in advance
            >
            Was there a reason why you were building from source? I would think that the files in the binary tar ball would work on CENTOS 5.

            Note that we provide source to our release and take our responsibilities with respect to the GPL very seriously, we are not in a position where we can provide support for compilers built from source or for the compiler binaries and libraries on systems that we haven't done testing and validition.

            Per the release notes, the systems on which we have done testing and validation are:

                 o SUSE Linux Enterprise Server (SLES) 10 with SP2
                 o Red Hat Enterprise Linux (RHEL) 5.3

            Doug

              • library names
                sangamesh

                Hi,

                     I've did the following steps:

                ...
                    To build the libraries, execute the following commands:      

                make lib MACHINE_TYPE=i386 BUILD_COMPILER=OSP
                      make -C osprey/targx8664_builtonia32 BUILD_COMPILER=OSP
                    ...

                 

                Since, opencc is not set in PATH, these commands failed:

                 

                # make lib MACHINE_TYPE=i386 BUILD_COMPILER=OSP
                make -C osprey/targia32_builtonia32 default
                make[1]: Entering directory `/export/packages/compilers/x86_open64-4.2.2/osprey/targia32_builtonia32'
                make -C include default
                make -C libelf default
                make first
                make[3]: Nothing to be done for `first'.
                make libelf.a
                make[3]: `libelf.a' is up to date.
                make last
                make -C libdwarf default
                make first
                make[3]: Nothing to be done for `first'.
                make make_libdeps
                make -C libfortran default
                make first
                make[3]: Nothing to be done for `first'.
                make libfortran.a libfortran_p.a libfortran.so
                C      /export/packages/compilers/x86_open64-4.2.2/osprey/targia32_builtonia32/libfortran/../../libf/fio/backspace.c
                sh: opencc: command not found
                make[3]: *** [backspace.o] Error 127
                make[2]: *** [default] Error 2
                make[1]: *** [default] Error 2
                make[1]: Leaving directory `/export/packages/compilers/x86_open64-4.2.2/osprey/targia32_builtonia32'
                make: *** [lib] Error 2

                 

                But why its looking for opencc, which will get installed after install of open64?

                Is it required to have first opencc?

                 

                Thanks,

                Sangamesh

                  • library names
                    dgilmore

                    Sorry for the delay in getting back.  You will need a bootstrap compiler to build the compiler, per the text in the INSTALL file:

                    Compiling
                    ---------

                    First set your environment to use the installed Open64 4.2.1 compiler. This
                    step will be necessary to build the libraries. These commands assume you
                    are using an sh-compatible shell, such as bash.

                      export TOOLROOT=/opt/open64-4.2.1
                      export PATH=${TOOLROOT}/bin:$PATH

                    Note that the Open64 4.2.1 compiler binary distribution can be gotten fromt the main Open64 Web site.

                    Doug