Re: Build fails with `../../../dist/out/include/prtypes.h:593:38: error: size of array ‘arg’ is negative`

Paul Menzel pmenzel+libreoffice at molgen.mpg.de
Wed Jun 13 07:07:27 UTC 2018


Dear Stephan,


Am 13.06.2018 um 08:44 schrieb Stephan Bergmann:
> On 12/06/18 18:36, Paul Menzel wrote:
>> On ppc64le with Ubuntu 18.04 and latest LibreOffice from master with the
>> libatomic_ops build fix, the build fails with the error below.
>>
>> ```
>> $ uname -m
>> ppc64le
>> $ git describe --dirty
>> libreoffice-6-1-branch-point-918-g647d6a2c4fba
>> $ git log --oneline -1
>> 647d6a2c4fba (HEAD -> master, origin/master, origin/HEAD) 
>> libatomic_ops: Evaluate newer files
>> $ ./autogen.sh --with-system-libpng --with-boost-system
>> […]
>> $ make
>> […]
>> Makefile:636: warning: overriding recipe for target 
>> 'out/Linux_SINGLE_SHLIB'
>> Makefile:623: warning: ignoring old recipe for target 
>> 'out/Linux_SINGLE_SHLIB'
>> In file included from ../../../dist/out/include/prerror.h:9:0,
>>                   from drbg.c:9:
>> drbg.c: In function ‘RNG_RandomUpdate’:
>> ../../../dist/out/include/prtypes.h:593:38: error: size of array ‘arg’ 
>> is negative
>>       extern void pr_static_assert(int arg[(condition) ? 1 : -1])
>>                                        ^
>> drbg.c:541:5: note: in expansion of macro ‘PR_STATIC_ASSERT’
>>       PR_STATIC_ASSERT(sizeof(size_t) <= 4);
>>       ^~~~~~~~~~~~~~~~
>> ../../coreconf/rules.mk:392: recipe for target 
>> 'out/Linux_SINGLE_SHLIB/drbg.o' failed
>> make[5]: *** [out/Linux_SINGLE_SHLIB/drbg.o] Error 1
>> […]
>> ```
> 
> Apparently, one of the external/* modules gets misconfigured in some way 
> so that it checks an assumption that would be appropriate for a 32-bit 
> build (sizeof(size_t) <= 4) but not for a 64-bit build.  But from your 
> snippet one can't even tell which external module that would be.

Where could I get the corresponding information? In this failure setting 
I tried building with only one thread and got the output below.

```
$ make PARALLELISM=1
[…]
cd lib; make libs
cd util; make libs
cd freebl; make libs
Makefile:636: warning: overriding recipe for target 'out/Linux_SINGLE_SHLIB'
Makefile:623: warning: ignoring old recipe for target 
'out/Linux_SINGLE_SHLIB'
In file included from ../../../dist/out/include/prerror.h:9:0,
                  from drbg.c:9:
drbg.c: In function ‘RNG_RandomUpdate’:
../../../dist/out/include/prtypes.h:593:38: error: size of array ‘arg’ 
is negative
      extern void pr_static_assert(int arg[(condition) ? 1 : -1])
                                       ^
drbg.c:541:5: note: in expansion of macro ‘PR_STATIC_ASSERT’
      PR_STATIC_ASSERT(sizeof(size_t) <= 4);
      ^~~~~~~~~~~~~~~~
../../coreconf/rules.mk:392: recipe for target 
'out/Linux_SINGLE_SHLIB/drbg.o' failed
make[5]: *** [out/Linux_SINGLE_SHLIB/drbg.o] Error 1
Makefile:626: recipe for target 'libs' failed
make[4]: *** [libs] Error 2
../coreconf/rules.mk:101: recipe for target 'libs' failed
make[3]: *** [libs] Error 2
coreconf/rules.mk:101: recipe for target 'libs' failed
make[2]: *** [libs] Error 2
/dev/shm/libreoffice-core/external/nss/ExternalProject_nss.mk:34: recipe 
for target '/dev/shm/libreoffice-core/workdir/ExternalProject/nss/build' 
failed
make[1]: *** 
[/dev/shm/libreoffice-core/workdir/ExternalProject/nss/build] Error 1
Makefile:286: recipe for target 'build' failed
make: *** [build] Error 2
```


Kind regards,

Paul


More information about the LibreOffice mailing list