• Debian gör loong64 till officiellt stödd arkitektur i Debian 14

    När Debian officiellt gör loong64 till en fullt stödd arkitektur tas ett historiskt steg för både projektet och den kinesiska processorplattformen LoongArch. Efter mer än två års arbete i Debian Ports är loong64 nu på väg in i huvudutgåvan Debian 14 Forky, där den kommer att omfattas av samma byggsystem, säkerhetsuppdateringar och långsiktiga stöd som Debians övriga arkitekturer. Beslutet markerar inte bara teknisk mognad, utan också Debians fortsatta ambition att stödja öppna och alternativa hårdvaruplattformar på global nivå.

    Efter drygt två års arbete har Debian officiellt befordrat arkitekturen loong64 från Debian Ports till fullvärdig, stödd arkitektur. Om det återstående integrationsarbetet fortlöper enligt plan kommer loong64 att ingå i den kommande versionen Debian 14, med kodnamnet Forky.

    Beskedet offentliggjordes på e-postlistan debian-devel-announce. Med officiell status följer loong64 nu samma bygg-, release- och säkerhetsprocesser som Debians övriga huvudarkitekturer.

    Vad är loong64

    Loong64 är 64-bitarsvarianten av instruktionsuppsättningen LoongArch, som utvecklas av det kinesiska företaget Loongson. Arkitekturen är framtagen som ett alternativ till etablerade plattformar som x86 och ARM, med fokus på teknologisk självständighet.

    Genom Debians officiella stöd får LoongArch-baserade system tillgång till ett stort, väletablerat ekosystem av fri programvara.

    Så gick uppstarten till

    Arbetet med loong64 inleddes i Debian Ports, där nya och experimentella arkitekturer utvecklas. För att komma igång krävdes ett manuellt grundarbete. Totalt byggdes och importerades 112 paket, vilket var tillräckligt för att skapa en fungerande chroot-miljö och sätta den första automatiska byggservern, en så kallad buildd, i drift.

    Redan under sin första natt byggde och laddade denna enda buildd upp omkring 300 nya paket, ett tydligt tecken på att infrastrukturen fungerar väl.

    Vad händer härnäst

    Den pågående bootstrap-fasen, där hela Debians paketarkiv successivt byggs för den nya arkitekturen, beräknas ta ungefär en vecka. Tidsåtgången beror på om fler byggservrar kopplas in, vilket i så fall skulle öka byggtakten avsevärt.

    När arkivet nått tillräcklig täckning kommer loong64 att behandlas som vilken annan officiell Debian-arkitektur som helst. Det innebär deltagande i alla release-milstolpar, tillgång till officiell installerare samt långsiktigt säkerhets- och underhållsstöd under hela Debian 14:s livscykel.

    Varför detta är betydelsefullt

    Att loong64 nu får officiell status är viktigt både tekniskt och strategiskt. För Debian innebär det ökad arkitekturmångfald och en förstärkt roll som global och hårdvaruneutral Linux-distribution. För LoongArch-plattformen betyder det tillgång till tusentals färdigpaketerade program och ett stort internationellt utvecklar- och användarsamfund.

    Sammanfattning

    Befordran av loong64 från Debian Ports till officiellt stöd visar hur ett öppet projekt kan utveckla och integrera helt nya processorarkitekturer på produktionsnivå. Om allt går enligt plan blir Debian 14 Forky den första Debian-utgåvan där LoongArch får samma status som etablerade arkitekturer som x86, ARM och RISC-V.

    Faktaruta: LoongArch (loong64 i Debian)

    LoongArch är en RISC-instruktionsuppsättning (ISA) från Loongson. I Debian kallas 64-bitarsvarianten loong64 (motsvarar LA64) och är nu på väg in som officiellt stödd arkitektur i Debian 14.

    Fördelar

    • Fristående ISA (inte x86/ARM) som ger en alternativ CPU-plattform med egen utvecklingslinje.
    • Uppströms Linux-stöd (LoongArch kom in som ny arkitektur i Linux 5.19), vilket ger bättre långsiktighet än “out-of-tree”-patchar.
    • Stöd i verktygskedjan: GCC har LoongArch-stöd sedan 12.1, och Rust-plattformen för loongarch-linux anger Linux 5.19 som miniminivå.
    • Debian-stöd innebär automatiska byggbyggen (buildd), säkerhetsflöden och vanliga release-milstolpar.

    CPU:er som använder LoongArch (exempel)

    • Loongson 3A5000 (desktop/”general purpose”, LA464-kärnor).
    • Loongson 3C5000 (server, 16 LA464-kärnor).
    • Loongson 3A6000 (finns bl.a. som industrial-grade-variant, LA664-mikroarkitektur).
    • Nyare serverfamilj 3C6000/derivat har visats offentligt i medier (serverfokus, många kärnor).
    • Nyare “terminal/mobil/industri”-kretsar som 2K3000 och 3B6000M har nämnts av Loongson/press (inbyggt/edge/laptop-inriktning).

    Bra att känna till

    • LoongArch finns i flera varianter: LA32R, LA32S och LA64.
    • Program måste vara kompilerade för loong64/LA64 (binärkompatibilitet med x86/ARM finns inte).
    • Ekosystemet växer snabbt, men täckningen kan variera per distro och paket beroende på portningsstatus.

    Källor (urval): Debian-annonseringen om loong64 som officiell arkitektur, Linux-kärnans LoongArch-dokumentation (v5.19), GCC/nyhetsnotiser om LoongArch-stöd, samt Loongsons produktsidor för 3A5000/3C5000/3A6000 och press om 3C6000/2K3000/3B6000M.

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer.

    Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för C-språket) och GDB (GNU Debugger – felsökningsverktyg) utgör Binutils kärnan i den öppna GNU-verktygskedjan som driver stora delar av Linux-världen.

    Den nya versionen innehåller både grundläggande förbättringar och omfattande stöd för nya processorinstruktioner i arkitekturer som RISC-V, Arm v9.6, LoongArch och x86.

    Mer pålitliga stackspårningar med SFrame

    En av de mest tekniskt betydelsefulla nyheterna är förbättringarna i SFrame, ett format för att lagra komprimerad information om funktionsanrop och returadresser.

    När ett program kraschar eller behöver analyseras kan utvecklare använda stack traces (anropsstackar) för att se exakt var i koden något gick fel. Med SFrame i version 2 blir denna information mer kompakt och samtidigt mer exakt, vilket särskilt gynnar verktyg som körs utanför själva processen (till exempel felsökningsverktyg som analyserar kärndumpar).

    I och med version 2.45:

    • GAS (GNU Assembler – översättare från assemblerkod till maskinkod) genererar nu SFrame-sektioner med SHT_GNU_SFRAME-typen och flaggan SFRAME_F_FDE_FUNC_START_PCREL som standard.
    • IBM\:s s390x-plattform (64-bitars version av stordatorarkitekturen System/390) får för första gången möjlighet att generera SFrame direkt från CFI-direktiv (Call Frame Information – metadata som beskriver hur stackramar byggs upp och återställs).

    Nya verktyg direkt i assemblerkoden

    Utvecklare får även två nya direktiv:

    • .errif – kastar ett felmeddelande vid ett visst villkor.
    • .warnif – ger en varning vid ett visst villkor.

    Villkoren utvärderas först när filen är helt assemblerad, vilket gör det möjligt att samla in mer kontext innan felmeddelandet visas. Detta är användbart i stora kodbaser eller firmwareprojekt.

    RISC-V tar flera steg framåt

    RISC-V är en öppen processorinstruktionsuppsättning (ISA – Instruction Set Architecture) som kan användas royaltyfritt av tillverkare. Den växer snabbt i betydelse, och Binutils 2.45 bygger ut stödet rejält:

    • Stöd för Privileged Specification v1.13 – den del av RISC-V-specifikationen som reglerar hur operativsystem och hårdvara kommunicerar på låg nivå.
    • Tre nya profiler (20, 22 och 23) som definierar färdiga kombinationer av instruktionstillägg.
    • Nytt direktiv .bfloat16 – hantering av 16-bitars flyttal i formatet Brain Floating Point, populärt i maskininlärning.
    • Stöd för en lång lista av standardtillägg som exempelvis:
    • sha – hårdvaruacceleration för SHA-kryptografi.
    • zce – komprimerade instruktioner för inbyggda system.
    • smrnmi – säker maskinvaruhantering av icke-maskerbara avbrott.
    • Stöd för leverantörsspecifika tillägg, bland annat från:
    • T-Head (Alibaba Groups processordivision): xtheadvdot – specialinstruktioner för vektorberäkningar.
    • MIPS: instruktioner som förbättrar minnesoperationer och kontrollflöde.

    En viktig förändring är också att $x-mappningssymboler nu ersätts med \$x för att bättre ange vilken ISA de tillhör. Detta kan kräva att viss äldre RISC-V-kod byggs om.

    Arm v9.6 – försprång till framtida CPU-funktioner

    För Arm tillkommer flaggan -march=armv9.6-a i assemblern. Den aktiverar redan nu stöd för kommande instruktioner som väntas i kommersiella processorer från slutet av 2025 och framåt.

    Några exempel:

    • +sme2p2 – nästa generation av Scalable Matrix Extension, för maskininlärning och vektorberäkningar.
    • +ssve-aes – effektivare AES-kryptering med Scalable Vector Extension (SVE).
    • +f8f32mm – snabbare matrismultiplikation med 8-bitars och 32-bitars flyttal.

    x86 och LoongArch – små men viktiga uppdateringar

    x86-sidan:

    • Stöd för Zhaoxin PadLock XMODX – en uppsättning kryptografiska instruktioner i vissa kinesiska x86-processorer.
    • Borttagning av stöd för 256-bitars varianten av AVX10.2-avrundningsinstruktioner – eftersom alla berörda CPU\:er redan stöder 512-bitarsvarianten.

    För LoongArch (en kinesisk processorarkitektur):

    • Nya alias för vissa 32-bitars instruktionsvarianter.
    • Förbättrade varningar när .align-direktiv eller matematiska uttryck riskerar att ge fel (till exempel negativa skiftningar eller division med noll).

    Slutsats

    GNU Binutils 2.45 är en ovanligt stor uppdatering – särskilt för dem som utvecklar kod nära hårdvaran. Den stärker debugmöjligheterna, inför nya verktyg i själva assemblern och ger utvecklare tillgång till nästa generations processorfunktioner redan idag.

    För RISC-V betyder det här ett bredare och mer komplett verktygsstöd, för Arm öppnar det dörren till framtida vektor- och krypteringsförbättringar, och för både x86 och LoongArch handlar det om små men värdefulla optimeringar

    https://www.gnu.org/software/binutils

    GNU Binutils 2.45 — Tekniska begrepp & förkortningar
    Binutils
    Samling lågnivåverktyg (bl.a. as, ld, objdump, readelf) för objektfiler, bibliotek och länkningssteg.
    GAS
    GNU Assembler – översätter assembler till maskinkod/ELF; i 2.45 genererar GAS SFrame V2 per default.
    ELF
    Executable and Linkable Format – standard för binärformat på Unix-lika system; sektioner, symboltabeller, relokerings-poster m.m.
    SFrame (V2)
    Kompakt stack-unwindformat för out-of-process stacktracing; lagrar återställningsregler per funktion utan full DWARF-overhead.
    SHT_GNU_SFRAME
    ELF-sektionstyp som identifierar SFrame-data; gör att verktyg kan hitta och tolka SFrame deterministiskt.
    SFRAME_F_FDE_FUNC_START_PCREL
    Header-flagga som anger att funktionsstart i FDE (Frame Description Entry) är PC-relativ – robustare symbolik/relokering.
    CFI
    Call Frame Information – metadata (ofta via .cfi_*) som beskriver stackramar; kan nu syntetiseras till SFrame på s390x.
    s390x
    64-bitars IBM Z/System z-ISA; Binutils 2.45 kan generera SFrame direkt från CFI för bättre felsökning på mainframe.
    .errif / .warnif
    GAS-direktiv som utvärderar villkor vid filslut och emitterar fel/varning; bra för policy-kontroller i firmware/SDK-träd.
    AArch64 sysregs
    Systemregister i 64-bitars Arm; 2.45 kan assemblera samtliga utan extra spärrar (-menable-sysreg-checking av).
    RISC-V ISA
    Öppen instruktionsuppsättning; 2.45 stödjer Privileged Spec v1.13, profiler 20/22/23, och ett brett spektrum av extensions.
    Privileged v1.13
    Spec för trap/CSR/virt mm. (OS-nivå); uppdaterade regler för maskin-/supervisor-lägen och delegationsvägar.
    Profiler 20/22/23
    Kuraterade paket av extension-kombinationer för definierade “capability tiers”; förenklar toolchain-målsättning.
    .bfloat16
    Assemblerliteral för Brain Float 16 (8-bit exponent, 7-bit mantissa+sign); nyttjas i ML-kernels på RVV/SME-lika enheter.
    $x → $x<isa>
    RISC-V-mappingsymbol byter semantik: explicit ISA-tagg per kodö i stället för implicit ärvning; kan kräva ombyggnad.
    Standard-ext.
    sha (SHA-accel), zce (compressed embedded), ssqosid/ssnpm/smnpm/smmpm/sspm/supm (privilege mgmt/QoS), ssccfg, svvptc (virt/ptc), zilsd/zclsd (load/store dags), smrnmi (RM-NMI) m.fl.
    Vendor-ext.
    T-Head: xtheadvdot (vektordot-ops). MIPS: xmipscbop, xmipscmov, xmipsexectl, xmipslsp (kontroll/mem-primitiver).
    Armv9.6-A
    -march=armv9.6-a aktiverar bl.a. +sme2p2 (SME v2p2), +ssve-aes (SVE-optimerad AES), +f8f16mm/+f8f32mm (FP8-matrismul), +sve2p2, m.fl. för pre-silicon-validering.
    SVE/SME
    Scalable Vector Extension / Scalable Matrix Extension – vektor- och matrisaccel med vektorlängds-agnostisk semantik.
    x86 XMODX
    Zhaoxin PadLock XMODX – nya kryptoinstruktioner. Samtidigt tas 256-bitars AVX10.2-rounding path bort (512-bit antas).
    AVX10.2
    Advanced Vector Extensions 10.2 – uniform ISA över 128–512b; 2.45 slopar en äldre 256b-avrundningskodväg.
    LoongArch
    Kinesisk RISC-ISA; 2.45 lägger till LA32R-alias (rdcntvl.w, rdcntvh.w, rdcntid.w) och striktare uttrycksdiagnostik.
    .align (3:e arg)
    Max bytes att hoppa; 2.45 varnar på out-of-range. Extra kontroller för negativa shifts och /% med noll.
    Tips: Aktivera SFrame-emission i byggkedjan och validera med readelf --sections och objdump --sframe där stöds.

    Källa :

    https://linuxiac.com/gnu-binutils-2-45-expands-risc-v-support

Etikett: LoongArch

  • Debian gör loong64 till officiellt stödd arkitektur i Debian 14

    När Debian officiellt gör loong64 till en fullt stödd arkitektur tas ett historiskt steg för både projektet och den kinesiska processorplattformen LoongArch. Efter mer än två års arbete i Debian Ports är loong64 nu på väg in i huvudutgåvan Debian 14 Forky, där den kommer att omfattas av samma byggsystem, säkerhetsuppdateringar och långsiktiga stöd som…

  • GNU Binutils 2.45 – Stort lyft för RISC-V och nya funktioner för flera arkitekturer

    GNU-projektet har släppt version 2.45 av GNU Binutils, en samling viktiga kommandoradsverktyg för lågnivåprogrammering. Binutils används för att skapa, analysera och manipulera objektfiler (mellanformatet som kompilatorer producerar innan det blir körbara program), bibliotek och färdiga exekverbara filer. Tillsammans med GCC (GNU Compiler Collection – GNU:s samling av kompilatorer), glibc (GNU C Library – standardbibliotek för…