Help/advice on building ports for my home PC with poudriere

Hi guys,

I keep having issues when upgrading packages directly from either quarterly or the latest repositories. So I decided to try and build ports with poudriere hoping to avoid issues like package fallout and hoping to have a stable experience in which there are no more "surprises" every time I issue "pkg upgrade".
After several days of building I am at my last package (chromium) which has been building for over 24 hours and is at about 70% (by what I can see in the chromium log).
My 16g swap space kept filling up and I had to relaunch the poudriere build command many times. I then disabled TMPFS and the poudriere build stopped failing, swap doesn't fill up any more but, as stated above, chromium alone has been building for over 24 hours (I actually think I might have "hit" a timeout since the Ctrl + T reports build/timeout).
In other threads on this forum I noticed that many report building many packages (chromium, firefox, libreoffice ecc.) in a reasonable amount of time (1 to 2 days) with what seemed to be lower specs than the ones I am currently using: Intel i5-10600, 16g memory, 16g swap, ssd drive. Could you please help me identify what I could do to better the situation? Even 2 days of build time would be acceptable for me but 5 or more days I think would just be too much for me.
I read somewhere on reddit that for TMPFS I should have 10g ram per core, does that mean that since I have 6 cores (12 threads) I should have 60g ram for TMPFS? If I reduce PARALLEL_JOBS to the actual number of physical cores (I think 6 in my case with the i5-10600) would that mean I would need less ram? Since ram is probably the cheapest upgrade I could do, would investing in extra ram (64g) make an important difference? I also read on the forum about someone that reduced the amount of PARALLEL_JOBS and added extra swap space.

