bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#1191: How to contribute back changes for Emacs on Solaris


From: Ali Bahrami
Subject: bug#1191: How to contribute back changes for Emacs on Solaris
Date: Sat, 18 Oct 2008 21:18:30 -0600
User-agent: Thunderbird 2.0.0.12 (X11/20080228)

Dan Nicolaescu wrote:
<snip>
>
> I don't feel comfortable doing these changes without any testing at
> all.  In that case, the best would be to add a new file
> emacs/src/s/sol2-10.h that includes sol2-6.h and also contains your
> changes.
> Then change configure.in to use that new file for Solaris 10+.

I've done that, and built the result on Solaris Nevada (amd64),
Solaris 10 (sparc), and Solaris 9 (x86). It seems to work properly,
and to use dldump() for S10 and Nevada (aka OpenSolaris), while
using the generic dump for S9.

I rolled the amd64 configure change into this as well --- I needed it
to test, and it makes sense to do the complete deal in one go.

Here is the contents of src/s/sol2-10.h, in between the '====' lines:

==========================================================================
/* Handle Solaris 2.10 */

#include "sol2-6.h"

/*
 * Use the Solaris dldump() function to dump emacs, instead of
 * the generic unexelf code. The resulting binary has a complete
 * symbol table, and is better for debugging and other observability
 * tools (debuggers, pstack, etc).
 *
 * If you encounter a problem using dldump(), please consider sending
 * a message to the OpenSolaris tools-linking mailing list:
 *      http://mail.opensolaris.org/mailman/listinfo/tools-linking
 *
 * Note: Emacs used to use  dldump() before, but this was changed
 * in revision 1.3 of sol2-6.h, on September 13, 2002, with the comment:
 *
 *      dldump does not handle all the extensions used by GNU ld
 *
 * It is not clear what extensions this refers to. Testing with
 * OpenSolaris shows that it works on newer Solaris versions.
 * If a problem surfaces, please post the details to the OpenSolaris
 * mailing list given above.
 *
 * It is likely that dldump() works with older Solaris too,
 * but this has not been tested, and so, this change is for S10
 * and newer only at this time.
 */

#undef UNEXEC
#define UNEXEC unexsol.o
==========================================================================

And here are the context diffs for the changes to configure.in

==========================================================================
*** configure.in.orig   Sat Oct 18 17:40:27 2008
--- configure.in        Sat Oct 18 18:27:43 2008
***************
*** 974,980 ****
    ;;

    *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
!     | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* | powerpc*-*-solaris2* \
      | rs6000-*-solaris2*)
      case "${canonical}" in
        m68*-sunos1* )  machine=sun1 ;;
--- 974,980 ----
    ;;

    *-auspex-sunos* | *-sun-sunos* | *-sun-bsd* | *-sun-solaris* \
!     | i[3456]86-*-solaris2* | x86_64-*-solaris2* | i[3456]86-*-sunos5* | power
pc*-*-solaris2* \
      | rs6000-*-solaris2*)
      case "${canonical}" in
        m68*-sunos1* )  machine=sun1 ;;
***************
*** 988,993 ****
--- 988,1001 ----
        sparc* )                machine=sparc ;;
        * )             unported=yes ;;
      esac
+ ## FIXME: make this into a proper fix that checks the compiler type,
+ ## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
+     if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
+         ## -Xs prevents spurious whitespace.
+       SOLARIS_NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
+     else
+       SOLARIS_NON_GNU_CPP=/usr/ccs/lib/cpp
+     fi
      case "${canonical}" in
        ## The Sun386 didn't get past 4.0.
        i[3456]86-*-sunos4        ) opsys=sunos4-0 ;;
***************
*** 1028,1044 ****
                NON_GNU_CPP=/usr/ccs/lib/cpp
                RANLIB="ar -ts"
                ;;
!       *-sunos5* | *-solaris* )
                opsys=sol2-6
! ## FIXME: make this into a proper fix that checks the compiler type,
! ## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now?
!               if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
!                 ## -Xs prevents spurious whitespace.
!                 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
!               else
!                 NON_GNU_CPP=/usr/ccs/lib/cpp
!               fi
                ;;
        *                         ) opsys=bsd4-2   ;;
      esac
      ## Watch out for a compiler that we know will not work.
--- 1036,1049 ----
                NON_GNU_CPP=/usr/ccs/lib/cpp
                RANLIB="ar -ts"
                ;;
!       *-sunos5.[7-9] | *-solaris2.[7-9] )
                opsys=sol2-6
!               NON_GNU_CPP=${SOLARIS_NON_GNU_CPP}
                ;;
+       *-sunos5* | *-solaris* )
+               opsys=sol2-10
+               NON_GNU_CPP=${SOLARIS_NON_GNU_CPP}
+               ;;
        *                         ) opsys=bsd4-2   ;;
      esac
      ## Watch out for a compiler that we know will not work.
==========================================================================

- Ali






reply via email to

[Prev in Thread] Current Thread [Next in Thread]