From: doughera@lafcol.lafayette.edu (Andy Dougherty) Subject: RE: First stab at Configure Support for perl5alpha Date: Fri Apr 29 16:43:18 EDT 1994 I have incorporated various fixes/suggestions into the Configure support for perl5alpha8. The main changes are the following: -Better incorporation of extensions in Makefile.SH. -miniperlmain.c no longer requires dynamic loading. -perl can use dynamic loading if available, but extensions can also be compiled in statically, if desired. -perlmain.c now built from miniperlmain.c by writemain.SH, which is called in the makefile. Only the requested extensions are compiled in. -dynamic loading broken up into dl_sunos.c, dl_next.c, dl_hpux.c. Configure will look for dl_$osname.c, where osname is determined at the same time as hints are suggested. -Configure support added for sdbm library (ext/dbm/sdbm/libsdbm.a). This still needs testing. -Tests for extensions now check in %Config to see if that extension is available. Note, however, the sdbm is not an *optional* extension, so it will fail (and make test will complain) if sdbm is not installed. Thus perl programmers can safely assume that at least sdbm is available. -configpm now correctly handles comments at the end of config.sh (which Configure places there if a hints file tries to propagate unknown variables, such as libswanted). -makedepend now works in UU/ subdirectory (so it doesn't delete miniperlmain.c on systems with 14-character file name limits). -ext/typemap: My compiler couldn't handle some of the more complex casts, so an intermediate unsigned long variable has been introduced. I should probably re-do this in terms of a CRIPPLED_CC macro in XSUB.h, but it's not clear to me that it's worth it. -some new or updated hints files. -miscellaneous bug fixes. Problems remaining: -POSIX module is still under construction. -Dynamic loading of extensions works on SunOS 4.1.3, but it might need modifications to work with other systems. -It is possible to do mixed dynamic/static loading, that is, load commonly used modules statically and other modules dynamically. Currently, this must be done by hand by setting extobj in makefile and hand-editing perlmain.c. The newXSUB line for the static module must be moved into the #ifdef USE_DYNAMIC_LOADING section in perlmain.c, and the module .o file must be added to the extobj= line in makefile. -lib/[sn]dbm.t tests create a new file with a hard-wired set of flags. These should be replaced with O_CREAT | O_RDWR, which will be available from POSIX.pm, once it is up and running. For now, you might have to change the 0x202 to 0x102 (or perhaps 0x402) in lib/[sn]dbm.t for the tests to succeed. -I have applied several suggested fixes for use on the DEC alpha, but I haven't been able to keep up with all of them. -Though CRIPPLED_CC works, it might be desireable to have Configure try to figure it out. To apply: Obtain a clean copy of perl5alpha8 cd patch -p1 < As before, I am willing to continue to coordinate and develop the Configure support. Thanks to the following for various and often quite substantial patches and suggestions: Peter Galbavy Jarkko Hietaniemi Andreas Koenig Raphael Manfredi David Meyer Jeff Okamoto John Stoffel Larry Wall (lwall@netlabs.com> Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Phone: (610) 250-5212 Lafayette College FAX: (610) 250-9263 Easton, PA 18042-1782 ================================================================= From: doughera@lafcol.lafayette.edu (Andy Dougherty) Subject: First stab at Configure Support for perl5alpha Date: Mon Apr 4 15:13:50 EDT 1994 I've updated Configure to support perl5alpha7. Consider this a first attempt. I am willing to continue to develop and coordinate improvement on this. I've included the metaconfig units (in the U/ directory) that I developed for this. New units, or fixes to these, are welcome. Here's what should work: -You should be able to Configure and run miniperl on any platform that supported perl4. -Configure should be more amenable to hints. In particular, you can remove directories from the library search path with a hints file. See hints/solaris_2_3.sh for an example. Here's what needs improvement: -Including dynamic loading on works on SunOS 4.1.x, as far as I know, but nowhere else. I don't understand enough about what's going on to put in stub functions for those who might want/have to use another dynamic linking package or static linking. Configure assumes you want to use the dl.c source file if you try to use dynamic linking. Still, you should be able to get miniperl up and running. -I haven't made any changes to installperl. -Makefile.SH (and hence makefile) should arrange to pick up the appropriate .pm modules from the extensions directory and install them. I haven't done anything about that. -I didn't incorporate any of the Configure changes into the extension files, partly because I couldn't get past the dynamic loading problem on my main machine, but mostly because I haven't had the time yet. That's near the top of the ToDo list. -I made no changes to the x2p/ subdirectory, though some might be probably needed. -Lots of the hints files are probably now out of date. The solaris_2_[23].sh ones are completely untested guesses. Fixed/updated version are welcome. -The defaults are to use perl's malloc and compile with -g -DDEBUGGING. I was unable to get perl to pass all tests with anything else. Part of the problem may be the stupid stub functions I inserted in dump.c and sv.c, but there may be other malloc/free problems elsewhere. -Whatever else I broke to get this to work. Thanks to Tim Bunce , Manoj Srivastava , and Bill Hertzing for various suggestions and help. Thanks to Raphael Manfredi for much work on dist-3.0. Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Phone: (610) 250-5212 Lafayette College FAX: (610) 250-9263 Easton, PA 18042-1782