This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FR-V FDPIC ABI (frv-uclinux and frv-linux) implementation


On Dec 26, 2003, Alexandre Oliva <aoliva@redhat.com> wrote:

> This patch adds code to GCC to support a new ABI designed for the FR-V
> architecture, that enables text segments of executables and shared
> libraries to be shared by multiple processes on an OS such as uClinux,
> that can run on FR-V processors without an MMU.

> Patches for binutils have just been posted, and a patches for newlib
> and uClibc will follow shortly, in the corresponding mailing lists.

The binutils patch went in back then, except for a few BFD EH-frame
bits that I posted earlier this week.  So did newlib.  GCC and uClibc,
OTOH, didn't get any feedback whatsoever.  I've posted an updated
uClibc patch earlier today; here are the corresponding GCC and
top-level patches.

Ok to install?

Attachment: gcc-frv-fdpic.patch.bz2
Description: BZip2 compressed data

Index: ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>

	2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
	* libtool.m4 (lt_cv_deplibs_check_method): Set to pass all on
	frv-*-uclinux* and frv-*-linux-gnu*.
	* libstdc++-v3/configure: Rebuilt.
	2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* ltconfig (uclinux*): Handle like linux-gnu*.
	* ltcf-cxx.sh (uclinux*): Don't disable shared libs.
	2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
	* configure.in: Add frv-*-*linux*.
	* configure: Rebuilt.

Index: configure
===================================================================
RCS file: /cvs/uberbaum/configure,v
retrieving revision 1.128
diff -u -p -r1.128 configure
--- configure 10 Feb 2004 10:54:44 -0000 1.128
+++ configure 11 Feb 2004 11:06:40 -0000
@@ -1152,6 +1152,9 @@ case "${target}" in
   *-*-vxworks*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}"
     ;;
+  frv-*-*linux*)
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+    ;;
   alpha*-dec-osf*)
     # ld works, but does not support shared libraries.
     # newlib is not 64 bit ready.  I'm not sure about fileutils.
Index: configure.in
===================================================================
RCS file: /cvs/uberbaum/configure.in,v
retrieving revision 1.268
diff -u -p -r1.268 configure.in
--- configure.in 10 Feb 2004 10:54:44 -0000 1.268
+++ configure.in 11 Feb 2004 11:06:41 -0000
@@ -384,6 +384,9 @@ case "${target}" in
   *-*-vxworks*)
     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}"
     ;;
+  frv-*-*linux*)
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+    ;;
   alpha*-dec-osf*)
     # ld works, but does not support shared libraries.
     # newlib is not 64 bit ready.  I'm not sure about fileutils.
Index: libtool.m4
===================================================================
RCS file: /cvs/uberbaum/libtool.m4,v
retrieving revision 1.14
diff -u -p -r1.14 libtool.m4
--- libtool.m4 19 Nov 2003 05:29:32 -0000 1.14
+++ libtool.m4 11 Feb 2004 11:06:42 -0000
@@ -680,7 +680,7 @@ irix5* | irix6*)
 # This must be Linux ELF.
 linux-gnu*)
   case $host_cpu in
-  alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+  alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* | frv )
     lt_cv_deplibs_check_method=pass_all ;;
   *)
     # glibc up to 2.1.1 does not perform some relocations on ARM
@@ -732,6 +732,12 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
     lt_cv_deplibs_check_method=['file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]']
     lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
     ;;
+  esac
+  ;;
+uclinux*)
+  case $host_cpu in
+  frv )
+    lt_cv_deplibs_check_method=pass_all ;;
   esac
   ;;
 esac
Index: ltcf-cxx.sh
===================================================================
RCS file: /cvs/uberbaum/ltcf-cxx.sh,v
retrieving revision 1.27
diff -u -p -r1.27 ltcf-cxx.sh
--- ltcf-cxx.sh 19 Nov 2003 05:29:32 -0000 1.27
+++ ltcf-cxx.sh 11 Feb 2004 11:06:42 -0000
@@ -697,6 +697,9 @@ case $host_os in
         ;;
     esac
     ;;
+  uclinux*)
+    # Assume g++ or compatible
+    ;;
   unixware*)
     # FIXME: insert proper C++ library support
     ld_shlibs=no
Index: ltconfig
===================================================================
RCS file: /cvs/uberbaum/ltconfig,v
retrieving revision 1.29
diff -u -p -r1.29 ltconfig
--- ltconfig 19 Nov 2003 05:29:32 -0000 1.29
+++ ltconfig 11 Feb 2004 11:06:45 -0000
@@ -1239,7 +1239,7 @@ linux-gnuoldld* | linux-gnuaout* | linux
   ;;
 
 # This must be Linux ELF.
-linux-gnu*)
+linux-gnu* | uclinux*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
Index: libstdc++-v3/configure
===================================================================
RCS file: /cvs/uberbaum/libstdc++-v3/configure,v
retrieving revision 1.377
diff -u -p -r1.377 configure
--- libstdc++-v3/configure 9 Feb 2004 07:06:35 -0000 1.377
+++ libstdc++-v3/configure 11 Feb 2004 11:06:57 -0000
@@ -3866,7 +3866,7 @@ irix5* | irix6*)
 # This must be Linux ELF.
 linux-gnu*)
   case $host_cpu in
-  alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+  alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* | frv )
     lt_cv_deplibs_check_method=pass_all ;;
   *)
     # glibc up to 2.1.1 does not perform some relocations on ARM
@@ -3920,6 +3920,12 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
     ;;
   esac
   ;;
+uclinux*)
+  case $host_cpu in
+  frv )
+    lt_cv_deplibs_check_method=pass_all ;;
+  esac
+  ;;
 esac
 
 fi
@@ -4267,7 +4273,7 @@ test x"$pic_mode" = xno && libtool_flags
 case $host in
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4270 "configure"' > conftest.$ac_ext
+  echo '#line 4276 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -4871,7 +4877,7 @@ fi;
     #
     # Fake what AC_TRY_COMPILE does.  XXX Look at redoing this new-style.
     cat > conftest.$ac_ext << EOF
-#line 4874 "configure"
+#line 4880 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Happy GNU Year!                     oliva@{lsd.ic.unicamp.br, gnu.org}
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist                Professional serial bug killer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]