build x86 on an x64 machine

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
User avatar
Pentium4User
Board Warrior
Board Warrior
Posts: 1327
Joined: 2019-04-24, 09:38

build x86 on an x64 machine

Unread post by Pentium4User » 2024-09-09, 09:41

Hello!

Due to performance issues (Pentium M) I want to build the x86 Linux PM on my normal Linux machine (x64).
I removed the _BUILD_64=1 line in mozconfig, but after the build and package command, the package still has x86_64 in its name.

Is there a way to build x86 PM on an x64 system or do I need to build it on an x86 OS?

--
kind regards
Marco
The profile picture shows my Maico EC30 E ceiling fan.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 37762
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: build x86 on an x64 machine

Unread post by Moonchild » 2024-09-09, 09:50

You'll have to cross-compile, which is normally done by setting the --target and --host ac options accordingly.
--host is the architecture you're building on, and --target is the architecture you are building for.
e.g.:

Code: Select all

  ac_add_options --target=i686-linux-gnu
  ac_add_options --host=x86_64-linux-gnu
(going by memory here, you may need other expressions for them).
the --host might possibly not even be necessary.

It's been a very long time since I did cross-compilation and I don't know if it's even fully working in our tree at the moment. I'll defer to the Linux gurus in the community.
"A dead end street is a place to turn around and go into a new direction" - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

vannilla
Moon Magic practitioner
Moon Magic practitioner
Posts: 2415
Joined: 2018-05-05, 13:29

Re: build x86 on an x64 machine

Unread post by vannilla » 2024-09-09, 12:33

Cross-compilation with Autoconf changed between 2.13 and the version immediately after, so the exact options have to align with 2.13's way of doing things, which I don't remember and anyway can't test.
It's probably listed somewhere in the documentation of that specific version of Autoconf.

User avatar
Basilisk-Dev
Lunatic
Lunatic
Posts: 497
Joined: 2022-03-23, 16:41
Location: Chamber of Secrets

Re: build x86 on an x64 machine

Unread post by Basilisk-Dev » 2024-09-09, 12:51

Here's the mozconfig I use for building Basilisk for 32-bit x86 Linux on a 64-bit x86 Linux host: https://repo.palemoon.org/Basilisk-Dev/ ... .mozconfig

The important bits are:

Code: Select all

# Clear this if not a 64bit build
_BUILD_64=


ac_add_options --target=i686-unknown-linux-gnu
ac_add_options --with-arch=i686


# Processor architecture specific build options
if [ -n "$_BUILD_64" ]; then
  ac_add_options --x-libraries=/usr/lib64
else
  ac_add_options --x-libraries=/usr/lib
  export PKG_CONFIG_PATH=/usr/lib/pkgconfig
fi
Basilisk Project Owner

viewtopic.php?f=61&p=230756