Emacs machines list

Copyright (C) 1989-2025 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.


* 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
  <https://www.gnu.org/gnu/linux-and-gnu.html>.

*** 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.

  It is also possible to build Emacs for Android systems without using
  GUI capabilities provided by the Android port.  We do not know
  exactly which configurations this works on, but the installation
  instructions for such a build should be the same as for any Unix
  system.  (This does in turn imply that such a build must be carried
  out on an Android device itself utilizing development tools provided
  by third party package repositories.)


* 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 <https://www.gnu.org/licenses/>.
