Skip to content

Some linker sections are missing when building project with nightly toolchain #130397

Closed
@zzsergant

Description

@zzsergant

I'm using Ubuntu Linux 20.04.

I have a project which build some .c files (lttng tracepoints) in build.rs with cc::Build and link it to executable.
In stable version of Rust toolchain everything works fine.

But when compiling it with nightly Rust toolchain some tracepoint data is missing in resulting executable and tracing does not working.

Code

Here is the archive of minimal project which have a link problem on nightly:
lttng_link_test.zip

To build the code you may need to install liblttng-ust-dev package.
The Rust toolchain is specified in rust-toolchain.toml file of the project.

I tried this code:

> cargo build
> nm target/debug/lttng_link_test | grep tracepoint_ptr

I expected to see this happen:

0000000000057118 d __tracepoint_ptr_hello_world___my_first_tracepoint
0000000000057128 V __tracepoint_ptrs_registered

Instead, this happened:

0000000000059988 b __tracepoint_ptrs_registered

The __tracepoint_ptr_hello_world___my_first_tracepoint is missing.

Version it worked on

It most recently worked on:

rustc 1.81.0 (eeb90cda1 2024-09-04)
binary: rustc
commit-hash: eeb90cda1969383f56a2637cbd3037bdf598841c
commit-date: 2024-09-04
host: x86_64-unknown-linux-gnu
release: 1.81.0
LLVM version: 18.1.7

Version with regression

rustc 1.83.0-nightly (9b72238eb 2024-09-14)
binary: rustc
commit-hash: 9b72238eb813e9d06e9e9d270168512fbffd7ee7
commit-date: 2024-09-14
host: x86_64-unknown-linux-gnu
release: 1.83.0-nightly
LLVM version: 19.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-linkageArea: linking into static, shared libraries and binariesC-external-bugCategory: issue that is caused by bugs in software beyond our controlT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions