Firefox dropped support for 32bit since version 140. So i had to build from source the 32bit firefox package for slackel 32bit.
I used slackware’s current slackbuild which is for firefox esr version, modified to include the languages packs inside binary. Compilation take 2.5 hours.
Trying to build latest firefox 152.0.2 from source for 32 bit, build failed several times and i could not find what is going on.
For previous firefox versions build finished without errors.
So i asked Google AI.
I got the answer “When compiling modern versions of Firefox on 32-bit Slackware, you run directly into a classic x86 32-bit compilation failure inside the newly added FFmpeg Vulkan video decoder path.This specific crash happens because of how the Vulkan API defines its handles differently on 64-bit vs. 32-bit architectures:
On 64-bit Linux: Both dispatchable and non-dispatchable Vulkan handles are treated as pointers, so initializing them with standard C++ nullptr compiles without issues.
On 32-bit Linux (x86 / i686): Non-dispatchable handles are defined fundamentally as a 64-bit integer (uint64_t). Assigning nullptr to an integer throws a strict C++ compilation error.Your sed command correctly targets and swaps these definitions to let the compiler build successfully on your 32-bit system”
I added three sed commands in the build script.
sed -i 's/mNv12Image\[buf\] = nullptr;/mNv12Image[buf] = VK_NULL_HANDLE;/g' dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp || exit 1
sed -i 's/mNv12Image\[i\] = nullptr;/mNv12Image[i] = VK_NULL_HANDLE;/g' dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp || exit 1
sed -i 's/ = nullptr;/ = VK_NULL_HANDLE;/g' dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp || exit 1
Then another error happened which broke the compilation. It was about Fix build failures due to missing types like uint32_t
AI gave this sed command
sed -i '1s/^/#include <cstdint>\n/' dom/media/webaudio/blink/DenormalDisabler.h || exit 1
Also i had to comment the line
#cat $CWD/firefox.llvm_22-1.patch | patch -p1 –verbose || exit 1
in the slackware SlackBuild because patch was already applied in 152.0.2 firefox source.
Build finished without errors.
AI can become very useful for developers helping them to solve bugs or solve problems when building packages.
The script and all patches need can be found here.
Download x86_64 and i686 firefox packages
Slackel users will informed to upgrade.k