changeset 328:38a06e74a699

7054634 Move clisp to userland
author Rich Burridge <rich.burridge@oracle.com>
date Tue, 21 Jun 2011 18:15:23 -0700
parents b3a36ee93012
children 6ceb255f8587
files components/clisp/Makefile components/clisp/clisp.copyright components/clisp/clisp.p5m components/clisp/patches/arilev0.d.patch components/clisp/patches/arisparc.d.patch components/clisp/patches/arisparc64.d.patch components/clisp/patches/lispbibl.d.patch components/clisp/patches/makemake.in.patch components/clisp/patches/spsparc.d.patch components/clisp/patches/spsparc64.d.patch components/meta-packages/history/SUNWclisp.p5m
diffstat 11 files changed, 1860 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/Makefile	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,71 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		clisp
+COMPONENT_VERSION=	2.47
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_PROJECT_URL=	http://clisp.cons.org/
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
+COMPONENT_ARCHIVE_HASH=	sha1:63749bf07409cee134c195547e6d911554b619d6
+COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/clisp/release/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+# Required to configure correctly.
+COMPONENT_PRE_CONFIGURE_ACTION = \
+	($(CLONEY) $(SOURCE_DIR) $(@D))
+
+COMPILER=	gcc
+PATCH_LEVEL=	0
+
+# The clisp configure script exits with a failure if run with bash,
+# but works fine with ksh.
+CONFIG_SHELL = /bin/ksh
+
+# clisp's configure script is not a GNU auto* tools generated configure script
+# and doesn't take --sbindir, so we need to override the default values.
+CONFIGURE_OPTIONS = CC="$(CC)"
+CONFIGURE_OPTIONS += --prefix=$(CONFIGURE_PREFIX)
+CONFIGURE_OPTIONS += --mandir=$(CONFIGURE_MANDIR)
+CONFIGURE_OPTIONS += --bindir=$(CONFIGURE_BINDIR.$(BITS))
+CONFIGURE_OPTIONS += --libdir=$(CONFIGURE_LIBDIR.$(BITS))
+CONFIGURE_OPTIONS += --srcdir=$(SOURCE_DIR)
+CONFIGURE_OPTIONS += --with-libsigsegv-prefix=$(CONFIGURE_PREFIX)
+CONFIGURE_OPTIONS += --with-libreadline-prefix=$(CONFIGURE_PREFIX)
+
+# common targets
+build:		$(BUILD_32)
+
+install:	$(INSTALL_32)
+
+test:		$(TEST_32)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/clisp.copyright	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,435 @@
+Oracle elects to use only the GNU Lesser General Public License version
+2.1 (LGPL)/GNU General Public License version 2 (GPL) for any software
+where a choice of LGPL/GPL license versions are made available with the
+language indicating that LGPLv2.1/GPLv2 or any later version may be
+used, or where a choice of which version of the LGPL/GPL is applied is
+unspecified.  Unless specifically stated otherwise, where a choice
+exists between another license and either the GPL or the LGPL, Oracle
+chooses the other license.
+
+
+
+       Copyright (c) 1992-2008 Bruno Haible, Michael Stoll, Sam Steingold
+                           All Rights Reserved
+
+
+Summary:
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License version 2 as
+  published by the Free Software Foundation; see (file GNU-GPL) below:
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software Foundation,
+  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+Note:
+
+  This copyright does NOT cover user programs that run in CLISP and
+  third-party packages not part of CLISP, if
+    a) They only reference external symbols in CLISP's public packages
+       that define API also provided by many other Common Lisp implementations
+       (namely the packages COMMON-LISP, COMMON-LISP-USER, KEYWORD, CLOS,
+       GRAY, EXT), i.e. if they don't rely on CLISP internals and would as
+       well run in any other Common Lisp implementation. Or
+    b) They only reference external symbols in CLISP's public packages
+       that define API also provided by many other Common Lisp implementations
+       (namely the packages COMMON-LISP, COMMON-LISP-USER, KEYWORD, CLOS,
+       GRAY, EXT) and some external, not CLISP specific, symbols in
+       third-party packages that are released with source code under a
+       GPL compatible license and that run in a great number of Common Lisp
+       implementations, i.e. if they rely on CLISP internals only to the
+       extent needed for gaining some functionality also available in a
+       great number of Common Lisp implementations.
+  Such user programs are not covered by the term "derived work" used in
+  the GNU GPL. Neither is their compiled code, i.e. the result of compiling
+  them by use of the function COMPILE-FILE. We refer to such user programs
+  as "independent work".
+
+  You may copy and distribute memory image files generated by the
+  function SAVEINITMEM, if it was generated only from CLISP and independent
+  work, and provided that you accompany them, in the sense of section 3
+  of the GNU GPL, with the source code of CLISP - precisely the same CLISP
+  version that was used to build the memory image -, the source or compiled
+  code of the user programs needed to rebuild the memory image (source
+  code for all the parts that are not independent work, see above), and
+  a precise description how to rebuild the memory image from these.
+
+  Foreign non-Lisp code that is linked with CLISP or loaded into CLISP
+  through dynamic linking is not exempted from this copyright. I.e. such
+  code, when distributed for use with CLISP, must be distributed under
+  the GPL.
+
+
+Authors:
+  Generic CLISP: Bruno Haible, Michael Stoll
+  Atari version: Bruno Haible, Michael Stoll
+  Amiga version: Bruno Haible, Jörg Höhle
+  Acorn version: Bruno Haible, Peter Burwood
+  DOS version:   Bruno Haible, Bernhard Degel, Jürgen Weber
+  OS/2 version:  Bruno Haible
+  Unix version:  Bruno Haible
+
+Maintenance:
+  Bruno Haible, Michael Stoll 1992-1993
+  Bruno Haible, Marcus Daniels 1994-1997
+  Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
+  Bruno Haible, Sam Steingold 1999-2001
+  Sam Steingold 2002-2008
+
+Email addresses (September 1992 or newer):
+  Bruno Haible       bruno@clisp.org
+  Michael Stoll      michael@rhein.iam.uni-bonn.de
+  Jörg Höhle         Joerg-Cyril.Hoehle@t-systems.com
+  Peter Burwood      clisp@arcangel.dircon.co.uk
+  Marcus Daniels     marcus@sysc.pdx.edu
+  Pierpaolo Bernardi bernardp@cli.di.unipi.it
+  Sam Steingold      sds@gnu.org
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          51 Franklin Street, Fifth Floor,
+                          Boston, MA 02110-1301, USA.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+        Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/clisp.p5m	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,155 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+set name=pkg.fmri \
+    value=pkg:/runtime/clisp@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.description value="ANSI Common Lisp compiler, interpreter and debugger"
+set name=pkg.summary value="GNU Common Lisp"
+set name=info.classification \
+    value="org.opensolaris.category.2008:Development/Other Languages"
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/PSARC/2009/141
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+license clisp.copyright license="clisp, GPLv2"
+
+dir path=usr
+dir path=usr/bin
+dir path=usr/lib
+dir path=usr/lib/clisp
+dir path=usr/lib/clisp/base
+dir path=usr/lib/clisp/data
+dir path=usr/lib/clisp/full
+dir path=usr/lib/clisp/linkkit
+dir path=usr/share
+dir path=usr/share/doc
+dir path=usr/share/doc/clisp
+dir path=usr/share/doc/clisp/doc
+dir path=usr/share/emacs
+dir path=usr/share/emacs/site-lisp
+dir path=usr/share/locale
+dir path=usr/share/locale/da
+dir path=usr/share/locale/da/LC_MESSAGES
+dir path=usr/share/locale/de
+dir path=usr/share/locale/de/LC_MESSAGES
+dir path=usr/share/locale/en
+dir path=usr/share/locale/en/LC_MESSAGES
+dir path=usr/share/locale/es
+dir path=usr/share/locale/es/LC_MESSAGES
+dir path=usr/share/locale/fr
+dir path=usr/share/locale/fr/LC_MESSAGES
+dir path=usr/share/locale/nl
+dir path=usr/share/locale/nl/LC_MESSAGES
+dir path=usr/share/locale/ru
+dir path=usr/share/locale/ru/LC_MESSAGES
+dir path=usr/share/man
+dir path=usr/share/man/man1
+dir path=usr/share/vim
+dir path=usr/share/vim/vimfiles
+dir path=usr/share/vim/vimfiles/after
+dir path=usr/share/vim/vimfiles/after/syntax
+
+file path=usr/bin/clisp
+file path=usr/lib/clisp/base/calls.o
+file path=usr/lib/clisp/base/gettext.o
+file path=usr/lib/clisp/base/libnoreadline.a
+file path=usr/lib/clisp/base/lisp.a
+file path=usr/lib/clisp/base/lisp.run mode=0555
+file path=usr/lib/clisp/base/lispinit.mem
+file path=usr/lib/clisp/base/localcharset.o
+file path=usr/lib/clisp/base/makevars
+file path=usr/lib/clisp/base/modules.h
+file path=usr/lib/clisp/base/modules.o
+file path=usr/lib/clisp/base/regex.o
+file path=usr/lib/clisp/base/regexi.o
+file path=usr/lib/clisp/base/regexp.dvi
+file path=usr/lib/clisp/base/uniname.o
+file path=usr/lib/clisp/base/width.o
+file path=usr/lib/clisp/clisp-link
+file path=usr/lib/clisp/data/Symbol-Table.text
+file path=usr/lib/clisp/data/UnicodeDataFull.txt
+file path=usr/lib/clisp/full/calls.o
+file path=usr/lib/clisp/full/gettext.o
+file path=usr/lib/clisp/full/libnoreadline.a
+file path=usr/lib/clisp/full/lisp.a
+file path=usr/lib/clisp/full/lisp.run mode=0555
+file path=usr/lib/clisp/full/lispinit.mem
+file path=usr/lib/clisp/full/localcharset.o
+file path=usr/lib/clisp/full/makevars
+file path=usr/lib/clisp/full/modules.h
+file path=usr/lib/clisp/full/modules.o
+file path=usr/lib/clisp/full/regex.o
+file path=usr/lib/clisp/full/regexi.o
+file path=usr/lib/clisp/full/regexp.dvi
+file path=usr/lib/clisp/full/uniname.o
+file path=usr/lib/clisp/full/width.o
+file path=usr/lib/clisp/linkkit/clisp.h
+file path=usr/lib/clisp/linkkit/modprep.lisp
+file path=usr/lib/clisp/linkkit/modules.c
+file path=usr/share/doc/clisp/ANNOUNCE
+file path=usr/share/doc/clisp/COPYRIGHT
+file path=usr/share/doc/clisp/GNU-GPL
+file path=usr/share/doc/clisp/MAGIC.add
+file path=usr/share/doc/clisp/NEWS
+file path=usr/share/doc/clisp/README
+file path=usr/share/doc/clisp/README.de
+file path=usr/share/doc/clisp/README.es
+file path=usr/share/doc/clisp/SUMMARY
+file path=usr/share/doc/clisp/doc/CLOS-guide.txt
+file path=usr/share/doc/clisp/doc/LISP-tutorial.txt
+file path=usr/share/doc/clisp/doc/clisp.dvi
+file path=usr/share/doc/clisp/doc/clisp.html
+file path=usr/share/doc/clisp/doc/clisp.pdf
+file path=usr/share/doc/clisp/doc/clisp.png
+file path=usr/share/doc/clisp/doc/clisp.ps
+file path=usr/share/doc/clisp/doc/editors.txt
+file path=usr/share/doc/clisp/doc/impnotes.css
+file path=usr/share/doc/clisp/doc/impnotes.html
+file path=usr/share/emacs/site-lisp/clhs.el
+file path=usr/share/emacs/site-lisp/clisp-coding.el
+file path=usr/share/emacs/site-lisp/clisp-ffi.el
+file path=usr/share/emacs/site-lisp/clisp-indent.el
+file path=usr/share/emacs/site-lisp/clisp-indent.lisp
+file path=usr/share/locale/da/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/da/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/de/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/de/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/en/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/en/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/es/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/es/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/fr/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/fr/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/nl/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/nl/LC_MESSAGES/clisplow.mo
+file path=usr/share/locale/ru/LC_MESSAGES/clisp.mo
+file path=usr/share/locale/ru/LC_MESSAGES/clisplow.mo
+file path=usr/share/man/man1/clisp.1
+file path=usr/share/vim/vimfiles/after/syntax/lisp.vim
+
+legacy pkg=SUNWclisp \
+    desc="GNU Common Lisp implementation (2.47)" \
+    name="GNU Common Lisp"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/arilev0.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,47 @@
+--- src.orig/arilev0.d	Fri Dec 14 06:27:48 2007
++++ src/arilev0.d	Mon Feb  2 15:35:22 2009
+@@ -340,7 +340,7 @@
+     #elif defined(SPARC)
+       #define mulu32(x,y,hi_assignment,lo_assignment)  \
+         ({ lo_assignment mulu32_(x,y); # extern in Assembler \
+-          {var register uint32 _hi __asm__("%g1");          \
++          {var register uint32 _hi __asm__("%g3");          \
+            hi_assignment _hi;                                \
+          }})
+     #elif defined(HAVE_LONG_LONG_INT) && !defined(ARM)
+@@ -357,7 +357,7 @@
+     #if defined(MC680X0) || defined(SPARC) || defined(SPARC64) || defined(ARM) || (defined(I80386) && !defined(BORLAND)) || defined(MIPS) || defined(HPPA) || defined(VAX)
+       # mulu32_ extern in Assembler
+       #if defined(SPARC) || defined(SPARC64)
+-        #define mulu32_high  (uint32)(_get_g1()) # Rückgabe im Register %g1
++        #define mulu32_high  (uint32)(_get_g1()) # Rückgabe im Register %g3
+       #elif defined(LISPARIT) && !defined(HPPA) # In arihppa.d ist mulu32_high bereits definiert.
+         global uint32 mulu32_high;
+       #endif
+@@ -471,7 +471,7 @@
+     #elif defined(SPARC)
+       #define mulu32_64(x,y)  \
+         ({ var register uint32 _lo = mulu32_(x,y); # extern in Assembler \
+-           var register uint32 _hi __asm__("%g1");                       \
++           var register uint32 _hi __asm__("%g3");                       \
+            highlow64(_hi,_lo);                                           \
+          })
+     #endif
+@@ -890,7 +890,7 @@
+     #elif defined(SPARC) || defined(SPARC64)
+       #define divu_6432_3232(xhi,xlo,y,q_assignment,r_assignment)  \
+         ({ var uint32 _q = divu_6432_3232_(xhi,xlo,y); # extern in Assembler \
+-           var register uint32 _r __asm__("%g1");                            \
++           var register uint32 _r __asm__("%g3");                            \
+            q_assignment _q; r_assignment _r;                                   \
+          })
+     #elif defined(ARM) && 0 # see comment ariarm.d
+@@ -935,7 +935,7 @@
+     #if defined(MC680Y0) || defined(SPARC) || defined(SPARC64) || defined(ARM) || (defined(I80386) && !defined(BORLAND)) || defined(HPPA)
+       # divu_6432_3232_ extern in Assembler
+       #if defined(SPARC) || defined(SPARC64)
+-        #define divu_32_rest  (uint32)(_get_g1()) # Rückgabe im Register %g1
++        #define divu_32_rest  (uint32)(_get_g1()) # Rückgabe im Register %g3
+       #elif defined(LISPARIT)
+         global uint32 divu_32_rest;
+       #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/arisparc.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,614 @@
+--- src.orig/arisparc.d	Thu Dec  6 00:06:32 2007
++++ src/arisparc.d	Mon Feb  2 15:35:22 2009
+@@ -100,11 +100,11 @@
+ 
+ # extern struct { uint32 lo; uint32 hi; } mulu32_ (uint32 arg1, uint32 arg2);
+ # 2^32*hi+lo := arg1*arg2.
+-C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g1
++C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g3
+ #ifdef sparcv8
+         umul    %o0,%o1,%o0
+         retl
+-       _ rd      %y,%g1
++       _ rd      %y,%g3
+ #else
+         mov     %o1,%y
+         sra     %o0,31,%o3      # Wartetakt, nötig z.B. für SUN SPARCstation IPC
+@@ -143,7 +143,7 @@
+         mulscc  %o2,%o0,%o2
+         mulscc  %o2,%g0,%o2
+         and     %o3,%o1,%o3     # %o3 = (0 falls %o0>=0, %o1 falls %o0<0)
+-        add     %o2,%o3,%g1     # hi
++        add     %o2,%o3,%g3     # hi
+         retl
+        _ rd      %y,%o0         # lo
+ #endif
+@@ -216,7 +216,7 @@
+ 
+ # extern struct { uint32 q; uint32 r; } divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y);
+ # x = 2^32*xhi+xlo = q*y+r schreiben. Sei bekannt, dass 0 <= x < 2^32*y .
+-C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g1
++C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g3
+ #if defined(sparcv8)
+         # Problem: Is udiv worth using (gmp-2.0.2 doesn't use it) ??
+         wr      %o0,%g0,%y
+@@ -224,9 +224,9 @@
+         nop                     # wait 2 | processors such as Ross Hypersparc,
+         nop                     # wait 3 | but not for most of the others.
+         udiv    %o1,%o2,%o0     # x durch y dividieren, %o0 := q
+-        umul    %o0,%o2,%g1     # %g1 := (q*y) mod 2^32
++        umul    %o0,%o2,%g3     # %g3 := (q*y) mod 2^32
+         retl
+-       _ sub     %o1,%g1,%g1    # %g1 := (xlo-q*y) mod 2^32 = r
++       _ sub     %o1,%g3,%g3    # %g3 := (xlo-q*y) mod 2^32 = r
+ #else
+         # %o0 = xhi, %o1 = xlo, %o2 = y
+ # Divisions-Einzelschritte:
+@@ -305,20 +305,20 @@
+        _ subcc   %o0,%o2,%o3
+         subcc   %o3,%o2,%o0     # muss der Quotient nochmals erhöht werden?
+         bcs     Ll03
+-       _ mov     %o3,%g1
++       _ mov     %o3,%g3
+         # Quotient 2 mal erhöhen, Rest %o0
+-        mov     %o0,%g1
++        mov     %o0,%g3
+         retl
+        _ add     %o1,2,%o0
+ Ll02:   # kein Additions-Überlauf.
+         # Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
+         bcs     Ll04            # %o0 < %o2 -> Rest %o0 und Quotient %o1 OK
+-       _ mov     %o3,%g1
++       _ mov     %o3,%g3
+ Ll03:   # Quotient %o1 erhöhen, Rest = %o0-%o2 = %o3
+         retl
+        _ add     %o1,1,%o0
+ Ll04:   # Quotient %o1 und Rest %o0 OK
+-        mov     %o0,%g1
++        mov     %o0,%g3
+         retl
+        _ mov     %o1,%o0
+ # Parallelschiene zu La01..La32:
+@@ -366,20 +366,20 @@
+        _ subcc   %o3,%o2,%o0
+         subcc   %o0,%o2,%o3     # muss der Quotient nochmals erhöht werden?
+         bcs     Ll06
+-       _ mov     %o0,%g1
++       _ mov     %o0,%g3
+         # Quotient 2 mal erhöhen, Rest %o3
+-        mov     %o3,%g1
++        mov     %o3,%g3
+         retl
+        _ add     %o1,2,%o0
+ Ll05:   # kein Additions-Überlauf.
+         # Wegen y>=2^31 muss der Quotient noch höchstens 1 mal erhöht werden:
+         bcs     Ll07            # %o3 < %o2 -> Rest %o3 und Quotient %o1 OK
+-       _ mov     %o0,%g1
++       _ mov     %o0,%g3
+ Ll06:   # Quotient %o1 erhöhen, Rest = %o3-%o2 = %o0
+         retl
+        _ add     %o1,1,%o0
+ Ll07:   # Quotient %o1 und Rest %o3 OK
+-        mov     %o3,%g1
++        mov     %o3,%g3
+         retl
+        _ mov     %o1,%o0
+ Lsmalldiv: # Division durch y < 2^31
+@@ -416,7 +416,7 @@
+ Lc29:   SB0(); SA0(Ld30)        # Bit 2 des Quotienten bestimmen
+ Lc30:   SB0(); SA0(Ld31)        # Bit 1 des Quotienten bestimmen
+ Lc31:   SB0(); SA0(Ld32)        # Bit 0 des Quotienten bestimmen
+-Lc32:   mov     %o0,%g1         # Rest aus %o0 in %g1 abspeichern
++Lc32:   mov     %o0,%g3         # Rest aus %o0 in %g3 abspeichern
+         retl
+        _ xor     %o1,-1,%o0     # Quotient nach %o0
+ # Parallelschiene zu Lc01..Lc32:
+@@ -451,7 +451,7 @@
+ Ld29:   SB1(); SA1(Lc30)
+ Ld30:   SB1(); SA1(Lc31)
+ Ld31:   SB1(); SA1(Lc32)
+-Ld32:   mov     %o3,%g1         # Rest aus %o3 in %g1 abspeichern
++Ld32:   mov     %o3,%g3         # Rest aus %o3 in %g3 abspeichern
+         retl
+        _ xor     %o1,-1,%o0     # Quotient nach %o0
+ Levendiv: # Division durch gerades y.
+@@ -493,7 +493,7 @@
+ Le30:   SB0(); SA0(Lf31)        # Bit 1 des Quotienten bestimmen
+ Le31:   SB0(); SA0(Lf32)        # Bit 0 des Quotienten bestimmen
+ Le32:   SB0()                   # Bit 0 des Restes bestimmen
+-        mov     %o0,%g1         # Rest aus %o0 in %g1 abspeichern
++        mov     %o0,%g3         # Rest aus %o0 in %g3 abspeichern
+         retl
+        _ xor     %o1,-1,%o0     # Quotient nach %o0
+ # Parallelschiene zu Le01..Le32:
+@@ -529,7 +529,7 @@
+ Lf30:   SB1(); SA1(Le31)
+ Lf31:   SB1(); SA1(Le32)
+ Lf32:   SB1()
+-        mov     %o3,%g1         # Rest aus %o0 in %g1 abspeichern
++        mov     %o3,%g3         # Rest aus %o0 in %g3 abspeichern
+         retl
+        _ xor     %o1,-1,%o0     # Quotient nach %o0
+ #endif
+@@ -1205,18 +1205,18 @@
+ #endif
+ 
+ # extern uintD add_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
+-C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll49
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+ Ll48:     ld [%o0],%o4          # source1-digit
+           sub %o1,4,%o1
+           ld [%o1],%o5          # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           addxcc %o4,%o5,%o4    # addieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o2,4,%o2
+           st %o4,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+@@ -1223,12 +1223,12 @@
+           bne Ll48
+          _ sub %o0,4,%o0
+ Ll49:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if COUNTER_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll49
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sll %o3,2,%o3           # %o3 = 4*count
+@@ -1237,14 +1237,14 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ Ll48:     ld [%o0+%o3],%o4      # source1-digit
+           ld [%o1+%o3],%o5      # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           addxcc %o4,%o5,%o4    # addieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           subcc %o3,4,%o3
+           bne Ll48
+          _ st %o4,[%o2+%o3]     # Digit ablegen
+ Ll49:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if UNROLLED_LOOPS
+         and %o3,7,%o4           # count mod 8
+@@ -1257,7 +1257,7 @@
+         sub %o5,%o4,%o5
+         jmp %o5                 # Sprung nach _add_loop_down+4*(12+4*8-4*(count mod 8))
+        _ subcc %g0,%g0,%g0      # carry löschen
+-Ll48:     subcc %g0,%g1,%g0     # carry
++Ll48:     subcc %g0,%g3,%g0     # carry
+           ld [%o0+28],%o4       # source1-digit
+           ld [%o1+28],%o5       # source2-digit
+           addxcc %o5,%o4,%o5    # addieren
+@@ -1290,7 +1290,7 @@
+           ld [%o1],%o5          # source2-digit
+           addxcc %o5,%o4,%o5    # addieren
+           st %o5,[%o2]          # Digit ablegen
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o0,32,%o0
+           sub %o1,32,%o1
+           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
+@@ -1297,7 +1297,7 @@
+           bcc Ll48
+          _ sub %o2,32,%o2
+         retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ 
+ # extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
+@@ -1431,18 +1431,18 @@
+ #endif
+ 
+ # extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
+-C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll56
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+ Ll55:     ld [%o0],%o4          # source1-digit
+           sub %o1,4,%o1
+           ld [%o1],%o5          # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           subxcc %o4,%o5,%o4    # subtrahieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o2,4,%o2
+           st %o4,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+@@ -1449,12 +1449,12 @@
+           bne Ll55
+          _ sub %o0,4,%o0
+ Ll56:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if COUNTER_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll56
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sll %o3,2,%o3           # %o3 = 4*count
+@@ -1463,14 +1463,14 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ Ll55:     ld [%o0+%o3],%o4      # source1-digit
+           ld [%o1+%o3],%o5      # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           subxcc %o4,%o5,%o4    # subtrahieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           subcc %o3,4,%o3
+           bne Ll55
+          _ st %o4,[%o2+%o3]     # Digit ablegen
+ Ll56:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if UNROLLED_LOOPS
+         and %o3,7,%o4           # count mod 8
+@@ -1483,7 +1483,7 @@
+         sub %o5,%o4,%o5
+         jmp %o5                 # Sprung nach _sub_loop_down+4*(12+4*8-4*(count mod 8))
+        _ subcc %g0,%g0,%g0      # carry löschen
+-Ll55:     subcc %g0,%g1,%g0     # carry
++Ll55:     subcc %g0,%g3,%g0     # carry
+           ld [%o0+28],%o4       # source1-digit
+           ld [%o1+28],%o5       # source2-digit
+           subxcc %o4,%o5,%o4    # subtrahieren
+@@ -1516,7 +1516,7 @@
+           ld [%o1],%o5          # source2-digit
+           subxcc %o4,%o5,%o4    # subtrahieren
+           st %o4,[%o2]          # Digit ablegen
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o0,32,%o0
+           sub %o1,32,%o1
+           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
+@@ -1523,22 +1523,22 @@
+           bcc Ll55
+          _ sub %o2,32,%o2
+         retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ 
+ # extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry);
+-C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1, Output in %o0
++C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll58
+-       _ mov %o4,%g1            # Carry
++       _ mov %o4,%g3            # Carry
+         sub %o0,4,%o0
+ Ll57:     ld [%o0],%o4          # source1-digit
+           sub %o1,4,%o1
+           ld [%o1],%o5          # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           subxcc %o4,%o5,%o4    # subtrahieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o2,4,%o2
+           st %o4,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+@@ -1545,12 +1545,12 @@
+           bne Ll57
+          _ sub %o0,4,%o0
+ Ll58:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if COUNTER_LOOPS
+         andcc %o3,%o3,%g0
+         be Ll58
+-       _ mov %o4,%g1            # Carry
++       _ mov %o4,%g3            # Carry
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sll %o3,2,%o3           # %o3 = 4*count
+@@ -1559,27 +1559,27 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ Ll57:     ld [%o0+%o3],%o4      # source1-digit
+           ld [%o1+%o3],%o5      # source2-digit
+-          subcc %g0,%g1,%g0     # carry
++          subcc %g0,%g3,%g0     # carry
+           subxcc %o4,%o5,%o4    # subtrahieren
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           subcc %o3,4,%o3
+           bne Ll57
+          _ st %o4,[%o2+%o3]     # Digit ablegen
+ Ll58:   retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if UNROLLED_LOOPS
+         and %o3,7,%o5           # count mod 8
+-        sll %o5,2,%g1
+-        sub %o0,%g1,%o0         # %o0 = &sourceptr1[-(count mod 8)]
+-        sub %o1,%g1,%o1         # %o1 = &sourceptr2[-(count mod 8)]
+-        sub %o2,%g1,%o2         # %o2 = &destptr[-(count mod 8)]
++        sll %o5,2,%g3
++        sub %o0,%g3,%o0         # %o0 = &sourceptr1[-(count mod 8)]
++        sub %o1,%g3,%o1         # %o1 = &sourceptr2[-(count mod 8)]
++        sub %o2,%g3,%o2         # %o2 = &destptr[-(count mod 8)]
+         sll %o5,4,%o5
+-        set _subx_loop_down+176,%g1
+-        sub %g1,%o5,%g1
+-        jmp %g1                 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
++        set _subx_loop_down+176,%g3
++        sub %g3,%o5,%g3
++        jmp %g3                 # Sprung nach _subx_loop_down+4*(12+4*8-4*(count mod 8))
+        _ subcc %g0,%o4,%g0      # carry initialisieren
+-Ll57:     subcc %g0,%g1,%g0     # carry
++Ll57:     subcc %g0,%g3,%g0     # carry
+           ld [%o0+28],%o4       # source1-digit
+           ld [%o1+28],%o5       # source2-digit
+           subxcc %o4,%o5,%o4    # subtrahieren
+@@ -1612,7 +1612,7 @@
+           ld [%o1],%o5          # source2-digit
+           subxcc %o4,%o5,%o4    # subtrahieren
+           st %o4,[%o2]          # Digit ablegen
+-          addx %g0,%g0,%g1      # neuer Carry
++          addx %g0,%g0,%g3      # neuer Carry
+           sub %o0,32,%o0
+           sub %o1,32,%o1
+           subcc %o3,8,%o3       # noch mindestens 8 Digits abzuarbeiten?
+@@ -1619,7 +1619,7 @@
+           bcc Ll57
+          _ sub %o2,32,%o2
+         retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ 
+ # extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
+@@ -1831,10 +1831,10 @@
+        _ mov %o3,%o0
+ 
+ # extern uintD shiftleft_loop_down (uintD* ptr, uintC count, uintC i, uintD carry);
+-C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(shiftleft_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+         andcc %o1,%o1,%g0
+         be Ll72
+-       _ sub %g0,%o2,%g1        # 32-i (mod 32)
++       _ sub %g0,%o2,%g3        # 32-i (mod 32)
+         sub %o0,4,%o0
+ Ll71:     ld [%o0],%o4          # Digit
+           subcc %o1,1,%o1
+@@ -1841,7 +1841,7 @@
+           sll %o4,%o2,%o5       # dessen niedere (32-i) Bits
+           or %o3,%o5,%o5        # mit dem alten Carry kombinieren
+           st %o5,[%o0]          # Digit ablegen
+-          srl %o4,%g1,%o3       # dessen höchste i Bits liefern den neuen Carry
++          srl %o4,%g3,%o3       # dessen höchste i Bits liefern den neuen Carry
+           bne Ll71
+          _ sub %o0,4,%o0
+ Ll72:   retl
+@@ -1848,11 +1848,11 @@
+        _ mov %o3,%o0
+ 
+ # extern uintD shiftleftcopy_loop_down (uintD* sourceptr, uintD* destptr, uintC count, uintC i);
+-C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0
++C(shiftleftcopy_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0
+         andcc %o2,%o2,%g0
+         be Ll74
+        _ mov 0,%o4              # Carry := 0
+-        sub %g0,%o3,%g1         # 32-i (mod 32)
++        sub %g0,%o3,%g3         # 32-i (mod 32)
+         sub %o0,4,%o0
+ Ll73:     ld [%o0],%o5          # Digit
+           subcc %o2,1,%o2
+@@ -1860,7 +1860,7 @@
+           or %o4,%g2,%g2        # mit dem alten Carry kombinieren
+           sub %o1,4,%o1
+           st %g2,[%o1]          # Digit ablegen
+-          srl %o5,%g1,%o4       # dessen höchste i Bits liefern den neuen Carry
++          srl %o5,%g3,%o4       # dessen höchste i Bits liefern den neuen Carry
+           bne Ll73
+          _ sub %o0,4,%o0
+ Ll74:   retl
+@@ -1883,17 +1883,17 @@
+        _ mov %o2,%o0
+ 
+ # extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
+-C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
++C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
+         andcc %o1,%o1,%g0
+         be Ll78
+        _ or %g0,%g0,%o3         # Carry := 0
+-        sub %g0,%o2,%g1         # 32-i (mod 32)
++        sub %g0,%o2,%g3         # 32-i (mod 32)
+ Ll77:     ld [%o0],%o4          # Digit
+           subcc %o1,1,%o1
+           srl %o4,%o2,%o5       # shiften
+           or %o3,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o0]          # und ablegen
+-          sll %o4,%g1,%o3       # neuer Carry
++          sll %o4,%g3,%o3       # neuer Carry
+           bne Ll77
+          _ add %o0,4,%o0
+ Ll78:   retl
+@@ -1900,12 +1900,12 @@
+        _ mov %o3,%o0
+ 
+ # extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
+-C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
++C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
+         ld [%o0],%o4            # erstes Digit
+-        sub %g0,%o2,%g1         # 32-i (mod 32)
++        sub %g0,%o2,%g3         # 32-i (mod 32)
+         sra %o4,%o2,%o5         # shiften
+         st %o5,[%o0]            # und ablegen
+-        sll %o4,%g1,%o3         # neuer Carry
++        sll %o4,%g3,%o3         # neuer Carry
+         subcc %o1,1,%o1
+         be Ll80
+        _ add %o0,4,%o0
+@@ -1914,7 +1914,7 @@
+           srl %o4,%o2,%o5       # shiften
+           or %o3,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o0]          # und ablegen
+-          sll %o4,%g1,%o3       # neuer Carry
++          sll %o4,%g3,%o3       # neuer Carry
+           bne Ll79
+          _ add %o0,4,%o0
+ Ll80:   retl
+@@ -1921,17 +1921,17 @@
+        _ mov %o3,%o0
+ 
+ # extern uintD shiftrightcopy_loop_up (uintD* sourceptr, uintD* destptr, uintC count, uintC i, uintD carry);
+-C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1,%g2, Output in %o0
+-        sub %g0,%o3,%g1         # 32-i (mod 32)
++C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3,%g2, Output in %o0
++        sub %g0,%o3,%g3         # 32-i (mod 32)
+         andcc %o2,%o2,%g0
+         be Ll82
+-       _ sll %o4,%g1,%g2        # erster Carry
++       _ sll %o4,%g3,%g2        # erster Carry
+ Ll81:     ld [%o0],%o4          # Digit
+           add %o0,4,%o0
+           srl %o4,%o3,%o5       # shiften
+           or %g2,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o1]          # und ablegen
+-          sll %o4,%g1,%g2       # neuer Carry
++          sll %o4,%g3,%g2       # neuer Carry
+           subcc %o2,1,%o2
+           bne Ll81
+          _ add %o1,4,%o1
+@@ -1982,7 +1982,7 @@
+           call _mulu32_         # mit digit multiplizieren
+          _ mov %i0,%o0
+           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
+-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
++          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
+           sub %i2,4,%i2
+           subcc %i3,1,%i3
+           bne Ll86
+@@ -1991,16 +1991,16 @@
+         ret
+        _ restore
+ #else
+-C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1
++C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3
+         mov 0,%o4               # Carry
+-Ll87:     ld [%o1-4],%g1        # nächstes Digit
+-          # mit digit multiplizieren: %o0 * %g1 -> %o5|%g1
++Ll87:     ld [%o1-4],%g3        # nächstes Digit
++          # mit digit multiplizieren: %o0 * %g3 -> %o5|%g3
+ #ifdef sparcv8
+           sub     %o1,4,%o1
+-          umul    %g1,%o0,%g1
++          umul    %g3,%o0,%g3
+           rd      %y,%o5
+ #else
+-          mov     %g1,%y
++          mov     %g3,%y
+           sub     %o1,4,%o1     # Wartetakt!
+           andcc   %g0,%g0,%o5
+           mulscc  %o5,%o0,%o5
+@@ -2038,15 +2038,15 @@
+           mulscc  %o5,%g0,%o5
+           tst     %o0
+           bl,a    Ll88
+-         __ add     %o5,%g1,%o5
+-Ll88:     rd      %y,%g1
++         __ add     %o5,%g3,%o5
++Ll88:     rd      %y,%g3
+ #endif
+-          addcc %o4,%g1,%g1     # und bisherigen Carry addieren
++          addcc %o4,%g3,%g3     # und bisherigen Carry addieren
+           addx %g0,%o5,%o4      # High-Digit gibt neuen Carry
+           sub %o2,4,%o2
+           subcc %o3,1,%o3
+           bne Ll87
+-         _ st %g1,[%o2]         # Low-Digit ablegen
++         _ st %g3,[%o2]         # Low-Digit ablegen
+         retl
+        _ st %o4,[%o2-4]         # letzten Carry ablegen
+ #endif
+@@ -2063,7 +2063,7 @@
+           sub %i2,4,%i2
+           ld [%i2],%o1          # nächstes dest-digit
+           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
+-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
++          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
+           addcc %o1,%o0,%o0     # addieren
+           addx %g0,%l0,%l0
+           subcc %i3,1,%i3
+@@ -2150,7 +2150,7 @@
+           sub %i2,4,%i2
+           ld [%i2],%o1          # nächstes dest-digit
+           addcc %l0,%o0,%o0     # und bisherigen Carry addieren
+-          addx %g0,%g1,%l0      # High-Digit gibt neuen Carry
++          addx %g0,%g3,%l0      # High-Digit gibt neuen Carry
+           subcc %o1,%o0,%o1     # davon das Low-Digit subtrahieren
+           addx %g0,%l0,%l0
+           subcc %i3,1,%i3
+@@ -2230,16 +2230,16 @@
+         save %sp,-96,%sp
+         andcc %i2,%i2,%g0
+         be Ll92
+-       _ mov 0,%g1                 # Rest
+-Ll91:     mov %g1,%o0              # Rest als High-Digit
++       _ mov 0,%g3                 # Rest
++Ll91:     mov %g3,%o0              # Rest als High-Digit
+           ld [%i1],%o1             # nächstes Digit als Low-Digit
+           call C(divu_6432_3232_)  # zusammen durch digit dividieren
+          _ mov %i0,%o2
+-          st %o0,[%i1]             # Quotient ablegen, Rest in %g1
++          st %o0,[%i1]             # Quotient ablegen, Rest in %g3
+           subcc %i2,1,%i2
+           bne Ll91
+          _ add %i1,4,%i1
+-Ll92:   mov %g1,%i0                # Rest als Ergebnis
++Ll92:   mov %g3,%i0                # Rest als Ergebnis
+         ret
+        _ restore
+ 
+@@ -2248,17 +2248,17 @@
+         save %sp,-96,%sp
+         andcc %i3,%i3,%g0
+         be Ll94
+-       _ mov 0,%g1                 # Rest
+-Ll93:     mov %g1,%o0              # Rest als High-Digit
++       _ mov 0,%g3                 # Rest
++Ll93:     mov %g3,%o0              # Rest als High-Digit
+           ld [%i1],%o1             # nächstes Digit als Low-Digit
+           call C(divu_6432_3232_)  # zusammen durch digit dividieren
+          _ mov %i0,%o2
+-          st %o0,[%i2]             # Quotient ablegen, Rest in %g1
++          st %o0,[%i2]             # Quotient ablegen, Rest in %g3
+           add %i1,4,%i1
+           subcc %i3,1,%i3
+           bne Ll93
+          _ add %i2,4,%i2
+-Ll94:   mov %g1,%i0                # Rest als Ergebnis
++Ll94:   mov %g3,%i0                # Rest als Ergebnis
+         ret
+        _ restore
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/arisparc64.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,459 @@
+--- src.orig/arisparc64.d	Thu Dec  6 00:06:32 2007
++++ src/arisparc64.d	Mon Feb  2 15:35:22 2009
+@@ -75,9 +75,9 @@
+ 
+ # extern struct { uint32 lo; uint32 hi; } mulu32_ (uint32 arg1, uint32 arg2);
+ # 2^32*hi+lo := arg1*arg2.
+-C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g1
++C(mulu32_:) # Input in %o0,%o1, Output in %o0,%g3
+         umul %o0,%o1,%o2
+-        rd %y,%g1
++        rd %y,%g3
+         retl
+        _ srl %o2,0,%o0
+ 
+@@ -90,11 +90,11 @@
+ 
+ # extern struct { uint32 q; uint32 r; } divu_6432_3232_ (uint32 xhi, uint32 xlo, uint32 y);
+ # x = 2^32*xhi+xlo = q*y+r schreiben. Sei bekannt, dass 0 <= x < 2^32*y .
+-C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g1
++C(divu_6432_3232_:) # Input in %o0,%o1,%o2, Output in %o0,%g3
+         wr %o0,%g0,%y
+         udiv %o1,%o2,%o0        # x durch y dividieren, %o0 := q
+-        umul %o0,%o2,%g1        # %g1 := (q*y) mod 2^32
+-        sub %o1,%g1,%g1         # %g1 := (xlo-q*y) mod 2^32 = r
++        umul %o0,%o2,%g3        # %g3 := (q*y) mod 2^32
++        sub %o1,%g3,%g3         # %g3 := (xlo-q*y) mod 2^32 = r
+         retl
+        _ srl %o0,0,%o0
+ 
+@@ -104,13 +104,13 @@
+         wr %g0,%g0,%y
+         udiv %o0,%o1,%o2        # dividieren, Quotient nach %o2
+ #if 0 # Who says that %y has some meaningful contents after `udiv' ??
+-        rd %y,%g1               # Rest aus %y
++        rd %y,%g3               # Rest aus %y
+ #else
+-        umul %o2,%o1,%g1        # %g1 := (q*y) mod 2^32
+-        sub %o0,%g1,%g1         # %g1 := (x-q*y) mod 2^32 = r
++        umul %o2,%o1,%g3        # %g3 := (q*y) mod 2^32
++        sub %o0,%g3,%g3         # %g3 := (x-q*y) mod 2^32 = r
+ #endif
+-        sll %g1,16,%g1          # in die oberen 16 Bit schieben
+-        or %o2,%g1,%o0
++        sll %g3,16,%g3          # in die oberen 16 Bit schieben
++        or %o2,%g3,%o0
+         retl
+        _ srl %o0,0,%o0
+ 
+@@ -713,28 +713,28 @@
+ #endif
+ 
+ # extern uintD add_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
+-C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(add_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+ 1:        sub %o0,4,%o0
+           lduw [%o0],%o4        # source1-digit, zero-extend
+           sub %o1,4,%o1
+           lduw [%o1],%o5        # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          add %g1,%o5,%g1       # zum Carry addieren
+-          st %g1,[%o2]          # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          add %g3,%o5,%g3       # zum Carry addieren
++          st %g3,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+-         _ srlx %g1,32,%g1      # neuer Carry
++         _ srlx %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ #if COUNTER_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sllx %o3,2,%o3          # %o3 = 4*count
+@@ -743,14 +743,14 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ 1:        lduw [%o0+%o3],%o4    # source1-digit, zero-extend
+           lduw [%o1+%o3],%o5    # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          add %g1,%o5,%g1       # zum Carry addieren
+-          st %g1,[%o2+%o3]      # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          add %g3,%o5,%g3       # zum Carry addieren
++          st %g3,[%o2+%o3]      # Digit ablegen
+           subcc %o3,4,%o3
+           bne,pt %xcc,1b
+-         _ srlx %g1,32,%g1      # neuer Carry
++         _ srlx %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ #endif
+ 
+ # extern uintD addto_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
+@@ -831,28 +831,28 @@
+ #endif
+ 
+ # extern uintD sub_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count);
+-C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(sub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+ 1:        sub %o0,4,%o0
+           lduw [%o0],%o4        # source1-digit, zero-extend
+           sub %o1,4,%o1
+           lduw [%o1],%o5        # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          sub %g1,%o5,%g1       # vom Carry subtrahieren
+-          st %g1,[%o2]          # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          sub %g3,%o5,%g3       # vom Carry subtrahieren
++          st %g3,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+-         _ srax %g1,32,%g1      # neuer Carry
++         _ srax %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ srl %g1,0,%o0
++       _ srl %g3,0,%o0
+ #endif
+ #if COUNTER_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ mov %g0,%g1            # Carry := 0
++       _ mov %g0,%g3            # Carry := 0
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sllx %o3,2,%o3          # %o3 = 4*count
+@@ -861,39 +861,39 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ 1:        lduw [%o0+%o3],%o4    # source1-digit, zero-extend
+           lduw [%o1+%o3],%o5    # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          sub %g1,%o5,%g1       # vom Carry subtrahieren
+-          st %g1,[%o2+%o3]      # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          sub %g3,%o5,%g3       # vom Carry subtrahieren
++          st %g3,[%o2+%o3]      # Digit ablegen
+           subcc %o3,4,%o3
+           bne,pt %xcc,1b
+-         _ srax %g1,32,%g1      # neuer Carry
++         _ srax %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ srl %g1,0,%o0
++       _ srl %g3,0,%o0
+ #endif
+ 
+ # extern uintD subx_loop_down (uintD* sourceptr1, uintD* sourceptr2, uintD* destptr, uintC count, uintD carry);
+-C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1, Output in %o0
++C(subx_loop_down:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3, Output in %o0
+ #if STANDARD_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ sra %o4,0,%g1          # Carry, sign-extend
++       _ sra %o4,0,%g3          # Carry, sign-extend
+ 1:        sub %o0,4,%o0
+           lduw [%o0],%o4        # source1-digit, zero-extend
+           sub %o1,4,%o1
+           lduw [%o1],%o5        # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          sub %g1,%o5,%g1       # vom Carry subtrahieren
+-          st %g1,[%o2]          # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          sub %g3,%o5,%g3       # vom Carry subtrahieren
++          st %g3,[%o2]          # Digit ablegen
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+-         _ srax %g1,32,%g1      # neuer Carry
++         _ srax %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ srl %g1,0,%o0
++       _ srl %g3,0,%o0
+ #endif
+ #if COUNTER_LOOPS
+ #       srl %o3,0,%o3           # zero-extend %o3 = count
+         brz,pn %o3,2f
+-       _ sra %o4,0,%g1          # Carry, sign-extend
++       _ sra %o4,0,%g3          # Carry, sign-extend
+         sub %o0,4,%o0
+         sub %o1,4,%o1
+         sllx %o3,2,%o3          # %o3 = 4*count
+@@ -902,14 +902,14 @@
+         sub %o2,%o3,%o2         # %o2 = &destptr[-count]
+ 1:        lduw [%o0+%o3],%o4    # source1-digit, zero-extend
+           lduw [%o1+%o3],%o5    # source2-digit, zero-extend
+-          add %g1,%o4,%g1       # zum Carry addieren
+-          sub %g1,%o5,%g1       # vom Carry subtrahieren
+-          st %g1,[%o2+%o3]      # Digit ablegen
++          add %g3,%o4,%g3       # zum Carry addieren
++          sub %g3,%o5,%g3       # vom Carry subtrahieren
++          st %g3,[%o2+%o3]      # Digit ablegen
+           subcc %o3,4,%o3
+           bne,pt %xcc,1b
+-         _ srax %g1,32,%g1      # neuer Carry
++         _ srax %g3,32,%g3      # neuer Carry
+ 2:      retl
+-       _ srl %g1,0,%o0
++       _ srl %g3,0,%o0
+ #endif
+ 
+ # extern uintD subfrom_loop_down (uintD* sourceptr, uintD* destptr, uintC count);
+@@ -1135,16 +1135,16 @@
+ #endif
+ 
+ # extern uintD shiftright_loop_up (uintD* ptr, uintC count, uintC i);
+-C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
++C(shiftright_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
+ #ifdef SLOWER
+ #       srl %o1,0,%o1           # zero-extend %o1 = count
+         brz,pn %o1,2f
+        _ or %g0,%g0,%o3         # Carry := 0
+-        mov 32,%g1
+-        sub %g1,%o2,%g1         # 32-i
++        mov 32,%g3
++        sub %g3,%o2,%g3         # 32-i
+ 1:        lduw [%o0],%o4        # Digit, zero-extend
+           subcc %o1,1,%o1
+-          sllx %o4,%g1,%o4      # shiften
++          sllx %o4,%g3,%o4      # shiften
+           or %o3,%o4,%o3        # und mit altem Carry kombinieren
+           srlx %o3,32,%o4
+           st %o4,[%o0]          # und ablegen
+@@ -1157,13 +1157,13 @@
+ #       srl %o1,0,%o1           # zero-extend %o1 = count
+         brz,pn %o1,2f
+        _ or %g0,%g0,%o3         # Carry := 0
+-        sub %g0,%o2,%g1         # 32-i (mod 32)
++        sub %g0,%o2,%g3         # 32-i (mod 32)
+ 1:        ld [%o0],%o4          # Digit
+           subcc %o1,1,%o1
+           srl %o4,%o2,%o5       # shiften
+           or %o3,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o0]          # und ablegen
+-          sll %o4,%g1,%o3       # neuer Carry
++          sll %o4,%g3,%o3       # neuer Carry
+           bne,pt %xcc,1b
+          _ add %o0,4,%o0
+ 2:      retl
+@@ -1171,14 +1171,14 @@
+ #endif
+ 
+ # extern uintD shiftrightsigned_loop_up (uintD* ptr, uintC count, uintC i);
+-C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
++C(shiftrightsigned_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
+ #ifdef SLOWER
+ #       srl %o1,0,%o1           # zero-extend %o1 = count
+-        mov 32,%g1
+-        sub %g1,%o2,%g1         # 32-i
++        mov 32,%g3
++        sub %g3,%o2,%g3         # 32-i
+         ldsw [%o0],%o3          # erstes Digit, sign-extend
+         subcc %o1,1,%o1
+-        sllx %o3,%g1,%o3        # shiften
++        sllx %o3,%g3,%o3        # shiften
+         srlx %o3,32,%o4
+         st %o4,[%o0]            # und ablegen
+         sllx %o3,32,%o3         # neuer Carry
+@@ -1186,7 +1186,7 @@
+        _ add %o0,4,%o0
+ 1:        lduw [%o0],%o4        # Digit, zero-extend
+           subcc %o1,1,%o1
+-          sllx %o4,%g1,%o4      # shiften
++          sllx %o4,%g3,%o4      # shiften
+           or %o3,%o4,%o3        # und mit altem Carry kombinieren
+           srlx %o3,32,%o4
+           st %o4,[%o0]          # und ablegen
+@@ -1198,10 +1198,10 @@
+ #else
+ #       srl %o1,0,%o1           # zero-extend %o1 = count
+         ld [%o0],%o4            # erstes Digit
+-        sub %g0,%o2,%g1         # 32-i (mod 32)
++        sub %g0,%o2,%g3         # 32-i (mod 32)
+         sra %o4,%o2,%o5         # shiften
+         st %o5,[%o0]            # und ablegen
+-        sll %o4,%g1,%o3         # neuer Carry
++        sll %o4,%g3,%o3         # neuer Carry
+         subcc %o1,1,%o1
+         be,pn %xcc,2f
+        _ add %o0,4,%o0
+@@ -1210,7 +1210,7 @@
+           srl %o4,%o2,%o5       # shiften
+           or %o3,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o0]          # und ablegen
+-          sll %o4,%g1,%o3       # neuer Carry
++          sll %o4,%g3,%o3       # neuer Carry
+           bne,pt %xcc,1b
+          _ add %o0,4,%o0
+ 2:      retl
+@@ -1218,16 +1218,16 @@
+ #endif
+ 
+ # extern uintD shiftrightcopy_loop_up (uintD* sourceptr, uintD* destptr, uintC count, uintC i, uintD carry);
+-C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g1,%g2, Output in %o0
++C(shiftrightcopy_loop_up:) # Input in %o0,%o1,%o2,%o3,%o4, verändert %g3,%g2, Output in %o0
+ #ifdef SLOWER
+ #       srl %o2,0,%o2           # zero-extend %o2 = count
+-        sub %g0,%o3,%g1         # 64-i (mod 64)
++        sub %g0,%o3,%g3         # 64-i (mod 64)
+         brz,pn %o2,2f
+-       _ sllx %o4,%g1,%o4       # erster Carry
+-        add %g1,32,%g1          # 32-i
++       _ sllx %o4,%g3,%o4       # erster Carry
++        add %g3,32,%g3          # 32-i
+ 1:        lduw [%o0],%o5        # Digit, zero-extend
+           add %o0,4,%o0
+-          sllx %o5,%g1,%o5      # shiften
++          sllx %o5,%g3,%o5      # shiften
+           or %o4,%o5,%o4        # und mit altem Carry kombinieren
+           srlx %o4,32,%o5
+           st %o5,[%o1]          # und ablegen
+@@ -1239,15 +1239,15 @@
+        _ srlx %o4,32,%o0
+ #else
+ #       srl %o2,0,%o2           # zero-extend %o2 = count
+-        sub %g0,%o3,%g1         # 32-i (mod 32)
++        sub %g0,%o3,%g3         # 32-i (mod 32)
+         brz,pn %o2,2f
+-       _ sll %o4,%g1,%g2        # erster Carry
++       _ sll %o4,%g3,%g2        # erster Carry
+ 1:        ld [%o0],%o4          # Digit
+           add %o0,4,%o0
+           srl %o4,%o3,%o5       # shiften
+           or %g2,%o5,%o5        # und mit altem Carry kombinieren
+           st %o5,[%o1]          # und ablegen
+-          sll %o4,%g1,%g2       # neuer Carry
++          sll %o4,%g3,%g2       # neuer Carry
+           subcc %o2,1,%o2
+           bne,pt %xcc,1b
+          _ add %o1,4,%o1
+@@ -1290,58 +1290,58 @@
+        _ srl %o3,0,%o0
+ 
+ # extern void mulu_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
+-C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1
++C(mulu_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3
+ #       srl %o3,0,%o3           # zero-extend %o3 = len
+         mov 0,%o4               # Carry
+ 1:        sub %o1,4,%o1
+-          ld [%o1],%g1          # nächstes Digit
++          ld [%o1],%g3          # nächstes Digit
+           sub %o2,4,%o2
+-          # mit digit multiplizieren: %o0 * %g1 -> %o5|%g1
+-          umul %g1,%o0,%g1
++          # mit digit multiplizieren: %o0 * %g3 -> %o5|%g3
++          umul %g3,%o0,%g3
+           rd %y,%o5
+-          addcc %o4,%g1,%g1     # und bisherigen Carry addieren
++          addcc %o4,%g3,%g3     # und bisherigen Carry addieren
+           addx %g0,%o5,%o4      # High-Digit gibt neuen Carry
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+-         _ st %g1,[%o2]         # Low-Digit ablegen
++         _ st %g3,[%o2]         # Low-Digit ablegen
+         retl
+        _ st %o4,[%o2-4]         # letzten Carry ablegen
+ 
+ # extern uintD muluadd_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
+-C(muluadd_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0
++C(muluadd_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0
+ #       srl %o3,0,%o3           # zero-extend %o3 = len
+         mov 0,%o4               # Carry
+ 1:        sub %o1,4,%o1
+           ld [%o1],%o5          # nächstes source-Digit
+           sub %o2,4,%o2
+-          # mit digit multiplizieren: %o0 * %o5 -> %g2|%g1
+-          umul %o0,%o5,%g1
++          # mit digit multiplizieren: %o0 * %o5 -> %g2|%g3
++          umul %o0,%o5,%g3
+           rd %y,%g2
+           ld [%o2],%o5          # nächstes dest-digit
+-          addcc %o4,%g1,%g1     # und bisherigen Carry addieren
++          addcc %o4,%g3,%g3     # und bisherigen Carry addieren
+           addx %g0,%g2,%o4      # High-Digit gibt neuen Carry
+-          addcc %o5,%g1,%g1     # addieren
++          addcc %o5,%g3,%g3     # addieren
+           addx %g0,%o4,%o4
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+-         _ st %g1,[%o2]         # Low-Digit ablegen
++         _ st %g3,[%o2]         # Low-Digit ablegen
+         retl
+        _ srl %o4,0,%o0          # letzter Carry
+ 
+ # extern uintD mulusub_loop_down (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
+-C(mulusub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g1,%g2, Output in %o0
++C(mulusub_loop_down:) # Input in %o0,%o1,%o2,%o3, verändert %g3,%g2, Output in %o0
+ #       srl %o3,0,%o3           # zero-extend %o3 = len
+         mov 0,%o4               # Carry
+ 1:        sub %o1,4,%o1
+           ld [%o1],%o5          # nächstes source-Digit
+           sub %o2,4,%o2
+-          # mit digit multiplizieren: %o0 * %o5 -> %g2|%g1
+-          umul %o0,%o5,%g1
++          # mit digit multiplizieren: %o0 * %o5 -> %g2|%g3
++          umul %o0,%o5,%g3
+           rd %y,%g2
+           ld [%o2],%o5          # nächstes dest-digit
+-          addcc %o4,%g1,%g1     # und bisherigen Carry addieren
++          addcc %o4,%g3,%g3     # und bisherigen Carry addieren
+           addx %g0,%g2,%o4      # High-Digit gibt neuen Carry
+-          subcc %o5,%g1,%o5     # davon das Low-Digit subtrahieren
++          subcc %o5,%g3,%o5     # davon das Low-Digit subtrahieren
+           addx %g0,%o4,%o4
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+@@ -1350,7 +1350,7 @@
+        _ srl %o4,0,%o0          # letzter Carry
+ 
+ # extern uintD divu_loop_up (uintD digit, uintD* ptr, uintC len);
+-C(divu_loop_up:) # Input in %o0,%o1,%o2, verändert %g1, Output in %o0
++C(divu_loop_up:) # Input in %o0,%o1,%o2, verändert %g3, Output in %o0
+ #       srl %o2,0,%o2           # zero-extend %o2 = len
+         brz,pn %o2,2f
+        _ mov 0,%o3              # Rest
+@@ -1360,8 +1360,8 @@
+           or %o3,%o4,%o3        # zusammen
+           udivx %o3,%o0,%o4     # durch digit dividieren
+           st %o4,[%o1]          # Quotient ablegen
+-          umul %o0,%o4,%g1
+-          sub %o3,%g1,%o3       # Rest in den unteren 32 Bit von %o3
++          umul %o0,%o4,%g3
++          sub %o3,%g3,%o3       # Rest in den unteren 32 Bit von %o3
+           subcc %o2,1,%o2
+           bne,pt %xcc,1b
+          _ add %o1,4,%o1
+@@ -1369,7 +1369,7 @@
+        _ srl %o3,0,%o0          # Rest als Ergebnis
+ 
+ # extern uintD divucopy_loop_up (uintD digit, uintD* sourceptr, uintD* destptr, uintC len);
+-C(divucopy_loop_up:) # Input in %o0,%o1,%o2,%o3, verändert %g1, Output in %o0
++C(divucopy_loop_up:) # Input in %o0,%o1,%o2,%o3, verändert %g3, Output in %o0
+ #       srl %o3,0,%o3           # zero-extend %o3 = len
+         brz,pn %o3,2f
+        _ mov 0,%o4              # Rest
+@@ -1380,8 +1380,8 @@
+           or %o4,%o5,%o4        # zusammen
+           udivx %o4,%o0,%o5     # durch digit dividieren
+           st %o5,[%o2]          # Quotient ablegen
+-          umul %o0,%o5,%g1
+-          sub %o4,%g1,%o4       # Rest in den unteren 32 Bit von %o4
++          umul %o0,%o5,%g3
++          sub %o4,%g3,%o4       # Rest in den unteren 32 Bit von %o4
+           subcc %o3,1,%o3
+           bne,pt %xcc,1b
+          _ add %o2,4,%o2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/lispbibl.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,11 @@
+--- src.orig/lispbibl.d	Mon Feb 23 14:07:14 2009
++++ src/lispbibl.d	Mon Feb 23 14:07:49 2009
+@@ -596,7 +596,7 @@
+    Likewise for gcc-4.3-20080215 and probably future versions of GCC as well.
+    Therefore for these versions of gcc enable the global register variables
+    only when USE_GCC_REGISTER_VARIABLES is explicitly defined.  */
+-#if defined(GNU) && !(__APPLE_CC__ > 1) && !defined(__cplusplus) && !(__GNUC__ == 3 && (__GNUC_MINOR__ < 3 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 4))) && !(((__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4) && !defined(USE_GCC_REGISTER_VARIABLES)) && !defined(MULTITHREAD) && (SAFETY < 2) && !defined(USE_JITC)
++#if defined(GNU) && !(__APPLE_CC__ > 1) && !defined(__cplusplus) && !(__GNUC__ == 3 && (__GNUC_MINOR__ < 5 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 4))) && !(((__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4) && !defined(USE_GCC_REGISTER_VARIABLES)) && !defined(MULTITHREAD) && (SAFETY < 2) && !defined(USE_JITC)
+ /* Overview of use of registers in gcc terminology:
+  fixed: mentioned in FIXED_REGISTERS
+  used:  mentioned in CALL_USED_REGISTERS but not FIXED_REGISTERS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/makemake.in.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,22 @@
+--- src.orig/makemake.in	Fri Oct 24 06:27:58 2008
++++ src/makemake.in	Mon Feb  2 15:48:08 2009
+@@ -1826,7 +1826,7 @@
+ echol "#   make distrib VERSION_SUFFIX=pre"
+ echol "VERSION_SUFFIX="
+ echol "# The distribution's top directory"
+-echol 'TOPDIR=clisp-$(VERSION)$(VERSION_SUFFIX)'
++echol 'TOPDIR=clisp'
+ echol
+ echol '# Directories used by "make install":'
+ echol "prefix = ${PREFIX}"
+@@ -3379,8 +3379,8 @@
+   case $f in
+     clisp.html | clisp.1 | clisp-1.html)
+       if [ $HOS = win32 ];
+-      then platform_line=" | sed -e \"s,@PLATFORM@,${TSYS},g\""
+-      else platform_line=" | sed -e \"s,@PLATFORM@,${host},g\""
++      then platform_line=" | sed -e \"s,Platform: @PLATFORM@,User Commands,g\""
++      else platform_line=" | sed -e \"s,Platform: @PLATFORM@,User Commands,g\""
+       fi
+       sourcedir=${SRCDOCDIR} ;;
+     *) sourcedir=${SRCDIR} ;;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/spsparc.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,9 @@
+--- src.orig/spsparc.d	Tue Mar 25 02:25:52 2008
++++ src/spsparc.d	Mon Feb  2 15:35:22 2009
+@@ -22,5 +22,5 @@
+ #    extern long _get_g1 (void);
+ _get_g1:
+ __get_g1: retl
+-       _ mov %g1,%o0
++       _ mov %g3,%o0
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/clisp/patches/spsparc64.d.patch	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,9 @@
+--- src.orig/spsparc64.d	Tue Mar 25 02:25:52 2008
++++ src/spsparc64.d	Mon Feb  2 15:35:22 2009
+@@ -22,5 +22,5 @@
+ #    extern uint32 _get_g1 (void);
+ _get_g1:
+ __get_g1: retl
+-       _ srl %g1,0,%o0
++       _ srl %g3,0,%o0
+ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWclisp.p5m	Tue Jun 21 18:15:23 2011 -0700
@@ -0,0 +1,28 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+set name=pkg.fmri value=pkg:/SUNWclisp@2.47,5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=runtime/clisp@2.47-0.133 type=require