× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Binder Language problems
  • From: Nelson Smith <ncsmith@xxxxxxxx>
  • Date: Fri, 07 Aug 1998 22:25:54 -0400

Gary L Peskin wrote:
> 
> (1) What kind of "create errors" do you get if the new set of exports is
> at the bottom?
> 
> (2) If you do a DSPSRVPGM on your service program, do both sets of
> signatures show up?
> 
> (3) If you do a DSPPGM on your CALLING program and then hit enter until
> it shows the service programs, does the signature shown match the
> ORIGINAL signature of the service program?
> 
> (4) Are you explicitly specifying the LVLCHK or SIGNATURE parameter of
> the STRPGMEXP statement?
> 
> Gary
> 
> Nelson Smith wrote:
> >
> > I'm with you on everything you said below except for two small areas.
> > First, I get create errors when trying to create the service program if
> > I don't move the new set of exports (shown at the bottom of your source)
> > up to the top of the source. Once I move it there, the service program
> > creates fine. However, this may be the source of my second problem.
> >
> > In your next to last paragraph, you said your original program "B"
> > references the first export in the ORIGINAL block of source.  That is
> > not my experience. In my case it references the first export in the NEW
> > block of source which in the example below is a newly added export.
> > Unexpected results occur because the parameters are usually different.
> >
> > Do you have no problem recreating the service program with the binder
> > source shown as below, with the new set of source exports at the end?
> > If not, what am I doing wrong?  What are your parameters set to on the
> > CRTSRVPGM command?
> >
> > Gary L Peskin wrote:
> > >
> > > Nelson --
> > >
> > > I don't mean to be dense here.  But let me give you an example so that
> > > you can explain to me where my misunderstanding is.
> > >
> > > I have a *PGM ("A") which consists of one module ("AM") which I recently
> > > created using the following binder language:
> > >
> > > STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*YES)
> > >   EXPORT SYMBOL('sym1')
> > >   EXPORT SYMBOL('sym2')
> > > ENDPGMEXP
> > >
> > > After *PGM A is created, I create program B which calls procedure sym1.
> > >
> > > Now, I enhance module AM and add a new entry point, called 'new1'.
> > >
> > > Say I place this procedure before 'sym1' in AM.  By the way, I think the
> > > RTVBNDSRC creates the exports in an order specified by the compiler.
> > > The C compiler places the exported symbols in the same order as they
> > > appear in the program -- don't know about the other compilers.)
> > >
> > > Now, I do a RTVBNDSRC, adding to my previous source.  After the command
> > > runs, I get:
> > >
> > > STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*YES)
> > >   EXPORT SYMBOL('sym1')
> > >   EXPORT SYMBOL('sym2')
> > > ENDPGMEXP
> > > STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*YES)
> > >   EXPORT SYMBOL('new1')
> > >   EXPORT SYMBOL('sym1')
> > >   EXPORT SYMBOL('sym2')
> > > ENDPGMEXP
> > >
> > > The first four lines were in my binder source member from before I ran
> > > the RTVBNDSRC command.
> > >
> > > I change the binder source by replacing all but the last *CURRENT to
> > > read *PRV so now the source looks like this:
> > >
> > > STRPGMEXP PGMLVL(*PRV) LVLCHK(*YES)
> > >   EXPORT SYMBOL('sym1')
> > >   EXPORT SYMBOL('sym2')
> > > ENDPGMEXP
> > > STRPGMEXP PGMLVL(*CURRENT) LVLCHK(*YES)
> > >   EXPORT SYMBOL('new1')
> > >   EXPORT SYMBOL('sym1')
> > >   EXPORT SYMBOL('sym2')
> > > ENDPGMEXP
> > >
> > > Since I haven't explicity specified a signature, the system will create
> > > a different unique signature for each STRPGMEXP .. ENDPGMEXP block.  New
> > > programs which call "A" will use the *CURRENT export block and will have
> > > that signature embedded in them.
> > >
> > > However, my old program "B" will still work, without recreating it,
> > > because "B" references the first slot in the ORIGINAL export block
> > > (which it locates based on the signature still embedded in "B") which is
> > > still 'sym1'.
> > >
> > > Programs compiled under an earlier signature will reference the earlier
> > > signatures exports in that signatures ordinal order.  Are you overriding
> > > the signature or not retaining old signatures?
> > >
> > > Gary
> +---
> | This is the Midrange System Mailing List!
> | To submit a new message, send your mail to MIDRANGE-L@midrange.com.
> | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
> | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner/operator: david@midrange.com
> +---
(1) I'll have to go back Monday and see if I can recreate the error.  I
don't get them anymore since I started rearranging the output from
RTVBNDSRC. I don't remember the exact message number.

(2)&(3) At the time I was having the problems, the signatures are
something I checked closely and everything matched up as it should.

(4) No. I'm using the STRPGMEXP statement exactly as generated by
RTVBNDSRC.  If I remember correctly, LVLCHK defaults to *YES and
SIGNATURE is only used to override the normally generated signature to
something you hardcode.

You didn't explicitly say so, but can I assume from your questions that
you do not get any errors when you leave your newly created set of
exports at the bottom of the source member?
-- 
Nelson Smith
"Standards are Wonderful....cause there's so many to choose from!"
ncsmith@gate.net
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.