Emacs machines list Copyright (C) 1989-1990, 1992-1993, 1998, 2001-2023 Free Software Foundation, Inc. See the end of the file for license conditions. This is a list of the status of GNU Emacs on various machines and systems. Information about older releases, and platforms that are no longer supported, has been removed. Consult older versions of this file if you are interested in this information. The 'configure' script uses the configuration name, and the results of testing the system, to decide which options to use in src/config.h and elsewhere (eg Makefiles). If you add support for a new configuration, add a section to this file, and edit the 'configure.ac' source as needed. Some obsolete platforms are unsupported beginning with Emacs 23.1. See the list at the end of this file. * Here are notes about some of the systems supported: ** GNU/Linux Most of the complete systems which use the Linux kernel are close enough to the GNU system to be considered variant GNU systems. We call them "Linux-based GNU systems," or GNU/Linux for short. It is not coincidence that many of the other components used with Linux--including GNU Emacs--were developed specifically for the GNU project. The GNU project was launched in 1984 to develop a free complete Unix-like operating system. To reach this goal, we had to develop whatever system components were not available as freely redistributable software from some other source. The GNU project wants users of GNU/Linux systems to be aware of how these systems relate to the GNU project, because that will help spread the GNU idea that software should be free--and thus encourage people to write more free software. For more information, see . *** 64-bit GNU/Linux No special procedures should be needed to build a 64-bit Emacs on a 64-bit GNU/Linux system. To build a 32-bit Emacs, first ensure that the necessary 32-bit system libraries and include files are installed. Then use: ./configure CC='gcc -m32' --build=i386-linux-gnu \ --x-libraries=/usr/X11R6/lib (using the location of the 32-bit X libraries on your system). *** IBM System/390 running GNU/Linux (s390-*-linux-gnu) As of Emacs 21.2, a 31-bit only version is supported on this system. *** SuperH (sh[34]*-*-linux-gnu) Emacs 23.0.60 was reported to work on GNU/Linux (October 2008). This was tested on a little-endian sh4 system (cpu type SH7751R) running Gentoo Linux 2008.0. ** macOS Mac OS X 10.6 or newer. Both AArch64 (Arm) and x86-64 systems are supported, but PowerPC is not supported. For installation instructions see the file nextstep/INSTALL. ** Microsoft Windows For installation instructions see the file nt/INSTALL. ** MS-DOS For installation instructions see the file msdos/INSTALL. See the "MS-DOS" chapter of the manual for information about using Emacs on MS-DOS. ** Solaris 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 # Defaults to 'gcc' if available. ./configure CC='cc' # Oracle Developer Studio 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), add the option '-Xs'. To build a 64-bit Emacs (with larger maximum buffer size) on a Solaris system that defaults to 32-bit executables, specify the -m64 compiler option. For example: ./configure CC='gcc -m64' # GCC ./configure CC='cc -m64' # Oracle Developer Studio ** Haiku On 32-bit Haiku it is required that the newer GCC 8 be used, instead of the legacy GCC 2 used by default. This can be achieved by invoking configure inside a shell launched by the 'setarch' program invoked as 'setarch x86'. When building with packages discovered through pkg-config, such as libpng, on a GCC 2/GCC 8 hybrid system, simply evaluating 'setarch x86' is insufficient to ensure that all required libraries are found at their correct locations. To avoid this problem, set the environment variable 'PKG_CONFIG_PATH' to the GCC 8 pkg-config directory at '/system/develop/lib/x86/pkgconfig/' before configuring Emacs. If GCC complains about not being able to resolve symbols such as "BHandler::LockLooper", you are almost certainly experiencing this problem. Haiku running on non-x86 systems has not been tested. It is anticipated that Haiku running on big-endian systems will experience problems when Emacs is built with Haiku windowing support, but there doesn't seem to be any reliable way to get Haiku running on a big-endian system at present. The earliest release of Haiku that will successfully compile Emacs is R1/Beta2. For windowing support, R1/Beta3 or later is required. ** Android Emacs is known to run on all Android versions from 2.2 onwards, on Linux kernel 2.26.29 or later. Android 2.2 has only been tested on ARM. mips64 has not been tested, but builds. With these exceptions, Emacs is known to run on all supported versions of Android on all supported machines: arm, armv7, arm64, x86, x86_64, and mips. See the file java/INSTALL for detailed installation instructions. * Obsolete platforms Support for many obsolete platforms was removed in Emacs 23.1. If for some reason you encounter an ancient machine where current Emacs does not compile, try an older release like Emacs 22.3. Local variables: mode: outline fill-prefix: " " End: This file is part of GNU Emacs. GNU Emacs 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 3 of the License, or (at your option) any later version. GNU Emacs 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 GNU Emacs. If not, see .