Annotation of sys/compat/osf1/README.dynamic, Revision 1.1.1.1
1.1 nbrk 1: $OpenBSD: README.dynamic,v 1.5 2001/07/09 05:15:23 fgsch Exp $
2: $NetBSD: README.dynamic,v 1.2 1999/04/27 06:39:49 cgd Exp $
3:
4: Dynamically linked programs are supported by NetBSD's Digital UNIX
5: (formerly DEC OSF/1) emulation. The OSF/1 dynamic linker scheme is
6: described in fair detail in:
7:
8: %A Larry W. Allen
9: %A Harminder G. Singh
10: %A Kevin G. Wallace
11: %A Melanie B. Weaver
12: %T Program Loading in OSF/1
13: %P 145-160
14: %I USENIX
15: %B USENIX Conference Proceedings
16: %D January 21-25, 1991
17: %C Dallas, TX
18: %W Open Software Foundation
19:
20: Additionally, the object file formats in use are described in the
21: Digital UNIX _Assembly Language Programmer's Guide_ which can be
22: found (among other places) on a version-specific page off of:
23:
24: http://www.unix.digital.com/faqs/publications/pub_page/doc_list.html
25:
26: Finally, the actual representation of Auxiliary Vectors came from information
27: in the Digital UNIX auxv.h header file.
28:
29: There are at least two potential issues with the implementation as it
30: currently exists:
31:
32: 1. exec_with_loader() is not emulated.
33:
34: Most uses of dynamically linked programs come through execve()
35: and use the default loader (/sbin/loader). In Digital UNIX
36: (and OSF/1) you can also force a specific loader to always be
37: invoked to load an executable by using the exec_with_loader()
38: system call. Few, if any, programs use this feature.
39:
40: 2. It is not immediately obvious that the right values are used for
41: text and data locations when invoking a dynamically linked executable.
42:
43: The text and data sections, and the break, are set up as if
44: /sbin/loader itself had been executed. It's not clear that this
45: is correct, but /sbin/loader seems to expect that at least the
46: break will be set up this way.
47:
48: This has certain implications for the way mmap() behaves. See
49: the comment in the osf1_mmap() function in osf1_misc.c.
50:
51: 3. The stack location is used is the normal NetBSD/alpha stack location.
52:
53: No attempt is made to put the stack in the place where
54: Digital UNIX would normally put it. This may confuse some
55: programs.
CVSweb