在 2024/3/12 下午12:55, Bo YU 写道:
Hi!

On Tue, Mar 12, 2024 at 11:03 AM zhangdandan <zhangdan...@loongson.cn> wrote:
Hi,
   Thanks for your feedback on loong64's compilation errors.

Package: src:gcc-14
Version: 14-20240121-1
Severity: important
Tags: sid trixie ftbfs
X-Debbugs-CC: debian-loonga...@lists.debian.org

gcc-14 ftbfs on loong64:
...
The remaining build failure is now:

https://buildd.debian.org/status/fetch.php?pkg=gcc-14&arch=loong64&ver=14-20240303-1&stamp=1709485913&raw=0

...
dh_installdirs -plibgcc-s1 usr/share/doc/libgcc-s1 usr/lib/loongarch64-linux-gnu
mv debian/tmp/usr/lib/loongarch64-linux-gnu/libgcc_s.so.1 
debian/libgcc-s1/usr/lib/loongarch64-linux-gnu/.
mv: cannot stat 'debian/tmp/usr/lib/loongarch64-linux-gnu/libgcc_s.so.1': No 
such file or directory
make[1]: *** [debian/rules.d/binary-libgcc.mk:291: 
stamps/08-binary-stamp-libgcc] Error 1
- For the compilation error raised by Matthias Klose.
It is because the linux header file linux-libc-dev lacks loong64 support.
The Debian kernel-team has merged the loong64's patch, please see 
https://salsa.debian.org/kernel-team/linux/-/merge_requests/879.

- I have reproduced the gcc-14 compilation error locally from Adrian Bunk.
The compilation error is consistent with the feedback from Adrian Bunk.
For gcc-14, the loong64's multilib modification is not included in 
gcc-multilib-multiarch.
Please consider the following patch. If you have any questions, you can contact 
me at any time.
```
--- a/src/gcc/config/loongarch/t-linux
+++ b/src/gcc/config/loongarch/t-linux
@@ -16,9 +16,9 @@
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.

-MULTIOSDIR_lp64d := ../lib64$(call if_multiarch,:loongarch64-linux-gnu)
-MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
-MULTIOSDIR_lp64s := ../lib64/sf$(call if_multiarch,:loongarch64-linux-gnusf)
+MULTIOSDIR_lp64d := ../lib$(call if_multiarch,:loongarch64-linux-gnu)
+MULTIOSDIR_lp64f := ../lib/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
+MULTIOSDIR_lp64s := ../lib/sf$(call if_multiarch,:loongarch64-linux-gnusf)

  # Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
  ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
```
Maybe debdiff should be attached here for GCC maintainer with conveniently.

Patch attached.

Thanks.

BTW, the gcc-14 source package was compiled successfully on my local loong64 
rootfs environment, for examples,
```
......
dh_installdirs -plibgcc-s1 usr/share/doc/libgcc-s1 usr/lib/loongarch64-linux-gnu
mv debian/tmp/usr/lib/loongarch64-linux-gnu/libgcc_s.so.1 
debian/libgcc-s1/usr/lib/loongarch64-linux-gnu/.
debian/dh_doclink -plibgcc-s1 gcc-14-base
......
dpkg-deb: building package 'libgfortran-14-dev' in 
'../libgfortran-14-dev_14-20240201-3_loong64.deb'.
dpkg-deb: building package 'g++-14-loongarch64-linux-gnu' in 
'../g++-14-loongarch64-linux-gnu_14-20240201-3_loong64.deb'.
dpkg-deb: building package 'gccrs-14-loongarch64-linux-gnu-dbgsym' in 
'../gccrs-14-loongarch64-linux-gnu-dbgsym_14-20240201-3_loong64.deb'.
dpkg-deb: building package 'gcc-14-loongarch64-linux-gnu-dbgsym' in 
'../gcc-14-loongarch64-linux-gnu-dbgsym_14-20240201-3_loong64.deb'.
......
make[1]: Leaving directory '/home/zdd/gcc-14/gcc-14-14-20240201'
  dpkg-genbuildinfo --build=binary -O../gcc-14_14-20240201-3_loong64.buildinfo
  dpkg-genchanges --build=binary -O../gcc-14_14-20240201-3_loong64.changes
```

thanks,
Dandan Zhang


diff --git a/src/gcc/config/loongarch/t-linux b/src/gcc/config/loongarch/t-linux
index 23e1fb9..4475600 100644
--- a/src/gcc/config/loongarch/t-linux
+++ b/src/gcc/config/loongarch/t-linux
@@ -16,9 +16,9 @@
 # along with GCC; see the file COPYING3.  If not see
 # <http://www.gnu.org/licenses/>.
 
-MULTIOSDIR_lp64d := ../lib64$(call if_multiarch,:loongarch64-linux-gnu)
-MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
-MULTIOSDIR_lp64s := ../lib64/sf$(call if_multiarch,:loongarch64-linux-gnusf)
+MULTIOSDIR_lp64d := ../lib$(call if_multiarch,:loongarch64-linux-gnu)
+MULTIOSDIR_lp64f := ../lib/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
+MULTIOSDIR_lp64s := ../lib/sf$(call if_multiarch,:loongarch64-linux-gnusf)
 
 # Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
 ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)

Reply via email to