diff mbox series

[RFC,v2,12/14] toolchain: disable PIE for hexagon

Message ID 20241219053053.2389046-13-brian.cain@oss.qualcomm.com
State Changes Requested
Headers show
Series add hexagon architecture | expand

Commit Message

Brian Cain Dec. 19, 2024, 5:30 a.m. UTC
Without this change, dav1d fails to detect atomics:

    Command line: `/local/mnt/workspace/upstream/obj_br_qemu/host/bin/hexagon-unknown-linux-musl-clang /local/mnt/workspace/upstream/obj_br_qemu/build/dav1d-1.5.0/build/meson-private/tmpvgk6hjv0/testfile.c -o /local/mnt/workspace/upstream/obj_br_qemu/build/dav1d-1.5.0/build/meson-private/tmpvgk6hjv0/output.obj -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O2 -g0 -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -std=c99 -D_GNU_SOURCE` -> 1
    stderr:
    hexagon-unknown-linux-musl-clang: error: argument unused during compilation: '-pie' [-Werror,-Wunused-command-line-argument]
    -----------
    Checking if "GCC-style atomics" compiles: NO

Because the toolchain wrapper adds linker args to compiler invocations and
-Werror=unused-command-line-argument is enabled, it fails here.

Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
---
 toolchain/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni Feb. 5, 2025, 11:29 a.m. UTC | #1
On Wed, 18 Dec 2024 21:30:51 -0800
Brian Cain <brian.cain@oss.qualcomm.com> wrote:

> Without this change, dav1d fails to detect atomics:
> 
>     Command line: `/local/mnt/workspace/upstream/obj_br_qemu/host/bin/hexagon-unknown-linux-musl-clang /local/mnt/workspace/upstream/obj_br_qemu/build/dav1d-1.5.0/build/meson-private/tmpvgk6hjv0/testfile.c -o /local/mnt/workspace/upstream/obj_br_qemu/build/dav1d-1.5.0/build/meson-private/tmpvgk6hjv0/output.obj -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O2 -g0 -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -std=c99 -D_GNU_SOURCE` -> 1
>     stderr:
>     hexagon-unknown-linux-musl-clang: error: argument unused during compilation: '-pie' [-Werror,-Wunused-command-line-argument]
>     -----------
>     Checking if "GCC-style atomics" compiles: NO
> 
> Because the toolchain wrapper adds linker args to compiler invocations and
> -Werror=unused-command-line-argument is enabled, it fails here.
> 
> Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
> ---
>  toolchain/Config.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/toolchain/Config.in b/toolchain/Config.in
> index 4354fde340..e650236e06 100644
> --- a/toolchain/Config.in
> +++ b/toolchain/Config.in
> @@ -34,7 +34,7 @@ config BR2_TOOLCHAIN_USES_MUSL
>  	select BR2_TOOLCHAIN_HAS_THREADS
>  	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
>  	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
> -	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS
> +	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS && !BR2_hexagon

Isn't that rather related to the fact that Clang is used?

Thomas
diff mbox series

Patch

diff --git a/toolchain/Config.in b/toolchain/Config.in
index 4354fde340..e650236e06 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -34,7 +34,7 @@  config BR2_TOOLCHAIN_USES_MUSL
 	select BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	select BR2_TOOLCHAIN_HAS_THREADS_NPTL
-	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS
+	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS && !BR2_hexagon
 
 choice
 	prompt "Toolchain type"