Skip to content

Instantly share code, notes, and snippets.

@wyatt8740
Created May 30, 2021 20:19
Show Gist options
  • Save wyatt8740/f2ea3639bc1fcffebed123aa27e66f2c to your computer and use it in GitHub Desktop.
Save wyatt8740/f2ea3639bc1fcffebed123aa27e66f2c to your computer and use it in GitHub Desktop.
2.53.7(.1) Seamonkey for Pentium M 32-bit cross build
# Misc. - maybe unnecessary, but useful on FF builds
export MOZ_REQUIRE_SIGNING=0
export MOZ_REQUIRE_ADDON_SIGNING=0
export MOZ_ADDON_SIGNING=0
# If you want your voice heard apparently you need telemetry enabled (see: the
# PulseAudio/ALSA fiasco).
# These make telemetry get sent if uncommented
# export MOZILLA_OFFICIAL=1
# export BUILD_OFFICIAL=1
# export MOZ_TELEMETRY_REPORTING=1
# export RELEASE_BUILD=1
# Compiler settings
# necessary for rustc 1.52 or it will fail.
export RUSTC_BOOTSTRAP="encoding_rs,packed_simd"
# 32-bit cross
export CROSS_COMPILE=1
# export CC=clang
# export CXX=clang++
# I know there's redundance here, I was just throwing things at a wall to see what stuck when I started hitting errors as I built due to things not being passed -m32.
CC='gcc -m32'
export CC='gcc -m32'
CXX='g++ -m32'
export CXX='g++ -m32'
# export AR=ar
export LD=ld
LD=ld
ac_add_options --target=i686-pc-linux-gnu
ac_add_options --host=i686-pc-linux-gnu
# Flags
export CFLAGS='-m32 '"$CFLAGS -I/usr/lib/i386-linux-gnu/gtk-2.0/gtk-2.0/include -fno-lifetime-dse -fno-delete-null-pointer-checks -fno-schedule-insns2 -msse -msse2 -mfpmath=sse"
export CXXFLAGS='-m32 '"$CXXFLAGS -I/usr/lib/i386-linux-gnu/gtk-2.0/gtk-2.0/include -fno-lifetime-dse -fno-delete-null-pointer-checks -fno-schedule-insns2 -msse -msse2 -mfpmath=sse"
export PKG_CONFIG_PATH='/home/wyatt/development/chroot32/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig'
# make options
# This build is targeting my Westmere-based X201 Tablet, but being compiled on
# my Ivy Bridge-based desktop. Thus, I'm giving the object code a special
# destination directory and will also set mtune and march later in this file.
# mk_add_options MOZ_OBJDIR=/extra-space/wyatt/seamonkey-2.53.7.source/obj-sm-westmere
mk_add_options MOZ_OBJDIR=/extra-space/wyatt/seamonkey-2.53.7.source/obj-sm-dothan
# mk_add_options MOZ_MAKE_FLAGS="-j4"
mk_add_options MOZ_MAKE_FLAGS="-j4"
mk_add_options MOZ_REQUIRE_SIGNING=0
mk_add_options MOZ_REQUIRE_ADDON_SIGNING=0
mk_add_options MOZ_ADDON_SIGNING=0
# autoconf options
# Compiler optimizations
# uncomment one of these lines
# Westmere, GCC:
# ac_add_options --enable-optimize="-O2 -mtune=westmere -march=westmere"
# Ivy Bridge, GCC:
# ac_add_options --enable-optimize="-O2 -mtune=ivybridge -march=ivybridge"
# Pentium M, GCC:
# This is abuse again, but it makes sure that -m32 is getting passed to some more things that were ignoring my CFLAGS above.
ac_add_options --enable-optimize="-m32 -O2 -mtune=pentium-m -march=pentium-m"
# (whatever), Clang:
# ac_add_options --enable-optimize
# Apparently some parts run better at different optimization levels.
# additionally, clang works alright at default levels where GCC
# might not, it seems.
# no longer valid:
# ac_add_options --enable-application=suite
ac_add_options --enable-application=comm/suite
ac_add_options --prefix=/usr
# toolkit selection
ac_add_options --enable-default-toolkit=cairo-gtk3
# removed in newer Mozilla versions:
# ac_add_options --enable-default-toolkit=cairo-gtk2
# ac_add_options --enable-default-toolkit=cairo-gtk2-x11
# DISABLE:
# Testing suite stuff (eats up lots of time)
ac_add_options --disable-tests
# Geolocation
ac_add_options --disable-necko-wifi
# Turn updater off
# (Upstream binaries probably force PulseAudio cubeb backend nowadays, mirroring FF)
ac_add_options --disable-updater
# PulseAudio: I hate it. It breaks everything on my system every time I give it a shot.
ac_add_options --disable-pulseaudio
# Crash Reporter: Unofficial builds may not be a good fit for the crash
# reporter
ac_add_options --disable-crashreporter
# ENABLE:
# Alsa - It works on my systems. Was much easier to set up than PulseAudio.
# (Even with software mixing!)
ac_add_options --enable-alsa
# Official branding: label it as Seamonkey or Firefox or whatever we're
# currently building
ac_add_options --enable-official-branding
# Tag as a release
ac_add_options --enable-release
# Strip binaries on `make -f client.mk install`
ac_add_options --enable-install-strip
# Apparently FF62+ don't like pthreads, but Seamonkey 2.49.4 is still based on
# FF 52, so I figure this probably won't hurt.
# ac_add_options --with-pthreads
# LFS specified options that I don't know why I need them specified/that I
# don't want to be specified:
# ac_add_options --enable-safe-browsing
# ac_add_options --enable-url-classifier
#ac_add_options --enable-system-cairo
#ac_add_options --enable-system-ffi
#ac_add_options --enable-system-pixman
#ac_add_options --with-system-bz2
#ac_add_options --with-system-jpeg
#ac_add_options --with-system-png
#ac_add_options --with-system-zlib
# Probably unnecessary for autoconf options:
ac_add_options MOZ_REQUIRE_SIGNING=0
ac_add_options MOZ_REQUIRE_ADDON_SIGNING=0
ac_add_options MOZ_ADDON_SIGNING=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment