Bug 279270 - WITHOUT_UNDEFINED_VERSION fails with WITHOUT_NIS
Summary: WITHOUT_UNDEFINED_VERSION fails with WITHOUT_NIS
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: Ed Maste
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-24 11:41 UTC by Peter Jeremy
Modified: 2024-05-29 16:33 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Jeremy freebsd_committer freebsd_triage 2024-05-24 11:41:55 UTC
Commit 4510f2ca9170927309a423274e03f1eb8e27da27 changed the linker default to fail if undefined symbols are found during shared library creation.  If WITHOUT_NIS is specified, linking libc.so.7 fails:
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_domainname' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_keydat' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_mapname' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_peername' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_valdat' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypbind_binding' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypbind_resp' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypbind_resptype' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypbind_setdom' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypmap_parms' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypmaplist' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_yppush_status' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_yppushresp_xfr' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypreq_key' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypreq_nokey' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypreq_xfr' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypreqtype' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_yprequest' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_all' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_key_val' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_maplist' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_master' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_order' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_val' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresp_xfr' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresponse' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypresptype' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypstat' failed: symbol not defined
ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_ypxfrstat' failed: symbol not defined

These symbols are listed in /usr/src/lib/libc/rpc/Symbol.map but defined in yp_xdr.c, which is built from /usr/src/include/rpcsvc/yp.x via /usr/src/lib/libc/yp/Makefile.inc

I believe the fix is to move those symbols into /usr/src/lib/libc/yp/Symbol.map
Comment 1 Ed Maste freebsd_committer freebsd_triage 2024-05-24 16:42:10 UTC
I had a go at this via these two:
https://reviews.freebsd.org/D45346
https://reviews.freebsd.org/D45345

D45346 may still make sense to support similar cases that may come up in the future, but for this issue moving them to the existing lib/libc/yp/Symbol.map sounds like the right thing.
Comment 2 commit-hook freebsd_committer freebsd_triage 2024-05-24 20:48:41 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=61639bb3fc5abe0bb7b096e643b51c30703ac432

commit 61639bb3fc5abe0bb7b096e643b51c30703ac432
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-05-24 17:27:29 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-05-24 20:47:37 +0000

    libc: move NIS xdr_* symbols from rpc's to yp's Symbol.map

    To fix WITHOUT_NIS build.  Building yp_xdr.c is gated by MK_NIS.

    PR:             279270
    Reported by:    peterj
    Reported by:    matteo
    Reported by:    Michael Dexter's Build Option Survey run
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D45347

 lib/libc/rpc/Symbol.map | 31 -------------------------------
 lib/libc/yp/Symbol.map  | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 31 deletions(-)
Comment 3 commit-hook freebsd_committer freebsd_triage 2024-05-29 15:41:33 UTC
A commit in branch stable/14 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=1e3dfe0c343c74d4c7162e25378b221e5a797917

commit 1e3dfe0c343c74d4c7162e25378b221e5a797917
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-05-24 17:27:29 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-05-29 15:40:18 +0000

    libc: move NIS xdr_* symbols from rpc's to yp's Symbol.map

    To fix WITHOUT_NIS build.  Building yp_xdr.c is gated by MK_NIS.

    PR:             279270
    Reported by:    peterj
    Reported by:    matteo
    Reported by:    Michael Dexter's Build Option Survey run
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D45347

    (cherry picked from commit 61639bb3fc5abe0bb7b096e643b51c30703ac432)

 lib/libc/rpc/Symbol.map | 31 -------------------------------
 lib/libc/yp/Symbol.map  | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 31 deletions(-)
Comment 4 commit-hook freebsd_committer freebsd_triage 2024-05-29 16:27:43 UTC
A commit in branch stable/13 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=4010c267a55c5bdb8f752f023d147de3021f9d75

commit 4010c267a55c5bdb8f752f023d147de3021f9d75
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-05-24 17:27:29 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-05-29 15:42:17 +0000

    libc: move NIS xdr_* symbols from rpc's to yp's Symbol.map

    To fix WITHOUT_NIS build.  Building yp_xdr.c is gated by MK_NIS.

    PR:             279270
    Reported by:    peterj
    Reported by:    matteo
    Reported by:    Michael Dexter's Build Option Survey run
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D45347

    (cherry picked from commit 61639bb3fc5abe0bb7b096e643b51c30703ac432)
    (cherry picked from commit 1e3dfe0c343c74d4c7162e25378b221e5a797917)

 lib/libc/rpc/Symbol.map | 31 -------------------------------
 lib/libc/yp/Symbol.map  | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 31 deletions(-)