Bug 265446 - audio/dexed: fix build on powerpc64le
Summary: audio/dexed: fix build on powerpc64le
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: powerpc Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL: https://github.com/juce-framework/JUC...
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-26 10:57 UTC by Piotr Kubaj
Modified: 2022-07-26 21:38 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (yuri)


Attachments
patch (837 bytes, patch)
2022-07-26 10:57 UTC, Piotr Kubaj
pkubaj: maintainer-approval? (yuri)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Piotr Kubaj freebsd_committer freebsd_triage 2022-07-26 10:57:43 UTC
Created attachment 235479 [details]
patch

Like with devel/juce, use system png to fix build.
Comment 1 Yuri Victorovich freebsd_committer freebsd_triage 2022-07-26 17:48:10 UTC
Hi Piotr,


Could you please elaborate why does this fix build on powerpc64?
Is there an error message?


Thanks,
Yuri
Comment 2 Piotr Kubaj freebsd_committer freebsd_triage 2022-07-26 20:52:58 UTC
Sorry, it was actually powerpc64le. The error is:
-- 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)

  ninja: build stopped: subcommand failed.



-- Configuring incomplete, errors occurred!
See also "/wrkdirs/usr/ports/audio/dexed/work/.build/CMakeFiles/CMakeOutput.log".
Comment 3 Piotr Kubaj freebsd_committer freebsd_triage 2022-07-26 20:54:24 UTC
The reason is that juce's build system doesn't take powerpc64le into account and doesn't build relevant files that implement functions with VSX, but then attempts to use them.
Comment 4 Yuri Victorovich freebsd_committer freebsd_triage 2022-07-26 21:35:23 UTC
I've added the JUCE bug report with the same error log that you reported.
Comment 5 Yuri Victorovich freebsd_committer freebsd_triage 2022-07-26 21:37:38 UTC
Committed, thanks!
Comment 6 commit-hook freebsd_committer freebsd_triage 2022-07-26 21:37:51 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=58b51f941282911e9e677499a0e0925c89c33905

commit 58b51f941282911e9e677499a0e0925c89c33905
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2022-07-26 21:36:41 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-07-26 21:37:31 +0000

    audio/dexed: Fix build on powerpc64le

    PR:             265446

 audio/dexed/Makefile | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Comment 7 commit-hook freebsd_committer freebsd_triage 2022-07-26 21:38:52 UTC
A commit in branch 2022Q3 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=79c810b46d9c0d6e91883568533f57183b359f62

commit 79c810b46d9c0d6e91883568533f57183b359f62
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2022-07-26 21:36:41 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-07-26 21:38:05 +0000

    audio/dexed: Fix build on powerpc64le

    PR:             265446
    (cherry picked from commit 58b51f941282911e9e677499a0e0925c89c33905)

 audio/dexed/Makefile | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)