GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:59 JST mcc mcc

    Say I'm talking to someone who believes the clang libunwind and gcc libunwind are API incompatible.

    I'm fairly certain this is incorrect. But I can't *prove* it.

    The GCC libunwind docs are here. It lists all these unw_ functions. https://www.nongnu.org/libunwind/docs.html

    The clang libunwind docs are here https://bcain-llvm.readthedocs.io/projects/libunwind/en/latest/ and they are… build instructions. Nothing else. It describes itself as implementing "the HP libunwind interface". Google doesn't find such a thing and I don't think HP-UX is supported.

    In conversation about 5 months ago from mastodon.social permalink

    Attachments


    1. No result found on File_thumbnail lookup.
      libunwind LLVM Unwinder — libunwind 8.0 documentation
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:57 JST mcc mcc
      in reply to
      • ✧✦Catherine✦✧

      Okay. I've talked to some people and some things have been explained to me. I now understand the origin of the linker error.

      First, let me clarify something: it was incorrect or imprecise to refer to "gcc libunwind" in the top post. I think it is probably clearest to refer to this library (Debian "libunwind-dev", with no numbers) as "Savannah libunwind". According to @whitequark, this *is* "HP Libunwind" (through some former open source release, I guess?)

      In conversation about 5 months ago permalink
      GreenSkyOverMe (Monika) repeated this.
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:57 JST mcc mcc
      in reply to

      So, with that out of the way, the answers to my top of thread questions:

      - Savannah/HP libunwind and Clang/LLVM libunwind are C/C++ source compatible. The developer-facing function interfaces are the same.

      - However, the *set of exported symbols in the libraries* are totally different. C/C++ source compatibility is only possible because both(?) libraries implement the functions as macros.

      - Therefore, if you access these libraries from a non C language like Rust, they're fully incompatible.

      In conversation about 5 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:58 JST mcc mcc
      in reply to

      Googling about the hp libunwind, it sounds like it's a series of unw_ functions. Which sounds like the GCC libunwind interface. But that is vibes; if someone *believes* the two are API incompatible, *what could I tell them to convince them otherwise*?

      Also, is it weird that llvm libunwind seems to literally has no usage documentation at all? Did I miss something? Is Google simply cooked?

      In conversation about 5 months ago permalink
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:58 JST mcc mcc
      in reply to

      Update: Building Rust on a local computer against llvm libunwind I get these linker errors which makes me think maybe it's not api compatible

      In conversation about 5 months ago permalink

      Attachments


      1. https://files.mastodon.social/media_attachments/files/113/812/191/461/289/783/original/4c5607465342468e.png
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:58 JST mcc mcc
      in reply to

      I lose https://mastodon.social/@mcc/113807871925781727

      This is the limit of my ability to debug. I cannot work out why an undocumented function, whose name begins with an underscore, from library A is not being provided by a library B which has no documentation at all, when building someone else's code that I do not know the purpose of. I lose! I thought I could just keep powering through build errors but no.

      In conversation about 5 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        mcc (@mcc@mastodon.social)
        from mcc
        This is the problem with Linux. You need to do thing X. The system, or a wiki or something, tells you "here is the way everyone does it". It is repulsive and pointless. There is a easy, straightforward way to do it that obviously ought to work. This is a trap. You will try to do it the "obviously correct" way, and it won't work, and you will waste nine hours trying to figure out why but you won't abort and do it the bad way because THIS REALLY OUGHT TO WORK.
    • Embed this notice
      mcc (mcc@mastodon.social)'s status on Sunday, 12-Jan-2025 10:01:58 JST mcc mcc
      in reply to

      Now I get to uninstall the libc++ from my computer completely and replace it with a different one. Because it's the only remaining way to fix this linker error.

      This post has been edited.

      In conversation about 5 months ago permalink
    • Embed this notice
      ✧✦Catherine✦✧ (whitequark@mastodon.social)'s status on Sunday, 12-Jan-2025 12:04:26 JST ✧✦Catherine✦✧ ✧✦Catherine✦✧
      in reply to

      @mcc llvm libunwind is essentially an internal component of the platform runtime. it is documented in the Itanium (EH)ABI.

      the other libunwind you're dealing with is some other thing with the same name that's unrelated except for its purpose

      libgcc_s and llvm libunwind implement the same interface and are mutually exclusive; the other libunwind could be used together with each

      does this clarify

      In conversation about 5 months ago permalink
    • Embed this notice
      argv minus one (argv_minus_one@mastodon.sdf.org)'s status on Sunday, 12-Jan-2025 12:04:26 JST argv minus one argv minus one
      in reply to
      • ✧✦Catherine✦✧

      @whitequark @mcc

      #Intel : goes through hell to design an entirely new instruction set architecture and calls it #Itanium

      Everyone: “We'll just take the #C++ #ABI, thanks. We're going with #AMD for everything else. Toodles.”

      In conversation about 5 months ago permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.