T.R | Title | User | Personal Name | Date | Lines |
---|
5186.1 | | COMEUP::SIMMONDS | lock (M); while (not *SOMETHING) { Wait(C,M); } unlock(M) | Mon Feb 03 1997 21:54 | 7 |
| [I should defer 'til John Geminiani answers this, but.. ;)]
The ONC RPC package was apparently substantially improved for UCX
V4.0, eliminating nasties like this one.. best to get your Customer
onto the latest versions (UCX V4.1 +ECO4, DEC C V5.5) ..I see no
such problems with the newer versions I just mentioned.
John.
|
5186.2 | | VIRGIN::PFISTERR | Carpe Diem, Memento Mori | Mon Feb 10 1997 02:55 | 10 |
| The customer answered to me:
The only problem is, that a program which is developed
under V4.1 is not able to link or run under UCX 3.x.
All our production systems have UCX 3.x installed.
I hope this shows you a little bit our problem with
this software.
->What can he do?
|
5186.3 | | VIRGIN::PFISTERR | Carpe Diem, Memento Mori | Tue Feb 11 1997 02:25 | 5 |
| Here I am again!
What about the workaround which is from TURRIS::DECC #2072 (modify
UCX$RPCXDR.H to include socket.h)? Or do You have another solution?
Rene
|
5186.4 | | UCXAXP::GEMIGNANI | | Tue Feb 11 1997 20:07 | 12 |
| It could very well work.
The problem is that the V4.1 code is built to run with DECC. The V3.3
RPC uses VAXC. Does the customer have DECC or VAXC installed on their
systems?
I would recommend that you stay away from modifying the header files of
UCX. If you could, have the socket.h header included into the user's
application, this way it will always work independent of the
environment that it is built in.
Am I on the mark here?
|
5186.5 | I think the answer was no | HNDYMN::MCCARTHY | A Quinn Martin Production | Wed Feb 12 1997 06:23 | 5 |
| I think it was mentioned in the turris::c_plus_plus version of this thread that
the customer had "a great deal" of files to change and wanted a fix from
Digital instead.
bjm
|
5186.6 | UCX$RPCXDR_SHR.EXE Compiler Erroring Out | CSC32::P_DICKERSON | | Wed Feb 12 1997 13:55 | 19 |
|
Hi,
I have a customer that actually read the release notes. It told her
to rebuild UCX$RPCXDR_SHR.EXE with DEC C. But it is erroring out on
her. Therefore, she is using the old UCX$RPCXDR_SHR.EXE. This works
fine for her. Her questions are:
1. Will using an old version of UCX$RPCXDR_SHR.EXE have any kind of
effect on the new version of UCX or her applications when she uses
RPC?
2. What can she do to get the compiler to successfully rebuild a new
UCX$RPCXDR_SHR.EXE?
Please advice,
Phil D.
|
5186.7 | | LASSIE::GEMIGNANI | | Tue Feb 18 1997 16:42 | 28 |
| I just did a search of the socket.h inclusion, and found that ...
UCX$RPCXDR.H includes UCX$RPC:rpc.h
UCX$RPC:rpc.h includes UCX$RPC:types.h
UCX$RPC:types.h includes <socket.h>:
#ifndef __SOCKET_TYPEDEFS
#include <socket.h>
#endif /* __SOCKET_TYPEDEFS */
So, socket.h should be included in the user's compilation. You can
defeat this inclusion by including UCX$RPCXDR.H AFTER your own
inclusion of <socket.h>.
Regarding questions posed in .6:
1) The older RPC library could have some routine mismatches if you
compile with V4 and link to run with V3. There are also a series
of features which are not present in that library.
2) There is no way for a customer to build a copy of UCX$RPCXDR_SHR.EXE
at their site.
If you are developing on a V4 system and installing on V3 systems, you
should link against UCX$RPC:UCX$RPCXDR.OLB. This means that you won't
need to use the UCX$RPCXDR_SHR.EXE image at all. Hence, there should
be no image incompatibilities. The protocol for V3 and V4 are
identical, so the RPC will work without any problems.
|
5186.8 | we would consider this our bug | HNDYMN::MCCARTHY | A Quinn Martin Production | Wed Feb 19 1997 05:42 | 8 |
| The C++ Class Library and the CRTL have requirements that each of its
header files compile "stand alone". This means that if the header file
requires another header file, it includes it.
I would hope UCX would adopt the same requirement (ie if rpc.h needs socket.h,
it includes it).
bjm
|
5186.9 | | LASSIE::GEMIGNANI | | Wed Feb 19 1997 18:46 | 16 |
|
I am soooo disappointed. You claimed it to be your bug, and you don't
want to argue about it first.
We are in the process of designing IP V6 support for UCX, and a whole
bunch of new IP definitions are going to be needed. It is my belief
that the networking header files should come from us (i.e. socket.h,
in.h, netdb.h, etc, etc, etc). A lot of this is too much out of our
control. In this case, there are a bunch of definitions in the network
header files which we have no control over, and they are different than
other implementations (granted, if you wanted Unix you would have
installed it instead of VMS). The issues we get beat up upon (and this
is one of them) is around portability. We have to be sure to be
portable with Unix, in particular.
So where do we go now?
|
5186.10 | The End. | UCXAXP::GEMIGNANI | | Thu Feb 20 1997 15:57 | 21 |
|
And, in conclusion ...
What we have here is a simple incompatibility between V3 and V4, in
that the customer is compiling on V4 and expects to be able to link
against the V3 shareable.
The release notes state that you must use DECC beginning with V4.
It recommends that you compile (or at least relink) your apps to use
the new shareable. At installation time, the old shareable is
preserved (and the installation procedure tells you this), in case you
need to use it for older programs. Granted, it wasn't nice to have
to require this, but a solution is now in place which will apply to
all future releases.
In .7, I suggested a workaround which would ensure that your code could
work on any version of UCX. Another group within Digital has used this
approach and it works fine for them. Keep in mind that this particular
problem occurs with UCX V3.3 systems, and we no longer support this
release.
|