Any feedback would be much appreciated. (Sorry in advance if I don't manage to respond in a timely manner since it's not too easy for me during the day. It's currently 1am in italy :)).

CPU specs:
Code:
aaron@homebsd ~ % sysctl hw.model hw.machine hw.ncpu
hw.model: Intel(R) Core(TM) i5-10600 CPU @ 3.30GHz
hw.machine: amd64
hw.ncpu: 12
aaron@homebsd ~ %

Current settings in poudriere.conf:
Code:
aaron@homebsd ~ % egrep -v '^$|^#' /usr/local/etc/poudriere.conf
ZPOOL=zroot
FREEBSD_HOST=_PROTO_://_CHANGE_THIS_
RESOLV_CONF=/etc/resolv.conf
BASEFS=/usr/local/poudriere
USE_PORTLINT=no
USE_TMPFS=no
DISTFILES_CACHE=/usr/ports/distfiles
CCACHE_DIR=/var/cache/ccache
aaron@homebsd ~ %

poudriere bulk command:
Code:
aaron@homebsd ~ % cat /zroot/poudriere/bulk.sh
poudriere bulk -j 13amd64 -p local -f $1
aaron@homebsd ~ %
 
hw.model: Intel(R) Core(TM) i5-10600 CPU @ 3.30GHz
Ummm.. the real issue is that your i5 is 10th gen. Intel 10th gen processors did not play well with FreeBSD.

There have been complaints on these Forums in the past about that, especially in regards to port compilation.

Poudriere is not a bad idea, it is part of re-creating the official package pipeline. Just make sure the list of packages that you feed to Poudriere is not the entire Ports Collection.

One nice feature of Poudriere - it does remember where it stopped, so it can restart the compilation with that same poudriere-bulk(8) command. it's quite resilient against reboots and system failures. Poudriere is a lot of work to set up right, though.
 
Thank you for your feedback! I wasn't aware of issues regarding the 10th gen Intel, but will definitely check into it. Even though I must say that I haven't experienced any issues so far. Maybe my usual tasks aren't CPU intensive as compiling software from ports.
I don't want to speak too soon but I changed USE_TMPFS=yes to USE_TMPFS=data and so far the chromium build is at 70% in just over 3 hours and swap usage seems low:

Code:
last pid: 36105;  load averages:  1,10,  1,12,  1,14                                              up 0+06:31:20  18:55:21
99 processes:  2 running, 97 sleeping
CPU:  8,7% user,  0,0% nice,  0,6% system,  0,1% interrupt, 90,6% idle
Mem: 1589M Active, 1386M Inact, 421M Laundry, 11G Wired, 1429M Free
ARC: 7872M Total, 4745M MFU, 2175M MRU, 2254K Anon, 106M Header, 736M Other
     6244M Compressed, 9455M Uncompressed, 1,51:1 Ratio
Swap: 16G Total, 414M Used, 16G Free, 2% Inuse
  PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
36012 root          1  83    0   594M   422M CPU11   11   0:04  99,83% clang-19
18862 aaron        82  20    0    11G   571M select   7   0:24   3,94% firefox
19011 aaron        29  21    0  2605M   258M select   0   0:18   3,69% firefox

I will have to see if the build stalls at 70% and stays like that for many hours or if the USE_TMPFS=data edit actually made a difference.
 
Unfortunately the chromium build took about 20 hours and failed again, this time at 92%.

These are the errors that I see at the end of the log file:

Code:
[ 92% 46284/50128] c++ -MD -MF obj/third_party/blink/renderer/core/core_generated/at_rule_descriptors.o.d -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7f8b68f91ca8b192375f5e71cd81fb3ed9650ef3 -DTMP_REBUILD_HACK -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBLINK_CORE_IMPLEMENTATION=1 -DBLINK_IMPLEMENTATION=1 -DINSIDE_BLINK -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DCHROMIUM -DLIBYUV_DISABLE_NEON -DLIBYUV_DISABLE_SVE -DLIBYUV_DISABLE_SME -DLIBYUV_DISABLE_LSX -DLIBYUV_DISABLE_LASX -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_CODEC_DECODES_JPEG -DSK_CODEC_ENCODES_JPEG -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DSK_DAWN -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -DGOOGLE_PROTOBUF_NO_RTTI -DHAVE_PTHREAD -DCR_CXX_INCLUDE=\"third_party/rust/chromium_crates_io/vendor/cxx-1.0.141/include/cxx.h\" -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0 -DWEBRTC_ENABLE_AVX2 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_BSD -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DWEBRTC_USE_PIPEWIRE -DWEBRTC_USE_GIO -DLOGGING_INSIDE_WEBRTC -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_SANDBOX -DV8_DEPRECATION_WARNINGS -DV8_USE_PERFETTO -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_FREEBSD -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DLEVELDB_PLATFORM_CHROMIUM=1 -DWTF_USE_WEBAUDIO_PFFFT=1 -DUSE_SYSTEM_LIBJPEG -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -I../../third_party/libyuv/include -Igen/shim_headers/opus_shim -Igen/shim_headers/openh264_shim -Igen/shim_headers/dav1d_shim -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-headers/src/include -I../../third_party/wayland/src/src -I../../third_party/wayland/include/src -Igen/third_party/dawn/include -I../../third_party/dawn/include -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -Igen/shim_headers/libdrm_shim -I../../third_party/khronos -I../../gpu -Igen/shim_headers/flac_shim -I../../third_party/protobuf/src -I../../third_party/abseil-cpp -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/boringssl/src/include -Igen/net/third_party/quiche/src -I../../third_party/ipcz/include -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../v8/include -I../../third_party/libwebm/source -I../../third_party/angle/include -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/libaom/source/libaom -I../../third_party/libaom/source/config/linux/x64 -I../../third_party/ots/src/include -Igen/v8/include -I../../third_party/fp16/src/include -I../../third_party/zlib -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wgnu -Wno-gnu-anonymous-struct -Wno-gnu-conditional-omitted-operand -Wno-gnu-include-next -Wno-gnu-label-as-value -Wno-gnu-redeclared-enum -Wno-gnu-statement-expression -Wno-gnu-zero-variadic-macro-arguments -Wno-zero-length-array -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wshadow -fno-delete-null-pointer-checks -fno-strict-overflow -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fno-sized-deallocation -fcomplete-member-pointers -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-7049-1745256364-93efbfc90baa3123e234d3fb275e89c779b782cc-f10a7a29c0bd4331ec4bfb4373dbdc8eb23b53ee.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -mllvm -enable-ext-tsp-block-placement=1 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -g0 -Wconversion -Wno-float-conversion -Wno-sign-conversion -Wno-implicit-float-conversion -Wno-implicit-int-conversion -isystem/usr/local/include -isystem/usr/local/include/glib-2.0 -isystem/usr/local/lib/glib-2.0/include -Wno-redundant-parens -Wno-redundant-parens -isystem/usr/local/include -isystem/usr/local/include/nss -isystem/usr/local/include/nspr -isystem/usr/local/include/libpng16 -isystem/usr/local/include/libxml2 -isystem/usr/local/include -isystem/usr/local/include/libxml2 -Wno-invalid-offsetof -Wenum-compare-conditional -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -I/usr/local/include/libepoll-shim -I/wrkdirs/usr/ports/www/chromium/work/pulseaudio-16.1/src -DPA_MAJOR=16  -c gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc -o obj/third_party/blink/renderer/core/core_generated/at_rule_descriptors.o
FAILED: obj/third_party/blink/renderer/core/core_generated/at_rule_descriptors.o
c++ -MD -MF obj/third_party/blink/renderer/core/core_generated/at_rule_descriptors.o.d -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7f8b68f91ca8b192375f5e71cd81fb3ed9650ef3 -DTMP_REBUILD_HACK -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBLINK_CORE_IMPLEMENTATION=1 -DBLINK_IMPLEMENTATION=1 -DINSIDE_BLINK -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DCHROMIUM -DLIBYUV_DISABLE_NEON -DLIBYUV_DISABLE_SVE -DLIBYUV_DISABLE_SME -DLIBYUV_DISABLE_LSX -DLIBYUV_DISABLE_LASX -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_CODEC_DECODES_JPEG -DSK_CODEC_ENCODES_JPEG -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DSK_DAWN -DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_WAYLAND_KHR -DGOOGLE_PROTOBUF_NO_RTTI -DHAVE_PTHREAD -DCR_CXX_INCLUDE=\"third_party/rust/chromium_crates_io/vendor/cxx-1.0.141/include/cxx.h\" -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0 -DWEBRTC_ENABLE_AVX2 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_BSD -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DWEBRTC_USE_PIPEWIRE -DWEBRTC_USE_GIO -DLOGGING_INSIDE_WEBRTC -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_SANDBOX -DV8_DEPRECATION_WARNINGS -DV8_USE_PERFETTO -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_FREEBSD -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DLEVELDB_PLATFORM_CHROMIUM=1 -DWTF_USE_WEBAUDIO_PFFFT=1 -DUSE_SYSTEM_LIBJPEG -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -I../../third_party/libyuv/include -Igen/shim_headers/opus_shim -Igen/shim_headers/openh264_shim -Igen/shim_headers/dav1d_shim -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-headers/src/include -I../../third_party/wayland/src/src -I../../third_party/wayland/include/src -Igen/third_party/dawn/include -I../../third_party/dawn/include -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -Igen/shim_headers/libdrm_shim -I../../third_party/khronos -I../../gpu -Igen/shim_headers/flac_shim -I../../third_party/protobuf/src -I../../third_party/abseil-cpp -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/boringssl/src/include -Igen/net/third_party/quiche/src -I../../third_party/ipcz/include -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../v8/include -I../../third_party/libwebm/source -I../../third_party/angle/include -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/libaom/source/libaom -I../../third_party/libaom/source/config/linux/x64 -I../../third_party/ots/src/include -Igen/v8/include -I../../third_party/fp16/src/include -I../../third_party/zlib -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wgnu -Wno-gnu-anonymous-struct -Wno-gnu-conditional-omitted-operand -Wno-gnu-include-next -Wno-gnu-label-as-value -Wno-gnu-redeclared-enum -Wno-gnu-statement-expression -Wno-gnu-zero-variadic-macro-arguments -Wno-zero-length-array -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wshadow -fno-delete-null-pointer-checks -fno-strict-overflow -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fno-sized-deallocation -fcomplete-member-pointers -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-7049-1745256364-93efbfc90baa3123e234d3fb275e89c779b782cc-f10a7a29c0bd4331ec4bfb4373dbdc8eb23b53ee.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -mllvm -enable-ext-tsp-block-placement=1 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wglobal-constructors -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-math-errno -g0 -Wconversion -Wno-float-conversion -Wno-sign-conversion -Wno-implicit-float-conversion -Wno-implicit-int-conversion -isystem/usr/local/include -isystem/usr/local/include/glib-2.0 -isystem/usr/local/lib/glib-2.0/include -Wno-redundant-parens -Wno-redundant-parens -isystem/usr/local/include -isystem/usr/local/include/nss -isystem/usr/local/include/nspr -isystem/usr/local/include/libpng16 -isystem/usr/local/include/libxml2 -isystem/usr/local/include -isystem/usr/local/include/libxml2 -Wno-invalid-offsetof -Wenum-compare-conditional -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../third_party/libc++/src/include -isystem../../third_party/libc++abi/src/include -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -I/usr/local/include/libepoll-shim -I/wrkdirs/usr/ports/www/chromium/work/pulseaudio-16.1/src -DPA_MAJOR=16  -c gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc -o obj/third_party/blink/renderer/core/core_generated/at_rule_descriptors.o
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:221:7: error: fallthrough annotation does not directly precede switch label
  221 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:301:7: error: fallthrough annotation does not directly precede switch label
  301 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:277:7: error: fallthrough annotation does not directly precede switch label
  277 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:229:7: error: fallthrough annotation does not directly precede switch label
  229 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:141:7: error: fallthrough annotation does not directly precede switch label
  141 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:181:7: error: fallthrough annotation does not directly precede switch label
  181 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:205:7: error: fallthrough annotation does not directly precede switch label
  205 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:117:7: error: fallthrough annotation does not directly precede switch label
  117 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:237:7: error: fallthrough annotation does not directly precede switch label
  237 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:317:7: error: fallthrough annotation does not directly precede switch label
  317 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:213:7: error: fallthrough annotation does not directly precede switch label
  213 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:165:7: error: fallthrough annotation does not directly precede switch label
  165 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:253:7: error: fallthrough annotation does not directly precede switch label
  253 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:189:7: error: fallthrough annotation does not directly precede switch label
  189 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:101:7: error: fallthrough annotation does not directly precede switch label
  101 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:173:7: error: fallthrough annotation does not directly precede switch label
  173 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:149:7: error: fallthrough annotation does not directly precede switch label
  149 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:125:7: error: fallthrough annotation does not directly precede switch label
  125 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/core/css/parser/at_rule_descriptors.cc:197:7: error: fallthrough annotation does not directly precede switch label
  197 |       [[fallthrough]];
      |       ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make: stopped in /usr/ports/www/chromium
=>> Cleaning up wrkdir
===>  Cleaning for chromium-135.0.7049.114
build of www/chromium | chromium-135.0.7049.114 ended at Sun May 11 10:24:23 CEST 2025
build time: 20:02:31
!!! build failure encountered !!!
 
Well, damn... I normally compile stuff, but if something gives me this much trouble, I just download a pre-compiled package and create a few exceptions to my process around that unfortunate reality. I only do that on a case-by-case basis, because it takes a bit of research to tweak the config files appropriately.
 
HI, are you trying to use Link Time Optimization ? (LTO) that usually use a lot of time and Memory at the end of compile run.

I have an I7-10850H 6 core CPU & 64 GB RAM in my laptop. After boot with FreeBSD 15-current and KDE6 and two gnome terminal windows running
it occupies 6.5 GB RAM ( including zfs ARC ) Starting a build of ungoogled-chromium using chromium-136.0.7103.92 ..... ( whithout LTO option )
running full compile workload it looks like its using 8 - 10 GB ram for processes and 15 GB ram for zfs ARC.
 
Well, damn... I normally compile stuff, but if something gives me this much trouble, I just download a pre-compiled package and create a few exceptions to my process around that unfortunate reality. I only do that on a case-by-case basis, because it takes a bit of research to tweak the config files appropriately.
I would prefer opting for that workaround as a last resort, but thanks for letting me know.
HI, are you trying to use Link Time Optimization ? (LTO) that usually use a lot of time and Memory at the end of compile run.
I wasn't even aware of the existence of that option, but by what I see in the OPTIONS section of the chromium port log file LTO seems to be off:
Code:
---Begin OPTIONS List---
===> The following configuration options are available for chromium-135.0.7049.114:
     CODECS=on: Compile and enable patented codecs like H.264
     CUPS=on: CUPS printing system support
     DEBUG=off: Build with debugging support
     DRIVER=on: Install chromedriver
     KERBEROS=on: Kerberos support
     LTO=off: Use Link-Time Optimization
     PIPEWIRE=on: Screen capture via PipeWire
     TEST=off: Build and/or run tests
     WIDEVINE=off: Depend on foreign-cdm to enable playback of DRM content
====> Options available for the group AUDIO
     ALSA=on: ALSA audio architecture support
     PULSEAUDIO=on: PulseAudio sound server support
     SNDIO=on: Sndio audio support
====> Kerberos support: you can only select none or one of them
     HEIMDAL=off: Heimdal Kerberos (security/heimdal)
     HEIMDAL_BASE=off: Heimdal Kerberos (base)
     MIT=off: MIT Kerberos (security/krb5)
===> Use 'make config' to modify these settings
---End OPTIONS List---

Thank you for the feedback though. Help is really much appreciated.

I must say that I really like this operating system from many many aspects and I really like the idea behind the whole ports system, but installing and updating software is the most difficult aspect I have yet to find a way to deal with.
 
Are you using ZFS filesystem ?
As you only have 16 GB RAM , And I can see ARC Cache of 14 GB compiling chromium
you may benefit from limiting the ARC Cache to ,,,, say 4 GB
put:
vfs.zfs.arc_max="4G"

into /boot/loader.conf
 
On my i7-2600 16G
Code:
TMPFS_BLACKLIST="rust gcc*"
TMPFS_BLACKLIST_TMPDIR=${BASEFS}/data/cache/tmp
PARALLEL_JOBS=4

I also had trouble with www/qt6-webengine timing out after 24h. You can modify MAX_EXECUTION_TIME. You can also add it to the ALLOW_MAKE_JOBS_PACKAGES variable and set MAKE_JOBS_NUMBER accordingly in the appropriate make.conf to speed up a bit the build especially that at this point, it's likely the only port building.

I would also advise using devel/ccache, if you're not already.

The whole build takes about 2 days without using the full system ressources (first full build, meaning no ccache speedup). So I was still able use my system. These worked fine for me.
 
ungoogled_chromium build continues , 40% after 1.5 Hours.
70% after 4 hours .

Some Memory Leaking seems to be ongoing, some creep in memmory allocation
Now 10 -12 G in use and ZFS ARC is 16 G.
 
Even on basically-ports environments,
  • pure data like fonts (without options), scripts, documents
  • (acutal) leaf ports that are confirmed to run sanely on tests
can be installed via official pkgs sanely.

The former can be confirmed with pkg query %q [category/ports|pkg].
For example on 14.*, if the output string is like FreeBSD:14:amd64, it could be unsafe, but if it's like FreeBSD:14:*, it means the port and/or pkg is architecture independent, thus, safe to use pkg.
 
Are you using ZFS filesystem ?
As you only have 16 GB RAM , And I can see ARC Cache of 14 GB compiling chromium
you may benefit from limiting the ARC Cache to ,,,, say 4 GB
put:
vfs.zfs.arc_max="4G"

into /boot/loader.conf
Yes, I am using ZFS. Awesome information about ARC, I had no idea so I started reading up on it in FreeBSD Mastery: Advanced ZFS, so really thank you for pointing that out. I am now monitoring its usage and will definitily conder reducing the maximum amount of memory ARC can use (at least for now).

One nice feature of Poudriere - it does remember where it stopped, so it can restart the compilation with that same poudriere-bulk(8) command.
Is that also true for the same port build? I was ondering if that could be the reason for which the completion percentage in the chromium build log seems to advance faster during each build attempt of the same port.

You can also add it to the ALLOW_MAKE_JOBS_PACKAGES variable and set MAKE_JOBS_NUMBER accordingly in the appropriate make.conf to speed up a bit the build
I just added chromium to ALLOW_MAKE_JOBS_PACKAGES to see if that will make a difference. Thank you!

I would also advise using devel/ccache, if you're not already.
Yes, I am using ccache but it's my first build.

Even on basically-ports environments,
  • pure data like fonts (without options), scripts, documents
  • (acutal) leaf ports that are confirmed to run sanely on tests
can be installed via official pkgs sanely.

The former can be confirmed with pkg query %q [category/ports|pkg].
For example on 14.*, if the output string is like FreeBSD:14:amd64, it could be unsafe, but if it's like FreeBSD:14:*, it means the port and/or pkg is architecture independent, thus, safe to use pkg.
I don't really understand what you are referring to. Does it mean that if a package is safe and I haven't altered default compile time options then I could mix FreeBSD official repository packages with my locally built ones? I thought that was valid in any case. Is it not?
 
The whole build takes about 2 days without using the full system ressources (first full build, meaning no ccache speedup). So I was still able use my system. These worked fine for me.
By the way, this would be perfect for me as well. Fingers crossed :)
 
