Remove deprecated flags by pvdrz · Pull Request #2408 · rust-lang/rust-bindgen (original) (raw)
pvdrz deleted the remove-deprecated-cli-args branch
G1gg1L3s added a commit to G1gg1L3s/themis that referenced this pull request
G1gg1L3s added a commit to G1gg1L3s/themis that referenced this pull request
G1gg1L3s added a commit to cossacklabs/themis that referenced this pull request
- RustThemis: remove deprecated bindgen flags
They were removed in the 0.65.0 1.
- Use simpler construction for checking the flag
Co-authored-by: Dmytro Shapovalov shad@ixqt.net
Co-authored-by: Dmytro Shapovalov shad@ixqt.net
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
ojeda pushed a commit to ojeda/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Reported-by: Josh Poimboeuf jpoimboe@kernel.org Closes: https://lore.kernel.org/rust-for-linux/20230606215212.r7if2gsynajugf6j@treble/ Reported-by: Aakash Sen Sharma aakashsensharma@gmail.com Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [ Reword, add Josh's report and update Quick Start guide. ] Signed-off-by: Miguel Ojeda ojeda@kernel.org
fbq pushed a commit to Rust-for-Linux/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: #1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
heiher pushed a commit to heiher/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
heiher pushed a commit to heiher/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
fbq pushed a commit to Rust-for-Linux/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: #1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
fbq pushed a commit to Rust-for-Linux/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: #1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
heiher pushed a commit to heiher/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
fbq pushed a commit to Rust-for-Linux/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: #1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
fbq pushed a commit to fbq/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
fbq pushed a commit to Rust-for-Linux/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: #1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
ojeda pushed a commit to Rust-for-Linux/linux that referenced this pull request
In LLVM 16, anonymous items may return names like (unnamed union at ..)
rather than empty names 1, which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
clang_Cursor_isAnonymous
[2]:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to a more recent version, 0.65.1, to support LLVM 16.
Since bindgen 0.58.0 changed the --{white,black}list-*
flags to
--{allow,block}list-*
[3], update them on our side too.
In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called bindgen-cli
[4]. Thus update the installation command in the
Quick Start guide.
Moreover, bindgen 0.61.0 changed the default functionality to bind
size_t
to usize
[5] and added the --no-size_t-is-usize
flag
to not bind size_t
as usize
. Then bindgen 0.65.0 removed
the --size_t-is-usize
flag [6]. Thus stop passing the flag to bindgen.
Finally, bindgen 0.61.0 added support for the noreturn
attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling BUG()
, since bindgen now correctly
generates a BUG()
binding that returns !
instead of ()
.
Link: llvm/llvm-project@19e984e 1
Link: rust-lang/rust-bindgen#2319 [2]
Link: rust-lang/rust-bindgen#1990 [3]
Link: rust-lang/rust-bindgen#2284 [4]
Link: rust-lang/rust-bindgen@cc78b6f [5]
Link: rust-lang/rust-bindgen#2408 [6]
Link: rust-lang/rust-bindgen#2094 [7]
Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
Closes: #1013
Tested-by: Ariel Miculas amiculas@cisco.com
Reviewed-by: Gary Guo gary@garyguo.net
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the bindgen-cli
binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda ojeda@kernel.org
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
cthbleachbit pushed a commit to AOSC-Tracking/linux that referenced this pull request
In LLVM 16, anonymous items may return names like (unnamed union at ..)
rather than empty names 1, which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
clang_Cursor_isAnonymous
[2]:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to a more recent version, 0.65.1, to support LLVM 16.
Since bindgen 0.58.0 changed the --{white,black}list-*
flags to
--{allow,block}list-*
[3], update them on our side too.
In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called bindgen-cli
[4]. Thus update the installation command in the
Quick Start guide.
Moreover, bindgen 0.61.0 changed the default functionality to bind
size_t
to usize
[5] and added the --no-size_t-is-usize
flag
to not bind size_t
as usize
. Then bindgen 0.65.0 removed
the --size_t-is-usize
flag [6]. Thus stop passing the flag to bindgen.
Finally, bindgen 0.61.0 added support for the noreturn
attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling BUG()
, since bindgen now correctly
generates a BUG()
binding that returns !
instead of ()
.
Link: llvm/llvm-project@19e984e 1
Link: rust-lang/rust-bindgen#2319 [2]
Link: rust-lang/rust-bindgen#1990 [3]
Link: rust-lang/rust-bindgen#2284 [4]
Link: rust-lang/rust-bindgen@cc78b6f [5]
Link: rust-lang/rust-bindgen#2408 [6]
Link: rust-lang/rust-bindgen#2094 [7]
Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
Closes: Rust-for-Linux#1013
Tested-by: Ariel Miculas amiculas@cisco.com
Reviewed-by: Gary Guo gary@garyguo.net
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the bindgen-cli
binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda ojeda@kernel.org
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
chessturo pushed a commit to chessturo/linux that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
cthbleachbit pushed a commit to AOSC-Tracking/linux that referenced this pull request
In LLVM 16, anonymous items may return names like (unnamed union at ..)
rather than empty names 1, which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
clang_Cursor_isAnonymous
[2]:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to a more recent version, 0.65.1, to support LLVM 16.
Since bindgen 0.58.0 changed the --{white,black}list-*
flags to
--{allow,block}list-*
[3], update them on our side too.
In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called bindgen-cli
[4]. Thus update the installation command in the
Quick Start guide.
Moreover, bindgen 0.61.0 changed the default functionality to bind
size_t
to usize
[5] and added the --no-size_t-is-usize
flag
to not bind size_t
as usize
. Then bindgen 0.65.0 removed
the --size_t-is-usize
flag [6]. Thus stop passing the flag to bindgen.
Finally, bindgen 0.61.0 added support for the noreturn
attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling BUG()
, since bindgen now correctly
generates a BUG()
binding that returns !
instead of ()
.
Link: llvm/llvm-project@19e984e 1
Link: rust-lang/rust-bindgen#2319 [2]
Link: rust-lang/rust-bindgen#1990 [3]
Link: rust-lang/rust-bindgen#2284 [4]
Link: rust-lang/rust-bindgen@cc78b6f [5]
Link: rust-lang/rust-bindgen#2408 [6]
Link: rust-lang/rust-bindgen#2094 [7]
Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
Closes: Rust-for-Linux#1013
Tested-by: Ariel Miculas amiculas@cisco.com
Reviewed-by: Gary Guo gary@garyguo.net
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the bindgen-cli
binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda ojeda@kernel.org
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
vtta pushed a commit to vtta/linux-archive that referenced this pull request
In LLVM 16, anonymous items may return names like (unnamed union at ..)
rather than empty names 1, which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
clang_Cursor_isAnonymous
[2]:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to a more recent version, 0.65.1, to support LLVM 16.
Since bindgen 0.58.0 changed the --{white,black}list-*
flags to
--{allow,block}list-*
[3], update them on our side too.
In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called bindgen-cli
[4]. Thus update the installation command in the
Quick Start guide.
Moreover, bindgen 0.61.0 changed the default functionality to bind
size_t
to usize
[5] and added the --no-size_t-is-usize
flag
to not bind size_t
as usize
. Then bindgen 0.65.0 removed
the --size_t-is-usize
flag [6]. Thus stop passing the flag to bindgen.
Finally, bindgen 0.61.0 added support for the noreturn
attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling BUG()
, since bindgen now correctly
generates a BUG()
binding that returns !
instead of ()
.
Link: llvm/llvm-project@19e984e 1
Link: rust-lang/rust-bindgen#2319 [2]
Link: rust-lang/rust-bindgen#1990 [3]
Link: rust-lang/rust-bindgen#2284 [4]
Link: rust-lang/rust-bindgen@cc78b6f [5]
Link: rust-lang/rust-bindgen#2408 [6]
Link: rust-lang/rust-bindgen#2094 [7]
Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
Closes: Rust-for-Linux#1013
Tested-by: Ariel Miculas amiculas@cisco.com
Reviewed-by: Gary Guo gary@garyguo.net
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the bindgen-cli
binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda ojeda@kernel.org
ishitatsuyuki pushed a commit to ishitatsuyuki/linux that referenced this pull request
In LLVM 16, anonymous items may return names like (unnamed union at ..)
rather than empty names 1, which breaks Rust-enabled builds because
bindgen assumed an empty name instead of detecting them via
clang_Cursor_isAnonymous
[2]:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
This was fixed in bindgen 0.62.0. Therefore, upgrade bindgen to a more recent version, 0.65.1, to support LLVM 16.
Since bindgen 0.58.0 changed the --{white,black}list-*
flags to
--{allow,block}list-*
[3], update them on our side too.
In addition, bindgen 0.61.0 moved its CLI utility into a binary crate
called bindgen-cli
[4]. Thus update the installation command in the
Quick Start guide.
Moreover, bindgen 0.61.0 changed the default functionality to bind
size_t
to usize
[5] and added the --no-size_t-is-usize
flag
to not bind size_t
as usize
. Then bindgen 0.65.0 removed
the --size_t-is-usize
flag [6]. Thus stop passing the flag to bindgen.
Finally, bindgen 0.61.0 added support for the noreturn
attribute (in
its different forms) [7]. Thus remove the infinite loop in our Rust
panic handler after calling BUG()
, since bindgen now correctly
generates a BUG()
binding that returns !
instead of ()
.
Link: llvm/llvm-project@19e984e 1
Link: rust-lang/rust-bindgen#2319 [2]
Link: rust-lang/rust-bindgen#1990 [3]
Link: rust-lang/rust-bindgen#2284 [4]
Link: rust-lang/rust-bindgen@cc78b6f [5]
Link: rust-lang/rust-bindgen#2408 [6]
Link: rust-lang/rust-bindgen#2094 [7]
Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com
Closes: Rust-for-Linux#1013
Tested-by: Ariel Miculas amiculas@cisco.com
Reviewed-by: Gary Guo gary@garyguo.net
Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com
[ Reworded commit message. Mentioned the bindgen-cli
binary crate
change, linked to it and updated the Quick Start guide. Re-added a
deleted "as" word in a code comment and reflowed comment to respect
the maximum length. ]
Signed-off-by: Miguel Ojeda ojeda@kernel.org
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com
herrnst pushed a commit to herrnst/linux-asahi that referenced this pull request
- Rationale:
Upgrades bindgen to code-generation for anonymous unions, structs, and enums [7] for LLVM-16 based toolchains.
The following upgrade also incorporates noreturn
support from bindgen
allowing us to remove useless loop
calls which was placed as a
workaround.
- Truncated build logs on using bindgen
v0.56.0
prior to LLVM-16 toolchain:
$ make rustdoc LLVM=1 CLIPPY=1 -j$(nproc)
RUSTC L rust/core.o
BINDGEN rust/bindings/bindings_generated.rs
BINDGEN rust/bindings/bindings_helpers_generated.rs
BINDGEN rust/uapi/uapi_generated.rs
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
thread 'main' panicked at '"ftrace_branch_data_union_(anonymous_at__/_/include/linux/compiler_types_h_146_2)" is not a valid Ident', .../proc-macro2-1.0.24/src/fallback.rs:693:9
...
- LLVM-16 Changes:
API changes 1 were introduced such that libclang would emit names like "(unnamed union at compiler_types.h:146:2)" for unnamed unions, structs, and enums whereas it previously returned an empty string.
- Bindgen Changes:
Bindgen v0.56.0
on LLVM-16 based toolchains hence was unable to process the
anonymous union in include/linux/compiler_types
struct ftrace_branch_data
and caused subsequent panics as the new libclang
API emitted name was not
being handled. The following issue was fixed in Bindgen v0.62.0
[2].
Bindgen v0.58.0
changed the flags --whitelist-*
and --blacklist-*
to --allowlist-*
and --blocklist-*
respectively [3].
Bindgen v0.61.0
added support for _Noreturn
, [[noreturn]]
, __attribute__((noreturn))
[4],
hence the empty loop
s used to circumvent bindgen returning !
in place of ()
for noreturn attributes have been removed completely.
Bindgen v0.61.0
also changed default functionality to bind size_t
to usize
[5] and
added the --no-size_t-is-usize
[5] flag to not bind size_t
as usize
.
Bindgen v0.65.0
removed --size_t-is-usize
flag [6].
Link: llvm/llvm-project@19e984e 1 Link: rust-lang/rust-bindgen#2319 [2] Link: rust-lang/rust-bindgen#1990 [3] Link: rust-lang/rust-bindgen#2094 [4] Link: rust-lang/rust-bindgen@cc78b6f [5] Link: rust-lang/rust-bindgen#2408 [6] Closes: Rust-for-Linux/linux#1013 [7] Signed-off-by: Aakash Sen Sharma aakashsensharma@gmail.com Reviewed-by: Gary Guo gary@garyguo.net Tested-by: Ariel Miculas amiculas@cisco.com Link: https://lore.kernel.org/r/20230612194311.24826-1-aakashsensharma@gmail.com [boqun: resolve conflicts because of Rust version bump] Signed-off-by: Boqun Feng boqun.feng@gmail.com