Annotation of sys/compat/osf1/README.dynamic, Revision 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