Share your make.conf and src.conf

I'm calling those the most optimal. It's rather pointless to tweak the compiler settings to such an extend you get really small and/or fast code only to have it become utterly unstable or not even run. In my opinion the best settings
Once I experimented on a server with Haswell architecture and put CPUTYPE?=haswell flag in the /etc/make.conf. Compiled kernel and world with that. Everything worked fine, but later thorough testing revealed that it was actually a bit slower. Removed that flag and recompiled.
 
Network Administration with FreeBSD 7 has an example for -funroll-loops and -ffast-math through COPTFLAGS in the KERNCONF. This is in my KERNCONF, that pulls in a slimmed down KERNCONF:
Code:
include TRIM
ident   MY
makeoptions     COPTFLAGS="-O2 -pipe -funroll-loops -ffast-math"
After compiling and rebooting, my computer seems to run smoother. I believe something like this can go into make.conf.

funroll-loops compiles a lot (perhaps a few times) longer, more thoroughly, to get every drop out of the processor architecture for the code, and it's meant to get the most out of compiling. Using it for kernel makes sense. These options don't make sense for using it for base or large parts of the ports tree.

The best way to get a faster system, is to not have a program compile with many unnecessary dependencies.
 
Cross reference:

 
/etc/make.conf

Less substance, now than previously shared editions, which I deleted from this topic.

Code:
## Citrix Receiver
#
# ICA_CERTS=QuoVadisEuropeEVSSLCAG1.crt


## LLVM
#
# See comments in /usr/local/etc/poudriere.d/make.conf
#
# WITHOUT_LLVM_TARGET_ALL=
 

## LibreOffice
#
# 7.1.1 release call for testing
# <https://lists.freebsd.org/pipermail/freebsd-ports/2021-March/120422.html>
#
# OVERLAYS+=/path/to/freebsd-ports-libreoffice


## Mesa
#
# <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235215#c14>
# ... mesa-dri doesn't use LLVM_DEFAULT. Set
# MESA_LLVM_VER=${LLVM_DEFAULT}
# in your make.conf if you want it to use LLVM_DEFAULT at your own risk.
 
 
## Samba
#
# DEFAULT_VERSIONS+=samba=4.10


## webcamd
#
# See comments in /usr/local/etc/poudriere.d/make.conf
#
WITH_DEBUG_PORTS=multimedia/webcamd

/etc/src.conf

I can't recall when WITHOUT_PORTSNAP and WITHOUT_SVNLITE crept in (then got commented out).

