JUCE
JUCE copied to clipboard
[Bug]: juceaide fails to build on powerpc64le
Detailed steps on how to reproduce the bug
Regular build on the powerpc64le architecture.
Error log:
-- Building juceaide
CMake Error at libs/JUCE/extras/Build/juceaide/CMakeLists.txt:101 (message):
Failed to build juceaide
[0/2] Re-checking globbed directories...
[1/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_data_structures/juce_data_structures.cpp.o
[2/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.o
[3/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o
[4/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.o
[5/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/juce_graphics.cpp:41:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/juce_graphics.h:147:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h:96:21:
warning: definition of implicit copy constructor for 'SavedState' is
deprecated because it has a user-declared copy assignment operator
[-Wdeprecated-copy]
SavedState& operator= (const SavedState&) = delete;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp:169:25:
note: in implicit copy constructor for
'juce::LowLevelGraphicsPostScriptRenderer::SavedState' first required here
stateStack.add (new SavedState (*stateStack.getLast()));
^
1 warning generated.
[6/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.cpp:164:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/system/juce_SystemStats.cpp:180:23:
warning: comparison of integers of different signs: 'int' and 'unsigned
long' [-Wsign-compare]
for (int i = 0; i < frames; ++i)
~ ^ ~~~~~~
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.cpp:225:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/native/juce_linux_Network.cpp:37:43:
warning: cast from 'struct sockaddr *' to 'struct sockaddr_dl *' increases
required alignment from 1 to 2 [-Wcast-align]
struct sockaddr_dl* sdl = (struct sockaddr_dl*) i->ifa_addr;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.cpp:37:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.h:331:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/network/juce_URL.h:56:5:
warning: definition of implicit copy constructor for 'URL' is deprecated
because it has a user-declared destructor [-Wdeprecated-copy-with-dtor]
~URL() = default;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/native/juce_linux_Network.cpp:96:11:
note: in implicit copy constructor for 'juce::URL' first required here
url (urlToCopy),
^
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.cpp:232:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/native/juce_linux_SystemStats.cpp:156:33:
warning: implicit conversion from 'juce::int64' (aka 'long long') to
'double' may lose precision [-Wimplicit-int-float-conversion]
return result == 0 ? (int) (memory / 1e6) : 0;
^~~~~~ ~
4 warnings generated.
[7/8] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:46:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:57:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/juce_graphics.h:58:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.h:331:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/network/juce_URL.h:56:5:
warning: definition of implicit copy constructor for 'URL' is deprecated
because it has a user-declared destructor [-Wdeprecated-copy-with-dtor]
~URL() = default;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp:32:6:
note: in implicit copy constructor for 'juce::URL' first required here
url (linkURL),
^
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:46:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:57:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/juce_graphics.h:58:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.h:331:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/network/juce_URL.h:56:5:
warning: definition of implicit copy assignment operator for 'URL' is
deprecated because it has a user-declared destructor
[-Wdeprecated-copy-with-dtor]
~URL() = default;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp:67:9:
note: in implicit copy assignment operator for 'juce::URL' first required
here
url = newURL;
^
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:166:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/drawables/juce_SVGParser.cpp:1751:15:
warning: definition of implicit copy constructor for 'SVGState' is
deprecated because it has a user-declared copy assignment operator
[-Wdeprecated-copy]
SVGState& operator= (const SVGState&) = delete;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/drawables/juce_SVGParser.cpp:154:18:
note: in implicit copy constructor for 'juce::SVGState' first required here
SVGState newState (*this);
^
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:46:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:187:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/desktop/juce_Displays.h:170:5:
warning: definition of implicit copy constructor for 'Displays' is
deprecated because it has a user-declared destructor
[-Wdeprecated-copy-with-dtor]
~Displays() = default;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/native/x11/juce_linux_X11_DragAndDrop.cpp:159:31:
note: in implicit copy constructor for 'juce::Displays' first required here
const auto displays = Desktop::getInstance().getDisplays();
^
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:46:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:57:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/juce_graphics.h:58:
In file included from
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/juce_core.h:255:
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/containers/juce_ElementComparator.h:44:28:
warning: definition of implicit copy constructor for
'SortFunctionConverter<juce::StringComparator>' is deprecated because it
has a user-declared copy assignment operator [-Wdeprecated-copy]
SortFunctionConverter& operator= (const SortFunctionConverter&) = delete;
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/containers/juce_ElementComparator.h:92:78:
note: in implicit copy constructor for
'juce::SortFunctionConverter<juce::StringComparator>' first required here
std::stable_sort (array + firstElement, array + lastElement + 1, converter);
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_core/containers/juce_Array.h:1112:9:
note: in instantiation of function template specialization
'juce::sortArray<juce::var, juce::StringComparator>' requested here
sortArray (comparator, values.begin(), 0, size() - 1, retainOrderOfEquivalentItems);
^
/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_gui_basics/properties/juce_MultiChoicePropertyComponent.cpp:90:18:
note: in instantiation of function template specialization
'juce::Array<juce::var, juce::DummyCriticalSection,
0>::sort<juce::StringComparator>' requested here
temp.sort (c);
^
5 warnings generated.
[8/8] Linking CXX executable
extras/Build/juceaide/juceaide_artefacts/Debug/juceaide
FAILED: extras/Build/juceaide/juceaide_artefacts/Debug/juceaide
: && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing -DJUCE_CUSTOM_VST3_SDK=1 -fPIC
-isystem /usr/local/include -fstack-protector-strong
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_data_structures/juce_data_structures.cpp.o
-o extras/Build/juceaide/juceaide_artefacts/Debug/juceaide
-Wl,-rpath,/usr/local/lib /usr/local/lib/libfreetype.so -lexecinfo -lrt
-ldl -lpthread && :
ld: error: undefined symbol:
juce::pnglibNamespace::png_init_filter_functions_vsx(juce::pnglibNamespace::png_struct_def*,
unsigned int)
>>> referenced by pngrutil.c:4126
(/wrkdirs/usr/ports/audio/dexed/work/dexed-0.9.6-16-g1df9a58/libs/JUCE/modules/juce_graphics/image_formats/pnglib/pngrutil.c:4126)
>>>
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o:(juce::pnglibNamespace::png_init_filter_functions(juce::pnglibNamespace::png_struct_def*))
c++: error: linker command failed with exit code 1 (use -v to see
invocation)
Downstream bug report: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265446#c2
What is the expected behaviour?
success
Operating systems
Other
What versions of the operating systems?
FreeBSD 13.1
Architectures
64-bit
Stacktrace
n/a
Plug-in formats (if applicable)
Standalone
Plug-in host applications (DAWs) (if applicable)
n/a
Testing on the develop
branch
I have not tested against the develop
branch
Code of Conduct
- [X] I agree to follow the Code of Conduct
just a data-point: on Debian/ppc64el juceaide
builds fine, at least for JUCE-7.0.1
https://buildd.debian.org/status/fetch.php?pkg=juce&arch=ppc64el&ver=7.0.1%7Eds0-1&stamp=1659651853
EDIT: on closer inspection I see that your error is about undefined symbols related to png
. For the Debian package, we take care to properly link against the system's libpng
, so that might explain why it works for us.