mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-11 16:08:13 +00:00
Simplify Solaris port
This should avoid some configuration confusion as exemplified by Jeffrey Walton’s recent bug report (Bug#42675). * configure.ac (opsys): Simplify Solaris configuration by not worrying about Solaris 9 and earlier, as they are no longer supported by the Solaris developers. This should support Walton’s ‘./configure --build=x86_64-sun-solaris’. Instead of bothering with ‘opsys=sol2-6’ and ‘opsys=sol2-10’, just use ‘opsys=solaris’. All uses changed. (emacs_check_sunpro_c): Remove unused var. * doc/misc/tramp.texi (Remote programs): * etc/MACHINES, etc/PROBLEMS: Modernize PATH for Oracle Developer Studio. * etc/PROBLEMS: Move Solaris-related problems to legacy area, except those that are still relevant.
This commit is contained in:
parent
1a99697b4d
commit
155b2c8a8d
76
configure.ac
76
configure.ac
@ -748,44 +748,21 @@ case "${canonical}" in
|
||||
opsys=aix4-2
|
||||
;;
|
||||
|
||||
## Suns
|
||||
*-sun-solaris* \
|
||||
| i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
|
||||
| x86_64-*-solaris2* | x86_64-*-sunos5*)
|
||||
## Solaris
|
||||
*-*-solaris* | *-*-sunos*)
|
||||
case "${canonical}" in
|
||||
i[3456]86-*-* ) ;;
|
||||
amd64-*-*|x86_64-*-*) ;;
|
||||
sparc* ) ;;
|
||||
* ) unported=yes ;;
|
||||
esac
|
||||
case "${canonical}" in
|
||||
*-sunos5.[1-9][0-9]* | *-solaris2.[1-9][0-9]* )
|
||||
opsys=sol2-10
|
||||
emacs_check_sunpro_c=yes
|
||||
;;
|
||||
*-sunos5.[1-5]* | *-solaris2.[1-5]* ) unported=yes ;;
|
||||
## Note that Emacs 23.1's NEWS said the following would be dropped.
|
||||
*-sunos5.6* | *-solaris2.6* )
|
||||
opsys=sol2-6
|
||||
RANLIB="ar -ts"
|
||||
;;
|
||||
## 5.7 EOL Aug 2008, 5.8 EOL Mar 2012.
|
||||
*-sunos5.[7-9]* | *-solaris2.[7-9]* )
|
||||
opsys=sol2-6
|
||||
emacs_check_sunpro_c=yes
|
||||
;;
|
||||
esac
|
||||
opsys=solaris
|
||||
## Watch out for a compiler that we know will not work.
|
||||
case "${canonical}" in
|
||||
*-solaris* | *-sunos5* )
|
||||
if [ "x$CC" = x/usr/ucb/cc ]; then
|
||||
## /usr/ucb/cc doesn't work;
|
||||
## we should find some other compiler that does work.
|
||||
unset CC
|
||||
fi
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
if [ "$CC" = /usr/ucb/cc ]; then
|
||||
## /usr/ucb/cc doesn't work;
|
||||
## we should find some other compiler that does work.
|
||||
unset CC
|
||||
fi
|
||||
;;
|
||||
|
||||
## QNX Neutrino
|
||||
@ -1476,14 +1453,11 @@ case "$opsys" in
|
||||
mingw32)
|
||||
UNEXEC_OBJ=unexw32.o
|
||||
;;
|
||||
sol2-10)
|
||||
solaris)
|
||||
# Use the Solaris dldump() function, called from unexsol.c, to dump
|
||||
# emacs, instead of the generic ELF dump code found in unexelf.c.
|
||||
# The resulting binary has a complete symbol table, and is better
|
||||
# for debugging and other observability tools (debuggers, pstack, etc).
|
||||
#
|
||||
# It is likely that dldump() works with older Solaris too, but this has
|
||||
# not been tested, so for now this change is for Solaris 10 or newer.
|
||||
UNEXEC_OBJ=unexsol.o
|
||||
;;
|
||||
*)
|
||||
@ -1586,7 +1560,7 @@ case "$opsys" in
|
||||
|
||||
qnxnto) LIBS_SYSTEM="-lsocket" ;;
|
||||
|
||||
sol2*) LIBS_SYSTEM="-lsocket -lnsl" ;;
|
||||
solaris) LIBS_SYSTEM="-lsocket -lnsl" ;;
|
||||
|
||||
## Motif needs -lgen.
|
||||
unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
|
||||
@ -1647,7 +1621,7 @@ case $opsys in
|
||||
SYSTEM_TYPE=berkeley-unix
|
||||
;;
|
||||
|
||||
sol2* | unixware )
|
||||
solaris | unixware )
|
||||
SYSTEM_TYPE=usg-unix-v
|
||||
;;
|
||||
|
||||
@ -2291,7 +2265,7 @@ system_malloc=yes
|
||||
test $with_unexec = yes &&
|
||||
case "$opsys" in
|
||||
## darwin ld insists on the use of malloc routines in the System framework.
|
||||
darwin | mingw32 | nacl | sol2-10) ;;
|
||||
darwin | mingw32 | nacl | solaris) ;;
|
||||
cygwin | qnxnto | freebsd)
|
||||
hybrid_malloc=yes
|
||||
system_malloc= ;;
|
||||
@ -2427,7 +2401,7 @@ if test "$ac_cv_header_pthread_h" && test "$opsys" != "mingw32"; then
|
||||
# need special flags to disable these optimizations. For example, the
|
||||
# definition of 'errno' in <errno.h>.
|
||||
case $opsys in
|
||||
hpux* | sol*)
|
||||
hpux* | solaris)
|
||||
AC_DEFINE([_REENTRANT], 1,
|
||||
[Define to 1 if your system requires this in multithreaded code.]);;
|
||||
aix4-2)
|
||||
@ -2557,7 +2531,7 @@ fail;
|
||||
## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
|
||||
## XIM support.
|
||||
case "$opsys" in
|
||||
sol2-*) : ;;
|
||||
solaris) : ;;
|
||||
*) AC_DEFINE(HAVE_X11R6_XIM, 1,
|
||||
[Define if you have usable X11R6-style XIM support.])
|
||||
;;
|
||||
@ -4692,7 +4666,7 @@ if test "$USE_X_TOOLKIT" != "none"; then
|
||||
fi
|
||||
|
||||
case $opsys in
|
||||
sol2* | unixware )
|
||||
solaris | unixware )
|
||||
dnl Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
|
||||
dnl instead, there's a system variable _sys_nsig. Unfortunately, we
|
||||
dnl need the constant to dimension an array. So wire in the appropriate
|
||||
@ -4705,7 +4679,7 @@ emacs_broken_SIGIO=no
|
||||
|
||||
case $opsys in
|
||||
dnl SIGIO exists, but the feature doesn't work in the way Emacs needs.
|
||||
hpux* | nacl | openbsd | sol2* | unixware )
|
||||
hpux* | nacl | openbsd | solaris | unixware )
|
||||
emacs_broken_SIGIO=yes
|
||||
;;
|
||||
|
||||
@ -4754,7 +4728,7 @@ case $opsys in
|
||||
esac
|
||||
|
||||
case $opsys in
|
||||
gnu-* | sol2-10 )
|
||||
gnu-* | solaris )
|
||||
dnl FIXME Can't we test if this exists (eg /proc/$$)?
|
||||
AC_DEFINE(HAVE_PROCFS, 1, [Define if you have the /proc filesystem.])
|
||||
;;
|
||||
@ -4883,7 +4857,7 @@ case $opsys in
|
||||
AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
|
||||
;;
|
||||
|
||||
sol2* )
|
||||
solaris )
|
||||
dnl On SysVr4, grantpt(3) forks a subprocess, so do not use
|
||||
dnl O_CLOEXEC when opening the pty, and keep the SIGCHLD handler
|
||||
dnl from intercepting that death. If any child but grantpt's should die
|
||||
@ -4893,7 +4867,7 @@ case $opsys in
|
||||
;;
|
||||
|
||||
unixware )
|
||||
dnl Comments are as per sol2*.
|
||||
dnl Comments are as per solaris.
|
||||
AC_DEFINE(PTY_OPEN, [fd = open (pty_name, O_RDWR | O_NONBLOCK)])
|
||||
AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
|
||||
;;
|
||||
@ -4901,7 +4875,7 @@ esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
sol2* | unixware )
|
||||
solaris | unixware )
|
||||
dnl This change means that we don't loop through allocate_pty too
|
||||
dnl many times in the (rare) event of a failure.
|
||||
AC_DEFINE(FIRST_PTY_LETTER, ['z'])
|
||||
@ -4996,7 +4970,7 @@ if test x$GCC = xyes; then
|
||||
AC_DEFINE(GC_SETJMP_WORKS, 1)
|
||||
else
|
||||
case $opsys in
|
||||
aix* | dragonfly | freebsd | netbsd | openbsd | sol2* )
|
||||
aix* | dragonfly | freebsd | netbsd | openbsd | solaris )
|
||||
AC_DEFINE(GC_SETJMP_WORKS, 1)
|
||||
;;
|
||||
esac
|
||||
@ -5043,7 +5017,7 @@ case $emacs_cv_func_sigsetjmp,$emacs_cv_alternate_stack,$opsys in
|
||||
esac
|
||||
|
||||
case $opsys in
|
||||
sol2* | unixware )
|
||||
solaris | unixware )
|
||||
dnl TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
|
||||
dnl subprocesses the usual way. But TIOCSIGNAL does work for PTYs,
|
||||
dnl and this is all we need.
|
||||
@ -5053,7 +5027,7 @@ esac
|
||||
|
||||
|
||||
case $opsys in
|
||||
hpux* | sol2* )
|
||||
hpux* | solaris )
|
||||
dnl Used in xfaces.c.
|
||||
AC_DEFINE(XOS_NEEDS_TIME_H, 1, [Compensate for a bug in Xos.h on
|
||||
some systems, where it requires time.h.])
|
||||
@ -5108,7 +5082,7 @@ case $opsys in
|
||||
fi
|
||||
;;
|
||||
|
||||
sol2*)
|
||||
solaris)
|
||||
AC_DEFINE(USG, [])
|
||||
AC_DEFINE(USG5_4, [])
|
||||
AC_DEFINE(SOLARIS2, [], [Define if the system is Solaris.])
|
||||
@ -5173,7 +5147,7 @@ case $opsys in
|
||||
reopen it in the child.])
|
||||
;;
|
||||
|
||||
sol2-10)
|
||||
solaris)
|
||||
AC_DEFINE(_STRUCTURED_PROC, 1, [Needed for system_process_attributes
|
||||
on Solaris.])
|
||||
;;
|
||||
|
@ -2105,7 +2105,7 @@ To improve performance and accuracy of remote file access,
|
||||
@file{/usr/bin}, which are reasonable for most hosts. To accommodate
|
||||
differences in hosts and paths, for example, @file{/bin:/usr/bin} on
|
||||
Debian GNU/Linux or
|
||||
@file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin} on
|
||||
@file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/developerstudio12.6/bin} on
|
||||
Solaris, @value{tramp} queries the remote host with @command{getconf
|
||||
PATH} and updates the symbol @code{tramp-default-remote-path}.
|
||||
|
||||
|
25
etc/MACHINES
25
etc/MACHINES
@ -81,25 +81,26 @@ the list at the end of this file.
|
||||
|
||||
** Solaris
|
||||
|
||||
On Solaris it is also possible to use either GCC or Solaris Studio
|
||||
to build Emacs, by pointing ./configure to the right compiler:
|
||||
On Solaris it is also possible to use either GCC or Oracle Developer
|
||||
Studio to build Emacs, by pointing ./configure to the right compiler:
|
||||
|
||||
./configure CC='/usr/sfw/bin/gcc' # GCC
|
||||
./configure CC='cc' # Solaris Studio
|
||||
./configure # Defaults to 'gcc' if available.
|
||||
./configure CC='cc' # Oracle Developer Studio
|
||||
|
||||
On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make
|
||||
sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before
|
||||
/usr/ucb. (Most free software packages have the same requirement on
|
||||
Solaris.) With this compiler, use '/opt/SUNWspro/bin/cc -E' as the
|
||||
On Solaris, do not use /usr/ucb/cc. Use Oracle Developer Studio.
|
||||
Make sure that /usr/ccs/bin and the Oracle Developer Studio bin
|
||||
directory (e.g., /opt/developerstudio12.6/bin) are in your PATH
|
||||
before /usr/ucb. (Most free software packages have the same
|
||||
requirement on Solaris.) With this compiler, use 'cc -E' as the
|
||||
preprocessor. If this inserts extra whitespace into its output (see
|
||||
the PROBLEMS file) then add the option '-Xs'.
|
||||
the PROBLEMS file), add the option '-Xs'.
|
||||
|
||||
To build a 64-bit Emacs (with larger maximum buffer size) on a
|
||||
Solaris system which supports 64-bit executables, specify the -m64
|
||||
Solaris system that defaults to 32-bit executables, specify the -m64
|
||||
compiler option. For example:
|
||||
|
||||
./configure CC='/usr/sfw/bin/gcc -m64' # GCC
|
||||
./configure CC='cc -m64' # Solaris Studio
|
||||
./configure CC='gcc -m64' # GCC
|
||||
./configure CC='cc -m64' # Oracle Developer Studio
|
||||
|
||||
|
||||
* Obsolete platforms
|
||||
|
135
etc/PROBLEMS
135
etc/PROBLEMS
@ -2222,6 +2222,7 @@ We list bugs in current versions here. See also the section on legacy
|
||||
systems.
|
||||
|
||||
*** On Solaris 10, Emacs crashes during the build process.
|
||||
(This applies only with './configure --with-unexec=yes', which is rare.)
|
||||
This was reported for Emacs 25.2 on i386-pc-solaris2.10 with Sun
|
||||
Studio 12 (Sun C 5.9) and with Oracle Developer Studio 12.6 (Sun C
|
||||
5.15), and intermittently for sparc-sun-solaris2.10 with Oracle
|
||||
@ -2239,66 +2240,6 @@ Solaris. See Bug#26638.
|
||||
This is a Solaris feature (at least on Intel x86 cpus). Type C-r
|
||||
C-r C-t, to toggle whether C-x gets through to Emacs.
|
||||
|
||||
*** Problem with remote X server on Suns.
|
||||
|
||||
On a Sun, running Emacs on one machine with the X server on another
|
||||
may not work if you have used the unshared system libraries. This
|
||||
is because the unshared libraries fail to use YP for host name lookup.
|
||||
As a result, the host name you specify may not be recognized.
|
||||
|
||||
*** Solaris 2.6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
|
||||
|
||||
We suspect that this is a bug in the X libraries provided by
|
||||
Sun. There is a report that one of these patches fixes the bug and
|
||||
makes the problem stop:
|
||||
|
||||
105216-01 105393-01 105518-01 105621-01 105665-01 105615-02 105216-02
|
||||
105667-01 105401-08 105615-03 105621-02 105686-02 105736-01 105755-03
|
||||
106033-01 105379-01 105786-01 105181-04 105379-03 105786-04 105845-01
|
||||
105284-05 105669-02 105837-01 105837-02 105558-01 106125-02 105407-01
|
||||
|
||||
Another person using a newer system (kernel patch level Generic_105181-06)
|
||||
suspects that the bug was fixed by one of these more recent patches:
|
||||
|
||||
106040-07 SunOS 5.6: X Input & Output Method patch
|
||||
106222-01 OpenWindows 3.6: filemgr (ff.core) fixes
|
||||
105284-12 Motif 1.2.7: sparc Runtime library patch
|
||||
|
||||
*** Solaris 7 or 8: Emacs reports a BadAtom error (from X)
|
||||
|
||||
This happens when Emacs was built on some other version of Solaris.
|
||||
Rebuild it on Solaris 8.
|
||||
|
||||
*** When using M-x dbx with the SparcWorks debugger, the 'up' and 'down'
|
||||
commands do not move the arrow in Emacs.
|
||||
|
||||
You can fix this by adding the following line to '~/.dbxinit':
|
||||
|
||||
dbxenv output_short_file_name off
|
||||
|
||||
*** On Solaris, CTRL-t is ignored by Emacs when you use
|
||||
the fr.ISO-8859-15 locale (and maybe other related locales).
|
||||
|
||||
You can fix this by editing the file:
|
||||
|
||||
/usr/openwin/lib/locale/iso8859-15/Compose
|
||||
|
||||
Near the bottom there is a line that reads:
|
||||
|
||||
Ctrl<t> <quotedbl> <Y> : "\276" threequarters
|
||||
|
||||
while it should read:
|
||||
|
||||
Ctrl<T> <quotedbl> <Y> : "\276" threequarters
|
||||
|
||||
Note the lower case <t>. Changing this line should make C-t work.
|
||||
|
||||
*** On Solaris, Emacs fails to set menu-bar-update-hook on startup, with error
|
||||
"Error in menu-bar-update-hook: (error Point before start of properties)".
|
||||
This seems to be a GCC optimization bug that occurs for GCC 4.1.2 (-g
|
||||
and -g -O2) and GCC 4.2.3 (-g -O and -g -O2). You can fix this by
|
||||
compiling with GCC 4.2.3 or CC 5.7, with no optimizations.
|
||||
|
||||
* Runtime problems specific to MS-Windows
|
||||
|
||||
** Emacs on Windows 9X requires UNICOWS.DLL
|
||||
@ -2733,13 +2674,13 @@ Libxpm is available for macOS as part of the XQuartz project.
|
||||
|
||||
This indicates a mismatch between the C compiler and preprocessor that
|
||||
configure is using. For example, on Solaris 10 trying to use
|
||||
CC=/opt/SUNWspro/bin/cc (the Sun Studio compiler) together with
|
||||
CPP=/usr/ccs/lib/cpp can result in errors of this form (you may also
|
||||
see the error '"/usr/include/sys/isa_defs.h", line 500: undefined control').
|
||||
CC=/opt/developerstudio12.6/bin/cc (the Oracle Developer Studio
|
||||
compiler) together with CPP=/usr/lib/cpp can result in errors of
|
||||
this form.
|
||||
|
||||
The solution is to tell configure to use the correct C preprocessor
|
||||
for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above
|
||||
example).
|
||||
for your C compiler (CPP="/opt/developerstudio12.6/bin/cc -E" in the
|
||||
above example).
|
||||
|
||||
** Compilation
|
||||
|
||||
@ -3110,7 +3051,69 @@ This section covers bugs reported on very old hardware or software.
|
||||
If you are using hardware and an operating system shipped after 2000,
|
||||
it is unlikely you will see any of these.
|
||||
|
||||
*** Solaris 2.x
|
||||
** Solaris
|
||||
|
||||
*** Problem with remote X server on Suns.
|
||||
|
||||
On a Sun, running Emacs on one machine with the X server on another
|
||||
may not work if you have used the unshared system libraries. This
|
||||
is because the unshared libraries fail to use YP for host name lookup.
|
||||
As a result, the host name you specify may not be recognized.
|
||||
|
||||
*** Solaris 2.6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
|
||||
|
||||
We suspect that this is a bug in the X libraries provided by
|
||||
Sun. There is a report that one of these patches fixes the bug and
|
||||
makes the problem stop:
|
||||
|
||||
105216-01 105393-01 105518-01 105621-01 105665-01 105615-02 105216-02
|
||||
105667-01 105401-08 105615-03 105621-02 105686-02 105736-01 105755-03
|
||||
106033-01 105379-01 105786-01 105181-04 105379-03 105786-04 105845-01
|
||||
105284-05 105669-02 105837-01 105837-02 105558-01 106125-02 105407-01
|
||||
|
||||
Another person using a newer system (kernel patch level Generic_105181-06)
|
||||
suspects that the bug was fixed by one of these more recent patches:
|
||||
|
||||
106040-07 SunOS 5.6: X Input & Output Method patch
|
||||
106222-01 OpenWindows 3.6: filemgr (ff.core) fixes
|
||||
105284-12 Motif 1.2.7: sparc Runtime library patch
|
||||
|
||||
*** Solaris 7 or 8: Emacs reports a BadAtom error (from X)
|
||||
|
||||
This happens when Emacs was built on some other version of Solaris.
|
||||
Rebuild it on Solaris 8.
|
||||
|
||||
*** When using M-x dbx with the SparcWorks debugger, the 'up' and 'down'
|
||||
commands do not move the arrow in Emacs.
|
||||
|
||||
You can fix this by adding the following line to '~/.dbxinit':
|
||||
|
||||
dbxenv output_short_file_name off
|
||||
|
||||
*** On Solaris, CTRL-t is ignored by Emacs when you use
|
||||
the fr.ISO-8859-15 locale (and maybe other related locales).
|
||||
|
||||
You can fix this by editing the file:
|
||||
|
||||
/usr/openwin/lib/locale/iso8859-15/Compose
|
||||
|
||||
Near the bottom there is a line that reads:
|
||||
|
||||
Ctrl<t> <quotedbl> <Y> : "\276" threequarters
|
||||
|
||||
while it should read:
|
||||
|
||||
Ctrl<T> <quotedbl> <Y> : "\276" threequarters
|
||||
|
||||
Note the lower case <t>. Changing this line should make C-t work.
|
||||
|
||||
*** On Solaris, Emacs fails to set menu-bar-update-hook on startup, with error
|
||||
"Error in menu-bar-update-hook: (error Point before start of properties)".
|
||||
This seems to be a GCC optimization bug that occurs for GCC 4.1.2 (-g
|
||||
and -g -O2) and GCC 4.2.3 (-g -O and -g -O2). You can fix this by
|
||||
compiling with GCC 4.2.3 or CC 5.7, with no optimizations.
|
||||
|
||||
*** Other legacy Solaris problems
|
||||
|
||||
**** Strange results from format %d in a few cases, on a Sun.
|
||||
|
||||
|
@ -1014,8 +1014,8 @@ To undo the killing, the undo command can be used as normally."
|
||||
(defvar dired-compress-file-suffixes
|
||||
'(
|
||||
;; "tar -zxf" isn't used because it's not available on the
|
||||
;; Solaris10 version of tar. Solaris10 becomes obsolete in 2021.
|
||||
;; Same thing on AIX 7.1.
|
||||
;; Solaris 10 version of tar (obsolete in 2024?).
|
||||
;; Same thing on AIX 7.1 (obsolete 2023?) and 7.2 (obsolete 2022?).
|
||||
("\\.tar\\.gz\\'" "" "gzip -dc %i | tar -xf -")
|
||||
("\\.tgz\\'" "" "gzip -dc %i | tar -xf -")
|
||||
("\\.gz\\'" "" "gunzip")
|
||||
|
Loading…
Reference in New Issue
Block a user