docker-library / busybox

Docker Official Image packaging for Busybox
http://busybox.net
396 stars 127 forks source link

What should I do with busybox image running on MIPS platform? #71

Closed XiaodongLoong closed 4 years ago

XiaodongLoong commented 4 years ago

Hi everyone, I want to make busybox image on MIPS platform. I want to learn some experience about making busybox image on a new platform. And we will submit the busybox image to the official image warehouse after making successfully and testing completely. I think that we can cooperate on this and I need your help. Thanks!

tianon commented 4 years ago

I think the first hurdle is hardware availability: https://github.com/docker-library/official-images/issues/6709

We're working with @wanghuaiqing2010 to resolve that, but it's somewhat entangled (from a legal perspective).

With hardware available, the challenge from the perspective of this repository will be getting some of the */Dockerfile.builder images building successfully on the MIPS platform (which will require alpine and/or debian images available).

tianon commented 4 years ago

When configuring Buildroot to target uClibc for mips64le, is anything besides BR2_mips64el=y necessary? For example, do we need to specify a particular instruction variant?

See our 32bit ARM variants for an example of what I mean:

https://github.com/docker-library/busybox/blob/49ea4fec27a234d7e9657dcced334f1bb8a9da04/uclibc/Dockerfile.builder#L80-L108

Some potential examples:

Target Architecture Variant
> 1. Generic MIPS64 (BR2_mips_64) (NEW)
  2. Generic MIPS64R2 (BR2_mips_64r2) (NEW)
  3. Generic MIPS64R3 (BR2_mips_64r3) (NEW)
  4. Generic MIPS64R5 (BR2_mips_64r5) (NEW)
  5. Generic MIPS64R6 (BR2_mips_64r6) (NEW)
  6. I6400 (BR2_mips_i6400) (NEW)
  7. Octeon II (BR2_mips_octeon2) (NEW)
  8. Octeon III (BR2_mips_octeon3) (NEW)
  9. P6600 (BR2_mips_p6600) (NEW)
Target ABI
> 1. n32 (BR2_MIPS_NABI32) (NEW)
  2. n64 (BR2_MIPS_NABI64) (NEW)
Use soft-float (BR2_MIPS_SOFT_FLOAT) [Y/n/?]
tianon commented 4 years ago

If we're matching how Debian defines mips64el ("The 'mips64el' port is a 64-bit little endian port using the N64 ABI, hardware floating point and the MIPS64R2 ISA." from https://wiki.debian.org/MIPSPort), we probably want BR2_mips_64r2=y, BR2_MIPS_NABI64=y, and BR2_MIPS_SOFT_FLOAT=n.