From ba18606ea0cd504a8c3847897bd670ac7b7f31ee Mon Sep 17 00:00:00 2001 From: Alexander Pankov Date: Tue, 24 Jan 2023 19:45:36 +0300 Subject: [PATCH] fix segfault in audio on v1 chips (SDK uses old version of "stat") --- .../files/lib/libmpi.so | Bin 404225 -> 404225 bytes .../hisilicon-osdrv-hi3516cv100.mk | 7 ++++++ .../libhisicompat/Makefile | 14 +++++++++++ .../libhisicompat/libhisicompat.so | Bin 0 -> 7132 bytes .../libhisicompat/sTaT.c | 23 ++++++++++++++++++ .../libhisicompat/sTaT.o | Bin 0 -> 980 bytes 6 files changed, 44 insertions(+) create mode 100644 general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/Makefile create mode 100755 general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/libhisicompat.so create mode 100644 general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/sTaT.c create mode 100644 general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/sTaT.o diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/lib/libmpi.so b/general/package/hisilicon-osdrv-hi3516cv100/files/lib/libmpi.so index 72b687a4007d4aa4313e30fff260d2147a2bf648..0862f1ed5b50e8ca3eb8a7bc0806382c18cb371b 100644 GIT binary patch delta 58 zcmZp?Cee6JV#6h8=8(jY>2D?2B%9wkx4&~{1Y#y2W(H!G?eCmfpWOzl*#DYEZ2Mbz HHW6+B{ht{I delta 58 zcmZp?Cee6JV#6h8=90vc>2D?2B%9wkx4&~{1Y#y2W(H!G?eCmfpWOzl*#DYEZ2Mbz HHW6+B46Yf5 diff --git a/general/package/hisilicon-osdrv-hi3516cv100/hisilicon-osdrv-hi3516cv100.mk b/general/package/hisilicon-osdrv-hi3516cv100/hisilicon-osdrv-hi3516cv100.mk index b526f82e..51b638e5 100644 --- a/general/package/hisilicon-osdrv-hi3516cv100/hisilicon-osdrv-hi3516cv100.mk +++ b/general/package/hisilicon-osdrv-hi3516cv100/hisilicon-osdrv-hi3516cv100.mk @@ -9,6 +9,10 @@ HISILICON_OSDRV_HI3516CV100_SITE = HISILICON_OSDRV_HI3516CV100_LICENSE = MIT HISILICON_OSDRV_HI3516CV100_LICENSE_FILES = LICENSE +define HISILICON_OSDRV_HI3516CV100_BUILD_CMDS + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/libhisicompat all +endef + define HISILICON_OSDRV_HI3516CV100_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/script/S95hisilicon @@ -65,6 +69,7 @@ define HISILICON_OSDRV_HI3516CV100_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/sensor/*.so + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/lib/libaec.so $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/lib/libanr.so @@ -89,6 +94,8 @@ define HISILICON_OSDRV_HI3516CV100_INSTALL_TARGET_CMDS $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/lib/libupvqe.so $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/lib/libVoiceEngine.so $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/files/lib/libvqev2.so + + $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_HISILICON_PATH)/package/hisilicon-osdrv-hi3516cv100/libhisicompat/libhisicompat.so $(TARGET_DIR)/usr/lib endef $(eval $(generic-package)) diff --git a/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/Makefile b/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/Makefile new file mode 100644 index 00000000..c3eb1a0d --- /dev/null +++ b/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/Makefile @@ -0,0 +1,14 @@ +LIB_NAME := libhisicompat + +SRCS := sTaT.c + +OBJS := sTaT.o + +all: $(LIB_NAME).so + +$(LIB_NAME).so: $(OBJS) + $(CC) -shared -o $@ $(OBJS) + +clean: + @rm -f $(OBJS) $(LIB_NAME).so + diff --git a/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/libhisicompat.so b/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/libhisicompat.so new file mode 100755 index 0000000000000000000000000000000000000000..cc4ff80ddbe1d4f3aafc3141723b69e3c1779496 GIT binary patch literal 7132 zcmeHMZ)_Y#6`%Flt?ef1C2<;4QgW({a3$Z~Cb1)f0y@Wbl7iiu#2;vdv{~P+eOvBs zPrG|1rbsxbh#+d2KUD>&sgH^e{XnG(38_da1R_{{QyEJ;`se$ zZrrKsqVf$SKk40jZ{C|XZ{Fe)`8Z0i~lmqBD3eg0zg zoqhT5Uj6D@Z@j&a?b~694ge|X4f$juq?{I$l2bnqf}A(x4ESdZ`2hHb3^@ay^V5(4 z^9?P4(*6lU&Vc90jED0*fOu9w)0osLDfh_;XCNy*X6**mAQA2&h;SdCpLL6Vnr=c~S8zv5z3! zIPnrU2`c`{QBe*S3U(YKZa!a!K}R~2`K6ozJ%qUqkzzu_q*&w;QY@@PiU(s4=zXwD zlfrI*6ge0q#lv%i6n0iV`)4cv+U<|Ea~s{wY^%Gu-rCn(Yxe&2m#yo2klEj^ZKi+s z%;xnw*IJr?)!<(-_?Ha60X{F*TX_eVS#Jrk)=W8TO(8C9bY<3>7|$AkuJ^|5X3F{A zt!`%(HWzMU#QxqJtD6TA4=LmN3F2q~F9Ju9gBkdpLEkN(>B%O?nAqRg`0>%p&0nWq z`LD;AgYOyOoqO8Q5NgB ze%5ZkbsadqO+SK|8Sl%`4MAsR8aJii%x_xocl$QReF>Ps*w;XZK(7P81KxqXgZa_E z%lW<>6HDHoNw2pu@XI)@G-F$9z5xGetmn_$?Y|7OFMON>y$I^S?s?=}%r!Qwd}HGW zh(V+qH}{Ih#wz;lO*b}rz<-lIoU5(0^K|QZtbv30%;yBIc40RIyBXNcz-|V1Gq9V1 z-3;tz;Qu%Suj77j3dnoZkAS=@@;=3T81GFV0p)$>g=;VtuHNtq902YI@_us%jpVO^@~)Q$9t8FR|JiPb zvM=}#1H6B0aL{o(YMn`W&pJCf`KiqC>3UEuMq!v_vP<6a;^K+oiN$O&h?3=pGUN8B z?TCp_pr_}13xTj60NXP*KmA#8S5L3iXC3Gsunt*=Q-jw1oaXz0`68rb)^Q)}gqo6B zQF&8(HDl&e$;`IOkCK^fl{Y0b>uUX!e7BT2cO^5ELe@Z(%qoIfXC-sBg!qDTi}+N9 zf$L95bt(y5e<~Zcn z4L$AOG~}buYgyZmsAYtu>aX*|H-!E9J}T%FW9YAC-T$YC{&UbXpCG{fG9JA?e2X84 zLdzCp`sX{Zpif+eUd!6Qe2Jw&pIC+d6#TPXrv2;ZfxE>Iq1Unnnfdr+XMOoLzY1A{ zUJur16!eMh`DcHff9@K;GGwlY3H0{|==JkwLH-kD{d`%-=O$#GU&?Po=Ke#VJ@cX8 z5AHM^Kfkqpy)s`@hTLPk(GQ~U0A#cNWWMnk=#Lxra!)g4>K}(})~noY`lk$;{l5;` ztY=*@^zRFwl66Gaiz08?^{Yv=EK~)sSg%x;MY!;UUr5mXq=W8;MiwF8 z(~WgOMCiI_&QHuvyVH+Mxvp@h9(!bB_Tfo1qc*7<-C`WNC9hg!mGbP&qo*fk+(*xx zxiCHN&QF}4nMS{D6-rg|{J=V;S%s7(QC+xvPeD{xF8@=-R97`sX?4fyr?BJYO5!bm zCXu2g%`H{ycFBuN!Y(dXVWwyj2|M!3Y*S3FoCsS^$WHuA;N@_(UsCy1I+a?b(>y$Q zm7pN(r4YS}Ug8ORA&!NOb*^CTggtS7*7lMl3Kr@K9*hqSM`6h=jjtlV?Zk6Hy=`#2 zCGrgQcbsEr$8SE7HO=jIA4eN^I@<9JMdbeo^g&xvo~5!KnRYxQ5MKnZ0o^2w;g?@} z+VN~f%!4<_?S=dqAni^Ac@`rMgQp$8BtAzJq0~;LOXtw_+OA-H#AA#%-_>MPLFo-TZF|NCEo##N&FU2+wmJV z3OlxI(EJ)2=$HQZ?Hh+3&*vJn-Lq(*Kc}Oh9oJU_b;PSc_^Rpli#ym+M_cAt!xh-o rFxVk9d>Y7c(IlTKIalz6e+&rmg3*zF2s{m%cF*Bb@UqmXA8q$ +#include +#include +#include + +struct ugly_fake_stat { + unsigned long long A; + unsigned long long B; + unsigned int st_mode; /* File mode. */ +}; + +int sTaT(const char *pathname, struct stat *statbuf) +{ + struct stat good_struct_stat; + memset(&good_struct_stat, 0, sizeof(struct stat)); + int ret = stat(pathname, &good_struct_stat); + + struct ugly_fake_stat* ugly = (struct ugly_fake_stat*)statbuf; + ugly->st_mode = good_struct_stat.st_mode; + + return ret; +} + diff --git a/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/sTaT.o b/general/package/hisilicon-osdrv-hi3516cv100/libhisicompat/sTaT.o new file mode 100644 index 0000000000000000000000000000000000000000..e16827c4f2ad80d55f9bd33ce6d4f86f70953544 GIT binary patch literal 980 zcmah|OG_L<5UzH1j1Po~B=}m)3JI(v+YIr6iicG(Vu%vL=8)6UyVE8^95>9gpeH?e z@Zw!TVSa*tAmA}a|H3MQA*cL-tW`79Nv}CrOV3x2uco@HX7`rgy%|ETyuRbSk+L`XSXE%;}aC3Tj zbmi`UzlD{hrMW_JaogYY!bU?CN}t7RZ)3un*eH2^sCLH-GklV}u<#Nq3MpznurXBa zsmk(O=(M|7H|x(mVNcnBHOPk8aK~saxm)|g>>&rgTV~X1>kz=gpD7mPpv!dp$M0;5 zT43L^AK{!*nMdfye8*srK5);5s3I!74$noRK_G)jDyUW?B~(@Uft*fOkjK1y58##% zsR)mD10`yRDopW<)M09BwtzoSi%bRufP{RtZ|`K z=-0NDjEw6&s6Imm&09}}E=qlC(fb)eM>n2w7C6Twngz|8@`*?Ki_F$r`G&SBdbjk2 z5dR^biyX=!B%$|>CtCWT7@gS+Q!l`YRx;FeSJB3rf3HQnR|Z$}2-Ck$8vKE9frn;5 ghx&CgUH5<{9AYBPK#P9gV|19j3k-bHBt*@-13|xOod5s; literal 0 HcmV?d00001