I never use svnlite (it's no longer a feature) or portsnap(8), is there much to gain from being without when building?

Code:
# WITHOUT_PORTSNAP
# WITHOUT_SVNLITE

WITH_MALLOC_PRODUCTION=yes

# <https://forums.freebsd.org/posts/544812>
# KERNCONF=GENERIC-NODEBUG
KERNCONF=GENERIC-NODEBUG GENERIC

# PORTS_MODULES= emulators/virtualbox-ose-kmod graphics/drm-kmod graphics/drm-current-kmod graphics/gpu-firmware-kmod sysutils/openzfs-kmod
PORTS_MODULES= emulators/virtualbox-ose-kmod graphics/drm-kmod graphics/drm-current-kmod graphics/gpu-firmware-kmod
# PORTS_MODULES= emulators/virtualbox-ose-kmod x11/nvidia-driver
# PORTS_MODULES= graphics/drm-devel-kmod graphics/gpu-firmware-kmod
# PORTS_MODULES= graphics/drm-kmod graphics/gpu-firmware-kmod

# <https://reviews.freebsd.org/D27420#614052>
# BOOT_FRAMEBUFFER_MODE=yes

# <https://lists.freebsd.org/archives/freebsd-current/2021-September/000620.html>
# WITH_DETECT_TZ_CHANGES=yes

/usr/local/etc/poudriere.d/make.conf

Code:
## ALLOW_MAKE_JOBS=YES
#
# no influence on the number of processes spawned
# <https://github.com/freebsd/poudriere/issues/867>
#
# MAKE_JOBS_NUMBER=3


## bsdisks
#
# I imagined a debug build, however
# <https://www.freshports.org/sysutils/bsdisks/#config>
# there are no options to configure.


## Citrix Receiver
#
# <https://forums.FreeBSD.org/threads/71438/post-517873>
#
LICENSES_ACCEPTED += commercial
#
# I'm not sure about certification, for example:
#
# > Can't open
# > /usr/local/poudriere/ports/default/distfiles/QuoVadisEuropeEVSSLCAG1.crt
# > for reading, No such file or directory
#
# -- compare with /etc/make.conf and building without poudriere
#
ICA_CERTS=QuoVadisEuropeEVSSLCAG1.crt


## LLVM
#
# WITHOUT_LLVM_TARGET_AARCH64=
# WITHOUT_LLVM_TARGET_ARM=
# WITHOUT_LLVM_TARGET_MIPS=
# WITHOUT_LLVM_TARGET_POWERPC=
# WITHOUT_LLVM_TARGET_SPARC=
# WITHOUT_LLVM_TARGET_X86=
# <https://forums.freebsd.org/threads/share-your-make-conf-and-src-conf.63544/#post-430516>
#
WITHOUT_LLVM_TARGET_ALL=


## poudriere-options(8)
#
# Reminding myself of affected ports:
#
# ls -hl /usr/local/etc/poudriere.d/options
# deskutils/recoll
# emulators/wine
# multimedia_webcamd
# www/firefox


## webcamd
#
# <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252099#c5>
# <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252099#c18>
#
# WITH_DEBUG=yes all ports are built for debugging.


## Wine
#
# Huh?
#
# --with-usb += emulators/wine
# emulators_wine_SET += --with-usb
 
Last edited:
My latest make.conf:
Code:
.if ${.CURDIR:M*/archivers/snappy} || ${.CURDIR:M*/astro/geographiclib} || ${.CURDIR:M*/audio/tempest_for_eliza} || ${.CURDIR:M*/converters/libb64} || ${.CURDIR:M*/devel/arm-none-eabi-gcc*} || ${.CURDIR:M*/devel/cmake} || ${.CURDIR:M*/devel/cppunit} || ${.CURDIR:M*/devel/flatcc} || ${.CURDIR:M*/devel/libindicator} || ${.CURDIR:M*/devel/schilybase} || ${.CURDIR:M*/devel/vc} || ${.CURDIR:M*/deskutil/hr-abtt} || ${.CURDIR:M*/graphics/atril} || ${.CURDIR:M*/graphics/grafx2} || ${.CURDIR:M*/graphics/seexpr} || ${.CURDIR:M*/graphics/opencollada} || ${.CURDIR:M*/graphics/opencolorio} || ${.CURDIR:M*/graphics/synfig*} || ${.CURDIR:M*/lang/gnu-apl} || ${.CURDIR:M*/lang/gcc*} || ${.CURDIR:M*/lang/ponyc} || ${.CURDIR:M*/math/libpoly} || ${.CURDIR:M*/multimedia/dav1d} || ${.CURDIR:M*/multimedia/py-av} || ${.CURDIR:M*/net/fbzmq} || ${.CURDIR:M*/net-mgmt/netdata} || ${.CURDIR:M*/print/harfbuzz*} || ${.CURDIR:M*/security/libssh} || ${.CURDIR:M*/sysutils/slurm*} || ${.CURDIR:M*/textproc/libexttextcat} || ${.CURDIR:M*/textproc/libnumbertext} || ${.CURDIR:M*/textproc/tinyxml*} || ${.CURDIR:M*/science/openbabel} || ${.CURDIR:M*/sysutils/grub2-bhyve} || ${.CURDIR:M*/sysutils/openzfs} || ${.CURDIR:M*/x11/xsel-conrad}
MYFLAGS=""
.else
MYFLAGS="-fno-lto -O2 -pipe -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -fstack-protector -fno-short-enums -fexceptions -fident -fverbose-asm -frecord-gcc-switches -fvisibility=default -fomit-frame-pointer -fstrict-aliasing"
.endif

.if ${.CURDIR:M*/usr/ports*}
CFLAGS+="${MYFLAGS}"
CXXFLAGS+="${MYFLAGS}"
.endif

BATCH=yes
CCACHE_DIR=/ccache
CPUTYPE?=core-avx-i
DISABLE_LICENSES=yes
MAKE_JOBS_NUMBER=6
MAKE_JOBS_UNSAFE=yes
WITHOUT_MANCOMPRESS=yes
WITH_CCACHE_BUILD=yes
MTREE_FOLLOWS_SYMLINKS= -L

DEFAULT_VERSIONS+=gcc=11
DEFAULT_VERSIONS+=llvm=13
DEFAULT_VERSIONS+=lua5=5.4
DEFAULT_VERSIONS+=lua=5.4
DEFAULT_VERSIONS+=mysql=10.5m
DEFAULT_VERSIONS+=perl5=5.32
DEFAULT_VERSIONS+=perl=5.32
DEFAULT_VERSIONS+=pgsql=13
DEFAULT_VERSIONS+=php=8.0
DEFAULT_VERSIONS+=python3=3.8
DEFAULT_VERSIONS+=python=3.8
DEFAULT_VERSIONS+=ruby2=2.7
DEFAULT_VERSIONS+=ruby=2.7
DEFAULT_VERSIONS+=ssl=openssl
DEFAULT_VERSIONS+=tcltk=8.6

OPTIONS_SET+=BOOTSTRAP
OPTIONS_SET+=FLANG
OPTIONS_SET+=FORTRAN
OPTIONS_SET+=APNG
OPTIONS_SET+=PNG
OPTIONS_SET+=GS_ijs
OPTIONS_SET+=7ZIP
OPTIONS_SET+=A4
OPTIONS_SET+=A52
OPTIONS_SET+=AAC
OPTIONS_SET+=AALIB
OPTIONS_SET+=AES 
OPTIONS_SET+=AMDGPU
OPTIONS_SET+=AMIDI
OPTIONS_SET+=AMR_NB
OPTIONS_SET+=AMR_WB
OPTIONS_SET+=AOM
OPTIONS_SET+=ASPELL
OPTIONS_SET+=ASS
OPTIONS_SET+=AUDIOCD
OPTIONS_SET+=AVX
OPTIONS_SET+=AVX 
OPTIONS_SET+=BLURAY
OPTIONS_SET+=BROTLI
OPTIONS_SET+=BS2B
OPTIONS_SET+=BZIP2
OPTIONS_SET+=CACA
OPTIONS_SET+=CAIRO
OPTIONS_SET+=CAJA
OPTIONS_SET+=CDDA
OPTIONS_SET+=CDIO
OPTIONS_SET+=CDPARANOIA
OPTIONS_SET+=CELT
OPTIONS_SET+=CODEC2
OPTIONS_SET+=COMPFACE
OPTIONS_SET+=CRACKLIB
OPTIONS_SET+=CRYPTO
OPTIONS_SET+=CUPS
OPTIONS_SET+=CUPS 
OPTIONS_SET+=CURL
OPTIONS_SET+=CURSES
OPTIONS_SET+=DBENGINE
OPTIONS_SET+=DCA
OPTIONS_SET+=DEMO
OPTIONS_SET+=DEMOS
OPTIONS_SET+=DIRECTFB
OPTIONS_SET+=DJVU
OPTIONS_SET+=DOCS
OPTIONS_SET+=DV
OPTIONS_SET+=EGL
OPTIONS_SET+=ENCA
OPTIONS_SET+=EPUB
OPTIONS_SET+=EXAMPLES
OPTIONS_SET+=EXTRADOCS
OPTIONS_SET+=FAAC
OPTIONS_SET+=FAAD
OPTIONS_SET+=FDK_AAC
OPTIONS_SET+=FFMPEG
OPTIONS_SET+=FFMPEGTHUMBNAILER
OPTIONS_SET+=FLAC
OPTIONS_SET+=FLTK
OPTIONS_SET+=FREEIPMI
OPTIONS_SET+=FREI0R
OPTIONS_SET+=FRIBIDI
OPTIONS_SET+=GIF
OPTIONS_SET+=GLESV2
OPTIONS_SET+=GMP
OPTIONS_SET+=GOOM
OPTIONS_SET+=GOPLUGIN
OPTIONS_SET+=GRAPHICSMAGICK
OPTIONS_SET+=GRAPHITE
OPTIONS_SET+=GSM
OPTIONS_SET+=GSPELL
OPTIONS_SET+=GSSAPI_NONE
OPTIONS_SET+=GTK
OPTIONS_SET+=GTK3
OPTIONS_SET+=GTKSPELL
OPTIONS_SET+=GZIP
OPTIONS_SET+=HAN
OPTIONS_SET+=HIGHLIGHT
OPTIONS_SET+=HIGHLIGHTING
OPTIONS_SET+=HINTING_FULL
OPTIONS_SET+=HSPELL
OPTIONS_SET+=HTMLDOCS
OPTIONS_SET+=HTMLHELP
OPTIONS_SET+=HTTP_REDIS
OPTIONS_SET+=HUNSPELL
OPTIONS_SET+=IJS
OPTIONS_SET+=ILBC
OPTIONS_SET+=INFLUXDB
OPTIONS_SET+=INSULTS
OPTIONS_SET+=IPC
OPTIONS_SET+=IPV6
OPTIONS_SET+=ISPELL
OPTIONS_SET+=JASPER
OPTIONS_SET+=JPEG
OPTIONS_SET+=JPEG 
OPTIONS_SET+=JPEG2000
OPTIONS_SET+=JSON
OPTIONS_SET+=KATE
OPTIONS_SET+=KVAZAAR
OPTIONS_SET+=LADSPA
OPTIONS_SET+=LAME
OPTIONS_SET+=LAME 
OPTIONS_SET+=LAPACK
OPTIONS_SET+=LDAP
OPTIONS_SET+=LIBCACA
OPTIONS_SET+=LIBMNG
OPTIONS_SET+=LIBRSVG2
OPTIONS_SET+=LIBSSH2
OPTIONS_SET+=LIBVISUAL
OPTIONS_SET+=LIBXML2
OPTIONS_SET+=LIBYAML
OPTIONS_SET+=LSOF
OPTIONS_SET+=LUA
OPTIONS_SET+=LV2
OPTIONS_SET+=LZ4
OPTIONS_SET+=LZMA
OPTIONS_SET+=LZO
OPTIONS_SET+=LZO2
OPTIONS_SET+=MAD
OPTIONS_SET+=MAILDIR
OPTIONS_SET+=MAIL_IMAP
OPTIONS_SET+=MAIL_SMTP
OPTIONS_SET+=MAIL_SSL
OPTIONS_SET+=MAN3
OPTIONS_SET+=MANPAGES
OPTIONS_SET+=MATROSKA
OPTIONS_SET+=MAXIMA
OPTIONS_SET+=MENCODER
OPTIONS_SET+=MJPEGTOOLS
OPTIONS_SET+=MKFONTSCALE
OPTIONS_SET+=MMX
OPTIONS_SET+=MODPLUG
OPTIONS_SET+=MONGO
OPTIONS_SET+=MONGODB
OPTIONS_SET+=MONGOSTAT
OPTIONS_SET+=MONGOTOP
OPTIONS_SET+=MOUNT
OPTIONS_SET+=MP3LAME
OPTIONS_SET+=MP3OGG
OPTIONS_SET+=MPC
OPTIONS_SET+=MPEG2
OPTIONS_SET+=MPEG2DEC
OPTIONS_SET+=MPEG2ENC
OPTIONS_SET+=MPG123
OPTIONS_SET+=MPG321
OPTIONS_SET+=MPLAYER
OPTIONS_SET+=MPV
OPTIONS_SET+=MTPDEV
OPTIONS_SET+=MUPDF
OPTIONS_SET+=MUSEPACK
OPTIONS_SET+=MYSOFA
OPTIONS_SET+=MYSQL
OPTIONS_SET+=MYSQL_JDBC
OPTIONS_SET+=NCURSES
OPTIONS_SET+=NDBM
OPTIONS_SET+=NEON
OPTIONS_SET+=NEWSYSLOG
OPTIONS_SET+=NGINX
OPTIONS_SET+=NONFREE
OPTIONS_SET+=NORMALIZE
OPTIONS_SET+=NOTIFY
OPTIONS_SET+=NOTIFYD
OPTIONS_SET+=NUMPY
OPTIONS_SET+=OCAML 
OPTIONS_SET+=OCTAVE
OPTIONS_SET+=ODBC
OPTIONS_SET+=OGG
OPTIONS_SET+=OGG 
OPTIONS_SET+=OPENAL
OPTIONS_SET+=OPENBLAS
OPTIONS_SET+=OPENCL
OPTIONS_SET+=OPENGL
OPTIONS_SET+=OPENH264
OPTIONS_SET+=OPENJPEG
OPTIONS_SET+=OPENSSL
OPTIONS_SET+=OPUS
OPTIONS_SET+=P7ZIP
OPTIONS_SET+=PANGO
OPTIONS_SET+=PCRE
OPTIONS_SET+=PCRE1
OPTIONS_SET+=PCRE2
OPTIONS_SET+=PDF
OPTIONS_SET+=PGO
OPTIONS_SET+=PGSQL
OPTIONS_SET+=PGSQL_JDBC
OPTIONS_SET+=PIE
OPTIONS_SET+=PLATFORM_WAYLAND
OPTIONS_SET+=PLATFORM_X11
OPTIONS_SET+=PLOTUTILS
OPTIONS_SET+=PLUGINS
OPTIONS_SET+=POPCNT 
OPTIONS_SET+=POPPLER
OPTIONS_SET+=PORTAUDIO
OPTIONS_SET+=POSTGRES
OPTIONS_SET+=POSTPROC
OPTIONS_SET+=PROMETHEUS
OPTIONS_SET+=PSGHOSTSCRIPT
OPTIONS_SET+=PSHYBRID
OPTIONS_SET+=PSMUPDF
OPTIONS_SET+=PSPELL
OPTIONS_SET+=PSPOPPLER
OPTIONS_SET+=PYGMENTS
OPTIONS_SET+=PYTHON
OPTIONS_SET+=QML
OPTIONS_SET+=QT5
OPTIONS_SET+=QTWEBENGINE
OPTIONS_SET+=QTWEBKIT
OPTIONS_SET+=R
OPTIONS_SET+=RABBITMQ
OPTIONS_SET+=RAV1E
OPTIONS_SET+=RCC
OPTIONS_SET+=RE2
OPTIONS_SET+=REDIS
OPTIONS_SET+=REDIS2
OPTIONS_SET+=REGEX
OPTIONS_SET+=RELRO
OPTIONS_SET+=RTMP
OPTIONS_SET+=RUBY
OPTIONS_SET+=RXVT_SCROLLBAR
OPTIONS_SET+=SAGE
OPTIONS_SET+=SCHROEDINGER
OPTIONS_SET+=SCILAB
OPTIONS_SET+=SCIPY
OPTIONS_SET+=SDL
OPTIONS_SET+=SETXKBMAP
OPTIONS_SET+=SHARED
OPTIONS_SET+=SIMD
OPTIONS_SET+=SLANG
OPTIONS_SET+=SNAPPY
OPTIONS_SET+=SNDFILE
OPTIONS_SET+=SNDIO
OPTIONS_SET+=SNMP
OPTIONS_SET+=SOCKS
OPTIONS_SET+=SOURCE
OPTIONS_SET+=SOURCES
OPTIONS_SET+=SOURCE_HIGHLIGHT
OPTIONS_SET+=SOXR
OPTIONS_SET+=SPARSE
OPTIONS_SET+=SPEEDPITCH
OPTIONS_SET+=SPELL
OPTIONS_SET+=SPELLCHECK
OPTIONS_SET+=SPELL_CHECK
OPTIONS_SET+=SPHINX
OPTIONS_SET+=SQL
OPTIONS_SET+=SQLITE
OPTIONS_SET+=SQLITE3
OPTIONS_SET+=SSE
OPTIONS_SET+=SSE2
OPTIONS_SET+=SSE3
OPTIONS_SET+=SSE4_1
OPTIONS_SET+=SSH
OPTIONS_SET+=SSL
OPTIONS_SET+=SSL3
OPTIONS_SET+=SSSE3
OPTIONS_SET+=SSWF
OPTIONS_SET+=SUITESPARSE
OPTIONS_SET+=SVG
OPTIONS_SET+=SVGALIB
OPTIONS_SET+=SVTAV1
OPTIONS_SET+=SWSCALE
OPTIONS_SET+=SYNTAX 
OPTIONS_SET+=SYSTRAY
OPTIONS_SET+=TCL
OPTIONS_SET+=TCLMAN
OPTIONS_SET+=TCLTK
OPTIONS_SET+=TFTP
OPTIONS_SET+=THEMES
OPTIONS_SET+=THEORA
OPTIONS_SET+=THUMBNAILER
OPTIONS_SET+=TIFF
OPTIONS_SET+=TK
OPTIONS_SET+=TKINTER
OPTIONS_SET+=TKMAN
OPTIONS_SET+=TKMIB
OPTIONS_SET+=TOML
OPTIONS_SET+=TOOLAME
OPTIONS_SET+=TOOLBAR
OPTIONS_SET+=TWOLAME
OPTIONS_SET+=UNIXODBC
OPTIONS_SET+=UNZIP
OPTIONS_SET+=URLS
OPTIONS_SET+=UTILS
OPTIONS_SET+=UVMETER
OPTIONS_SET+=VAAPI
OPTIONS_SET+=VCD
OPTIONS_SET+=VDPAU
OPTIONS_SET+=VIDEO_KMSDRM
OPTIONS_SET+=VIDEO_OPENGL
OPTIONS_SET+=VIDEO_WAYLAND
OPTIONS_SET+=VIDEO_X11
OPTIONS_SET+=VIDSTAB
OPTIONS_SET+=VLC
OPTIONS_SET+=VMAF
OPTIONS_SET+=VNC
OPTIONS_SET+=VO_AMRWBENC
OPTIONS_SET+=VPX
OPTIONS_SET+=WAVE
OPTIONS_SET+=WAVPACK
OPTIONS_SET+=WAYLAND
OPTIONS_SET+=WEATHER
OPTIONS_SET+=WEBENGINE
OPTIONS_SET+=WEBKIT
OPTIONS_SET+=WEBP
OPTIONS_SET+=WEBVFX
OPTIONS_SET+=WIDGETS
OPTIONS_SET+=WIDGETS 
OPTIONS_SET+=WMCTRL
OPTIONS_SET+=X
OPTIONS_SET+=X11
OPTIONS_SET+=X264
OPTIONS_SET+=X265
OPTIONS_SET+=XATTR
OPTIONS_SET+=XAUTH
OPTIONS_SET+=XCALC
OPTIONS_SET+=XCLOCK
OPTIONS_SET+=XDOTOOL
OPTIONS_SET+=XDPYINFO
OPTIONS_SET+=XDRIINFO
OPTIONS_SET+=XFCE
OPTIONS_SET+=XFCE4
OPTIONS_SET+=XFT
OPTIONS_SET+=XINE
OPTIONS_SET+=XINERAMA
OPTIONS_SET+=XML
OPTIONS_SET+=XRANDR
OPTIONS_SET+=XSANE
OPTIONS_SET+=XVID
OPTIONS_SET+=XVIDEO
OPTIONS_SET+=XVMC
OPTIONS_SET+=YELP
OPTIONS_SET+=ZEMBEREK
OPTIONS_SET+=ZIMG
OPTIONS_SET+=ZIP
OPTIONS_SET+=ZLIB
OPTIONS_SET+=ZMQ
OPTIONS_SET+=ZSH
OPTIONS_SET+=ZSTANDARD
OPTIONS_SET+=ZSTD
OPTIONS_SET+=ZVBI

OPTIONS_UNSET+=MULTILIB
OPTIONS_UNSET+=SOUNDTOUCH
OPTIONS_UNSET+=ALSA
OPTIONS_UNSET+=AVAHI
OPTIONS_UNSET+=DEBUG
OPTIONS_UNSET+=DBUS 
OPTIONS_UNSET+=GOLD
OPTIONS_UNSET+=GSSAPI
OPTIONS_UNSET+=GSSAPI_BASE
OPTIONS_UNSET+=GSSAPI_HEIMDAL
OPTIONS_UNSET+=GSSAPI_MIT
OPTIONS_UNSET+=IMAGEMAGICK
OPTIONS_UNSET+=IMAGEMAGICK6
OPTIONS_UNSET+=IMAGEMAGICK7
OPTIONS_UNSET+=JACK
OPTIONS_UNSET+=KERBEROS
OPTIONS_UNSET+=KERB_GSSAPI
OPTIONS_UNSET+=LDAPS
OPTIONS_UNSET+=LETTER
OPTIONS_UNSET+=LIGHTDM
OPTIONS_UNSET+=LIRC
OPTIONS_UNSET+=LTO
OPTIONS_UNSET+=MAGICK
OPTIONS_UNSET+=MDNSRESPONDER
OPTIONS_UNSET+=NAS
OPTIONS_UNSET+=NFS
OPTIONS_UNSET+=NLS
OPTIONS_UNSET+=NTLM
OPTIONS_UNSET+=OPENMP
OPTIONS_UNSET+=PGO
OPTIONS_UNSET+=PROFILE
OPTIONS_UNSET+=PROFILING
OPTIONS_UNSET+=PULSE
OPTIONS_UNSET+=PULSEAUDIO
OPTIONS_UNSET+=SID
OPTIONS_UNSET+=SIDPLAY
OPTIONS_UNSET+=SMB
OPTIONS_UNSET+=SUDO
OPTIONS_UNSET+=V4L
OPTIONS_UNSET+=V4L2
OPTIONS_UNSET+=VULKAN
OPTIONS_UNSET+=WEBCAM
OPTIONS_UNSET+=WEBCAMD
OPTIONS_UNSET+=ZBAR
OPTIONS_UNSET+=ZEITGEIST
 
Your make.conf has OPTIONS_SET+= and OPTIONS_UNSET+= listed so many times. Each OPTIONS_SET+ and OPTIONS_UNSET+ can be listed once with additional OPTIONS_SET/UNSET without the +, with a space for each option, and listed with a \ at the end for each line to continue that option. It seems like you're trying to keep them organized alphabetically, though that can be done without exact repetitions for OPTIONS.
 
Code:
## bsdisks
#
# I imagined a debug build, however
# <https://www.freshports.org/sysutils/bsdisks/#config>
# there are no options to configure.

<{link removed}> reminds me:

… Compile the port WITH_DEBUG=yes, or …

I'll correct my file (and the copy that's above). PS not rushing to make the correction because I'm unsure whether WITH_DEBUG_PORTS=sysutils/bsdisks is having the required effect.
 
