469,626 Members | 1,442 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,626 developers. It's quick & easy.

Conflicting Libraries

I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?
Thank you very much for any help.
Nov 14 '05 #1
7 2306
Thiru <tr******@hotmail.com> spoke thus:
I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?


(When in trouble, when in doubt, run in circles, scream and shout!)

Your post is off-topic for comp.lang.c. Please visit

http://www.ungerhu.com/jxh/clc.welcome.txt
http://www.eskimo.com/~scs/C-faq/top.html
http://benpfaff.org/writings/clc/off-topic.html

for posting guidelines and frequently asked questions. Thank you.

--
Christopher Benson-Manica | I *should* know what I'm talking about - if I
ataru(at)cyberspace.org | don't, I need to know. Flames welcome.
Nov 14 '05 #2
In <9f**************************@posting.google.com > tr******@hotmail.com (Thiru) writes:
I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?


To validate your suspicions, try to change the order of the libraries in
the linking command. If the behaviour of the program changes, then you're
right. If the new behaviour is the intended one, you're also lucky.
If the new behavior is different, but still wrong, you have to complain
to the two vendors, preferably using a minimal program that exposes the
problem.

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #3
Christopher Benson-Manica wrote:
Thiru <tr******@hotmail.com> spoke thus:
I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when
I link the Oracle libraries. What can one do in such a case?


(When in trouble, when in doubt, run in circles, scream and shout!)

Your post is off-topic for comp.lang.c. Please visit ....


No it isn't, despite outward appearances. It is a question about
naming things in the standard language.

Unfortunately there is no magic answer in the C world. The best
result would be obtained by revising the Oracle and Teradata
modules to use easily distinguishable names, probably by use of a
suitable prefix. This is probably not available to the OP, who is
left with the option of emitting heated invective about the
library writers while resolving not to use things whose source
code is unavailable.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
Nov 14 '05 #4
Mac
On Thu, 08 Apr 2004 16:39:12 +0000, Dan Pop wrote:
In <9f**************************@posting.google.com > tr******@hotmail.com (Thiru) writes:
I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?


To validate your suspicions, try to change the order of the libraries in
the linking command. If the behaviour of the program changes, then you're
right. If the new behaviour is the intended one, you're also lucky.
If the new behavior is different, but still wrong, you have to complain
to the two vendors, preferably using a minimal program that exposes the
problem.

Dan


Wouldn't there likely be (off-topic) tools to list the symbols in each
library? From there it should be fairly easy to find conflicting symbols,
no?

--Mac

Nov 14 '05 #5
In <pa****************************@bar.net> "Mac" <fo*@bar.net> writes:
On Thu, 08 Apr 2004 16:39:12 +0000, Dan Pop wrote:
In <9f**************************@posting.google.com > tr******@hotmail.com (Thiru) writes:
I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?


To validate your suspicions, try to change the order of the libraries in
the linking command. If the behaviour of the program changes, then you're
right. If the new behaviour is the intended one, you're also lucky.
If the new behavior is different, but still wrong, you have to complain
to the two vendors, preferably using a minimal program that exposes the
problem.

Dan


Wouldn't there likely be (off-topic) tools to list the symbols in each
library? From there it should be fairly easy to find conflicting symbols,
no?


Depending on your actual system, my approach may be a far easier way of
demonstrating the existence of conflicting symbols. The typical Unix
linker never complains about conflicting symbols in libraries: the first
encountered definition is used to resolve the symbol and all the others
are ignored. OTOH, comparing the output of nm biglib1 vs the output of
nm biglib2 is not something for the faint of heart.

Things may be different on other systems...

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #6
Mac
On Tue, 13 Apr 2004 12:30:49 +0000, Dan Pop wrote:
In <pa****************************@bar.net> "Mac" <fo*@bar.net> writes:
On Thu, 08 Apr 2004 16:39:12 +0000, Dan Pop wrote:
In <9f**************************@posting.google.com > tr******@hotmail.com (Thiru) writes:

I am writing an application that interacts with Oracle and Teradata.
In order to create the executable, I need to link various Oracle and
Teradata libraries. I found out that when I link the Oracle and
Teradata libraries together, the Teradata API functions are not
working properly. My assumption is that these libraries are sharing
identical function names and parameter lists and hence the conflicts
are causing the problem. Is my assumption a valid one. Could there
be other reasons why Teradata API functions don't work properly when I
link the Oracle libraries. What can one do in such a case?

To validate your suspicions, try to change the order of the libraries in
the linking command. If the behaviour of the program changes, then you're
right. If the new behaviour is the intended one, you're also lucky.
If the new behavior is different, but still wrong, you have to complain
to the two vendors, preferably using a minimal program that exposes the
problem.

Dan
Wouldn't there likely be (off-topic) tools to list the symbols in each
library? From there it should be fairly easy to find conflicting symbols,
no?


Depending on your actual system, my approach may be a far easier way of
demonstrating the existence of conflicting symbols. The typical Unix
linker never complains about conflicting symbols in libraries: the first
encountered definition is used to resolve the symbol and all the others
are ignored. OTOH, comparing the output of nm biglib1 vs the output of
nm biglib2 is not something for the faint of heart.

Things may be different on other systems...


I don't think I have experience on systems you don't have experience on.
I am probably just underestimating the difficulty of processing the output
of "nm" on two large libraries. I've never done it, but it doesn't SOUND
hard. ;-)
Dan

--Mac

Nov 14 '05 #7
In <pa****************************@bar.net> "Mac" <fo*@bar.net> writes:
On Tue, 13 Apr 2004 12:30:49 +0000, Dan Pop wrote:
In <pa****************************@bar.net> "Mac" <fo*@bar.net> writes:
On Thu, 08 Apr 2004 16:39:12 +0000, Dan Pop wrote:

In <9f**************************@posting.google.com > tr******@hotmail.com (Thiru) writes:

>I am writing an application that interacts with Oracle and Teradata.
>In order to create the executable, I need to link various Oracle and
>Teradata libraries. I found out that when I link the Oracle and
>Teradata libraries together, the Teradata API functions are not
>working properly. My assumption is that these libraries are sharing
>identical function names and parameter lists and hence the conflicts
>are causing the problem. Is my assumption a valid one. Could there
>be other reasons why Teradata API functions don't work properly when I
>link the Oracle libraries. What can one do in such a case?

To validate your suspicions, try to change the order of the libraries in
the linking command. If the behaviour of the program changes, then you're
right. If the new behaviour is the intended one, you're also lucky.
If the new behavior is different, but still wrong, you have to complain
to the two vendors, preferably using a minimal program that exposes the
problem.

Dan

Wouldn't there likely be (off-topic) tools to list the symbols in each
library? From there it should be fairly easy to find conflicting symbols,
no?


Depending on your actual system, my approach may be a far easier way of
demonstrating the existence of conflicting symbols. The typical Unix
linker never complains about conflicting symbols in libraries: the first
encountered definition is used to resolve the symbol and all the others
are ignored. OTOH, comparing the output of nm biglib1 vs the output of
nm biglib2 is not something for the faint of heart.

Things may be different on other systems...


I don't think I have experience on systems you don't have experience on.
I am probably just underestimating the difficulty of processing the output
of "nm" on two large libraries. I've never done it, but it doesn't SOUND
hard. ;-)


Then, do it and see whether it's more difficult than inverting the order
of two libraries on the linker invocation.

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Julia Briggs | last post: by
10 posts views Thread by Minti | last post: by
6 posts views Thread by user | last post: by
3 posts views Thread by Ton van den Heuvel | last post: by
7 posts views Thread by Thiru | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.