From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Klein To: law@cygnus.com Cc: gcc@gcc.gnu.org Subject: Re: MPE Port Date: Sun, 31 Oct 1999 23:35:00 -0000 Message-ID: <4.2.0.58.19991026065301.00c68310@garfield.dis.com> References: <4.1.19990907082210.00c21980@garfield.dis.com> <14653.940915805@upchuck> X-SW-Source: 1999-10n/msg00643.html Message-ID: <19991031233500.i4K5srDFe8OaNOA647YroSO5zMa2yfWHoKgHYuGswZM@z> At 11:30 PM 10/25/99 -0600, Jeffrey A Law wrote: >So, how does dynamic linking work on MPE? There is a table called the XRT (if I understand it correctly on HP-UX, it is similar in function to the PLT there) that is fixed up at execution time with the space, offset of the code, and the DP and SP of the called procedure. There are support routines that can dynamically load a program and create an XRT for it. All "procedure labels" on MPE are really pointers to the XRT entry. There are entry and exit stubs to set and restore those registers and to promote privilege as needed. Multiple invocations of the program could result in various pieces being loaded into different spaces on each invocation. There is also the ability to create procedures that are "option unresolved" in that on some machines, they can appear and others, they may not. Everything is determined at run time. (That's why I have such problems with the autoconf on MPE :-)). >It sounds like you're going to have to provide a stub of some kind for gdb's >use in inferior calls. The structure is going to be radically different from >__gcc_plt_call, but the mechanism you use to get it bound into the executable >should probably mirror __gcc_plt_call. I'm getting "pleads" from a bunch of users to complete the gdb port, so I'm going to start looking at this as soon as I have time. I don't know the purpose of a "trampoline" and what the __gcc_plt_call does, yet. Can you enlighten me? Regards, M. -- Mark Klein DIS International, Ltd. http://www.dis.com 415-892-8400 PGP Public Key Available