Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Sync to snapshot 2008-11. But we didn't sync code/extfmts.lisp or iso8859-1.lisp and utf-8.lisp. (I don't think we want those changes, yet.)
Sync to snapshot 2008-11.
Merge changes from snapshot 2008-10.
Merge changes from snapshot-2008-10.
Comment out the setquota entry so we can compile on Linux. (This needs to be revisited.)
Use openpty to obtain a pseudo-terminal pair instead of searching for an available devices on our own. This resolves an issue with Linux systems that do not populate /dev with BSD pseudo-terminal devices.
Remove code to support very old releases of Solaris 2.
o Don't wrap the body in an #ifndef/#endif because this file is intentionally included multiple times in undefineds.c and is expected to do something each time. o Add mprotect o Add a few more functions for sparc that were missing. (Only matters for non-linkage-table builds. Shouldn't have any affect on linkage-table builds.)
Merge code from main branch of 2005-12-17 to ppc gencgc branch. Still doesn't work of course.
Indent all source files using GNU indent using the config in .indent.pro.
Add #ifndef _FOO_H_ etc. lines to all .h files. Moved a few lines in lisp.c into the correct <foo>-os.h files.
Implement UNIX-GETPWUID for Darwin, by sharing code with the NetBSD support. This is necessary for FILE-AUTHOR.
First merge of the C side of the OS X/Darwin port. Besides adding Darwin versions of all the required things, this commit separates the interrupt handler proper (now interrupt_handle_now_handler) from the actual work-horse (interrupt_handle_now), which is now only ever called from the two interrupt handlers, interrupt_handle_now_handler and maybe_now_maybe_later. This follows similar changes in SBCL, and is in fact needed in order to properly use sigreturn in signal handlers, as required to work around a problem with the G5.
Changes from Robert Swindells to support NetBSD.
Added lockf64 for non linkage-table builds.
Following the Large File Support changes, add names of 64-bit variants of library calls to the list of symbols that need special handling when linking.
The getpwuid_r() etc symbols must be referenced for Linux builds on Alpha (where there's no linkage-table yet).
Alpha Linux support from Brian.
Add definitions for the passwd routines.
Changed the OpenBSD port to use dlopen+ld for FFI linkage, like current Linux and FreeBSD/ELF do, although OpenBSD is still non-ELF. Also changed the handling of leading underscores in alien names, by moving the underscore addition to extern-alien-name, where it belongs, and not foreign-symbol-address-aux. This brings the x86 port in line with the other ports, modulo the PVE_stub_ magic. The changes necessitate some bootstrapping code for BSD non-ELF platforms.
Mega commit to bring RELENG_18 branch in sync with HEAD in preparation for release tagging 18d.
Added specialised port to NetBSD (1.5.2) on x86. Since the code-base was already cleaned up with the OpenBSD port, this doesn't require massive changes. Since current NetBSD is ELF-based by default, we don't make use of the ELF feature, or in other words: The presence of the NetBSD feature implies ELF, since there is no support for non-ELF NetBSD.
Added specialised port to OpenBSD (2.9). Many parts of the original code which were previously conditionalized on :FreeBSD, are now conditionalized on :BSD instead, with the :BSD feature now implying a 4.4BSD(lite2) derived OS. This should make future BSD-ports easier. FreeBSD and OpenBSD are differentiated by having either :FreeBSD or :OpenBSD on the features list. Currently the OpenBSD port does not have working ELF support, because OpenBSD 2.9 is still non-ELF by default. So don't put ELF on the features list when building for OpenBSD, or fix the code to work correctly in this case instead.
This set of revisions brings the RELENG_18 branch up to HEAD in preparation for an 18c release.
Changes for Linux running on Alpha. From: Julian Dolby <dolby@csag-226-8.UCSD.EDU> Enclosed below are diffs against the cvs repository as of Feb 12; aside from minor changes like using different include files (e.g. validate.h instead of x86-validate.h in Linux-os.c) and adding alpha-linux specifics unix-glibc2.lisp, there are two code changes. The first is to signal handling. I had to put the POSIX-SIGS ifdefs into places used by alpha but not by x86, and I ifdef'ed out most of the linux #define kludges for signals for alpha linux, since alpha linux uses OSF/1 signals rather than linux ones. The second is that the trick of or'ing 2 into the reg_ALLOC address to cause faults does not work on alpha linux since the kernel traps and handles the unaligned access; I did not find a way to change that kernel behavior, so I changed the code to or (1<<63) into the address to cause a seg fault, and then check, in the seg fault handler, to see if the high-order address bits are set. One change I made is to the memory layout (lisp/alpha-validate.h and compiler/alpha/parms.lisp); that change is not needed to make lisp run on alpha linux, but is there because I wanted more heap space.
Updates for the HP port from Mike McDonald: revised address map; and don't define setquota.
This (huge) revision brings the RELENG_18 branch up to the current HEAD. Note code/unix-glib2.lisp not yet included -- not sure it is ready to go.
Add mmap and munmap to the syscall list.
Using "times" now on Solaris.
I just finished making load-foreign work on SGIs, along with fixing calling of foreign functions taking floating-point arguments after integer arguments but before the fourth argument (more or less; mips has unusual C calling conventions), and making cmucl work on IRIX 6.2 on the Onyx (where the system page size has changed). I've included the patches below, along with some discussion of the changes and a couple of problems with cmucl's interaction with dynamic loading. Also, there's a misc change to make ioctls work (I'm not sure for what version the released code worked, but it doesn't work on anything I have). The patches do not fix the R10000; cmucl continues to not work on it (O2 and Octane). The fixes make cmucl on the sgi use shared libraries so it can use dlopen et al in load-foreign; this is based on the solaris implementation. The problem with this is that the addresses of foreign variables are included directly in the dumped lisp image (without relocation on loading), which might result in a problem if cmucl is run with newer shared libraries than those it was compiled and dumped with. As far as I can tell, for the SGI at least, this does not affect function calls because the addresses used (and included in the dumped image) are those of stub routines that jump to the actual routines, thus are located in the executable proper rather than in the shared libraries, and so shouldn't be changed by a new version of the shared library. Unfortunately, this is not the case for global variables. Fortunately, there appear to only be two foreign variables used by cmucl in any of its system code winding up in the dumped image: errno and tzname. Apparently, Solaris relocates data references in dsos to match the program, while IRIX relocates data references in the program to match the dso. Thus, on Solaris, you don't need to do anything special for cmucl to work with a newer runtime libc, but on IRIX it gets the wrong value of errno and tzname. Unfortunately, the address of errno is different between irix 6.2, 6.3, and 6.4 (all of which we have to have because SGI doesn't have a single cross-platform OS version yet), which would require a different lisp.core for each machine (you just need to run mk-lisp, not recompile) if it weren't for the hack below. But fortunately again, a lisp compiled for one version seems to be able to run on another version well enough to generate the new lisp.core (presumably the worst that would happen is that error messages could be confusing). It would be really nice to avoid this problem. Perhaps some kind of relocation table could be added to the dumped image format? I don't know enough about the system to know how possible or ridiculous that suggestion is, unfortunately. Is the Solaris behavior guaranteed to be the same in future releases? If not, or if any other platforms have the irix behavior, this might become a more general problem. In the meantime, we use a hack: we *define* errno in undefineds.c rather than just referencing it; this results in warnings from the linker, but it resolves the conflict in favor of the definition in the program, relocating libc to match, thus fixing this problem for errno. The other global variables, tzname et al, can't be fixed this way as easily because they're listed as weak symbols, essentially aliases for the real symbol, so redefining them wouldn't cause libc to reference the new version. Thus, as long as you don't use tzname, there's no problem right now (although there may be if any other library global variables are used in cmucl in the future). The definition of tzname is in a progn preceeded by a comment which says not to use it, so hopefully it's not in fact used and therefore not a problem. These patches have been tested on an R5000 O2 running irix 6.3 and a dual R4400 Onyx running irix 6.2. A previous version of these patches (for 17f) was tested on the onyx when it was running 5.3 (I think, maybe 5.2). The patches here are from the main branch of the CVS tar as of August 13. Incidentally, it was quite painful figuring out how to compile and bootstrap the current sources under the distributed irix 18a binary, even without trying :new-random or :signed-array (which I haven't tried to do yet); it might be nice to put a newer binary up...
Peter's fixes for Linux 2.1
Patches from Simon for the MIPS IRIX port: hacks for foreign functions which are not yet supported; hack for errno; signed-array support.
Alpha/osf1 doesn't have setquota either.
Don't want to link setquota on SunOS.
Oops, committed one of Rays erroneous back-patches.
Patch by Raymond Toy.
No setquota on linux.
Although there are VOPs for sin and cos on the x86, the C library versions may be more accurate for large arguments, so may want to call these.
initial post 1.3.7 merge
source kit 1.03.7
Nother SVR4 bits the dust.
Changed some things from ifndef SVR4 to SOLARIS.
tcsetattr is SVR4
Solaris patches. Change some conditions from !defined everything to mach.
Updated for the sgi.
Updated for the Alpha.
Various additions and deletions for hpux (ifdef'd, of course).
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|