After installing bison package (3.6.4,1) on freshly deployed instance of the FreeBSD 12.1, it seems like the binary is being linked towards libs which miss some stuff: root@freebsd-cloud-10958:~# bison ld-elf.so.1: /usr/local/bin/bison: Undefined symbol "fflush_unlocked@FBSD_1.6" I am quite confused as to way FBSD_1.6 is seen here as well since according to https://wiki.freebsd.org/SymbolVersioning the FreeBSD 12 should come with FBSD_1.5? Reinstalling the package doesn't help, performing pkg upgrade doesn't help either. Going to test if this issue is seen on newer releases (e.g. 12.2) but it would be nice if this was resolved for 12.1. Details of the installed package: root@freebsd-cloud-10958:~# pkg info bison bison-3.6.4,1 Name : bison Version : 3.6.4,1 Installed on : Fri Feb 12 11:02:40 2021 UTC Origin : devel/bison Architecture : FreeBSD:12:amd64 Prefix : /usr/local Categories : devel Licenses : GPLv3+ Maintainer : sunpoet@FreeBSD.org WWW : https://www.gnu.org/software/bison/ Comment : Parser generator from FSF, (mostly) compatible with Yacc Options : DOCS : on EXAMPLES : on NLS : on Shared Libs required: libtextstyle.so.0 libintl.so.8 Annotations : FreeBSD_version: 1202000 repo_type : binary repository : FreeBSD Flat size : 2.71MiB Description : Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables. As an experimental feature, Bison can also generate IELR(1) or canonical LR(1) parser tables. Once you are proficient with Bison, you can use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages. Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble. You need to be fluent in C or C++ programming in order to use Bison. Java is also supported as an experimental feature. WWW: https://www.gnu.org/software/bison/ WWW: https://savannah.gnu.org/projects/bison/ root@freebsd-cloud-10958:~# Any hints would be greatly appreciated.
FreeBSD project builds packages against the oldest supported dot-release on the branch, which is 12.2 for the stable/12 branch. Which makes the binaries from packages to use newer ABI than is available in old and unsupported 12.1. FBSD_1.6 is actually from CURRENT-13, where the symbols initially originated. The symver is merged back to 12 when corresponding change was merged. In case of fflush_unlocked, symbol came from the HEAD commit 12fe218f0bf6043b. Short version is that project no longer distribute pre-built packages for 12.1, since this release is no longer supported. You need to build on your own, or update to a supported release.
(In reply to Konstantin Belousov from comment #1) That explains everything, appreciate your feedback!
(In reply to Konstantin Belousov from comment #1) Thanks for the explanation.