Bug 275820 - clang 17.0.6 breaks openoffice-4 and openoffice-devel builds on CURRENT with linker errors
Summary: clang 17.0.6 breaks openoffice-4 and openoffice-devel builds on CURRENT with ...
Status: Closed Not A Bug
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 15.0-CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-18 08:14 UTC by Don Lewis
Modified: 2023-12-19 01:14 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Don Lewis freebsd_committer freebsd_triage 2023-12-18 08:14:55 UTC
FreeBSD zipper.catspoiler.org 15.0-CURRENT FreeBSD 15.0-CURRENT #107 main-n266973-ca39f23347e1: Sat Dec 16 03:11:23 PST 2023     dl@zipper.catspoiler.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

cc --version
FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git llvmorg-17.0.6-0-g6009708b4367)
Target: x86_64-unknown-freebsd15.0
Thread model: posix
InstalledDir: /usr/bin

Building either editors/openoffice-4 ore editors/openoffice-devel on either amd64 or i386 fails with these linker errors:

ld: error: version script assignment of 'UDK_3_0_0' to symbol 'GetVersionInfo' f
ailed: symbol not defined
ld: error: version script assignment of 'UDK_3.1' to symbol '_ZN9salhelper9Condi
tionC1ERN3osl5MutexE' failed: symbol not defined
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [/wrkdirs/usr/ports/editors/openoffice-devel/work/aoo-4.2.0/main/s
olenv/gbuild/LinkTarget.mk:330: /wrkdirs/usr/ports/editors/openoffice-devel/work
/aoo-4.2.0/main/solver/420/unxfbsdi.pro/workdir/LinkTarget/Library/libuno_salhel
pergcc3.so] Error 1

Building with older llvm from ports avoids this problem.

I will try to put together an upstream bug report.
Comment 1 commit-hook freebsd_committer freebsd_triage 2023-12-18 09:01:46 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f25b169ac89578f18a6e480d4d84284bb8085316

commit f25b169ac89578f18a6e480d4d84284bb8085316
Author:     Don Lewis <truckman@FreeBSD.org>
AuthorDate: 2023-12-18 08:52:02 +0000
Commit:     Don Lewis <truckman@FreeBSD.org>
CommitDate: 2023-12-18 08:56:38 +0000

    editors/openoffice-*: Unbreak build on 15.0-CURRENT

    clang version 17.0.6 causes linker errors that break the build on
    15.0-CURRENT.  Work around this by building with an older llvm from
    ports.

    PR:             275820

 editors/openoffice-4/Makefile     | 8 ++++++++
 editors/openoffice-devel/Makefile | 8 ++++++++
 2 files changed, 16 insertions(+)
Comment 2 Don Lewis freebsd_committer freebsd_triage 2023-12-19 01:14:00 UTC
It turns out that the --no-undefined-version change is the culprit.

In this particular case, GetVersionInfo is only exported by the Windows and OS/2 builds, so I have no idea why it is including in the .map file being used by the linker.  Both _ZN9salhelper9ConditionC1ERN3osl5MutexE and _ZN9salhelper9ConditionC2ERN3osl5MutexE are listed in the .map (do accommodate a name mangling variation?) but only one of those symbols is defined.