Does it mean that if a package is safe and I haven't altered default compile time options then I could mix FreeBSD official repository packages with my locally built ones?
Not always. If the official pkg and your local builds are NOT match and in-between the gap any of the ports/pkgs you have installed depends on something incompatibully updated ports/pkgs, there could be problems.
This is why many developers discourage mixing up ports and official pkgs.

But even if your computer and official pkg builders are not at the same commit, purely-data ones are safe to mixup, except for scripts that its interpreters (ruby, perl, python,...) encountered the default version change.
 
Well , so the build of ungoogled_chromium finished cleanly after 7 hours and 30 minutes. using the I7-10850H CPU.
in the later half of the build , ARC size kept on increasing to about 17 GB. and active RAM came up to 6 GB,
so the memory foot print was larger than a 16 GB machine can provide.
If you set Max ARC size to 4 GB, there is room to run the compile process. the penalty will be that
ZFS will need to read data from disk more often instead of reading from the Cached data in the ARC structure.
 
You can also add it to the ALLOW_MAKE_JOBS_PACKAGES variable and s
That certainly made a difference! Thank you! This time it took only 30 minutes to reach 90%. I didn't realize I wasn't utilizing more than one core 😅

Unfortunately the build failed with the following error message at 90%:
Code:
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/www/chromium

