Bug 253452 - devel/bison package broken on FreeBSD 12.1
Summary: devel/bison package broken on FreeBSD 12.1
Status: Closed Works As Intended
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Sunpoet Po-Chuan Hsieh
Depends on:
Reported: 2021-02-12 11:12 UTC by michalx.berger
Modified: 2021-03-03 18:07 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (sunpoet)


Note You need to log in before you can comment on or make changes to this bug.
Description michalx.berger 2021-02-12 11:12:54 UTC
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
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:
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/

Any hints would be greatly appreciated.
Comment 1 Konstantin Belousov freebsd_committer 2021-02-12 11:18:42 UTC
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

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.
Comment 2 michalx.berger 2021-02-12 11:21:16 UTC
(In reply to Konstantin Belousov from comment #1)
That explains everything, appreciate your feedback!
Comment 3 Sunpoet Po-Chuan Hsieh freebsd_committer 2021-03-03 18:07:09 UTC
(In reply to Konstantin Belousov from comment #1)

Thanks for the explanation.