gecko-dev/docs/setup/linux_32bit_build_on_64bit_...

79 строки
2.7 KiB
ReStructuredText

Building Firefox 32-bit On Linux 64-bit
=======================================
Instructions for Fedora 20 and 19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First ensure that your compiler toolchain and Gecko build dependencies
are installed.
.. code::
sudo yum install \
ccache cmake gcc gcc-c++ glibc-devel.i686 \
libstdc++-devel libstdc++-devel.i686 \
gtk2-devel.i686 gtk+-devel.i686 gtk+extra-devel.i686 \
glib-devel.i686 glib2-devel.i686 \
dbus-devel.i686 dbus-glib-devel.i686 \
alsa-lib-devel.i686 yasm-devel.i686 \
libxml2-devel.i686 zlib-devel.i686 \
freetype-devel.i686 \
atk-devel.i686 pango-devel.i686 fontconfig-devel.i686 \
cairo-devel.i686 gdk-pixbuf2-devel.i686 \
libX11-devel.i686 libXt-devel.i686 libXext-devel.i686 \
libXrender-devel.i686 libXau-devel.i686 libxcb-devel.i686 \
pulseaudio-libs-devel.i686 harfbuzz-devel.i686 \
mesa-libGL-devel.i686 libXxf86vm-devel.i686 \
libXfixes-devel.i686 libdrm-devel-2.4.49-2.fc19.i686 \
mesa-libEGL-devel libXdamage-devel.i686 libXcomposite-devel.i686
Then you need to use a .mozconfig that looks like the following example.
.. code::
# Flags set for targeting x86.
export CROSS_COMPILE=1
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
CC="ccache gcc -m32"
CXX="ccache g++ -m32"
AR=ar
ac_add_options --target=i686-pc-linux
# Normal build flags. These make a debug browser build.
ac_add_options --enable-application=browser
mk_add_options MOZ_MAKE_FLAGS="-s -j6"
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../ff-dbg
ac_add_options --enable-debug
ac_add_options --disable-optimize
Instructions for Ubuntu 19.10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These steps were verified to work as of June 2020
#. Install mercurial or git and :ref:`fetch a copy <Mercurial Bundles>` of ``mozilla-central``.
#. Run ``./mach bootstrap`` to install some dependencies. Note that this
will install some amd64 packages that are not needed to build 32-bit
Firefox.
#. Run ``rustup target install i686-unknown-linux-gnu`` to install the
32-bit Rust target.
#. Install 32-bit dependencies with the following command (this shouldn't try to
remove packages. If this is the case, those instructions won't work as-is):
.. code::
sudo apt install gcc-multilib g++-multilib libdbus-glib-1-dev:i386 \
libgtk2.0-dev:i386 libgtk-3-dev:i386 libpango1.0-dev:i386 libxt-dev:i386 \
libx11-xcb-dev:i386 libpulse-dev:i386 libdrm-dev:i386
5. Create a file called ``mozconfig`` in the top-level directory of you
``mozilla-central`` checkout, containing at least the following:
.. code::
ac_add_options --target=i686
6. Run ``./mach build``.