Adding armv5te-unknown-linux-uclibcgnueabi as a new built-in target


I was wondering what exactly needs to be done to add built-in target support for armv5te-unknown-linux-uclibcgnueabi. It's a pretty common target used by many devices like routers and IP cameras. There is already a Tier 3 support for mips(el)-unknown-linux-uclibc, so I guess it shouldn't be that difficult.

Currently, I'm using this custom target specification:

  "abi-blacklist": [
  "arch": "arm",
  "data-layout": "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64",
  "dynamic-linking": true,
  "env": "uclibc",
  "executables": true,
  "features": "+soft-float,+strict-align",
  "has-elf-tls": true,
  "has-rpath": true,
  "is-builtin": false,
  "linker-flavor": "gcc",
  "linker-is-gnu": true,
  "llvm-target": "armv5te-unknown-linux-uclibcgnueabi",
  "max-atomic-width": 32,
  "os": "linux",
  "position-independent-executables": true,
  "pre-link-args": {
    "gcc": [
  "post-link-args": {
    "gcc": [
  "relro-level": "full",
  "target-c-int-width": "32",
  "target-endian": "little",
  "target-family": "unix",
  "target-mcount": "\u0001__gnu_mcount_nc",
  "target-pointer-width": "32",
  "vendor": "unknown"

It's mostly a copy-paste of armv5te-unknown-linux-gnueabi. I've tested it on a quite complex application that uses tokio and everything seems to be working. I'm using Rust nightly with this in my .cargo/config:

build-std = ["core", "std", "alloc", "proc_macro", "panic_abort"]
build-std-features = ["panic_immediate_abort"]

I can even create a PR if needed.

I think a PR is fine.

Thanks. I'm not sure what exactly needs to be done though. Is it enough to just create another module like this one?

Yes, that is what you need to do.

Good. Thank you.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.