Hi Guillem,

On 3/4/21 5:55 AM, Guillem Jover wrote:
Hi!

On Sun, 2021-01-24 at 23:36:52 +0300, Alexey Brodkin wrote:
Package: dpkg
Version: 1.19.7ubuntu3-1~202101232134~ubuntu20.04.1
Severity: wishlist
Tags: patch

ARC architecture seem to match requirements for being added to the dpkg
(https://wiki.debian.org/Teams/Dpkg/FAQ#Q._Can_we_add_support_for_new_dpkg_architectures.3F):

  * GNU triplet is there since 2013,
    see: 
https://git.savannah.gnu.org/cgit/config.git/commit/?id=986360de6e412cbed27dbe2dbfb64ddbd18e7370
  * Binutils, GCC & uClibc support ARC for many years now,
    glibc 2.32 finally gained ARC support, see 
https://lists.gnu.org/archive/html/info-gnu/2020-08/msg00002.html

Sorry, didn't reply up to now due to the freeze, this not looking
ready yet (as glibc is not even in Debian), but mostly because it
slipped my mind, but that kind of blocks progress on your side.
So let's see. :)

Or, were you looking to get this included for bullseye? (I think this
would not qualify, but, I think we might have done exceptions in such
cases in the past.)

We don' have a timelime, but the sooner the better ;-)
I just want to flush out any missing pieces from ARC side of the things.

Is the ABI fully stabilized now?

It is. One thing to note is that ARC follows the 64-bit time_t/offsets, for 32-bit arches, enabled by glibc 2.32 (and that is the only glibc ABI we support). FWIW RV32 being th eonly other 32-bit arch (so far) to do that. I'm not sure if the debian ecosystem is prepared for this in general (for 32-bit arches). At the time fixes were neede in simplest of things like busybox so I'm wondering if what support if needed elsewhere or is it there already.


>From 96523e18473b56743bf2f7d308c2d786f337e52e Mon Sep 17 00:00:00 2001
From: Alexey Brodkin <abrod...@synopsys.com>
Date: Sun, 24 Jan 2021 00:34:52 +0300
Subject: [PATCH] Add ARC architecture

diff --git a/data/cputable b/data/cputable
index 9f2a8e0e4..114a66ecb 100644
--- a/data/cputable
+++ b/data/cputable
@@ -20,6 +20,8 @@ i386          i686            (i[34567]86|pentium)    32      
little
  ia64          ia64            ia64                    64      little
  alpha         alpha           alpha.*                 64      little
  amd64         x86_64          (amd64|x86_64)          64      little
+arc            arc             arc.*                   32      little
+arceb          arc             arceb.*                 32      big
  armeb         armeb           arm.*b                  32      big
  arm           arm             arm.*                   32      little
  arm64         aarch64         aarch64                 64      little

This looked incorrect, as it ends up not being a bijective relation,
so the lines need to be swapped. The problem is that the comments do
not explain this nor the test suite checks. So I improved both with the
attached patches, which I'll commit into master once I open it up for
1.21.x.

Thx. We are debian noobs so please feel free to massage them for correctness and/or feel free to ask us to rework.


Also just to make sure, the GNU triplets are:

   arc-linux-gnu
   arceb-linux-gnu
No ABI modifiers (stuff like “eabi”) for the libc part (“gnu“) right?

Actually it seems we are missing hardfloat here: ARC glibc/gcc support it very well and should be default for any reasonable performance.

So I think we should add
    arc-linux-gnuhf
    arceb-linux-gnuhf

BTW I have oce question: where does one select what default toggles to build the entire software stack with (say -mcpu etc). Does this rely on toolchain driver default to DRTH. One of my problems with rebootstrap was gcc driver defaulting to our legacy cpu. I've cured it there (and planning to upstream the gcc driver patch).

Thx,
-Vineet

Reply via email to