[Tizen] Add riscv64 build support.
authorMikhail Kurinnoi <m.kurinnoi@samsung.com>
Mon, 4 Dec 2023 21:59:28 +0000 (00:59 +0300)
committerMikhail Kurinnoi <m.kurinnoi@samsung.com>
Tue, 19 Nov 2024 14:47:37 +0000 (17:47 +0300)
packaging/coreclr-diagnostics.spec

index b18ef6d71c745ab42ea9196c82ab5a4f6efc890b..c557c5f06b386e3997a41189ce6cb03e1102ed00 100755 (executable)
@@ -20,8 +20,6 @@ BuildRequires: corefx-managed
 BuildRequires: gettext-tools
 BuildRequires: pkgconfig(openssl3)
 BuildRequires: libstdc++-devel
-BuildRequires: lldb >= 3.8
-BuildRequires: lldb-devel >= 3.8
 BuildRequires: llvm >= 3.8
 BuildRequires: llvm-devel >= 3.8
 BuildRequires: pkgconfig(libunwind)
@@ -29,6 +27,10 @@ BuildRequires: pkgconfig(lttng-ust)
 BuildRequires: pkgconfig(uuid)
 BuildRequires: python
 BuildRequires: tizen-release
+%ifnarch riscv64
+BuildRequires: lldb >= 3.8
+BuildRequires: lldb-devel >= 3.8
+%endif
 
 %ifarch armv7l
 BuildRequires: python-accel-armv7l-cross-arm
@@ -48,6 +50,12 @@ BuildRequires: clang-accel-aarch64-cross-aarch64
 BuildRequires: patchelf
 %endif
 
+%ifarch riscv64
+BuildRequires: python-accel-riscv64-cross-riscv64
+BuildRequires: clang-accel-riscv64-cross-riscv64
+BuildRequires: patchelf
+%endif
+
 %ifarch %{ix86}
 BuildRequires: patchelf
 BuildRequires: glibc-64bit
@@ -71,11 +79,18 @@ Requires: libuuid
 %description
 This package contains components for basic .NET debugging and diagnostic support.
 
+%package -n coreclr-dbgshim
+Summary: This package contains libgdbshim (part of Diagnostics), CoreCLR Debug API.
+AutoReqProv: no
+
+%description -n coreclr-dbgshim
+libdbgshim.so library (part of Diagnostics).
+
 %prep
 %setup -q -n %{name}-%{version}
 cp %{SOURCE1} .
 
-%ifarch armv7l armv7hl aarch64
+%ifarch armv7l armv7hl aarch64 riscv64
 # Detect interpreter name from cross-gcc
 LD_INTERPRETER=$(patchelf --print-interpreter /emul/usr/bin/gcc)
 LD_RPATH=$(patchelf --print-rpath /emul/usr/bin/gcc)
@@ -108,6 +123,9 @@ BASE_FLAGS=" --target=%{_host} "
 %ifarch aarch64
 %define _barch  arm64
 %else
+%ifarch riscv64
+%define _barch  riscv64
+%else
 %ifarch %{ix86}
 %define _barch  x86
 export CLANG_NO_LIBDIR_SUFFIX=1
@@ -128,6 +146,7 @@ export CLANG_NO_LIBDIR_SUFFIX=1
 %endif
 %endif
 %endif
+%endif
 
 export CFLAGS=$BASE_FLAGS
 export CXXFLAGS=$BASE_FLAGS
@@ -154,6 +173,7 @@ sed -i "s,TIZEN_NUGET_PACKAGES_DIR,${NUGET_PACKAGES}," %{_builddir}/%{name}-%{ve
 
 %install
 %define diagnosticsdir   %{_datadir}/dotnet/shared/Microsoft.NETCore.App/%{dotnet_version}/SOS
+%define dbgshimdir   %{_datadir}/dotnet/shared/Microsoft.NETCore.App/%{dotnet_version}
 
 %ifarch x86_64
 %define rid linux-x64
@@ -161,6 +181,9 @@ sed -i "s,TIZEN_NUGET_PACKAGES_DIR,${NUGET_PACKAGES}," %{_builddir}/%{name}-%{ve
 %ifarch aarch64
 %define rid linux-arm64
 %else
+%ifarch riscv64
+%define rid linux-riscv64
+%else
 %ifarch %{ix86}
 %define rid linux-x86
 %else
@@ -172,10 +195,14 @@ sed -i "s,TIZEN_NUGET_PACKAGES_DIR,${NUGET_PACKAGES}," %{_builddir}/%{name}-%{ve
 %endif
 %endif
 %endif
+%endif
 
 # SOS
 mkdir -p %{buildroot}%{diagnosticsdir}/%{rid}
-cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/*.so %{buildroot}%{diagnosticsdir}/%{rid}
+cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/libsos.so %{buildroot}%{diagnosticsdir}/%{rid}
+%ifnarch riscv64
+cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/libsosplugin.so %{buildroot}%{diagnosticsdir}/%{rid}
+%endif
 cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/Microsoft.Bcl.AsyncInterfaces.dll %{buildroot}%{diagnosticsdir}
 cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/Microsoft.Diagnostics.DebugServices.dll %{buildroot}%{diagnosticsdir}
 cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/Microsoft.Diagnostics.DebugServices.Implementation.dll %{buildroot}%{diagnosticsdir}
@@ -213,7 +240,16 @@ rm -f %{buildroot}%{diagnosticsdir}/System.Runtime.CompilerServices.Unsafe.dll
 
 touch %{buildroot}%{diagnosticsdir}/version-%{version}-%{release}
 
+# dbgshim
+mkdir -p %{buildroot}%{dbgshimdir}
+cp %{_artifacts}/linux.%{_barch}.%{_buildtype}/libdbgshim.so %{buildroot}%{dbgshimdir}
+
+
 %files
 %manifest %{name}.manifest
 %{diagnosticsdir}/*
 
+%files -n coreclr-dbgshim
+%manifest %{name}.manifest
+%{dbgshimdir}/libdbgshim.so
+