[net.lang.c] external names

cottrell@nbs-vms.ARPA (01/04/85)

/*
everyone is ignoring the obvious workable portable solution: have an
assembly language file that looks like this:

_sys_read:	jmp	SYS$SYSTEM
_foo:		jmp	VMS$STUPIDNAME
		.end

"got to keep the loonies on the path"

*/

geoff@desint.UUCP (Geoff Kuenning) (01/08/85)

In article <6952@brl-tgr.ARPA> cottrell@nbs-vms.ARPA writes:

>everyone is ignoring the obvious workable portable solution: have an
>assembly language file that looks like this:
>
>_sys_read:	jmp	SYS$SYSTEM
>_foo:		jmp	VMS$STUPIDNAME
>		.end

Portable?  What about the cdc 6600, which uses either "EQ" or "JP" for the
unconditional jump?  (No, I'm not kidding; "EQ abc" jumps to abc after
comparing register B0 with itself).

Besides, unless your "ctags" is a lot better than mine, in a large program
it is going to be a neat trick for an outside observer to figure out that
a call to "foo" actually runs LIB$DO_COMMAND.

The whole point of the original suggestion was to get AWAY from this sort of
thing and let us write what we mean, rather than kludging around things like
we do now.
-- 

	Geoff Kuenning
	...!ihnp4!trwrb!desint!geoff

cottrell@nbs-vms.ARPA (01/17/85)

/*
i wrote that funny external names can be mapped portably by an
assembly language file containing lines such as:

	from:	jmp	to

geoff kuenning responded that some assemblers use such mnemonix as
EQ or JP for unconditional jumps (not to mention u1108 J), and
therefore my asm module is not portable. agreed. however, names
such as SYS$SYSTEM are not likely to appear on the target system anyway.
what i meant was that the C code was portable, that the language
need not be changed to effect this mapping. i agree it's a pain to
do it this way but it works.
*/