GNU ld gained separate Solaris-specific linker emulations (*_sol2) long
ago. Since their introduction, GCC has preferred them over their
non-*_sol2 counterparts but supported both forms. This has changed for
GCC 16: since all supported versions of GNU ld do support the *_sol2
emulations, GCC now uses them unconditionally.
libtool has also been updated to handle this since libtool 2.4.2 back in
2011. However, that change has only partially been backported to the
heavily patched libtool.m4 in the GCC tree: the sparcv9 part is there,
but the amd64 part is missing for some reason. This causes problems
with some recent binutils changes.
Therefore this patch cherry-picks the libtool patch to bring
Solaris/x86_64 in sync with Solaris/sparcv9 and upstream libtool.
Bootstrapped without regressions on {amd64,i386}-pc-solaris2.11 and
{sparcv9,sparc}-sun-solaris2.11.
2025-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* libtool.m4: Cherry-pick libtool commit
9196966580f6853a31187a7a3c7e7ff36ef08982.
gcc:
* configure: Regenerate.
libatomic:
* configure: Regenerate.
libbacktrace:
* configure: Regenerate.
libcc1:
* configure: Regenerate.
libffi:
* configure: Regenerate.
libga68:
* configure: Regenerate.
libgcobol:
* configure: Regenerate.
libgfortran:
* configure: Regenerate.
libgm2:
* configure: Regenerate.
libgomp:
* configure: Regenerate.
libgrust:
* configure: Regenerate.
libitm:
* configure: Regenerate.
libobjc:
* configure: Regenerate.
libphobos:
* configure: Regenerate.
libquadmath:
* configure: Regenerate.
libsanitizer:
* configure: Regenerate.
libssp:
* configure: Regenerate.
libstdc++-v3:
* configure: Regenerate.
libvtv:
* configure: Regenerate.
lto-plugin:
* configure: Regenerate.
zlib:
* configure: Regenerate.
This commit imports stdarch 1.49.0 into libgrust/rustc-lib/stdarch. This
is necessary for compiling libcore, as libcore attempts to reuse some
files from stdarch.
libgrust/ChangeLog:
* rustc-lib/stdarch/.cirrus.yml: New file.
* rustc-lib/stdarch/.github/workflows/main.yml: New file.
* rustc-lib/stdarch/.gitignore: New file.
* rustc-lib/stdarch/CONTRIBUTING.md: New file.
* rustc-lib/stdarch/Cargo.toml: New file.
* rustc-lib/stdarch/LICENSE-APACHE: New file.
* rustc-lib/stdarch/LICENSE-MIT: New file.
* rustc-lib/stdarch/README.md: New file.
* rustc-lib/stdarch/ci/android-install-ndk.sh: New file.
* rustc-lib/stdarch/ci/android-install-sdk.sh: New file.
* rustc-lib/stdarch/ci/android-sysimage.sh: New file.
* rustc-lib/stdarch/ci/docker/aarch64-linux-android/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/arm-linux-androideabi/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/i586-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/i686-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/mips-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/mipsel-unknown-linux-musl/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/nvptx64-nvidia-cuda/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/s390x-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/wasm32-wasi/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/x86_64-linux-android/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile: New file.
* rustc-lib/stdarch/ci/docker/x86_64-unknown-linux-gnu/Dockerfile: New file.
* rustc-lib/stdarch/ci/dox.sh: New file.
* rustc-lib/stdarch/ci/gba.json: New file.
* rustc-lib/stdarch/ci/run-docker.sh: New file.
* rustc-lib/stdarch/ci/run.sh: New file.
* rustc-lib/stdarch/ci/runtest-android.rs: New file.
* rustc-lib/stdarch/ci/style.sh: New file.
* rustc-lib/stdarch/crates/assert-instr-macro/Cargo.toml: New file.
* rustc-lib/stdarch/crates/assert-instr-macro/build.rs: New file.
* rustc-lib/stdarch/crates/assert-instr-macro/src/lib.rs: New file.
* rustc-lib/stdarch/crates/core_arch/Cargo.toml: New file.
* rustc-lib/stdarch/crates/core_arch/LICENSE-APACHE: New file.
* rustc-lib/stdarch/crates/core_arch/LICENSE-MIT: New file.
* rustc-lib/stdarch/crates/core_arch/README.md: New file.
* rustc-lib/stdarch/crates/core_arch/avx512f.md: New file.
* rustc-lib/stdarch/crates/core_arch/build.rs: New file.
* rustc-lib/stdarch/crates/core_arch/rustfmt.toml: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/crc.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/crypto.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/neon/generated.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/neon/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/prefetch.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/test_support.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/tme.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/aarch64/v8.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/barrier/common.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/barrier/cp15.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/barrier/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/barrier/not_mclass.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/barrier/v8.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/dsp.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/ex.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/hints.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/registers/aarch32.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/registers/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/registers/v6m.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/registers/v7m.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/sat.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/acle/simd32.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/armclang.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/crc.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/neon/generated.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/neon/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/neon/table_lookup_tests.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/test_support.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/v6.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/arm/v7.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/core_arch_docs.md: New file.
* rustc-lib/stdarch/crates/core_arch/src/lib.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/macros.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/mips/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/mips/msa.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/mips/msa/macros.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/nvptx/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/powerpc/altivec.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/powerpc/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/powerpc/vsx.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/powerpc64/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/simd.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/simd_llvm.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/v64.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/wasm32/atomic.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/wasm32/memory.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/wasm32/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/wasm32/simd128.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/abm.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/adx.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/aes.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/avx.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/avx2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/avx512f.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/avx512ifma.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/bmi1.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/bmi2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/bswap.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/bt.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/cpuid.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/eflags.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/f16c.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/fma.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/fxsr.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/macros.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/pclmulqdq.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/rdrand.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/rdtsc.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/rtm.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sha.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse3.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse41.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse42.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/sse4a.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/ssse3.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/tbm.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/test.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86/xsave.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/abm.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/adx.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/avx.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/avx2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/avx512f.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/bmi.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/bmi2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/bswap.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/bt.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/fxsr.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/mod.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/rdrand.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/sse.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/sse2.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/sse41.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/sse42.rs: New file.
* rustc-lib/stdarch/crates/core_arch/src/x86_64/xsave.rs: New file.
* rustc-lib/stdarch/crates/core_arch/tests/cpu-detection.rs: New file.
* rustc-lib/stdarch/crates/simd-test-macro/Cargo.toml: New file.
* rustc-lib/stdarch/crates/simd-test-macro/src/lib.rs: New file.
* rustc-lib/stdarch/crates/std_detect/Cargo.toml: New file.
* rustc-lib/stdarch/crates/std_detect/LICENSE-APACHE: New file.
* rustc-lib/stdarch/crates/std_detect/LICENSE-MIT: New file.
* rustc-lib/stdarch/crates/std_detect/README.md: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/aarch64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/arm.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/mips.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/mips64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/powerpc.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/powerpc64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/arch/x86.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/bit.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/cache.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/error_macros.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/macros.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/mod.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/aarch64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/aarch64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/arm.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/auxvec.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/mod.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/powerpc.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/arm.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/cpuinfo.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/mips.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/mod.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/powerpc.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/other.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/windows/aarch64.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/os/x86.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/test_data/linux-rpi3.auxv: New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/test_data/linux-x64-i7-6850k.auxv:
New file.
* rustc-lib/stdarch/crates/std_detect/src/detect/test_data/macos-virtualbox-linux-x86-4850HQ.auxv:
New file.
* rustc-lib/stdarch/crates/std_detect/src/lib.rs: New file.
* rustc-lib/stdarch/crates/std_detect/src/mod.rs: New file.
* rustc-lib/stdarch/crates/std_detect/tests/cpu-detection.rs: New file.
* rustc-lib/stdarch/crates/std_detect/tests/macro_trailing_commas.rs: New file.
* rustc-lib/stdarch/crates/std_detect/tests/x86-specific.rs: New file.
* rustc-lib/stdarch/crates/stdarch-gen/Cargo.toml: New file.
* rustc-lib/stdarch/crates/stdarch-gen/README.md: New file.
* rustc-lib/stdarch/crates/stdarch-gen/neon.spec: New file.
* rustc-lib/stdarch/crates/stdarch-gen/src/main.rs: New file.
* rustc-lib/stdarch/crates/stdarch-test/Cargo.toml: New file.
* rustc-lib/stdarch/crates/stdarch-test/src/disassembly.rs: New file.
* rustc-lib/stdarch/crates/stdarch-test/src/lib.rs: New file.
* rustc-lib/stdarch/crates/stdarch-test/src/wasm.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/.gitattributes: New file.
* rustc-lib/stdarch/crates/stdarch-verify/Cargo.toml: New file.
* rustc-lib/stdarch/crates/stdarch-verify/arm-intrinsics.html: New file.
* rustc-lib/stdarch/crates/stdarch-verify/build.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/mips-msa.h: New file.
* rustc-lib/stdarch/crates/stdarch-verify/src/lib.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/tests/arm.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/tests/mips.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/tests/x86-intel.rs: New file.
* rustc-lib/stdarch/crates/stdarch-verify/x86-intel.xml: New file.
* rustc-lib/stdarch/examples/Cargo.toml: New file.
* rustc-lib/stdarch/examples/hex.rs: New file.
* rustc-lib/stdarch/examples/wasm.rs: New file.
* rustc-lib/stdarch/triagebot.toml: New file.
* rustc-lib/stdarch/vendor.yml: New file.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
This commit imports libcore 1.49.0 into a new directory,
"libgrust/rustc-lib/core". LICENSE-* files are taken from the rustc
1.49.0 repository root.
libgrust/ChangeLog:
* rustc-lib/LICENSE-APACHE: New file.
* rustc-lib/LICENSE-MIT: New file.
* rustc-lib/version-info: New file.
Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
gcc/rust/ChangeLog:
* checks/errors/borrowck/ffi-polonius/Cargo.lock: Regenerate.
* checks/errors/borrowck/ffi-polonius/Cargo.toml: Update to use source patching instead of
vendoring, lower edition to 2018.
* checks/errors/borrowck/ffi-polonius/vendor/log/Cargo.toml: Change edition to 2018.
* checks/errors/borrowck/ffi-polonius/vendor/log/src/lib.rs: Remove uses of unstable
feature.
* checks/errors/borrowck/ffi-polonius/.cargo/config.toml: Removed.
libgrust/ChangeLog:
* libformat_parser/Makefile.am: Avoid using --config as it is unsupported by cargo 1.49.
* libformat_parser/Makefile.in: Regenerate.
* libformat_parser/generic_format_parser/src/lib.rs: Use extension trait for missing
features.
* libformat_parser/src/lib.rs: Likewise.
* libformat_parser/.cargo/config: Moved to...
* libformat_parser/.cargo/config.toml: ...here.
libgrust/ChangeLog:
* libformat_parser/Cargo.toml: Change Rust edition from 2021 to 2018.
* libformat_parser/generic_format_parser/Cargo.toml: Likewise.
* libformat_parser/generic_format_parser/src/lib.rs: Remove usage of
then-unstable std features and language constructs.
* libformat_parser/src/lib.rs: Likewise, plus provide extension trait
for String::leak.
Compiling with Debian GNU/Linux 12 (bookworm) packages:
$ apt-cache madison cargo rustc
cargo | 0.66.0+ds1-1 | http://deb.debian.org/debian bookworm/main ppc64el Packages
cargo | 0.66.0+ds1-1 | http://deb.debian.org/debian bookworm/main Sources
rustc | 1.63.0+dfsg1-2 | http://deb.debian.org/debian bookworm/main ppc64el Packages
rustc | 1.63.0+dfsg1-2 | http://deb.debian.org/debian bookworm/main Sources
..., we run into:
Compiling libformat_parser v0.1.0 ([...]/source-gcc/libgrust/libformat_parser)
error[E0599]: no method named `leak` found for struct `std::string::String` in the current scope
--> src/lib.rs:396:18
|
396 | ptr: str.leak().as_ptr(),
| ^^^^ method not found in `std::string::String`
error[E0599]: no method named `leak` found for struct `std::string::String` in the current scope
--> src/lib.rs:434:7
|
434 | s.leak();
| ^^^^ method not found in `std::string::String`
error[E0599]: no method named `leak` found for struct `std::string::String` in the current scope
--> src/lib.rs:439:23
|
439 | ptr: cloned_s.leak().as_ptr(),
| ^^^^ method not found in `std::string::String`
Locally replace 1.72.0+ method 'leak' for struct 'std::string::String'.
libgrust/
* libformat_parser/src/lib.rs: Work around 'error[E0599]:
no method named `leak` found for struct `std::string::String` in the current scope'.
gcc/rust/ChangeLog:
* ast/rust-fmt.cc (ffi::RustHamster::to_string): New.
(Pieces::collect): Adapt to use new handle API.
(Pieces::~Pieces): Likewise.
(Pieces::Pieces): Likewise.
(Pieces::operator=): Likewise.
* ast/rust-fmt.h (struct RustString): Add members.
(struct FormatArgsHandle): New.
(clone_pieces): Adapt for new FFI API.
(destroy_pieces): Likewise.
(struct Pieces): Store new FormatArgsHandle type.
* expand/rust-expand-format-args.cc (expand_format_args): Use proper
namespace.
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): FormatArgs
nodes are already resolved, so do nothing.
libgrust/ChangeLog:
* libformat_parser/src/lib.rs: Use new Handle struct and expose it.
Workaround for Ubuntu 18.04, since we still use it for the GCC 4.8 CI.
The default Rust package is 1.65 (and unlikely to change I assume?),
but the generic format parser library uses `is_some_and` which was
introduced in 1.70. So this is a simple reimplementation, directly taken
from the standard library sources.
libgrust/ChangeLog:
* libformat_parser/generic_format_parser/src/lib.rs: Add IsSomeAnd<T>
trait, impl it for Option<T>.
gcc/rust/ChangeLog:
* ast/rust-fmt.cc (Pieces::collect): Fix signature to take ownership
of the given string.
* ast/rust-fmt.h (struct Pieces): Store parsed string in the struct.
libgrust/ChangeLog:
* libformat_parser/src/lib.rs: Add debug prompt.
This commits vendors and locks our dependencies so that our Rust components
do not need internet access to be built anymore. Tested in a docker container
with no network access.
We can think about merging the vendor directory once we have more than one
Rust component, e.g. when we add polonius to the mix.
libgrust/ChangeLog:
* libformat_parser/.cargo/config: New file.
* libformat_parser/vendor.NOTES: New file.
* libformat_parser/vendor/libc/.cargo-checksum.json: New file.
* libformat_parser/vendor/libc/CONTRIBUTING.md: New file.
* libformat_parser/vendor/libc/Cargo.toml: New file.
* libformat_parser/vendor/libc/LICENSE-APACHE: New file.
* libformat_parser/vendor/libc/LICENSE-MIT: New file.
* libformat_parser/vendor/libc/README.md: New file.
* libformat_parser/vendor/libc/build.rs: New file.
* libformat_parser/vendor/libc/rustfmt.toml: New file.
* libformat_parser/vendor/libc/src/fixed_width_ints.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/align.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/mod.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/no_align.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/riscv64.rs: New file.
* libformat_parser/vendor/libc/src/fuchsia/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/hermit/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/hermit/mod.rs: New file.
* libformat_parser/vendor/libc/src/hermit/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/lib.rs: New file.
* libformat_parser/vendor/libc/src/macros.rs: New file.
* libformat_parser/vendor/libc/src/psp.rs: New file.
* libformat_parser/vendor/libc/src/sgx.rs: New file.
* libformat_parser/vendor/libc/src/solid/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/solid/arm.rs: New file.
* libformat_parser/vendor/libc/src/solid/mod.rs: New file.
* libformat_parser/vendor/libc/src/switch.rs: New file.
* libformat_parser/vendor/libc/src/teeos/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/aix/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/aix/powerpc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b32/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/aarch64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/x86_64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/long_array.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/apple/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/errno.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs:
New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs:
New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs:
New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs:
New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/freebsdlike/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/sparc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mips64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/sparc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs: New file.
* libformat_parser/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/unix/haiku/b32.rs: New file.
* libformat_parser/vendor/libc/src/unix/haiku/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/haiku/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/haiku/native.rs: New file.
* libformat_parser/vendor/libc/src/unix/haiku/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/unix/hurd/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/hurd/b32.rs: New file.
* libformat_parser/vendor/libc/src/unix/hurd/b64.rs: New file.
* libformat_parser/vendor/libc/src/unix/hurd/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/hurd/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b32/arm.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b32/x86/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b32/x86/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/int128.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/aarch64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/riscv64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/riscv64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/x86_64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/b64/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/android/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/emscripten/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/emscripten/lfs64.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/emscripten/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/emscripten/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/generic/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/mips/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/powerpc/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/arch/sparc/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/arm/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/csky/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mips/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b32/x86/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/s390x.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/gnu/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/lfs64.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/musl/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/non_exhaustive.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/arm/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs:
New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mips/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/linux/uclibc/x86_64/other.rs: New file.
* libformat_parser/vendor/libc/src/unix/linux_like/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/aarch64/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/align.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/arm/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/espidf/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/generic.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/horizon/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/powerpc/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/newlib/vita/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/no_align.rs: New file.
* libformat_parser/vendor/libc/src/unix/nto/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/unix/nto/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/nto/neutrino.rs: New file.
* libformat_parser/vendor/libc/src/unix/nto/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/unix/redox/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/compat.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/illumos.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/mod.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/solaris.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/x86.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/unix/solarish/x86_common.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/aarch64.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/arm.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/mod.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/powerpc.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/powerpc64.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/x86.rs: New file.
* libformat_parser/vendor/libc/src/vxworks/x86_64.rs: New file.
* libformat_parser/vendor/libc/src/wasi.rs: New file.
* libformat_parser/vendor/libc/src/windows/gnu/align.rs: New file.
* libformat_parser/vendor/libc/src/windows/gnu/mod.rs: New file.
* libformat_parser/vendor/libc/src/windows/mod.rs: New file.
* libformat_parser/vendor/libc/src/windows/msvc/mod.rs: New file.
* libformat_parser/vendor/libc/src/xous.rs: New file.
* libformat_parser/vendor/libc/tests/const_fn.rs: New file.
* libformat_parser/vendor/unicode-xid/.cargo-checksum.json: New file.
* libformat_parser/vendor/unicode-xid/COPYRIGHT: New file.
* libformat_parser/vendor/unicode-xid/Cargo.toml: New file.
* libformat_parser/vendor/unicode-xid/LICENSE-APACHE: New file.
* libformat_parser/vendor/unicode-xid/LICENSE-MIT: New file.
* libformat_parser/vendor/unicode-xid/README.md: New file.
* libformat_parser/vendor/unicode-xid/benches/xid.rs: New file.
* libformat_parser/vendor/unicode-xid/src/lib.rs: New file.
* libformat_parser/vendor/unicode-xid/src/tables.rs: New file.
* libformat_parser/vendor/unicode-xid/src/tests.rs: New file.
* libformat_parser/vendor/unicode-xid/tests/exhaustive_tests.rs: New file.
Compile libformat_parser and link to it.
gcc/rust/ChangeLog:
* Make-lang.in: Compile libformat_parser.
* ast/rust-fmt.cc: New FFI definitions.
* ast/rust-fmt.h: Likewise.
* expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Call
into libformat_parser.
* expand/rust-macro-builtins.h: Define format_args!() handler proper.
libgrust/ChangeLog:
* libformat_parser/Cargo.lock: New file.
* libformat_parser/Cargo.toml: New file.
* libformat_parser/generic_format_parser/Cargo.toml: New file.
* libformat_parser/generic_format_parser/src/lib.rs: New file.
* libformat_parser/src/bin.rs: New file.
* libformat_parser/src/lib.rs: New file.
We'll need this value in the final binary, it should therefore be kept
explicit.
libgrust/ChangeLog:
* libproc_macro_internal/proc_macro.h (enum ProcmacroTag): Add
explicit value for proc macro tag enum.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
The function to get a literal from a string missed an implementation.
It did require a conversion function to achieve it, now that callback
system has been merged this function can be easily implemented.
gcc/rust/ChangeLog:
* expand/rust-proc-macro.cc (literal_from_string): Add callback
function.
(load_macros_array): Likewise.
libgrust/ChangeLog:
* libproc_macro/literal.cc (Literal__from_string): Add
implementation with call to constructor.
(Literal::make_literal): Add new constructor which calls the
callback.
* libproc_macro/literal.h: Add new constructor's
prototype.
* libproc_macro/proc_macro.cc (bridge_is_available):
Change symbol name to match convention.
* libproc_macro/registration.h: Add lit_from_str
symbol.
* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
Change symbol name to disambiguate with literal from string.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Initially a typedef was used to easily get the callback function pointer
type. Since this type has changed to a simpler well defined type, this
using declaration has no more purpose.
libgrust/ChangeLog:
* libproc_macro/proc_macro.cc: Remove type alias.
* libproc_macro/registration.h: Likewise.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
This function prototype was forgotten when the function was deleted.
libgrust/ChangeLog:
* libproc_macro/proc_macro.h (proc_macro_register_from_str):
Remove rogue function prototype.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
There was no need to register a function when the value could be
registered directly.
gcc/rust/ChangeLog:
* expand/rust-proc-macro.cc (available): Remove function.
(load_macros_array): There was no need for an indirection here.
libgrust/ChangeLog:
* libproc_macro/proc_macro.cc (not_available): Remove
function.
* libproc_macro/proc_macro.h (not_available): Remove
function prototype.
* libproc_macro/registration.h: Change symbol type.
* libproc_macro/bridge.h: New file.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>