473,387 Members | 1,540 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

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 2577
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: frasfan | last post by:
Hi, I am having a problem with the validator controls in VB.net conflicting with the javascript I am using to confirm whether or not the user wants to submit the page. Here is the situation: I...
1
by: Julia Briggs | last post by:
Hello, I have these two scripts, where the first one is being canceled out by the second, they work independently, but not together (they are a auto-tab and form box character counter script) --...
10
by: Minti | last post by:
I tried the following code on Borland C++ complier and Microsoft VC7.0 both seem to give conflicting results void foo(const int& x) { std::cout << "In const foo\n"; } void foo(int& x) ...
2
by: humble04 | last post by:
Hi, I am compiling a collection of C++ code. Most of them are using the new format #include <iostream>. I think all of them because I failed at finding out which header file uses the old format ...
6
by: user | last post by:
Hi, I got this error and donno know how to fix it: In file included from ../except.h:53, from group.c:22: .../portspecs.h:81: error: conflicting types for `const double __infinity'...
3
by: Ton van den Heuvel | last post by:
Hi all, why does the following code not compile, and fail with: qed.cpp: In instantiation of `B<Foo*>': qed.cpp:40: instantiated from here qed.cpp:29: error: conflicting return type...
7
by: Thiru | last post by:
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...
1
by: helraizer1 | last post by:
Hi folks, I have an image based shoutbox which I am currently implementing emoticons onto. I have a way now for the emoticons to appear where the :D or =) etc. is on the image, but for some reason...
12
by: Michael.Z | last post by:
Anyone who can help: Given a Table.h file I am writing a Table.c file. I keep getting the compile error: previous declaration of Table was here / conflicting types for I think the...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.