From 729d6d55ea84494f0398d02450bd29c39c55f0bd Mon Sep 17 00:00:00 2001 From: liuxiang Date: Wed, 21 Feb 2024 12:03:17 +0800 Subject: [PATCH] Add support for LoongArch. Signed-off-by: liuxiang --- generator/actions_core.ml | 8 ++++++++ lib/appliance-cpu.c | 3 +++ test-data/Makefile.am | 2 ++ test-data/binaries/Makefile.am | 2 ++ test-data/binaries/bin-loongarch64-dynamic | Bin 0 -> 20352 bytes test-data/binaries/lib-loongarch64.so | Bin 0 -> 19320 bytes 6 files changed, 15 insertions(+) create mode 100644 test-data/binaries/bin-loongarch64-dynamic create mode 100644 test-data/binaries/lib-loongarch64.so diff --git a/generator/actions_core.ml b/generator/actions_core.ml index 8fb5a665a..80c830239 100644 --- a/generator/actions_core.ml +++ b/generator/actions_core.ml @@ -9383,6 +9383,8 @@ with large files, such as the resulting squashfs will be over 3GB big." }; [["file_architecture"; "/bin-ppc64le-dynamic"]], "ppc64le"), []; InitISOFS, Always, TestResultString ( [["file_architecture"; "/bin-riscv64-dynamic"]], "riscv64"), []; + InitISOFS, Always, TestResultString ( + [["file_architecture"; "/bin-loongarch64-dynamic"]], "loongarch64"), []; InitISOFS, Always, TestResultString ( [["file_architecture"; "/bin-s390x-dynamic"]], "s390x"), []; InitISOFS, Always, TestResultString ( @@ -9405,6 +9407,8 @@ with large files, such as the resulting squashfs will be over 3GB big." }; [["file_architecture"; "/lib-ppc64le.so"]], "ppc64le"), []; InitISOFS, Always, TestResultString ( [["file_architecture"; "/lib-riscv64.so"]], "riscv64"), []; + InitISOFS, Always, TestResultString ( + [["file_architecture"; "/lib-loongarch64.so"]], "loongarch64"), []; InitISOFS, Always, TestResultString ( [["file_architecture"; "/lib-s390x.so"]], "s390x"), []; InitISOFS, Always, TestResultString ( @@ -9464,6 +9468,10 @@ Intel Itanium. 64 bit Power PC (little endian). +=item \"loongarch64\" + +64 bit LoongArch64 (little endian). + =item \"riscv32\" =item \"riscv64\" diff --git a/lib/appliance-cpu.c b/lib/appliance-cpu.c index 57745973c..8ce5084b0 100644 --- a/lib/appliance-cpu.c +++ b/lib/appliance-cpu.c @@ -87,6 +87,9 @@ guestfs_int_get_cpu_model (int kvm) #elif defined(__riscv) /* qemu-system-riscv64 (7.0) doesn't yet support -cpu max */ return NULL; +#elif defined(__loongarch64) + /* qemu-system-loongarch64 doesn't yet support -cpu max */ + return NULL; #else /* On most architectures we can use "max" to get the best possible CPU. * For recent qemu this should work even on TCG. diff --git a/test-data/Makefile.am b/test-data/Makefile.am index 12ec938e4..88cf4d5cc 100644 --- a/test-data/Makefile.am +++ b/test-data/Makefile.am @@ -38,6 +38,7 @@ image_files = \ $(srcdir)/binaries/bin-ppc64-dynamic \ $(srcdir)/binaries/bin-ppc64le-dynamic \ $(srcdir)/binaries/bin-riscv64-dynamic \ + $(srcdir)/binaries/bin-loongarch64-dynamic \ $(srcdir)/binaries/bin-s390x-dynamic \ $(srcdir)/binaries/bin-sparc-dynamic \ $(srcdir)/binaries/bin-win32.exe \ @@ -51,6 +52,7 @@ image_files = \ $(srcdir)/binaries/lib-ppc64.so \ $(srcdir)/binaries/lib-ppc64le.so \ $(srcdir)/binaries/lib-riscv64.so \ + $(srcdir)/binaries/lib-loongarch64.so \ $(srcdir)/binaries/lib-s390x.so \ $(srcdir)/binaries/lib-sparc.so \ $(srcdir)/binaries/lib-win32.dll \ diff --git a/test-data/binaries/Makefile.am b/test-data/binaries/Makefile.am index 3e5cec8f2..f2da92107 100644 --- a/test-data/binaries/Makefile.am +++ b/test-data/binaries/Makefile.am @@ -27,6 +27,7 @@ EXTRA_DIST = \ bin-ppc64-dynamic \ bin-ppc64le-dynamic \ bin-riscv64-dynamic \ + bin-loongarch64-dynamic \ bin-s390x-dynamic \ bin-sparc-dynamic \ bin-win32.exe \ @@ -40,6 +41,7 @@ EXTRA_DIST = \ lib-ppc64le.so \ lib-mipsel.so \ lib-riscv64.so \ + lib-loongarch64.so \ lib-s390x.so \ lib-sparc.so \ lib-win32.dll \ diff --git a/test-data/binaries/bin-loongarch64-dynamic b/test-data/binaries/bin-loongarch64-dynamic new file mode 100644 index 0000000000000000000000000000000000000000..645a5744a8eea77df243e5268264c2e0dcba0afb GIT binary patch literal 20352 zcmeHPU2Ggz6+W|@G)dzocH1~1320NOv_bX8`B4;p+OFf>*cOiCIw?(gU_9Pk#|!IS zYj+&%sG?idAS$e?MNoL)AumxYL{O0s;(>yhKAg(c#@^~ok|!WE+14oNQ_XV4oxkh;>I?kLt-G}Cu2=L zV%k&Rj7s#M)$zbjRPh^DzhU)*{GARA63-{kCfBUSi_09hNr4nwDbs)Ui&9_G=ZMRL zffX_Lroitp_LFgb+|sXxGumG-UT*61L8?keD&@J8CyrE#LzQxMd1a_lt5q*~^}@nX zW$EOJVy02c9F;C)eE0Ju^F228IK6xI;-jxUJ@EV=_TT>Eo4X(S!SA#0&x(zVM`DYO z6q)1uf||LB|4!9+u)JIAy#%-r8f8u-Hm+Viz3?R6LwFy;Hc8q=6`iLj-cK)d#RqA+ z8MZX_B<-b(G5ld}N}1-!U7q3I2x626df-noo-!tpyKpN$n~Ll5%of~+@6~;G(JNQU zbqgz=J72DPmGYGmd2_Y8PhupKe3Hf{Cr*#L$1=xHk~?wXtXnMAOP9(Gzf`|)cC=Ef zmM(a6m6B=e+7cOpLka$qyD1LW(_F=R{pE`<@zf^hn6~3Rmh~a!gz}!&_Z0XIT@a_5 zfmyH~r8cSdm>1YXPpQ3(2Wv|F(jh!N)x#ki-vY7EhHzQGDC132llb8^-LJU32Vs1d zLkF+FHb8HV+)7`6tetpcX0n318z%pPNunbrRECZGS%YbFT zGGH073|Iy%1C{~HfMvikU>UFsSOzQumI2FvWxz6E8L$jk1}p=X0n318z%pPNunbrR zECZGS%YbFTGGH073|Iy%1C{~HfMwwSngQffB7aiyPo+psrj$<@LCC{ApgM9N_p6S4 zOvzi5f_BOMmGX)veE#iDyC(WyR7b9NzZxP3bGv4^AvdxiPF#>9EctR$_88H*cM{{8 z2GVW__V=qLays{_{v#a-@Rp7T&+)d}A-5Cp{@FIq!_9#yr|<>OcUAp4eJ{|#>-(y& zY5PA^S5m@0f|IM(asVDiZ+}9QV`1$b?DcN~zOG#j_;(J(*#$XP<}t&b2;U};Y|KGpHFEVe0LG&JAwV?d3l-f zZsYIuTt5rq^wZn;kfDPfaef`xf6$Jv!?yx_^L)Ld_VM-b9^*ut*P%?5(`7yEWTG6N z$M`xq#CS?V#md8scRLs1D~$Kk;HL8xydL&-#s@;@I^eteOb}-;%{HSQe>aG;@jlLK z^S9OhV$A+~YLD+{O6`BhIO+-o;^&M%5C%{`U#R;>Gc`V)!J8|)zITZjX!y(X^O*u| zoWbDwi*7+qVQ8>rvF2W?)aJa3Tl8!7hU+b_P@%TCR4MtTVrICzg`E6QcD;JtTXjoS zzrITIb#Jlc7MB+nSJ@?`xoqi2O#M>B=kd7inVFHZc{e|mb6s+$XU>i0bC1vD-N}im zFO7`l-3ue9C-dCm78^Bp!K)VK#E9IJQzK_5Mj7Q(LEQYf1{u%IFvN#TAl%sGxzi() z?zuB(&gU<5LVeU(6!9}Ivf)E4N=482%rO@ceBvCRicu_A-Q`B9NX!M_+_^@>oRvZ5 ztPJV3>nRt}Q#8VXDbrY8^u0Nje%;6g)XG&pM`MXH)tX<*T&gZ-=9bHR=1RG!(8%eD zA({K2ZNY0SP^P$A<#=6@D@kjoG3Muee2CNLa}Kos|71zaqhT3K9wX z2FM2m3>C2rmrt`IpF(UOX0-zOnXoa}@jU>1k}F|<>_Z?^FjN`$A7@;)T<9PB709gm z;olARn~0O+_P_HU5&qaWLmuqmuP{wQ$XH%Q1 literal 0 HcmV?d00001 diff --git a/test-data/binaries/lib-loongarch64.so b/test-data/binaries/lib-loongarch64.so new file mode 100644 index 0000000000000000000000000000000000000000..92ba696580b3943bd6e4dad11d25b4acb18c8737 GIT binary patch literal 19320 zcmeHPPiP!f82@%R{hzj}sExIiE%vY}bd0rN>_I0@HfbyOWrB z&=D&15FrMB*-l~rmcVz(pFJ|+sc>! ztkV5ATV-8$=^J#-R{l5(!7Xdtvc^Hq>UhZQ3Pv3)hnVeT}{wFvLp7V*_YJ*usF1V zUB-|M2cqtbOpZCZd^LZuQ1kND$+3ZArJSF1GsQdwzV;p`yWl$0g|b^LypiWzcpfp_ zU-kGd>*o#jC2hwzVTYddRmbGH4bM?3WXIe{WN*kW^NP~ttD58p=h+jZgV(;;N8iU* zQ`gQm;@`zqd6y_p<-@n|D&Txz2BHB3p07=acoGju;)7x9jmvmY1gL z@g=t&zjTOR6n*JtJ>~Nhaa=0PF+O8aPZEs^7Pxm9x3avCB=2XPBeZfiO_G1*dKXFl zm5vem@F3Yi-j6oVoAtSGcD?6y#=BGXo_W6>-_LFR7LOhEduTAo@wUnlwEs&z)p)#d zq47lHLT85`=QzQoI7f~%T;rT#)Z7gNh5^HXVZbn87%&VN1`Gp+ z0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^fMLKeU>GnA7zPXjh5^HXVZbn8 z7%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XH&3}9a^_R&6~o!Ec-sMfL9 z`GD535BFfiueamU=dwYV%OC$XDkAS_9eZbgkPW$9u=lo0>pPX1hP2$JWw(~t-%GwS zXc)mSd$*-v@9uu3(kB`Sd$-mxu4Ns!LrdiQyP^8uY*+jLFVWBi`RckM?5Br4DzU$L zcwpdUGBudb6x?$1$)~L2R`0QAdUP!cis%W7HTUC(U3>;XbN*WGiRL`E+B*pI*J|HF znCDjeRs#R6_HE61YPD}C@X~6(-~I5rn)}LI^K=rP=T`e}YBvuF+QS>v!;z|z&#A?C-6dQ;9+gY`>xF-`~PF1a{=`0 zN&|s?JwLDMJotVf&wLQSp6B=2-md=}jq8ITPy2HX+U5B)h+l0)=j%pbUq3Hj2KM#y z@~zGjecoKN z=VGyvaf?pQt5j=_JGVgDN@=#3_wqTbw|#`1sZem-YSmqI@@22ONYhofly`D-rP3lp zLYl*oUQ1}Pkm2q)&d@~vSlUUC4>}GxgD;KukBtnlna_5B(aF^+&Wu~m$te#nOq>}= z51yY$JEJ4x&-V|foyq=FqiMztkDfWzKkA$r8akJrY+75-e%R!Yh)s@`Agi`m^4ttd zud3t>YUPTTw=S0Ftjt`Ym^)U;QJ~GZwHdN%wV_@19p zY>~A_6j^Kh207ePAcS!sfARc&~mQS!DlC>RptRIkd9VmU2 z3wW%{Hrr&W1Rm=QB>o>bBq;pawUpDWN#B6SdIX98foT8H{)EP#(pm9;0f{)l%eOe% z{|juBKH>id-y6tY_Js@1wSjzvonbuAg@NSrIa&(F0b@qvF@BsM0~w8v>P5!OxbR-u$0b+8Q2tuCODF$GXt1@ks!+1P)TIZ)@%M`6{r_RuXYaTWcTsRjx=3`fvNn zW7|qb@sY=YKISm7MV~X^A5&?Xci_V^-t?|jrfgNmdm#VgNBBa2@LtG&Hu|m*>b`wY YNgEAmXGG;cmG=14X$82haS&1be{Ofv5C8xG literal 0 HcmV?d00001