packaging: Support riscv64 build
authorwchang kim <wchang.kim@samsung.com>
Tue, 4 Jul 2023 07:29:47 +0000 (16:29 +0900)
committerDongkyun Son <dongkyun.s@samsung.com>
Tue, 5 Mar 2024 09:37:12 +0000 (18:37 +0900)
Change-Id: I21daa40efaa528ef8fc9fe13ab3c4a5ed38e6622
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
packaging/glibc.spec

index 347dd3a..ae6979a 100644 (file)
@@ -407,6 +407,9 @@ function glibc_configure () {
   ../configure \
   --prefix=%{_prefix} \
   --libexecdir=%{_libexecdir} --infodir=%{_infodir} \
+%ifarch riscv64
+  --libdir=%{_libdir} \
+%endif
   --enable-add-ons=$add_ons \
   $profile \
   --enable-kernel=%{enablekernel} \
@@ -414,6 +417,9 @@ function glibc_configure () {
   --disable-nscd \
   --disable-experimental-malloc \
   libc_cv_cc_pie_default=yes \
+%ifarch riscv64
+  libc_cv_slibdir="/%{_lib}" \
+%endif
 %if %{enable_stackguard_randomization}
   --enable-stackguard-randomization \
 %endif
@@ -697,6 +703,16 @@ ln -s ld-linux-armhf.so.3 %{buildroot}/lib/ld-linux.so.3
 ln -s ld-linux.so.2 %{buildroot}/lib/ld-linux.so
 %endif
 
+%ifarch riscv64
+# Provide compatibility link
+mkdir -p %{buildroot}/lib/
+ln -s %{_libdir}/ld-linux-riscv64-lp64d.so.1 %{buildroot}/lib/ld-linux-riscv64-lp64d.so.1
+crts="Mcrt1.o Scrt1.o crt1.o crti.o crtn.o gcrt1.o"
+for crtfile in ${crts}; do
+    ln -sf %{_libdir}/${crtfile} %{buildroot}/lib/${crtfile}
+done
+%endif
+
 # Move getconf to %{_libexecdir}/getconf/ to avoid cross device link
 mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
 ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
@@ -797,6 +813,11 @@ find %{_libdir}/gcc -name 'statx.h' -exec sed -e 's/__glibc_has_include/__has_in
 %ifarch aarch64
 /lib/ld-linux-aarch64.so.1
 %endif
+%ifarch riscv64
+/lib64/ld-linux-riscv64-lp64d.so.1
+/lib/ld-linux-riscv64-lp64d.so.1
+/lib/*.o
+%endif
 
 /%{_lib}/libanl.so.1
 /%{_lib}/libc.so*