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

classic Classic list List threaded Threaded
6 messages Options
Paul Menzel Paul Menzel
Reply | Threaded
Open this post in threaded view
|

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

Dear LibreOffice,


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
[…]
```


Kind regards,

Paul



_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Attached Message Part (230 bytes) Download Attachment
smime.p7s (6K) Download Attachment
sberg sberg
Reply | Threaded
Open this post in threaded view
|

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

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.
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Paul Menzel Paul Menzel
Reply | Threaded
Open this post in threaded view
|

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

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
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

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

On 13/06/18 09:07, Paul Menzel wrote:

> $ 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

^ so it's external/nss that's causing you trouble

> make[1]: ***
> [/dev/shm/libreoffice-core/workdir/ExternalProject/nss/build] Error 1
> Makefile:286: recipe for target 'build' failed
> make: *** [build] Error 2
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

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

On 13/06/18 09:16, Stephan Bergmann wrote:
> ^ so it's external/nss that's causing you trouble

(to find out more, look at how that external module is configured and
built in external/nss/ExternalProject_nss.mk, and look at the output of
`(cd external/nss && make verbose=t)`, to see if there's anything
suspicious; debugging failing builds of external modules is generally a
pain)
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
Paul Menzel Paul Menzel
Reply | Threaded
Open this post in threaded view
|

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

In reply to this post by sberg
Dear Stephan,


Am 13.06.2018 um 09:16 schrieb Stephan Bergmann:

> On 13/06/18 09:07, Paul Menzel wrote:
>> $ 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
>
> ^ so it's external/nss that's causing you trouble

Indeed. I worked around it by using the system library with
`--with-system-nss`. On Ubuntu 18.04, a build configured with the
options below succeeds for ppc64le.

     $ autogen.sh \
         --with-system-libatomic_ops
         --with-system-libpng
         --with-boost-system
         --with-system-nss
         --with-system-postgresql


Kind regards,

Paul
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice