Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni via buildroot <buildroot@buildroot.org>
To: "Gaël PORTAY" <gael.portay@gmail.com>
Cc: "Samuel Martin" <s.martin49@gmail.com>,
	"Gaël PORTAY" <gael.portay@rtone.fr>,
	"Mahyar Koshkouei" <mahyar.koshkouei@gmail.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 2/2] package/rpi-userland: package is deprecated
Date: Thu, 25 Jul 2024 16:59:33 +0200	[thread overview]
Message-ID: <20240725165933.3c22cb67@windsurf> (raw)
In-Reply-To: <D2YKKETZ0VW0.3G5BB391498UM@gmail.com>

Hello,

On Thu, 25 Jul 2024 13:05:27 +0200
Gaël PORTAY <gael.portay@gmail.com> wrote:

> Testing the change in QtWebengine is pretty long... and even more on a
> laptop.

Oh yes, I have been using a very fast build server to do this
debugging/investigation.

> The first raises if the proprietary-codecs is set as the bundle ffmpeg
> has hardcoded configs; it builds the vp8 requiring thumb for arm (well
> maybe it builds vp8 even if the proprietary codecs is unset :/).
> 
> However, qmake creates the arm flags given to the compiler itself. It
> guesses them from the $QMAKE and $QMAKE_CFLAGS set in the qmake.conf
> generated in qt5base; but buildroot does not set the -march, -mtune,
> -mfloat-abi, -mfpu -marm/-mthumb flags to it.
> 
> So qmake is lost and builds any ARM 32-bis target with the default flags
> -march=armv7-a -mfloat-abi=hard -mtune=generic-armv7-a -mfpu=vfpv3-d16
> -marm.
> 
> The flag -marm raise raises the error below for vp8.c (because it is a
> thumb mnemonic):

I highly doubt that the VP8 code is using Thumb-only instructions.

> 
> 	{standard input}: Assembler messages:
> 	{standard input}:1119: Error: bad instruction `ldrhcs r0,[ip],#2'

I did a bit of experiment, but could not come to a conclusion. ldrh is
definitely recognized, but not ldrhcs. And building in Thumb mode
doesn't make any difference:

thomas@windsurf:/tmp$ cat plop.S 
ldrhcs r0, [ip], #2

thomas@windsurf:/tmp$ arm-linux-gnu-gcc -march=armv6zk -c plop.S 
plop.S: Assembler messages:
plop.S:1: Error: bad instruction `ldrhcs r0,[ip],#2'

thomas@windsurf:/tmp$ arm-linux-gnu-gcc -march=armv6zk -mthumb -c plop.S 
plop.S: Assembler messages:
plop.S:1: Error: bad instruction `ldrhcs r0,[ip],#2'

thomas@windsurf:/tmp$ arm-linux-gnu-gcc -march=armv8-a -mthumb -c plop.S plop.S: Assembler messages:
plop.S:1: Error: bad instruction `ldrhcs r0,[ip],#2'

thomas@windsurf:/tmp$ arm-linux-gnu-gcc -march=armv8-a -c plop.S 
plop.S: Assembler messages:
plop.S:1: Error: bad instruction `ldrhcs r0,[ip],#2'

> Note: chromium fails at configure if -feature-webengine-arm-thumb is
> forced to its command-line instead of failing afterward at build; so it
> is interresting to enforce it if CPU supports Thumb.

Not sure to understand this part.

> Also, it is wrong for raspberry pi 1 (armv6).
> 
> The second raises at linking blink:
> 
> 	/home/gportay/src/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/13.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: warning: /home/gportay/src/buildroot/output/build/qt5webengine-5.15.14/src/core/release/obj/third_party/blink/renderer/platform/heap/asm/asm/SaveRegisters_arm.o: missing .note.GNU-stack section implies executable stack
> 	/home/gportay/src/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/13.3.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> 	collect2: error: ld returned 1 exit status
> 
> Is that possible this is the issue you mentioned?

This is the issue I mentioned indeed. The linker bails out with a
non-zero error code, but does not show any error message.

> Also, I have noticed that chromium checks for jpeg-turbo specific
> symbols if -feature-webengine-system-jpeg; raspberrypi uses libjpeg as
> jpeg-turbo cannot be built for this target, and qt5webengine fails at
> configure.

Dang, I am pretty sure I saw this, switched to jpeg-turbo, but I forgot
to include it in my patch series. How come jpeg-turbo cannot be built
for your target? As far as I can see, jpeg-turbo does not have any
architecture dependency. Are you sure you didn't misread
package/jpeg/Config.in? It uses jpeg-turbo as default if
BR2_PACKAGE_JPEG_SIMD_SUPPORT, but it does not prevent from selecting
jpeg-turbo if BR2_PACKAGE_JPEG_SIMD_SUPPORT is not true.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2024-07-25 14:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-23 21:20 [Buildroot] [PATCH 0/2] rpi-utils replaces rpi-userland Gaël PORTAY
2024-07-23 21:20 ` [Buildroot] [PATCH 1/2] package/rpi-utils: new package Gaël PORTAY
2024-07-24 16:21   ` Thomas Petazzoni via buildroot
2024-07-25  8:05     ` Gaël PORTAY
2024-07-25  8:10       ` Thomas Petazzoni via buildroot
2024-07-25  9:43         ` Gaël PORTAY
2024-07-25 10:05           ` Waldemar Brodkorb
2024-07-25 10:16             ` Thomas Petazzoni via buildroot
2024-07-25 10:21             ` Gaël PORTAY
2024-07-23 21:20 ` [Buildroot] [PATCH 2/2] package/rpi-userland: package is deprecated Gaël PORTAY
2024-07-24 16:21   ` Thomas Petazzoni via buildroot
2024-07-25  9:53     ` Gaël PORTAY
2024-07-25 10:15       ` Thomas Petazzoni via buildroot
2024-07-25 11:05         ` Gaël PORTAY
2024-07-25 14:59           ` Thomas Petazzoni via buildroot [this message]
2024-07-31 11:42             ` Gaël PORTAY

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240725165933.3c22cb67@windsurf \
    --to=buildroot@buildroot.org \
    --cc=gael.portay@gmail.com \
    --cc=gael.portay@rtone.fr \
    --cc=mahyar.koshkouei@gmail.com \
    --cc=s.martin49@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox