Created attachment 441868 [details] build.log Attempting to compile QtWebEngine on x32 results in a build failure in obj/src/3rdparty/chromium/build/linux/obj/src/3rdparty/chromium/build/linux/libpci.gen/libpci.libpci_loader.o: from obj/src/3rdparty/chromium/build/linux/libpci.gen/libpci_loader.cc:4: /usr/include/pci/config.h:10:4: error: #error "abi_x86_64 not supported by the package." This is very odd, because it seems like it's trying to include libpci and it should get the x32 version, as the relevant code in pci/config.h is: #if defined(__x86_64__) /* amd64 */ # if defined(__ILP32__) /* x32 ABI */ # include <x86_64-pc-linux-gnux32/pci/config.h> # else /* 64-bit ABI */ # error "abi_x86_64 not supported by the package." # endif Full build log and config.h are attached.
Created attachment 441870 [details] /usr/include/pci/config.h
Created attachment 441872 [details] emerge --info
I see the issue now: it incorrectly thinks that x32 is amd64, as it's using -m64 -march=x86-64 and such. Same issue is with the chromium ebuild. On x32, $(tc-arch) still returns "amd64"!
Created attachment 441950 [details] chromium environment Here's the environment log file from the chromium compilation that shows, among other things: declare -- ffmpeg_target_arch="x64" declare -- target_arch="x64"
Created attachment 441952 [details] chromium build.log Attached the build log from Chromium compilation. It gets quite far, but using the wrong architecture completely.
Created attachment 441954 [details] chromium build.log with target_arch=x32 When I edit the ebuild to have {ffmpeg_,}target_arch=x32, I get this configure error instead: gyp: Undefined variable platform_heap_asm_files in /var/tmp/portage/www-client/chromium-52.0.2743.82/work/chromium-52.0.2743.82/third_party/WebKit/Source/platform/blink_platform.gyp
Looking around, I found this ChromeOS bug about x32, with most of the work done by Mike Frysinger. But I'm not sure how far it got, and whether it relates to Chromium itself? (Also, oddly enough the See Also bug field does not support the Chromium bug tracker...)
commit 85bd6a2e4790671fd6adea1d973ff8ea1ac99ff2 Author: Mike Gilbert <floppym@gentoo.org> Date: Fri Jul 29 16:07:08 2016 -0400 www-client/chromium: set target_arch=x32 when appropriate Bug: https://bugs.gentoo.org/589978 Package-Manager: portage-2.3.0_p16 www-client/chromium/chromium-53.0.2785.21.ebuild | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) I have no idea what is going on with qtwebengine; the qt maintainers will need to address any issues with that ebuild.
As I mentioned in comment #6, it doesn't seem that target_arch=x32 gets accepted as a valid option by the build system at the moment? The change does help to prevent building it all for the wrong architecture, though. I'm thinking that a bug report about x32 support should be opened upstream.
(In reply to Dainius Masiliūnas from comment #9) > As I mentioned in comment #6, it doesn't seem that target_arch=x32 gets > accepted as a valid option by the build system at the moment? The change > does help to prevent building it all for the wrong architecture, though. Various pieces support it, but others do not. > I'm thinking that a bug report about x32 support should be opened upstream. You are certainly welcome to do so. :)
Hmm, the gn build system doesn't support x32 at all. You'll need to get x32 supported upstream before we even consider supporting it here.
Yea, that's what I thought. Open an issue upstream.