I've been poking around in source code and found, in
$popsrc/extern_symbols.p, lines 28-30,
exload dl [^DL_LIB]
lconstant exload_dummy; ;;; anything will do
endexload;
They are preceded by the comment
/* dummy external load to force linking against the dynamic linker
library
and DL_LIB has been assigned the value 'ldl' in $popsrc/external.ph.
Can someone explain to me what is being achieved here?
The lines won't load in ordinary pop11 - you get an error message
Error: can't find value for symbol exload_dummy
That's not a problem in itself because the file is meant to be compiled
with popc rather than the normal pop11 compiler. But what is getting
added to the pop11 binary as the result of trying to reference a
non-existent symbol in the dynamic linker
library? And at what stage of compiling/linking is the dummy reference
attempted?
Thanks for any enlightenment you can provide.
Stephen Isard
|