I think the CHANGE command of the linkage editor will do what you want;

I remember to have used it when building a sort of "universal DB2 interface" out of the IBM delivered environment specific interfaces called DSNALI, DSNELI, DSNRLI etc. They all provide an entry DSNHLI, which is normally called from the DB2 application. Normally you link your application with the desired interface; so you have different
load modules (one for TSO, one for Batch, one for RRSAF etc.).

If you don't want this, there exists an universal interface from IBM since some years. But before that, we built such an universal interface ourself, that is: we combined the
different IBM interfaces into one single load module.

Because they have this duplicate entry DSNHLI (and also other duplicate entries),
they normally cannot be linked together in one load module; but they can,
if you CHANGE their duplicate CSECTs to have unique names. And then you have
to write a general interface which checks for the environment
(at first call only) and then calls the appropriate (now unique) specific interface.

There are some additional caveats with respect to connection startup and reset
and error handling, but in the end it worked without problems; only one
physical module for all environments, TSO, IMS/DC and batch.

Kind regards

Bernd


Am 15.04.2020 um 21:43 schrieb Phil Smith III:
I have a use case that's reasonable enough that it might be supported, yet odd 
enough that I'd be unsurprised if it isn't.

Suppose we have a function called AX that we call. At times it would be useful to be able 
to relink a program that calls AX to add a "shim"-let's call it AXPRIME-between 
the program and AX. Yet we don't want to change that program code, just relink it (or 
point at a different library and make a dynamic call to AX).

Ideally, we could tell the linker "OK, load deck AXPRIME [which has entry point AX 
defined]; now include deck AX but rename entry point AX in that deck to AXMINUS". 
And the AXPRIME code would call AXMINUS to do what AX usually does.

The alternative-hacking AX itself-is of course possible but undesirable, because we don't 
want the shim functionality to be there all the time, as it represents a security hole. 
The shim is added explicitly when needed, so it's a "your gun, your foot" deal.

Anyone know whether this is possible with IEWL or anything else?


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to