Bug#532263: gcc-4.4: Support for Renesas SuperH (SH4)
Package: gcc-4.4
Version: 4.4.0-5
Severity: wishlist
X-Debbugs-CC: debian-superh@lists.debian.org
User: debian-sh4@superh.org
Usertag: sh4
Hi,
I am now trying to run Debian on Renesas SH CPU.
On SH, not all libgcc functions are provided in shared library, but some
are provided in a static library.
To do this linking process automatically, libgcc_s.so for SH is a linker
script like below.
----
$ cat libgcc_s.so
/* GNU ld script
Use the shared library, but some functions are only in
the static library. */
GROUP(libgcc_s.so.1 libgcc.a)
----
Current debian/rules replaces libgcc_s.so. This processing is not
appropriate in SH. It is necessary to perform it as follows.
----
ifeq ($(DEB_HOST_ARCH), sh4)
mv $(d)/$(PF)/$(libdir)/libgcc_s.so $(d)/$(gcc_lib_dir)/libgcc_s.so
ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME)
$(d)/$(gcc_lib_dir)/libgcc_s.so.$(GCC_SONAME)
else
rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so
endif
----
I made a patch to support SH.
Would you please apply it?
Best regards,
Nobuhiro
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.29-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages gcc-4.4 depends on:
ii binutils 2.19.1-1 The GNU assembler, linker and bina
ii cpp-4.4 4.4.0-5 The GNU C preprocessor
ii gcc-4.4-base 4.4.0-5 The GNU Compiler Collection (base
ii libc6 2.9-6 GNU C Library: Shared libraries
ii libgcc1 1:4.4.0-5 GCC support library
ii libgomp1 4.4.0-5 GCC OpenMP (GOMP) support library
Versions of packages gcc-4.4 recommends:
ii libc6-dev 2.9-6 GNU C Library: Development Librari
Versions of packages gcc-4.4 suggests:
pn gcc-4.4-doc <none> (no description available)
pn gcc-4.4-locales <none> (no description available)
pn gcc-4.4-multilib <none> (no description available)
pn libgcc1-dbg <none> (no description available)
pn libgomp1-dbg <none> (no description available)
pn libmudflap0-4.4-dev <none> (no description available)
pn libmudflap0-dbg <none> (no description available)
-- no debconf information
--
Nobuhiro Iwamatsu
diff --git a/debian/rules.d/binary-gcc-cross.mk b/debian/rules.d/binary-gcc-cross.mk
index 9081656..20e9139 100644
--- a/debian/rules.d/binary-gcc-cross.mk
+++ b/debian/rules.d/binary-gcc-cross.mk
@@ -67,8 +67,14 @@ $(binary_stamp)-gcc: $(install_dependencies)
rm -rf $(d_gcc)
dh_installdirs -p$(p_gcc) $(dirs_gcc)
+ifeq ($(DEB_TARGET_ARCH), sh4)
+ mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libgcc_s.so $(d)/$(gcc_lib_dir)/libgcc_s.so
+ ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so.$(GCC_SONAME)
+else
rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so
+endif
+
ifeq ($(biarch64),yes)
rm -f $(d)/$(PF)/$(lib64)/libgcc_s.so
dh_link -p$(p_gcc) \
diff --git a/debian/rules.d/binary-gcc.mk b/debian/rules.d/binary-gcc.mk
index 9ca20df..1015c58 100644
--- a/debian/rules.d/binary-gcc.mk
+++ b/debian/rules.d/binary-gcc.mk
@@ -97,8 +97,13 @@ $(binary_stamp)-gcc: $(install_dependencies)
rm -rf $(d_gcc)
dh_installdirs -p$(p_gcc) $(dirs_gcc)
+ifeq ($(DEB_HOST_ARCH), sh4)
+ mv $(d)/$(PF)/$(libdir)/libgcc_s.so $(d)/$(gcc_lib_dir)/libgcc_s.so
+ ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so.$(GCC_SONAME)
+else
rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so
+endif
ifeq ($(with_libgmath),yes)
rm -f $(d)/$(PF)/$(libdir)/libgcc-math.{la,so}
Reply to: