Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 22 Jul 2022 18:29:00 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: Thomas Petazzoni <thomas.petazzoni@...tlin.com>
Cc: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: Re: ./src/internal/atomic.h:229:14: error: size of array
 'a_cas_p_undefined_but_pointer_not_32bit' is negative on PowerPC

* Thomas Petazzoni <thomas.petazzoni@...tlin.com> [2022-07-22 09:12:24 +0200]:
> Hello,
> 
> We've "recently" started in Buildroot the build testing of fully random
> configurations, so we're now testing many more cases and seeing new
> build failures.
> 
> As part of this, we're now seeing build failures of musl on PowerPC
> 32-bit architectures. So far, we've seen the problem on power4
> (-mcpu=power4), power5 (-mcpu=power5) and power6 (-mcpu=power6), 970
> (-mcpu=970), power8 (-mcpu=power8), 620 (-mcpu=620), 630 (-mcpu=630).
> 
> The failure is:
> 
> ./src/internal/atomic.h:229:14: error: size of array 'a_cas_p_undefined_but_pointer_not_32bit' is negative
>   229 | typedef char a_cas_p_undefined_but_pointer_not_32bit[-sizeof(char) == 0xffffffff ? 1 : -1];
>       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

the compiler is not configured for 32-bit target abi, but the triplet
(powerpc-buildroot-linux-musl) selects the 32-bit target in musl.

please use powerpc64* --target triplet when configuring musl or configure
gcc to default to 32-bit abi if that's what you want.

(the bug would be more obvious looking at gcc -v)

> 
> You can see the full musl build log at:
> 
>   http://autobuild.buildroot.net/results/3f1956fbc1746ac25b537ed023e6393ff715f4c9/build-end.log (power4)
>   http://autobuild.buildroot.net/results/eeb3d66480e6fb4cd031e7803859480b6d0c72f3/build-end.log (power5)
>   http://autobuild.buildroot.net/results/4e41d2ce80ba56f933b1a4ac2dec367d634b0b54/build-end.log (power6)
>   http://autobuild.buildroot.net/results/5c7/5c7f71852b8ad201c0615838b7fa6f8bb15cc55b/build-end.log (970)
>   http://autobuild.buildroot.net/results/bac/bac4489b489f9b62b5f00be6a3aaac2db90e4ca1/build-end.log (power8)
>   http://autobuild.buildroot.net/results/97c/97c6c4bd683e6c7022a62343888dfa8b9d3bab04/build-end.log (620)
>   http://autobuild.buildroot.net/results/e2e/e2ed03711a8f2ae7b80efd56114457f8476449cc/build-end.log (630)
> 
> I have not investigated the problem so far. I'm not super familiar with
> PowerPC, but it seems like these cores are all 64-bit capable, but here
> we build for them in 32-bit mode. Maybe this is the case that isn't
> handled or supported by musl?
> 
> Thanks a lot for your support!
> 
> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.