Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Failed build on OpenBSD #1462

Open
1 task done
rnkn opened this issue Oct 27, 2024 · 2 comments
Open
1 task done

[Bug]: Failed build on OpenBSD #1462

rnkn opened this issue Oct 27, 2024 · 2 comments

Comments

@rnkn
Copy link

rnkn commented Oct 27, 2024

Detailed steps on how to reproduce the bug

Hello. I understand that OpenBSD is not a targeted system, but I'm hoping that in your good graces you may offer some insights in my attempts to build...

$ git clone --depth 1 https://github.com/juce-framework/JUCE.git
$ cd JUCE
$ cmake . -B build

What is the expected behaviour?

Moderately successful build.

Operating systems

Other

What versions of the operating systems?

$ uname -a
OpenBSD ghost.home 7.6 GENERIC.MP#196 arm64

Architectures

ARM

Stacktrace

-- The C compiler identification is Clang 16.0.6
-- The CXX compiler identification is Clang 16.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'alsa'
--   
-- Checking for modules 'freetype2;fontconfig'
--   Found freetype2, version 26.1.20
--   Found fontconfig, version 2.14.1
-- Checking for module 'gl'
--   Found gl, version 23.3.6
-- Checking for module 'libcurl'
--   Found libcurl, version 8.10.1
-- Checking for modules 'webkit2gtk-4.0;gtk+-x11-3.0'
--   
--   
-- Configuring juceaide
-- Building juceaide
CMake Error at extras/Build/juceaide/CMakeLists.txt:142 (message):
  Failed to build juceaide

  [ 9%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o

  [ 18%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.o


  [ 27%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o


  [ 36%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o


  [ 45%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics_Harfbuzz.cpp.o


  [ 54%] Building C object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics_Sheenbidi.c.o


  [ 63%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.o


  [ 72%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o


  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:158:


  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SharedCode_posix.h:1007:6:
  error: use of undeclared identifier 'pthread_setname_np'

       pthread_setname_np (pthread_self(), name.toRawUTF8());
       ^

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:195:

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/javascript/juce_Javascript.cpp:41:


  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11624:12:
  error: use of undeclared identifier 'malloc_usable_size'; did you mean
  'JSMallocFunctions::js_malloc_usable_size'?

      return malloc_usable_size(ptr);
             ^~~~~~~~~~~~~~~~~~
             JSMallocFunctions::js_malloc_usable_size

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:8669:14:
  note: 'JSMallocFunctions::js_malloc_usable_size' declared here

      size_t (*js_malloc_usable_size)(const void *ptr);
               ^

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11624:12:
  error: invalid use of non-static data member 'js_malloc_usable_size'

      return malloc_usable_size(ptr);
             ^~~~~~~~~~~~~~~~~~

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11698:5:
  error: use of undeclared identifier 'malloc_usable_size'; did you mean
  'js_malloc_usable_size'?

      malloc_usable_size,
      ^~~~~~~~~~~~~~~~~~
      js_malloc_usable_size

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11315:8:
  note: 'js_malloc_usable_size' declared here

  size_t js_malloc_usable_size(JSContext *ctx, const void *ptr)

         ^

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11698:5:
  error: cannot initialize a member subobject of type 'size_t (*)(const void
  *)' (aka 'unsigned long (*)(const void *)') with an lvalue of type 'size_t
  (JSContext *, const void *)' (aka 'unsigned long ((anonymous
  namespace)::choc::javascript::quickjs::JSContext *, const void *)'):
  different number of parameters (1 vs 2)

      malloc_usable_size,
      ^~~~~~~~~~~~~~~~~~

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:246:

  /home/rnkn/src/JUCE/modules/juce_core/native/juce_Files_linux.cpp:51:21:
  error: no member named 'f_type' in 'statfs'

               && buf.f_type == (unsigned int) U_ISOFS_SUPER_MAGIC;
                  ~~~ ^

  /home/rnkn/src/JUCE/modules/juce_core/native/juce_Files_linux.cpp:60:21:
  error: no member named 'f_type' in 'statfs'

          switch (buf.f_type)
                  ~~~ ^

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:252:


  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:151:19:
  error: use of undeclared identifier 'sysctlbyname'

      auto result = sysctlbyname ("hw.clockrate", &clockRate, &clockRateSize, nullptr, 0);
                    ^

  
  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:431:33:
  error: no member named 'ki_flag' in 'kinfo_proc'

      return result == 0 ? ((info.ki_flag & P_TRACED) != 0) : false;
                             ~~~~ ^

  
  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:431:43:
  error: use of undeclared identifier 'P_TRACED'

      return result == 0 ? ((info.ki_flag & P_TRACED) != 0) : false;
                                            ^

  10 errors generated.

  *** Error 1 in .
  (extras/Build/juceaide/CMakeFiles/juceaide.dir/build.make:174
  'extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o')


  *** Error 2 in .  (CMakeFiles/Makefile2:131
  'extras/Build/juceaide/CMakeFiles/juceaide.dir/all': /usr/bin/make -s -f
  extras/Build/juceaide/CM...)

  *** Error 2 in /home/rnkn/src/JUCE/build/tools (Makefile:136 'all':
  /usr/bin/make -s -f CMakeFiles/Makefile2 all)



-- Configuring incomplete, errors occurred!

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

  • I agree to follow the Code of Conduct
@epsilon-0
Copy link

epsilon-0 commented Oct 27, 2024

For the first error for pthread , you need to use a different non-portable extension for openbsd pthread_set_name_np - https://man.openbsd.org/pthreads.3#pthread_set_name_np.

Note the _ difference between the error'd function name and the available function in the man page.

@rnkn
Copy link
Author

rnkn commented Oct 27, 2024

Thanks so much for your quick response!

So I just did the most obvious thing and replaced pthread_setname_np with pthread_set_name_np and get the same error with the extension:

-- The C compiler identification is Clang 16.0.6
-- The CXX compiler identification is Clang 16.0.6
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'alsa'
--   
-- Checking for modules 'freetype2;fontconfig'
--   Found freetype2, version 26.1.20
--   Found fontconfig, version 2.14.1
-- Checking for module 'gl'
--   Found gl, version 23.3.6
-- Checking for module 'libcurl'
--   Found libcurl, version 8.10.1
-- Checking for modules 'webkit2gtk-4.0;gtk+-x11-3.0'
--   
--   
-- Configuring juceaide
-- Building juceaide
CMake Error at extras/Build/juceaide/CMakeLists.txt:142 (message):
  Failed to build juceaide

  [ 9%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o

  [ 18%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.o


  [ 27%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.o


  [ 36%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics.cpp.o


  [ 45%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics_Harfbuzz.cpp.o


  [ 54%] Building C object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_graphics/juce_graphics_Sheenbidi.c.o


  [ 63%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.o


  [ 72%] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o


  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:158:


  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SharedCode_posix.h:1007:6:
  error: use of undeclared identifier 'pthread_set_name_np'

       pthread_set_name_np (pthread_self(), name.toRawUTF8());
       ^

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:195:

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/javascript/juce_Javascript.cpp:41:


  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11624:12:
  error: use of undeclared identifier 'malloc_usable_size'; did you mean
  'JSMallocFunctions::js_malloc_usable_size'?

      return malloc_usable_size(ptr);
             ^~~~~~~~~~~~~~~~~~
             JSMallocFunctions::js_malloc_usable_size

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:8669:14:
  note: 'JSMallocFunctions::js_malloc_usable_size' declared here

      size_t (*js_malloc_usable_size)(const void *ptr);
               ^

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11624:12:
  error: invalid use of non-static data member 'js_malloc_usable_size'

      return malloc_usable_size(ptr);
             ^~~~~~~~~~~~~~~~~~

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11698:5:
  error: use of undeclared identifier 'malloc_usable_size'; did you mean
  'js_malloc_usable_size'?

      malloc_usable_size,
      ^~~~~~~~~~~~~~~~~~
      js_malloc_usable_size

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11315:8:
  note: 'js_malloc_usable_size' declared here

  size_t js_malloc_usable_size(JSContext *ctx, const void *ptr)

         ^

  
  /home/rnkn/src/JUCE/modules/juce_core/javascript/choc/javascript/choc_javascript_QuickJS.h:11698:5:
  error: cannot initialize a member subobject of type 'size_t (*)(const void
  *)' (aka 'unsigned long (*)(const void *)') with an lvalue of type 'size_t
  (JSContext *, const void *)' (aka 'unsigned long ((anonymous
  namespace)::choc::javascript::quickjs::JSContext *, const void *)'):
  different number of parameters (1 vs 2)

      malloc_usable_size,
      ^~~~~~~~~~~~~~~~~~

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:246:

  /home/rnkn/src/JUCE/modules/juce_core/native/juce_Files_linux.cpp:51:21:
  error: no member named 'f_type' in 'statfs'

               && buf.f_type == (unsigned int) U_ISOFS_SUPER_MAGIC;
                  ~~~ ^

  /home/rnkn/src/JUCE/modules/juce_core/native/juce_Files_linux.cpp:60:21:
  error: no member named 'f_type' in 'statfs'

          switch (buf.f_type)
                  ~~~ ^

  In file included from
  /home/rnkn/src/JUCE/modules/juce_core/juce_core.cpp:252:


  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:151:19:
  error: use of undeclared identifier 'sysctlbyname'

      auto result = sysctlbyname ("hw.clockrate", &clockRate, &clockRateSize, nullptr, 0);
                    ^

  
  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:431:33:
  error: no member named 'ki_flag' in 'kinfo_proc'

      return result == 0 ? ((info.ki_flag & P_TRACED) != 0) : false;
                             ~~~~ ^

  
  /home/rnkn/src/JUCE/modules/juce_core/native/juce_SystemStats_linux.cpp:431:43:
  error: use of undeclared identifier 'P_TRACED'

      return result == 0 ? ((info.ki_flag & P_TRACED) != 0) : false;
                                            ^

  10 errors generated.

  *** Error 1 in .
  (extras/Build/juceaide/CMakeFiles/juceaide.dir/build.make:174
  'extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o')


  *** Error 2 in .  (CMakeFiles/Makefile2:131
  'extras/Build/juceaide/CMakeFiles/juceaide.dir/all': /usr/bin/make -s -f
  extras/Build/juceaide/CM...)

  *** Error 2 in /home/rnkn/src/JUCE/build/tools (Makefile:136 'all':
  /usr/bin/make -s -f CMakeFiles/Makefile2 all)



-- Configuring incomplete, errors occurred!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants