T.R | Title | User | Personal Name | Date | Lines |
---|
440.1 | Yup | AIRPRT::GRIER | mjg's holistic computing agency | Mon Mar 20 1989 16:43 | 11 |
| Yup, it won't work.
I was able to get around it the time I did something like this by having
all my database-access stuff being callable and using VAX RPC as a server
to separate the DECwindows client from the database access routines.
Of course, VAX RPC was cancelled, so it looks like you'll have to write
your own client/server stuff.
-mjg
|
440.2 | More-or-less fixed in VMS 5.2 | TLE::DANIELS | Brad Daniels, VAX C RTL whipping boy | Tue Mar 21 1989 10:06 | 23 |
| There is a fix for this sort of problem in V5.2. It requires some special
compiling on the part of the G_FLOAT portion of the program, though.
Basically, we've added special labels to VAXCRTL which will allow users to
perform G_FLOAT operations from VAXCRTL.
The versions of STDIO.H, MATH.H, STDLIB.H, and UNIXLIB.H shipped with V3.0
of VAX C contain preprocessor directives to redefine the names of
floating-point type dependent functions to the appropriate new names.
Unfortunately, because of problems with release dates, we had to add the
hack that you also have to add a /define="CC$mixed_float" switch to the
compile command. That hack will go away with version 4.0 of VAX C.
We are strongly recommending that everybody producing a product for V5.2 or
later use this method. You might want to check if the RDB people are aware
of it. We would like everybody to know about this fix, but it's hard to find
everyone who uses VAXCRTL...
We have a kit available which contains the include files and a copy of the
VMS V5.2 C RTL. The RTL should work on any V5.0 or later system. Contact me
or Beth (also TLE::) Benoit to see about getting a copy.
- Brad
|
440.3 | Workaround for some applications... | BANZAI::JOHNSTON | D. Britton | Thu Mar 23 1989 18:08 | 21 |
| The next version of the RDML Preprocessor (in field test) no longer
requires any application to link with VAXCRTLG (or VAXCRTL for that
matter). Of course, people who use functions like printf() will still
need to, but not on account of RDML. So the long term problem is solved.
There is a short term workaround for RDML V1.2 (Rdb/VMS V3.0) if you
don't need G_FLOAT support. It's not documented, but as long as you do
not access G_FLOATING data in your program, you may link with VAXCRTL.
You will get a warning message about CC$G_FLOAT or some such symbol not
being defined, but that is not a problem. This is due to the fact that
we compiled the code in RDMLRTL using CC/G_FLOAT (it doesn't use
G_FLOATING).
NOTE: ONLY DO THIS IF YOU ARE POSITIVE THAT YOUR APPLICATION DOES
NOT READ OR WRITE G_FLOATING DATA. IF YOU DO IT YOU CAN END UP
WITH GARBAGE FOR G_FLOATING DATA IN THE DATABASE.
Hope this helps,
Britt...
|
440.4 | VAXCRTL won't link either? | COMICS::HOLLOWAY | | Fri Apr 21 1989 10:41 | 20 |
| Hi,
I've got a customer with a very similar problem to this, or so
it appears. The customer works for Oracle, and he is attempting
to link a C program he has written with DECWINDOWS and Oracle.
The Oracle is linked against the V5 CRTL, not CRTLG, however, he
still gets errors about multiply defined symbols. Oracle is also
a shared image.
He's also tried linking Oracle against DECWINDOWS and then the program
against this. This failed too; I think this is because of the base
addresses are out ?
Is there a way round this ?
Thanks in advance...
Samantha Holloway, UK SSD, Basingstoke.
|
440.5 | | PSW::WINALSKI | Paul S. Winalski | Sat Apr 22 1989 22:45 | 12 |
| If nothing that he's using is compiled /GFLOAT, then it isn't the same problem.
The link maps the ORACLE shareable image and the link that failed should enable
you to figure out why there are MULDEF errors occurring. Either two modules
(or shareable images) present in the link define the same global names, or
something is causing the same module to get included in the link twice.
ORACLE has had a multitude of problems with the Linker and Image Activator in
the past due to their use of based shareable images. It's possible that that
is messing things up (yet again).
--PSW
|
440.6 | OBJ or Sharable image? | DECWIN::FISHER | Burns Fisher 381-1466, ZKO3-4/W23 | Tue Apr 25 1989 11:29 | 6 |
| Not really knowing anything about this, but might they be linking against the
CRTL object library rather than the sharable image? I suspect this could cause
a problem.
Burns
|
440.7 | ORACLE did a sick thing, maybe even (shudder) with our blessings | TLE::DANIELS | Brad Daniels, VAX C RTL whipping boy | Tue Apr 25 1989 23:31 | 12 |
| I recently answered an SPR on this exact issue.
The problem is that ORACLE shipped a hacked version of the V4.7(?) VAXCRTL
(which probably contains a bug fix they couldn't wait for) under the name
ORACRTL, and made all of the symbols universal in (I believe) ORACLE1.EXE...
They probably mention somewhere that you shouldn't link against VAXCRTL.EXE.
There is no way to get this crap to work with DECWINDOWS. The only solution
is to get ORACLE to send you a version linked against VAXCRTL, which doesn't
export the names.
- Brad
|
440.8 | More info! | COMICS::HOLLOWAY | Samantha Holloway | Wed Apr 26 1989 13:51 | 23 |
| Thanks for the replies. I have some more information which may be
useful(!)
The customer says that Oracle is shipped as a series of object modules
and libraries. At link time, the user specifies which CTRL he wants
Oracle to be linked against. The customer is specifying the VAXCRTL
explicitly not ORACRTL. ( He has also used the DECW image, to no
avail)
It seems odd that there is a choice between the VAXCRTL and ORACRTL.
I suppose the question how will the 'universal symbols' effect DECW?
Does linking against VAXCRTL imply that the symbols will automatically
be compatible with DECW, or could Oracle be interfering further?
The customer has a 'workaround', he links DECW against some sort
of 'two_tasks' image which runs the Oracle image for him, however
he still would like to know whats happening!
Thanks,
Samantha.
|
440.9 | Clear now? | TLE::DANIELS | Brad Daniels, VAX C RTL whipping boy | Wed Apr 26 1989 15:21 | 13 |
| Re .8:
What I was trying to say is that it's your cutomer linking against VAXCRTL
that is the problem. Oracle already links against ORACRTL (which is an old
version of VAXCRTL), then exports the names. When the user links against
VAXCRTL, the names become multiply defined, and you see the problems you
mentioned. There is no way around this problem using that version of
Oracle's software other than the "two process" approach you mentioned, which
works because neither part of the program will then link against both Oracle
and the C RTL.
- Brad
|
440.10 | better late than never | COMICS::CROSBIE | don't try to outweird me!!! | Mon Jun 26 1989 11:03 | 16 |
| Hi there,
Re: .8
Better late than never, the customer definitely does not link against
ORACRTL (the Oracle shareable library is built during the installation,
and the installation procedure allows you to select whether you
want to use the vanilla VAXCRTL or Oracle's munged flavour).
I'm now working on this problem, and it looks like they're seeing
the problem because the Oracle shareable library is built as a based
image.
Graham
|