I will try building again but this time slow it down a bit by liming it to the 6 cores of the i5-10600 with the "PARALLEL_JOBS=" you mentioned.
 
Well , so the build of ungoogled_chromium finished cleanly after 7 hours and 30 minutes. using the I7-10850H CPU.
in the later half of the build , ARC size kept on increasing to about 17 GB. and active RAM came up to 6 GB,
so the memory foot print was larger than a 16 GB machine can provide.
If you set Max ARC size to 4 GB, there is room to run the compile process. the penalty will be that
ZFS will need to read data from disk more often instead of reading from the Cached data in the ARC structure.
Cool. I will definitely try that next. I noticed your processor is similar to mine (6 cores 12 threads) so I was wondering if you define ALLOW_MAKE_JOBS_PACKAGES, PARALLEL_JOBS or any other variables in particular.

I was also wondering what "MAKE_JOBS_UNSAFE=yes" actually does since it is what was suggested from my last error logs (before reporting to the maintainer...). What would the downsides be, if any?
 
This is may be due to ccache.
To be honest I think it was the CPU cores working together because it's the first time I saw each of the 12 threads fire up with top and heard a strong fan noise coming from the computer. Whereas previously I had relaunched the build many times and it always took many hours to reach 90%.
 
Cool. I will definitely try that next. I noticed your processor is similar to mine (6 cores 12 threads) so I was wondering if you define ALLOW_MAKE_JOBS_PACKAGES, PARALLEL_JOBS or any other variables in particular.

