Hi Patrick,
In order to build 32-bit Chromium in Buildroot, we had to isolate the whole 
thing in a 32-bit container, then run:

buildroot$ HOST_CFLAGS="-O2 -m32" linux32 make libcef

The 32-bit container is i386 ubuntu:19.10 described by a Dockerfile very 
similar to the Buildroot testing Dockerfile: 
<https://git.buildroot.net/buildroot/tree/support/docker/Dockerfile>

--- support/docker/Dockerfile   2020-04-29 10:13:47.654241375 +0100
+++ package/libcef/v8_snapshot/arm/Dockerfile   2020-04-29 10:15:
30.339897520 +0100
@@ -1,41 +1,33 @@
-# This Dockerfile generates the docker image that gets used by Gitlab CI
-# To build it (YYYYMMDD.HHMM is the current date and time in UTC):
-#   sudo docker build -t buildroot/base:YYYYMMDD.HHMM support/docker
-#   sudo docker push buildroot/base:YYYYMMDD.HHMM
-
-# We use a specific tag for the base image *and* the corresponding date
-# for the repository., so do not forget to update the apt-sources.list
-# file that is shipped next to this Dockerfile.
-FROM debian:stretch-20171210
-
-LABEL maintainer="Buildroot mailing list <buildr...@buildroot.org>" \
-      vendor="Buildroot" \
-description="Container with everything needed to run Buildroot"
+# 32-bit Dockerfile which mimics support/docker/Dockerfile
+FROM i386/ubuntu:19.10

 # Setup environment
 ENV DEBIAN_FRONTEND noninteractive

 # This repository can be a bit slow at times. Don't panic...
-COPY apt-sources.list /etc/apt/sources.list
+#COPY apt-sources.list /etc/apt/sources.list

 # The container has no package lists, so need to update first
 RUN dpkg --add-architecture i386 && \
     apt-get update -y
 RUN apt-get install -y --no-install-recommends \
+        automake \
         bc \
         build-essential \
         bzr \
         ca-certificates \
+        clang \
         cmake \
         cpio \
         cvs \
         file \
-        g++-multilib \
+        g++ \
         git \
-        libc6:i386 \
+        libc6 \
         libncurses5-dev \
         locales \
         mercurial \
+        ninja-build \
         python-flake8 \
         python-nose2 \
         python-pexpect \
@@ -47,6 +39,7 @@
         rsync \
         subversion \
         unzip \
+        vim \
         wget \
         && \
     apt-get -y autoremove && \

Without using Buildroot, you could probably build Chromium itself with 
something similar. You'll need a 32-bit version of gn too.

Maybe it's possible to build Chromium in a 32-bit VM too.

I hope that helps!
Thomas

On Tuesday, 28 April 2020 20:38:24 UTC+1, Patrick De Bella wrote:
>
> Hi Thomas,
>
> Can you please provide some details on how you created the 32-bit versions 
> of embedded.S and snapshot_blob.bin?  I'm new to Chromium, GN and Ninja and 
> having some issues with this. 
>
> Patrick
>
> On Wednesday, January 29, 2020 at 4:44:51 AM UTC-5, Thomas Preston wrote:
>>
>> On Wednesday, 29 January 2020 09:37:48 UTC, Thomas Preston wrote:
>>
>>> We ended up solving this by letting the run_mksnapshot_default target 
>>> finish, then overwriting snapshot_blob.bin and embedded.S with the 
>>> pre-built 32-bit versions. The build actually errors when trying to build 
>>> another target, which uses embedded.S.
>>>
>>
>> This is the error when we don't replace the snapshot_blob.bin and 
>> embedded.S with 32-bit versions:
>>
>> .quad V8FooBar
>>       ^ unsupported relocation on symbol
>>
>>
>>
>>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/9c4ef4e5-a36e-4864-ab87-15153ad30680%40googlegroups.com.

Reply via email to