You are not logged in.
Pages: 1
The Chromium webbrowser and hence all derivates using Chromium (like Vivaldi) have a 32-bit version which
needs at least SSE2 instructions of your CPU
shell> chromium
Illegal instruction (core dumped)
shell> file core
gcore: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from '/usr/lib/chromium/chromium', real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: '/usr/lib/chromium/chromium', platform: 'i686'
shell> gdb /usr/lib/chromium/chromium core
gdb> layout asm
>│0x8a1ee2 movsd -0xc30acc(%ecx),%xmm0 │
So if you have very old 686 CPUs (meaning pre Pentium 4) without SSE2 instructions, compile Chromium on your own. :-)
Offline
This also means, beware of packages with 386/686 in their name: they don't really show for which
instruction set they have been compiled. Best is always to have packages as source tarballs.
Offline
I've got Chromium 65 building by switching `ffmpeg` to the system library instead of using the bundled version. I'm trying to prepare a PR for the packaging files, essentially what needs to happen is:
depends+=('ffmpeg')
_system_libs[ffmpeg]=ffmpeg
However, the"system libraries" array is declared `readonly`:
readonly -A _system_libs=(
#[ffmpeg]=ffmpeg # https://crbug.com/731766 <- this line needs to change
[flac]=flac
[fontconfig]=fontconfig
[freetype]=freetype2
[harfbuzz-ng]=harfbuzz
[icu]=icu
[libdrm]=
[libjpeg]=libjpeg
#[libpng]=libpng # https://crbug.com/752403#c10
[libvpx]=libvpx
[libwebp]=libwebp
#[libxml]=libxml2 # https://crbug.com/736026
[libxslt]=libxslt
[opus]=opus
[re2]=re2
[snappy]=snappy
[yasm]=
[zlib]=minizip
)
How is this best accomplished with the archlinux32 "overlay" PKGBUILD setup?
Offline
Seems a good idea. ffmpeg causes the funny optimization assembly errors. What happens, when we take the system ffmpeg is unclear to me, but I'll make a patch. Especially because chromium is blocking packages currently:
```
[08:07:21] <deep42thought> What do we do about the dependency problem?
[08:07:48] <deep42thought> the blocking package seems to be chromium, which fails to build for some time now and thus still depends on the old library
[08:11:05] -!- isacdaavid has joined #archlinux-ports
[08:33:08] <deep42thought> I'm tempted to delete extra/chromium and update the library
```
Offline
depends+=('ffmpeg')
eval "$(
sed '
s/#[ffmpeg]=ffmpeg/[ffmpeg]=ffmpeg/g
' "${BASH_SOURCE[0]}"
)"
results in:
/data/arch32/builder/work/tmp.I7wBG2/PKGBUILD: line 279926: _system_libs: readonly variable
/data/arch32/builder/work/tmp.I7wBG2/PKGBUILD: line 279930: _unwanted_bundled_libs: readonly variable
yep, this doesn't work. This might be a general problem of the overlay mechanism..
Offline
However, the"system libraries" array is declared `readonly`:
Why do they do that?
I opened a bug report - maybe we get an explanation.
As another option we could replace all "readonly" by "declare" in the PKGBUILD with our build scripts, but this feels hackish and potentially produces some other issues.
Offline
eval "$(
sed '
s/#[ffmpeg]=ffmpeg/[ffmpeg]=ffmpeg/g
' "${BASH_SOURCE[0]}"
)"
Is it necessary to actually alter the line? You should get the same effect just by setting the array value directly (_system_libs[ffmpeg]=ffmpeg) ?
Why do they do that?
:shrug: Defensive programming maybe, i.e. keeping variables that don't change as constants?
Offline
Huge success. Going from a hint on https://github.com/android-ndk/ndk/issu … -390815633 the bundled FFMPEG will build with:
diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD
index 774975c..bf09043 100644
--- a/extra/chromium/PKGBUILD
+++ b/extra/chromium/PKGBUILD
@@ -1,3 +1 @@
-depends+=('ffmpeg')
-
-_system_libs[ffmpeg]=ffmpeg
+CFLAGS+=' -mno-stackrealign'
https://github.com/archlinux32/packages/pull/14
This also gets Chromium 66 building (not sure why it doesn't like the system FFMPEG, but it doesn't matter with the above change).
Last edited by jonathon (2018-05-24 21:45:20)
Offline
Great! :-)
Offline
Thanks. Currently testing. :-)
Offline
Pages: 1