Bug 3408 - Dynamically loading TAO extensions with new macro TAO_DYNAMIC_SERVICE_DIRECTIVE
Summary: Dynamically loading TAO extensions with new macro TAO_DYNAMIC_SERVICE_DIRECTIVE
Status: NEW
Alias: None
Product: TAO
Classification: Unclassified
Component: other (show other bugs)
Version: 1.6.5
Hardware: All Linux
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks: 3390
  Show dependency tree
 
Reported: 2008-08-24 15:19 CDT by thomas.g.girard
Modified: 2010-03-01 01:57 CST (History)
0 users

See Also:


Attachments
change TAO libraries versioning scheme (718 bytes, patch)
2008-08-24 15:19 CDT, thomas.g.girard
Details
add and use TAO_DYNAMIC_SERVICE_DIRECTIVE (11.83 KB, patch)
2008-08-24 15:21 CDT, thomas.g.girard
Details

Note You need to log in before you can comment on or make changes to this bug.
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.