Skip to content

FreeBSD issues #3

@pkgdemon

Description

@pkgdemon

After merging fixes from #2

Devuan Linux 6.0 excaliber continues to build fine.

Issues that affect QT build and GNUstep build

These issues happens with ./Meta/ladybird.py run on a fresh clone as well with 15.0-RELEASE-p1 using latest packages repo updated 01/9/2026.

jmaloney@incubator ~/D/ladybird(master) % CC=clang CXX=clang++ cmake --preset Release -DENABLE_QT=OFF
Preset CMake variables:

  CMAKE_BUILD_TYPE="RelWithDebInfo"
  CMAKE_TOOLCHAIN_FILE="/Network/Users/jmaloney/Documents/ladybird/Build/vcpkg/scripts/buildsystems/vcpkg.cmake"
  LADYBIRD_CACHE_DIR="/Network/Users/jmaloney/Documents/ladybird/Build/caches"
  VCPKG_INSTALL_OPTIONS="--no-print-usage"
  VCPKG_OVERLAY_TRIPLETS="/Network/Users/jmaloney/Documents/ladybird/Meta/CMake/vcpkg/release-triplets"

Preset environment variables:

  LADYBIRD_SOURCE_DIR="/Network/Users/jmaloney/Documents/ladybird"
  VCPKG_BINARY_SOURCES="clear;files,/Network/Users/jmaloney/Documents/ladybird/Build/caches/vcpkg-binary-cache,readwrite;"
  VCPKG_ROOT="/Network/Users/jmaloney/Documents/ladybird/Build/vcpkg"
  X_VCPKG_ASSET_SOURCES="clear;x-azurl,https://vcpkg-cache.app.ladybird.org/ladybird/source-assets/,,read"

-- Running vcpkg install
Detecting compiler hash for triplet x64-freebsd-dynamic...
error: while detecting compiler information:
The log file content at "/Network/Users/jmaloney/Documents/ladybird/Build/vcpkg/buildtrees/detect_compiler/stdout-x64-freebsd-dynamic.log" is:
error: error: Could not fetch ninja. You may be able to install this tool via your system package manager.
The following executables were considered but discarded because of the version requirement of 3.5.1:
/usr/local/bin/ninja: 1.13.2


CMake Error at scripts/cmake/vcpkg_execute_in_download_mode.cmake:29 (execute_process):
  execute_process failed command indexes:

    1: "Child return code: 1"

Call Stack (most recent call first):
  scripts/cmake/vcpkg_execute_in_download_mode.cmake:29 (cmake_language)
  scripts/cmake/vcpkg_find_acquire_program.cmake:110 (vcpkg_execute_in_download_mode)
  scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake:1 (z_use_vcpkg_fetch)
  scripts/cmake/vcpkg_find_acquire_program.cmake:144 (include)
  scripts/cmake/vcpkg_configure_cmake.cmake:150 (vcpkg_find_acquire_program)
  scripts/detect_compiler/portfile.cmake:18 (vcpkg_configure_cmake)
  scripts/ports.cmake:206 (include)


error: vcpkg was unable to detect the active compiler's information. See above for the CMake failure output.
-- Running vcpkg install - failed
CMake Error at Build/vcpkg/scripts/buildsystems/vcpkg.cmake:953 (message):
  vcpkg install failed.  See logs for more information:
  /Network/Users/jmaloney/Documents/ladybird/Build/release/vcpkg-manifest-install.log
Call Stack (most recent call first):
  /usr/local/share/cmake/Modules/CMakeDetermineSystem.cmake:146 (include)
  CMakeLists.txt:30 (project)


CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

Worked around with:

export VCPKG_FORCE_SYSTEM_BINARIES=1   

Issues that only affect GNUstep build with QT off

Next issue

jmaloney@incubator ~/D/ladybird(master) % cmake --build Build/release
[1218/3910] Building CXX object Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o
FAILED: [code=1] Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o 
/usr/bin/clang++ -DENABLE_COMPILETIME_FORMAT_CHECK -I/Network/Users/jmaloney/Documents/ladybird -I/Network/Users/jmaloney/Documents/ladybird/Services -I/Network/Users/jmaloney/Documents/ladybird/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../.. -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release -O2 -g -DNDEBUG -std=c++23 -fPIC -fcolor-diagnostics -march=native -Wall -Wextra -fno-exceptions -ffp-contract=off -Wcast-qual -Wformat=2 -Wimplicit-fallthrough -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wsuggest-override -Wno-invalid-offsetof -Wno-unknown-warning-option -Wno-unused-command-line-argument -Wpadded-bitfield -Werror -fconstexpr-steps=16777216 -Wmissing-prototypes -Wno-implicit-const-int-float-conversion -Wno-user-defined-literals -Wno-unqualified-std-cast-call -Wno-c23-extensions -fno-semantic-interposition -fvisibility-inlines-hidden -fstack-protector-strong -fstrict-flex-arrays=2 -Wno-maybe-uninitialized -Wno-shorten-64-to-32 -fsigned-char -ggnu-pubnames -O2 -g1 -MD -MT Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o -MF Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o.d -o Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o -c /Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.cpp
/Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.cpp:31:9: error: no matching function for call to 'siglongjmp'
   31 |         LIBTEST_LONGJMP(assertion_jump_buffer(), 1); /* NOLINT(cert-err52-cpp, bugprone-setjmp-longjmp) Isolated to test infrastructure and allows us to not depend on spawning child processes for death tests */
      |         ^~~~~~~~~~~~~~~
/Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.h:15:29: note: expanded from macro 'LIBTEST_LONGJMP'
   15 | #    define LIBTEST_LONGJMP siglongjmp
      |                             ^~~~~~~~~~
/usr/include/setjmp.h:56:6: note: candidate function not viable: no known conversion from 'jmp_buf' (aka '_jmp_buf[1]') to 'struct _sigjmp_buf *' for 1st argument
   56 | void    siglongjmp(sigjmp_buf, int) __dead2;
      |         ^          ~~~~~~~~~~
1 error generated.
[1247/3910] Building CXX object Lagom/Libraries/LibWasm/CMakeFiles/LibWasm.dir/AbstractMachine/BytecodeInterpreter.cpp.
ninja: build stopped: subcommand failed.

Editing Libraries/LibTest/AssertionHandler.h and changing jmp_buf& assertion_jump_buffer(); to sigjmp_buf& assertion_jump_buffer(); fixes but I believe it might need to be conditional for when glibc is not used. I am not for sure yet it will work with glibc.

Next problem

jmaloney@incubator ~/D/ladybird(master) % cmake --build Build/release              
[2275/2666] Building CXX object Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o
FAILED: [code=1] Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o 
/usr/bin/clang++ -DENABLE_COMPILETIME_FORMAT_CHECK -I/Network/Users/jmaloney/Documents/ladybird -I/Network/Users/jmaloney/Documents/ladybird/Services -I/Network/Users/jmaloney/Documents/ladybird/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../.. -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release -O2 -g -DNDEBUG -std=c++23 -fPIC -fcolor-diagnostics -march=native -Wall -Wextra -fno-exceptions -ffp-contract=off -Wcast-qual -Wformat=2 -Wimplicit-fallthrough -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wsuggest-override -Wno-invalid-offsetof -Wno-unknown-warning-option -Wno-unused-command-line-argument -Wpadded-bitfield -Werror -fconstexpr-steps=16777216 -Wmissing-prototypes -Wno-implicit-const-int-float-conversion -Wno-user-defined-literals -Wno-unqualified-std-cast-call -Wno-c23-extensions -fno-semantic-interposition -fvisibility-inlines-hidden -fstack-protector-strong -fstrict-flex-arrays=2 -Wno-maybe-uninitialized -Wno-shorten-64-to-32 -fsigned-char -ggnu-pubnames -O2 -g1 -MD -MT Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o -MF Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o.d -o Lagom/Libraries/LibTest/CMakeFiles/LibTestMain.dir/AssertionHandler.cpp.o -c /Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.cpp
/Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.cpp:15:10: error: functions that differ only in their return type cannot be overloaded
   15 | jmp_buf& assertion_jump_buffer() { return g_assert_jmp_buf; }
      | ~~~~~~~~ ^
/Network/Users/jmaloney/Documents/ladybird/Libraries/LibTest/AssertionHandler.h:23:13: note: previous declaration is here
   23 | sigjmp_buf& assertion_jump_buffer();
      | ~~~~~~~~~~~ ^
1 error generated.
[2287/2666] Building CXX object Lagom/Utilities/CMakeFiles/test262-runner.dir/test262-runner.cpp.o
FAILED: [code=1] Lagom/Utilities/CMakeFiles/test262-runner.dir/test262-runner.cpp.o 
/usr/bin/clang++ -DENABLE_COMPILETIME_FORMAT_CHECK -I/Network/Users/jmaloney/Documents/ladybird -I/Network/Users/jmaloney/Documents/ladybird/Services -I/Network/Users/jmaloney/Documents/ladybird/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release/Lagom/Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../.. -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Libraries -I/Network/Users/jmaloney/Documents/ladybird/Meta/Lagom/../../Services -I/Network/Users/jmaloney/Documents/ladybird/Build/release -O2 -g -DNDEBUG -std=c++23 -fPIE -fcolor-diagnostics -march=native -Wall -Wextra -fno-exceptions -ffp-contract=off -Wcast-qual -Wformat=2 -Wimplicit-fallthrough -Wlogical-op -Wmissing-declarations -Wmissing-field-initializers -Wsuggest-override -Wno-invalid-offsetof -Wno-unknown-warning-option -Wno-unused-command-line-argument -Wpadded-bitfield -Werror -fconstexpr-steps=16777216 -Wmissing-prototypes -Wno-implicit-const-int-float-conversion -Wno-user-defined-literals -Wno-unqualified-std-cast-call -Wno-c23-extensions -fno-semantic-interposition -fvisibility-inlines-hidden -fstack-protector-strong -fstrict-flex-arrays=2 -Wno-maybe-uninitialized -Wno-shorten-64-to-32 -fsigned-char -ggnu-pubnames -O2 -g1 -MD -MT Lagom/Utilities/CMakeFiles/test262-runner.dir/test262-runner.cpp.o -MF Lagom/Utilities/CMakeFiles/test262-runner.dir/test262-runner.cpp.o.d -o Lagom/Utilities/CMakeFiles/test262-runner.dir/test262-runner.cpp.o -c /Network/Users/jmaloney/Documents/ladybird/Utilities/test262-runner.cpp
/Network/Users/jmaloney/Documents/ladybird/Utilities/test262-runner.cpp:29:14: fatal error: 'sys/prctl.h' file not found
   29 | #    include <sys/prctl.h>
      |              ^~~~~~~~~~~~~
1 error generated.
[2304/2666] Building CXX object Lagom/Libraries/LibWebView/CMakeFiles/LibWebView.dir/WebContentClient.cpp.o
ninja: build stopped: subcommand failed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions