juce-framework / JUCE

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
https://juce.com
Other
6.57k stars 1.74k forks source link

[Bug]: JUCE 8.0.2 build failure on Fedora 41 with gcc 14.2.1 on aarch64 #1429

Open ycollet opened 2 weeks ago

ycollet commented 2 weeks ago

Detailed steps on how to reproduce the bug

I am trying to build JUCE 8.0.2 on Fedora 41 / aarch64

What is the expected behaviour?

A build without errors ...

Operating systems

Linux

What versions of the operating systems?

Fedora 41 / gcc 14.2.1

Architectures

ARM

Stacktrace

/builddir/build/BUILD/JUCE-8.0.2-build/JUCE-8.0.2/modules/juce_core/text/juce_CharPointer_UTF8_test.cpp:59:71: error: narrowing conversion of ‘-1’ from ‘int’ to ‘char’ [-Wnarrowing]
   59 |             const std::vector<CharPointer_UTF8::CharType> string { -1 };
      |                                                                       ^
/builddir/build/BUILD/JUCE-8.0.2-build/JUCE-8.0.2/modules/juce_core/text/juce_CharPointer_UTF8_test.cpp:65:100: error: narrowing conversion of ‘-1’ from ‘int’ to ‘char’ [-Wnarrowing]
   65 |             const std::vector<CharPointer_UTF8::CharType> string { 0x54, 0x65, 0x73, 0x74, 0x0, -1 };
      |                                                                                                    ^
/builddir/build/BUILD/JUCE-8.0.2-build/JUCE-8.0.2/modules/juce_core/text/juce_CharPointer_UTF8_test.cpp:71:95: error: narrowing conversion of ‘-1’ from ‘int’ to ‘char’ [-Wnarrowing]
   71 |             const std::vector<CharPointer_UTF8::CharType> string { 0x54, 0x65, 0x73, 0x74, -1 };
      |                                                                                               ^
gmake[2]: *** [extras/UnitTestRunner/CMakeFiles/UnitTestRunner.dir/build.make:181: extras/UnitTestRunner/CMakeFiles/UnitTestRunner.dir/__/__/modules/juce_core/juce_core.cpp.o] Error 1
gmake[2]: Leaving directory '/builddir/build/BUILD/JUCE-8.0.2-build/JUCE-8.0.2/redhat-linux-build'
gmake[1]: *** [CMakeFiles/Makefile2:499: extras/UnitTestRunner/CMakeFiles/UnitTestRunner.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

Plug-in formats (if applicable)

No response

Plug-in host applications (DAWs) (if applicable)

No response

Testing on the develop branch

I have not tested against the develop branch

Code of Conduct

plaimbock commented 2 hours ago

Your build seems to use make -jX where X > 1. If you build with make -j1 it stops where the error occured. In the spec file you can add: %global _smp_mflags -j1. Assuming you built it in copr, you can also search for "error: " in the builder-log.log.gz file.

plaimbock commented 2 hours ago

Related? https://github.com/juce-framework/JUCE/issues/1314

ycollet commented 2 hours ago

The error message is a the end of the line in the first message :)

juce_CharPointer_UTF8_test.cpp:65:100: error: narrowing conversion

I don't now if #1314 is related to this one ...

plaimbock commented 1 hour ago

The error message is a the end of the line in the first message :)

juce_CharPointer_UTF8_test.cpp:65:100: error: narrowing conversion

Doh, missed that one as I did not scroll to the end of the line. Sorry for the noise. All I can offer is try to build with -Wno-narrowing and/or -Wno-error=narrowing but since it happens in a *_test.cpp file that is probably not a good idea :-)

I don't now if #1314 is related to this one ...

Me neither. I just mentioned it because of aarch64.