Bug 3408

Summary: Dynamically loading TAO extensions with new macro TAO_DYNAMIC_SERVICE_DIRECTIVE
Product: TAO Reporter: thomas.g.girard
Component: otherAssignee: DOC Center Support List (internal) <tao-support>
Status: NEW ---    
Severity: normal    
Priority: P3    
Version: 1.6.5   
Hardware: All   
OS: Linux   
Bug Depends on:    
Bug Blocks: 3390    
Attachments: change TAO libraries versioning scheme
add and use TAO_DYNAMIC_SERVICE_DIRECTIVE

Description thomas.g.girard 2008-08-24 15:19:27 CDT
Created attachment 1000 [details]
change TAO libraries versioning scheme

Hello,

a while ago[1], we discussed and switched the way ACE library names are
set when using the autoconf method. For the record, traditional method
generates:

  o libACE.so.5.6.x
  o libACE.so -> libACE.so.5.6.x symlink

while the autoconf method generates:

  o libACE-5.6.x.so
  o libACE.so -> libACE-5.6.x symlink

The same change should be done for autoconf generated TAO libraries; that's what patch 01, against SVN head, does.

During the discussion J.T. raised another point: TAO needs to have the
symlink libTAO_Something.so to libTAO_Something.so.1.6.x[2], because it
dynamically loads extensions using the former filename. Usually Linux
distros ship .so symlink only in the -dev package -- so that it's
possible to link against the library. So for Debian I've changed
extensions loading to use the latter filename. But this was far from
perfect; it required changing filename for every new release. Patch 02
uses another approach and I'd like to hear your opinion on it.

A new header, $TAO_ROOT/tao/Service_Config.h, declares a new macro,
TAO_DYNAMIC_SERVICE_DIRECTIVE, that calls ACE_DYNAMIC_SERVICE_DIRECTIVE
with TAO_VERSION appended to the filename when the macro
TAO_USE_VERSIONED_LOADING is defined. The patch also adapts TAO
extension loading mechanism to rely on this new macro.

What do you think about this approach?


Regards,

Thomas


[1] http://groups.google.com/group/comp.soft-sys.ace/browse_thread/thread/f4790aadbdeb4679/24d0e010f5ec9167
[2] or to libTAO_Something-1.6.x.so with patch 01
Comment 1 thomas.g.girard 2008-08-24 15:21:03 CDT
Created attachment 1001 [details]
add and use TAO_DYNAMIC_SERVICE_DIRECTIVE
Comment 2 Johnny Willemsen 2008-08-25 02:14:36 CDT
I would propose to add ACE_VERSIONED_DYNAMIC_SERVICE_DIRECTIVE and TAO_VERSIONED_DYNAMIC_SERVICE_DIRECTIVE, makes it explicit what todo. 
Comment 3 Johnny Willemsen 2010-02-25 12:49:12 CST
Thomas, is this still something that needs to be applied?
Comment 4 Johnny Willemsen 2010-03-01 01:57:42 CST
we really should see if we can add ace service config to have an optional version number that it also tries.