Last edited:
For me:

Code:
cd /usr/src/sys/amd64/conf
cp GENERIC-NODEBUG MYKERNEL
echo "options         BHYVE_SNAPSHOT" >> MYKERNEL
cd /usr/src
make -j12 buildworld -DWITH_BHYVE_SNAPSHOT -DWITH_MALLOC_PRODUCTION
make -j12 buildkernel KERNCONF=MYKERNEL
 
I have recently changed my make.conf from

CPUTYPE?=alderlake to CPUTYPE?=native and added

MACHINE_CPU+= movbe mmx sse sse2 sse3 ssse3 sse41 sse4.1 sse42 sse4.2 popcnt aes prefetchw pclmul rdrnd xsave xsavec xsaves xsaveopt fsgsbase ptwrite rdpid sgx gfni-sse clwb movdiri movdir64b cldemote waitpkg adcx avx avx2 bmi bmi2 f16c fma lzcnt pconfig pku vaes vpclmulqdq serialize hreset kl widekl avx-vnni

The system is obviously an alderlake 12700K with 64 GB ram. DO not use these flags on other systems than alderlake. They are taken from https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html You can take them fro your cpu. And befare doing anything take a look at: https://wiki.freebsd.org/UsingCPUTYPE?highlight=(\bCategoryHowTo\b)

