[Bug 2049904] Re: proposed migration for meson 1.3.1-1
Mate Kukri
2049904 at bugs.launchpad.net
Wed Feb 14 08:49:42 UTC 2024
@jpakkane As I've also responded on the Debian bug, unfortunately my
first attempt at a workaround was indeed failing to address the issue,
but as far as I am aware only because there are multiple such failing
tests.
I agree that injecting the dependency on the static library is not nice,
but the linking was failing because that static library was passed to
the linker last. I have noticed that it's dependencies come after it, so
injecting `-lc` there did produce the correct command line at least for
that one test.
As far as it being a rustc issue, I am only 50/50 because rustc doesn't
necessarily guarantee that internally it always is linking against libc,
and it also cannot know that external dependencies passed to it are
really written in C. Providing such guarantees as "always link against
libc and do so last" is ultimately for the Rustc authors to decide. Also
Meson does always know that it is passing libraries written in C to
rustc, so maybe it should always internally mark such libraries as
dependent on libc?
Ultimately the proper place to fix this is for the rustc and/or meson
authors to decide, I would just like to get Ubuntu moving forward.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rustc in Ubuntu.
https://bugs.launchpad.net/bugs/2049904
Title:
proposed migration for meson 1.3.1-1
Status in meson package in Ubuntu:
New
Status in rustc package in Ubuntu:
New
Status in meson package in Debian:
Fix Released
Bug description:
meson 1.3.1-1 is stuck in -proposed with failing autopkgtests on
arm64.
This is failing the same way in debian.
Two tests in the test suite are failing when compiling (apparently for
the same reason):
2308s = note: /usr/bin/ld: libcpp.a.p/lib.cpp.o: undefined reference to symbol '__stack_chk_guard@@GLIBC_2.17'
2308s /usr/bin/ld: /lib/ld-linux-aarch64.so.1: error adding symbols: DSO missing from command line
2308s collect2: error: ld returned 1 exit status
2308s
2308s = note: some `extern` functions couldn't be found; some native libraries may need to be installed or havetheir path specified
2308s = note: use the `-l` flag to specify native libraries to link
2308s = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
It looks like this is linked to a newly added or missing `-fstack-
protector-all` flag.
Some research on this error lead me to try adding this `-fstack-
protected` flag when building on arm64.
See my patch [0] and the package in my ppa [1].
But autopkgtests are still failing [2] and it looks like my flag is
ignored. I may have missed something in the meson syntax.
[0] https://launchpadlibrarian.net/710064457/meson_1.3.1-1ubuntu1_1.3.1-1ubuntu2.diff.gz
[1] https://launchpad.net/~upils/+archive/ubuntu/test-ppa/+packages
[2] https://autopkgtest.ubuntu.com/results/autopkgtest-noble-upils-test-ppa/noble/arm64/m/meson/20240119_115804_82043@/log.gz
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/meson/+bug/2049904/+subscriptions
More information about the foundations-bugs
mailing list