On Sunday, 27 August 2023 at 06:39, Elliott Sales de Andrade wrote:
> On Sat, Aug 26, 2023 at 6:30 AM Julian Sikorski <beleg...@gmail.com> wrote:
> >
> > Hello,
> >
> > now that lzma-sdk in Fedora rawhide is no longer ancient, I tried using
> > it with mame. Unfortunately, I got a number of undefined references when
> > linking:
> >
> > Is it a problem with lzma-sdk not shipping those? Or is mame using
> > private functions? Thanks for the feedback.
> >
> 
> Looking at the shared library, it has for example:
> 
> <mock-chroot> sh-5.2# objdump -T /usr/lib64/liblzmasdk.so | grep
> MtCoder_Destruct
> 0000000000000000      D  *UND*  0000000000000000  Base        MtCoder_Destruct
> 
> The *UND* indicates that the symbol is referenced, but not defined.
> This does not seem intended.
> 
> I'm not sure if this is the reason, but it appears that the lzma-sdk
> build is incorrect. Looking at the log from the latest build on
> x86_64, we see:
[...]
> but then the final linkage has:
> 
> g++ -o liblzmasdk.so.22.01.0 -shared -Wl,-soname=liblzmasdk.so.22
> -DNDEBUG -O2 -flto=auto -ffat-lto-objects -fexceptions -g
> -grecord-gcc-switches -pipe -Wall -Werror=format-security
> -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
> -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
>  -m64   -mtune=generic -fasynchronous-unwind-tables
> -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer
> -mno-omit-leaf-frame-pointer    _o/7zCrc.o _o/7zCrcOpt.o _o/Alloc.o
> _o/Bra86.o _o/CpuArch.o _o/LzFind.o _o/LzmaDec.o _o/LzmaEnc.o
> _o/Lzma2Dec.o _o/Lzma2Enc.o _o/Lzma86Dec.o _o/Lzma86Enc.o
> _o/LzFindMt.o _o/LzFindOpt.o _o/Synchronization.o _o/Threads.o
> _o/FileDir.o _o/FileFind.o _o/FileName.o _o/MyWindows.o _o/TimeUtils.o
>  _o/CommandLineParser.o _o/CRC.o _o/CrcReg.o _o/IntToString.o
> _o/LzFindPrepare.o _o/MyString.o _o/MyVector.o _o/NewHandler.o
> _o/StringConvert.o _o/StringToInt.o _o/UTFConvert.o  _o/FileIO.o
> _o/PropVariant.o _o/System.o _o/SystemInfo.o  _o/LzmaDecoder.o
> _o/LzmaEncoder.o _o/LzmaRegister.o  _o/CreateCoder.o _o/CWrappers.o
> _o/FileStreams.o _o/FilterCoder.o _o/MethodProps.o _o/StreamObjects.o
> _o/StreamUtils.o  _o/BenchCon.o _o/ConsoleClose.o  _o/LzmaAlone.o
> _o/Bench.o   -lpthread -ldl
> 
> As you can see, none of the LDFLAGS are passed to the linker, only the CFLAGS.

I thought LDFLAGS only need to be passed if the linker is ld, but if
it's gcc, passing CFLAGS is sufficient.

Anyway, please open a bugzilla so that I can track and fix this.

Regards,
Dominik
-- 
Fedora   https://fedoraproject.org
There should be a science of discontent. People need hard times and
oppression to develop psychic muscles.
        -- from "Collected Sayings of Muad'Dib" by the Princess Irulan
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to