The buildtime of world went down from 11000 + somemore seconds to 999 seconds. Recompiling all of my packages went down from + 12 hours to 9 hours. I am surprised myself.

As you can see i have written sse4.1 and sse4.2 in two different formats. Clang uses one and GCC another. Having them both seems useful.
 
Condensed:

FWIW make.conf



# Rebuild nvidia ports driver with kernel builds (ie keep in sync) PORTS_MODULES+=x11/nvidia-driver-340

make.conf



#PORTS_MODULES=shells/mksh ports-mgmt/psearch ports-mgmt/portmaster security/doas

some of my /etc/make.conf.



################################################################################ # /usr/src things # KERNCONF?=beastie PORTS_MODULES+=emulators/virtualbox-ose-kmod sysutils/lsof

make.conf:



PORTS_MODULES=graphics/drm-stable-kmod shells/mksh ports-mgmt/psearch net/svnup

From src.conf(5) DESCRIPTION:

… make(1) variables that control the aspects of how the system builds. …

src.conf may be a better place for GPU-related PORTS_MODULES such as x11/nvidia-driver-470 …
 
src.conf may be a better place for GPU-related PORTS_MODULES such as x11/nvidia-driver-470 …

On the other hand,

… you could add a line to /etc/src.conf to have the ports with kernel modules (and their dependencies) rebuilt during the build. An example:
PORTS_MODULES=x11/nvidia-driver-390 emulators/virtualbox-ose-kmod graphics/drm-kmod sysutils/openzfs-kmod. This is not without its own issues so watch out for bugs like PR 259702 which until fixed requires either manually answering through all make config dialogs (portupgrade/portmaster can help), not building with 'any' -j setting (-j1 is a setting and will fail too), or splitting the build step into 2 parts with the second setting PORTS_MODULES and removing the -j setting. First workaround keeps correct build performance but is a step that cannot be skipped, 2nd will slow down the build (amount increases with the number of cores in the machine), 3rd also increases build times but only during the port build process but if the port also (re)builds large things like llvm or gcc then remember those too may now be running without a desired -j. Of course, you can ignore these if you just manually rebuild+reinstall the ports after world+kernel are rebuilt+reinstalled but your steps likely are now back to the first paragraph.


