Commit | Line | Data |
4633a7c4 |
1 | # This message contains the description of the patch. |
2 | # The actual patch will be posted to p5-p later, the parts that |
3 | # are relevant to other lists will be posted there separately |
4 | # |
5 | # This is needed _before_ application of the patch: |
6 | |
7 | mkdir os2 |
8 | touch os2/Makefile.SH hints/os2.sh os2/os2.c os2/os2ish.h |
9 | touch ext/DynaLoader/dl_os2.xs |
10 | exit 0 |
11 | |
12 | ======================================================== |
13 | |
14 | The OS/2 patchkit was submitted by ilya@math.ohio-state.edu. I have |
15 | applied some parts that I suspect won't cause any problems. |
16 | Others do things that I haven't had time to fully consider. |
17 | |
18 | Still other patches included here should perhaps be integrated with the |
19 | metaconfig package that generates Configure. |
20 | |
21 | Andy Dougherty <doughera@lafcol.lafayette.edu> |
22 | |
23 | ======================================================== |
24 | |
25 | Notes on the patch: |
26 | ~~~~~~~~~~~~~~~~~~~ |
27 | 1) run the above commands |
28 | 2) patches should be applied as |
29 | patch -p0 <..... |
30 | |
31 | Patches are relative to perl5.001n. |
32 | It is tested under Solaris and OS/2. |
33 | The complete distribution of this patch is available on |
34 | ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2 |
35 | The file diff.for.o.Configure should be applied last. It will repatch |
36 | Configure. |
37 | |
38 | Target: |
39 | ~~~~~~~ |
40 | |
41 | This is not supposed to make a perfect Perl on OS/2. This patch is |
42 | concerned only with perfect _build_ of Perl on OS/2. A lot of good |
43 | features from Andreas Kaiser port missed this patch. |
44 | |
45 | Annotations of changes: |
46 | ~~~~~~~~~~~~~~~~~~~~~~~ |
47 | 1) C files |
48 | 2) Configure |
49 | 3) MakeMaker |
50 | 4) Build tools |
51 | |
52 | 1) C files |
53 | a) mkfifo macro added to Posix.c |
54 | b) Copyright notice for OS/2 port changed |
55 | c) MYMALLOC section in perl.h moved (why?) |
56 | d) setgrent grent and getgrent wrapped in ifdef |
57 | e) declarations for #if defined(MYMALLOC) && defined(HIDEMYMALLOC) |
58 | added |
59 | f) some diagnostics added to tests |
60 | |
61 | 2) Configure |
62 | 0) Differences are provided with plain 5.001m + andys. |
63 | a) New vars exe_ext obj_ext lib_ext ar plibext |
64 | firstmakefile archobjs cldlibs path_sep |
65 | I think they should be set by the hints files only |
66 | b) Support for extraction from NE style libraries. |
67 | c) a lot of |
68 | cc -o whatever |
69 | lines did not have $ldopts. |
70 | d) The above variables are used throughout the file for checks |
71 | |
72 | 3) Build tools and libraries |
73 | |
74 | Since Configure can go out of sync with the other tools, |
75 | all the added configuration variables are checked for |
76 | existence, if not, set to reasonable values. Thus the |
77 | changes are independent of Configure patch. |
78 | |
79 | a) ln changed to $ln in some places |
80 | b) Makefiles and related scripts made to use $(O), $(A), $(AR) |
81 | using the vars found by Configure or defaulted to |
82 | some reasonable value. |
83 | c) $firstmakefile is the file make looks onto before Makefile |
84 | d) $plibext is the extension for the perl library |
85 | e) $archobjs is the list of additional object files needed for |
86 | local build. |
87 | $cldlibs are libs to use when linking miniperl. |
88 | f) Sanity checks look for perl$Config{exe_ext}. |
89 | g) installperl was looping through config.sh in a wrong way |
90 | h) installperl needs to change permission to 0777 before |
91 | unlink on OS/2. |
92 | i) Cwd.pm updated for OS/2. |
93 | j) Find.pm updated for OS/2. |
94 | k) Shell.pm updated for OS/2. |
95 | l) Makefile.SH : added sh in front of some commands |
96 | if $d_shrplib is 'custom', looks into |
97 | $osname/Makefile.$osname.SH to construct the section |
98 | on shared Perl library. |
99 | m) clean target extended to delete some intermediate files |
100 | n) Test::Harness works. |
101 | |
102 | |
103 | Notes on build on OS/2: |
104 | ~~~~~~~~~~~~~~~~~~~~~~~ |
105 | The change of C code in this patch is based on the ak port of 5.001+. |
106 | |
107 | a) Make sure your sort is not the broken OS/2 one. |
108 | |
109 | b) when extraction perl5.001m.tar.gz you need to extract perl5.001m/Configure |
110 | separately, since by default perl5.001m/configure overwrites it; |
111 | |
112 | c) Necessary manual intervention when compiling on OS/2: |
113 | |
114 | Need to put perl.dll on LIBPATH after it is created. |
115 | |
116 | d) Compile summary: |
117 | |
118 | # Look for hints/os2.sh and correct what is different on your system |
119 | # I have rather spartan configuration. |
120 | |
121 | # Prefix means where to install: |
122 | sh Configure -des -D prefix=f:/perl5m |
123 | make |
124 | # Will probably die after build of miniperl (unless you have DLL |
125 | # from previous compile). Need to move DLL where it belongs |
126 | make |
127 | # some warnings in POSIX.c |
128 | make test |
129 | # some tests fail, 10 on my system |
130 | # |
131 | # before this you should create subdirs bin and lib in the |
132 | # prefix directory (f:/perl5m above): |
133 | make install |
134 | # man pages are not installed |
135 | |
136 | e) At the end of August GNU make and pdksh were too buggy for compile. |
137 | Both maintainers have patches that make it possible to compile perl. |
138 | They are included into distribution of this patch on |
139 | ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2 |
140 | |
141 | !!!!!!!!!!!!!!!!! |
142 | If you see that some '/' became '\' in pdksh 5.2.3, you did not apply |
143 | my patches! |
144 | Same with segfaults in Make 3.74. |
145 | !!!!!!!!!!!!!!!!! |
146 | |
147 | Problems reported: |
148 | |
149 | a) one of the latest tr is broken, get an old one :-( |
150 | 1.11 works. (On compuserver?) |
151 | b) You need a perlglob.exe and link386. |
152 | c) Get rid of invalid perl.dll on your LIBPATH. |
153 | |
154 | |
155 | Send comments to ilya@math.ohio-state.edu. |