This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
correct FSF address in various places
[perl5.git] / ext / DynaLoader / README
1 Perl 5 DynaLoader
2
3 See DynaLoader.pm for detailed specification.
4
5 This module is very similar to the other Perl 5 modules except that
6 Configure selects which dl_*.xs file to use.
7
8 After Configure has been run the Makefile.PL will generate a Makefile
9 which will run xsubpp on a specific dl_*.xs file and write the output
10 to DynaLoader.c
11
12 After that the processing is the same as any other module.
13
14 Note that, to be effective, the DynaLoader module must be _statically_
15 linked into perl! Configure should arrange this.
16
17 This interface is based on the work and comments of (in no particular
18 order): Larry Wall, Robert Sanders, Dean Roehrich, Jeff Okamoto, Anno
19 Siegel, Thomas Neumann, Paul Marquess, Charles Bailey and others.
20
21 The dl_*.xs files should either be named after the dynamic linking
22 operating system interface used if that interface is available on more
23 than one type of system, e.g.:
24         dlopen  for dlopen()/dlsym() type functions (SunOS, BSD)
25         dld     for the GNU dld library functions (linux, ?)
26 or else the osname, e.g., hpux, next, vms etc.
27
28 Both are determined by Configure and so only those specific names that
29 Configure knows/uses will work.
30
31 If porting the DynaLoader to a platform that has a core dynamic linking
32 interface similar to an existing generic type, e.g., dlopen or dld,
33 please try to port the corresponding dl_*.xs file (using #ifdef's if
34 required).
35
36 Otherwise, or if that proves too messy, create a new dl_*.xs file named
37 after your osname. Configure will give preference to a dl_$osname.xs
38 file if one exists.
39
40 The file dl_dlopen.xs is a reference implementation by Paul Marquess
41 which is a good place to start if porting from scratch. For more complex
42 platforms take a look at dl_dld.xs. The dlutils.c file holds some
43 common definitions that are #included into the dl_*.xs files.
44
45 After the initial implementation of a new DynaLoader dl_*.xs file you
46 may need to edit or create ext/MODULE/MODULE.bs files (library bootstrap
47 files) to reflect the needs of your platform and linking software.
48
49 Refer to DynaLoader.pm, lib/ExtUtils/MakeMaker.pm and any existing
50 ext/MODULE/MODULE.bs files for more information.
51
52 Tim Bunce.
53 August 1994