IIRC (before I switched to pkgbase) I made minimal use of PORTS_MODULES because some modules made builds frustratingly slow.

Nowadays I use poudriere-devel to build the modules.
 
src.conf may be a better place for GPU-related PORTS_MODULES such as x11/nvidia-driver-470 …
That's not the place for it. src.conf is for building the base system/ world.

When building the kernel, extra software from ports can be built by make.conf, though that argument. Building the kernel is a more common task, and lots of users don't build the world, as freebsd-update works better for them.

Alternatively, I don't use PORTS_MODULES anymore and stick to programs which come default with base, because when updating, I'll have to drop into single user mode more often to use my PC. I install packages/ports later manually or automated in another way.

Also, between src.conf and make.conf, there's sometimes overlap, where an option needs to be enabled in both for it to work. For instance, a program in the kernel enabled through make.conf rests on top of code from the base enabled in src.conf, so both for the same program suite need to be enabled.
 
It can be, I mean, it did work for me …
Did you use PORTS_MODULES=? This is contained in make.conf(5), but not src.conf(5). This is for ports from the ports tree, to be built alongside the kernel as modules. Sometimes, an argument may work from another configuration file, because they're both shells, and its picked up. It doesn't make sense to build the world every time a single port needs an update, and building kernel is done more often and by more users.
 
Did you use PORTS_MODULES=? …

Yes; <https://forums.freebsd.org/posts/547912> above was in 2021.

It doesn't make sense to build the world every time a single port needs an update, …

From the manual page for make.conf:

"… the list of ports you wish to rebuild every time the kernel is built."

That's what I wanted, and src.conf was effective. I can't remember where or when I adopted the habit, but I know that I'm not alone …
 
I thought I picked it up from manpages but don't remember. src.conf manpage describes itself as settings to change what components are generated during the build process of the FreeBSD source tree without specifying it is a world-only set of components and in testing it did influence kernel building. It then keeps the build system cleaner for all ports and manually built software. I doubt there would be any conflict to that variable name, impact of decompressing and unencrypting then processing that one line would be small even after considering repeating it hundreds to tens of thousands of times for a single pass of port building (assuming it isn't in a post-processed cache such as a cache outside of ZFS ARC and logfiles are similarly not likely much larger. Why waste time and disk space while adding irrelevant data to every detailed logged build that isn't a build involving FreeBSD's source being rebuilt when you can just put it in src.conf?
 
Back
Top