I was also wondering what "MAKE_JOBS_UNSAFE=yes" actually does since it is what was suggested from my last error logs (before reporting to the maintainer...). What would the downsides be, if any?
hi , the "Ninja" build engine should fire off as many clang compile jobs as you have execution threads ( eg 12 threads in the CPU in question )
 
To be honest I think it was the CPU cores working together because it's the first time I saw each of the 12 threads fire up with top and heard a strong fan noise coming from the computer. Whereas previously I had relaunched the build many times and it always took many hours to reach 90%.
Umm, in the ports build dir /usr/ports/www/chromium , you have the " work" directory thats created to hold the temporary compiled parts.
If that directory is not deleted before you start the build again, any mistakes in the ports configuration that was previously transfered to Makefiles inside the "work" directory is not rectified , when you do " make config" to set some options , inorder for that change to be activated , the "work" directory needs to be deleted
and the build started from scratch . A preexisiting "work" direcctory explains why you reach 90% done in 30 mins.
 
Hi, I thought that the work directory would be automatically cleaned up before each build since I'm using poudriere, but I will definitely check into that.
I tried reducing max ARC size to 4g as you had suggested but a different timeout was reached and I didn't manage to get past the extraction point:

Code:
===>  Extracting for chromium-135.0.7049.114
=> SHA256 Checksum OK for chromium-135.0.7049.114.tar.xz.
=> SHA256 Checksum OK for pulseaudio-16.1.tar.gz.
=>> Killing timed out build after 3600 seconds
=>> Cleaning up wrkdir
===>  Cleaning for chromium-135.0.7049.114
rm: /wrkdirs/usr/ports/www/chromium/work: Directory not empty
*** Error code 1 (continuing)

Stop.
make[1]: stopped in /usr/ports/www/chromium
*** Error code 1 (continuing)
`clean' not remade because of errors.

Stop.
make: stopped in /usr/ports/www/chromium
build of www/chromium | chromium-135.0.7049.114 ended at Tue May 13 02:36:05 CEST 2025
build time: 01:20:49
!!! build failure encountered !!!

I don't feel as if in my specific situation ARC is the problem because by oberving top output it seems as if when there is need for memory ARC reduces it's size drastically, passing from 10g for example to just under 500m, relativily quickly.

I'm beginning to think that it might just be best to increase the amount of memory but I was hoping to be able to do without since I feel that 16g is a "normal minimum" amount of memory for any computer.
 
well it says:
rm: /wrkdirs/usr/ports/www/chromium/work: Directory not empty

You need to get rid of the port's work directory to be able to start a build again from scratch
 
It is quite likely that you had memory exhaustion and massive swap usage during build. It is not possible to judge without reading whole log of build process. build failure encountered is very uninformative. scroll all the way back in log and there you can find real error.
 
Back
Top