Bug 268495

Summary: audio/openal-soft: fix build with lld 15 on i386
Product: Ports & Packages Reporter: Dimitry Andric <dim>
Component: Individual Port(s)Assignee: freebsd-multimedia (Nobody) <multimedia>
Status: Closed FIXED    
Severity: Affects Some People Flags: bugzilla: maintainer-feedback? (multimedia)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 265425    
Attachments:
Description Flags
audio/openal-soft: fix build with lld 15 on i386 none

Description Dimitry Andric freebsd_committer freebsd_triage 2022-12-20 22:36:17 UTC
During an exp-run for llvm 15 (see bug 265425), it turned out that audio/openal-soft failed to link with lld 15, on i386:

      : && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -Wl,--as-needed -fstack-protector-strong -Wl,-z,notext CMakeFiles/makemhr.dir/utils/makemhr/loaddef.cpp.o CMakeFiles/makemhr.dir/utils/makemhr/loadsofa.cpp.o CMakeFiles/makemhr.dir/utils/makemhr/makemhr.cpp.o -o makemhr  -Wl,-rpath,/usr/local/lib:  -pthread  libsofa-support.a  -pthread  libcommon.a  /usr/local/lib/libmysofa.so  /usr/lib/libz.so  -lm && :
      ld: error: makemhr:(.eh_frame+0x14cf): internal linker error: wrote incorrect addend value 0x3400 instead of 0x0 for dynamic relocation R_386_32 at offset 0x408417 against symbol __gxx_personality_v0

This is because lld 15 with assertions enabled (which is default on -CURRENT) checks dynamic relocations more thoroughly, and in combination with -z notext (which was added earlier for bug 242307) results in the above diagnostic.

Work around it by disabling the dynamic relations checks on i386.
Comment 1 Dimitry Andric freebsd_committer freebsd_triage 2022-12-20 22:36:37 UTC
Created attachment 238949 [details]
audio/openal-soft: fix build with lld 15 on i386
Comment 2 commit-hook freebsd_committer freebsd_triage 2022-12-25 17:55:18 UTC
A commit in branch main references this bug:

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

commit 145ca54873489e7d45eac99de62f733a54dc294d
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-12-20 22:28:41 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-12-25 17:53:21 +0000

    audio/openal-soft: fix build with lld 15 on i386

    During an exp-run for llvm 15 (see bug 265425), it turned out that
    audio/openal-soft failed to link with lld 15, on i386:

      : && /usr/bin/c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -Wl,--as-needed -fstack-protector-strong -Wl,-z,notext CMakeFiles/makemhr.dir/utils/makemhr/loaddef.cpp.o CMakeFiles/makemhr.dir/utils/makemhr/loadsofa.cpp.o CMakeFiles/makemhr.dir/utils/makemhr/makemhr.cpp.o -o makemhr  -Wl,-rpath,/usr/local/lib:  -pthread  libsofa-support.a  -pthread  libcommon.a  /usr/local/lib/libmysofa.so  /usr/lib/libz.so  -lm && :
      ld: error: makemhr:(.eh_frame+0x14cf): internal linker error: wrote incorrect addend value 0x3400 instead of 0x0 for dynamic relocation R_386_32 at offset 0x408417 against symbol __gxx_personality_v0

    This is because lld 15 with assertions enabled (which is default on
    -CURRENT) checks dynamic relocations more thoroughly, and in combination
    with -z notext (which was added earlier for bug 242307) results in the
    above diagnostic.

    Work around it by disabling the dynamic relations checks on i386.

    PR:             268495
    Approved by:    maintainer timeout (2 weeks)
    MFH:            2022Q4

 audio/openal-soft/Makefile | 10 ++++++++++
 1 file changed, 10 insertions(+)
Comment 3 commit-hook freebsd_committer freebsd_triage 2022-12-25 23:16:48 UTC
A commit in branch main references this bug:

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

commit 85d704c5f2603e9c196598b7a6cba6ecb58b20ae
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-12-25 23:11:44 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-12-25 23:11:44 +0000

    audio/openal-soft: unbreak after 145ca5487348

    Unbreak build by moving bsd.port.pre.mk include to just before
    post-patch, and using bsd.port.post.mk at the end.

    PR:             268495
    Reported by:    fluffy
    Fixes:          145ca5487348
    MFH:            2022Q4

 audio/openal-soft/Makefile | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)