Opened 13 years ago

Closed 8 years ago

#358 closed defect (fixed)

IZ2059: shared library name DT_SONAME not set with libdrmaa.so

Reported by: andreas Owned by:
Priority: normal Milestone:
Component: sge Version: 6.0
Severity: minor Keywords: drmaa
Cc:

Description

[Imported from gridengine issuezilla http://gridengine.sunsource.net/issues/show_bug.cgi?id=2059]

        Issue #:      2059             Platform:     All      Reporter: andreas (andreas)
       Component:     gridengine          OS:        All
     Subcomponent:    drmaa            Version:      6.0         CC:    None defined
        Status:       STARTED          Priority:     P3
      Resolution:                     Issue type:    DEFECT
                                   Target milestone: ---
      Assigned to:    templedf (templedf)
      QA Contact:     templedf
          URL:        http://gridengine.sunsource.net/servlets/BrowseList?list=dev&by=thread&from=12304
       * Summary:     shared library name DT_SONAME not set with libdrmaa.so
   Status whiteboard:
      Attachments:

     Issue 2059 blocks:
   Votes for issue 2059:


   Opened: Tue May 23 07:57:00 -0700 2006 
------------------------


DESCRIPTION:
Under Linux there is a ld(1) option

-soname=name
  When creating an ELF shared  object,  set  the  internal
  DT_SONAME field  to  the specified name.  When an executable is linked
  with a shared object which has a DT_SONAME field, then when the
  executable is  run  the  dynamic linker will attempt to load the shared
  object specified by the DT_SONAME field rather than  the  using  the
  file name given to the linker.

for setting a shared libraries DT_SONAME.

An application linked with a shared library with DT_SONAME
can detect at deployment time, if the library in LD_LIBRARY_PATH
has the right version. Without DT_SONAME being set it can occur
the application starts though, but shows strange error behaviour
during run-time.

COMMENTS:
Until now (6.0u8) libdrmaa.so delivered with N1GE is of version 0.95.
It is planned though to deliver in future releases a DRMAA 1.0 library
*plus* the old 0.95 compliant one.

WORKAROUND:
As workaround the application shall use drmaa_version() to ensure
LD_LIBRARY_PATH libdrmaa.so has the correct version.

   ------- Additional comments from andreas Tue May 23 08:20:43 -0700 2006 -------
There is a related problem with libdrmaa.so 0.95/1.0:

I just encountered libdrmaa.0.95.so (maintrunk) even had linking
symbols

   int drmaa_get_num_attr_names(drmaa_attr_names_t* values, int *size);
   int drmaa_get_num_attr_values(drmaa_attr_values_t* values, int *size);
   int drmaa_get_num_job_ids(drmaa_job_ids_t* values, int *size);

even though these functions actually are DRMAA 1.0 specific. I fixed
it (maintrunk). Now at least DRMAA 1.0 applications will fail with a
more reasonable error message, in case LD_LIBRARY_PATH libdrmaa is 0.95.


   ------- Additional comments from andreas Tue May 23 09:03:20 -0700 2006 -------
Added URL to thread with details on how to solve the -soname issue.

   ------- Additional comments from andreas Mon May 29 00:28:05 -0700 2006 -------
Fixed for in Maintrunk and S2-branch for Solaris and Linux

Change History (1)

comment:1 Changed 8 years ago by dlove

  • Resolution set to fixed
  • Severity set to minor
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.