So I switch from C++ to Rust because debugging C++ packaging and linking errors is the most painful thing in the world and then my Rust crates wind up building C++ packages and then the C++ packages fail to build because debugging C++ packaging and linking errors is the most painful thing in the world
mcc
in reply to mcc • • •Okay get this
- I want to build "servo".
- "servo" includes Rust crate "unwind-sys" 0.1.4.
- This requires libunwind, so it looks for libunwind-generic.pc.
- In my copy of Debian Trixie, I install libunwind-19-dev.
- That doesn't include libunwind-generic.pc. Debian tools packages.debian.org/search?mod… say only libunwind-dev has that file
- libunwind19-dev is provided by clang, libunwind is provided by gcc
- therefore, uninstalling libunwind will uninstall libc++-dev
- I need libc++-dev to build servo
Debian -- Package Contents Search Results -- libunwind-generic.pc
packages.debian.orgmcc
in reply to mcc • • •mcc
in reply to mcc • • •In order to get this fixed, I think I need to file bugs on one or all of
- Debian libunwindNN-dev, for not providing the "-generic" pkg-config file (I mean it's generic, right??)
- The unwind-sys crate for using the wrong pkg-config filename
- Debian, for only allowing one of libunwind-dev and libunwindNN-dev at a time although different programs are compatible with different ones
- Possibly servo? For requiring too many C++ libs?
I just wanted to build a single program with a single library.
Filipi Limi
in reply to mcc • • •mcc
in reply to Filipi Limi • • •@morenonatural This has nothing to do with unstable, the same problem is present in bookworm as well as all debian derivatives (for example i encountered it previously on ubuntu) mstdn.social/@estelle/11380508…
estelle
2025-01-10 16:50:35
Sylvain Meunier
in reply to mcc • • •Henri
in reply to mcc • • •Pretty sure Rust can compile with GCC libraries. I just followed the Linux compile instructions for servo with "./mach bootstrap" and "./mach build" on a Debian Trixie container and it seems to build fine.
It seems to install libunwind-dev and not libunwind19-dev. Both GCC and Clang are also installed.
mcc
in reply to Henri • • •Henri
in reply to mcc • • •mcc
in reply to Henri • • •Henri
in reply to Henri • • •mcc
in reply to Henri • • •Fish Id Wardrobe
in reply to mcc • • •mcc
in reply to Fish Id Wardrobe • • •ShadSterling
in reply to mcc • • •mcc
in reply to ShadSterling • • •@ShadSterling Rust needs clang to build C++ libraries. It is not using the system clang (I don't currently have one). Cargo has produced its own clang from somewhere. I'm okay with it doing this because I like clang.
Clang can actually use the gcc stdc++. I was doing this in ubuntu. I would just *prefer* to use the clang one, because I like clang.
ShadSterling
in reply to mcc • • •ah, that makes sense. I forgot that it would be impractical to build static libraries with the library’s preferred compiler 😅.
Looks like another reason to want a dependency manager for C++ that can resolve dependencies without touching system libraries
Mark T. Tomczak
in reply to mcc • • •archiloque
in reply to mcc • • •mcc
in reply to archiloque • • •leo vriska
in reply to mcc • • •mcc
in reply to leo vriska • • •leo vriska
in reply to mcc • • •leo vriska
in reply to leo vriska • • •mcc
in reply to leo vriska • • •Dag Ågren ↙︎↙︎↙︎
in reply to mcc • • •Basicalky at this point I will not use a C library if I can not just build it myself in my own build system.
Also I will not use a C++.
mcc
in reply to Dag Ågren ↙︎↙︎↙︎ • • •Dag Ågren ↙︎↙︎↙︎
in reply to mcc • • •mcc
in reply to Dag Ågren ↙︎↙︎↙︎ • • •mcc
Unknown parent • • •mcc
Unknown parent • • •mcc
Unknown parent • • •mcc
Unknown parent • • •@stiiin This was my project:
mastodon.social/@mcc/113354313…
This gave me some experience with embedding Servo as a project, so I may be able to help with simple stuff. What I'm trying to do is fix Cuervo so it builds on machines other than my own. (Apparently I failed to do that correctly the first time.)
mcc
2024-10-23 02:12:35