Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/2] xtensa noMMU support
@ 2016-03-17 15:27 Max Filippov
  2016-03-17 15:27 ` [Buildroot] [PATCH 1/2] gcc: add xtensa uClinux support Max Filippov
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Max Filippov @ 2016-03-17 15:27 UTC (permalink / raw)
  To: buildroot

Hello,

this series enables noMMU support for xtensa.
noMMU xtensa uses FLAT binaries and linuxthreads.
This series assumes elf2flt support for Xtensa.

Max Filippov (2):
  gcc: add xtensa uClinux support
  uclibc: enable linuxthreads for xtensa

 .../gcc/4.8.5/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 .../gcc/4.9.3/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 .../gcc/5.3.0/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 package/uclibc/Config.in                           |   2 +-
 4 files changed, 523 insertions(+), 1 deletion(-)
 create mode 100644 package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch
 create mode 100644 package/gcc/4.9.3/874-xtensa-add-uclinux-support.patch
 create mode 100644 package/gcc/5.3.0/874-xtensa-add-uclinux-support.patch

-- 
2.1.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 1/2] gcc: add xtensa uClinux support
  2016-03-17 15:27 [Buildroot] [PATCH 0/2] xtensa noMMU support Max Filippov
@ 2016-03-17 15:27 ` Max Filippov
  2016-03-17 15:27 ` [Buildroot] [PATCH 2/2] uclibc: enable linuxthreads for xtensa Max Filippov
  2016-03-31  1:57 ` [Buildroot] [PATCH 0/2] xtensa noMMU support Thomas Petazzoni
  2 siblings, 0 replies; 7+ messages in thread
From: Max Filippov @ 2016-03-17 15:27 UTC (permalink / raw)
  To: buildroot

Backported from: r228450
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
 .../gcc/4.8.5/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 .../gcc/4.9.3/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 .../gcc/5.3.0/874-xtensa-add-uclinux-support.patch | 174 +++++++++++++++++++++
 3 files changed, 522 insertions(+)
 create mode 100644 package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch
 create mode 100644 package/gcc/4.9.3/874-xtensa-add-uclinux-support.patch
 create mode 100644 package/gcc/5.3.0/874-xtensa-add-uclinux-support.patch

diff --git a/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch b/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch
new file mode 100644
index 0000000..23db3d8
--- /dev/null
+++ b/package/gcc/4.8.5/874-xtensa-add-uclinux-support.patch
@@ -0,0 +1,174 @@
+From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Sat, 22 Aug 2015 08:44:26 +0300
+Subject: [PATCH] xtensa: add uclinux support
+
+2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
+gcc/
+	* config.gcc (xtensa*-*-uclinux*): New configuration.
+	* config/xtensa/uclinux.h: New file.
+	* config/xtensa/uclinux.opt: New file.
+
+libgcc/
+	* config.host (xtensa*-*-uclinux*): New configuration.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r228450
+
+ gcc/config.gcc                |  5 ++++
+ gcc/config/xtensa/uclinux.h   | 69 +++++++++++++++++++++++++++++++++++++++++++
+ gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++
+ libgcc/config.host            |  5 ++++
+ 4 files changed, 111 insertions(+)
+ create mode 100644 gcc/config/xtensa/uclinux.h
+ create mode 100644 gcc/config/xtensa/uclinux.opt
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index c52f5a8..56797bd 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -2995,6 +2995,11 @@ xtensa*-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
+ 	tmake_file="${tmake_file} xtensa/t-xtensa"
+ 	;;
++xtensa*-*-uclinux*)
++	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
++	tmake_file="${tmake_file} xtensa/t-xtensa"
++	extra_options="${extra_options} xtensa/uclinux.opt"
++	;;
+ am33_2.0-*-linux*)
+ 	tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
+ 	gas=yes gnu_ld=yes
+diff --git a/gcc/config/xtensa/uclinux.h b/gcc/config/xtensa/uclinux.h
+new file mode 100644
+index 0000000..4606020
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.h
+@@ -0,0 +1,69 @@
++/* Xtensa uClinux configuration.
++   Derived from the configuration for GCC for Intel i386 running Linux.
++   Copyright (C) 2001-2015 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 3, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3.  If not see
++<http://www.gnu.org/licenses/>.  */
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS()				\
++  do								\
++    {								\
++      GNU_USER_TARGET_OS_CPP_BUILTINS ();			\
++      builtin_define ("__uClinux__");				\
++    }								\
++  while (0)
++
++#undef SUBTARGET_CPP_SPEC
++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
++#undef SIZE_TYPE
++#define SIZE_TYPE "unsigned int"
++
++#undef PTRDIFF_TYPE
++#define PTRDIFF_TYPE "int"
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "long int"
++
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE 32
++
++#undef ASM_SPEC
++#define ASM_SPEC \
++ "%{mtext-section-literals:--text-section-literals} \
++  %{mno-text-section-literals:--no-text-section-literals} \
++  %{mtarget-align:--target-align} \
++  %{mno-target-align:--no-target-align} \
++  %{mlongcalls:--longcalls} \
++  %{mno-longcalls:--no-longcalls} \
++  %{mauto-litpools:--auto-litpools} \
++  %{mno-auto-litpools:--no-auto-litpools}"
++
++#undef LINK_SPEC
++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}"
++
++#undef LOCAL_LABEL_PREFIX
++#define LOCAL_LABEL_PREFIX	"."
++
++/* Always enable "-fpic" for Xtensa Linux.  */
++#define XTENSA_ALWAYS_PIC 1
++
++#undef TARGET_LIBC_HAS_FUNCTION
++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
++
++#undef DBX_REGISTER_NUMBER
++
+diff --git a/gcc/config/xtensa/uclinux.opt b/gcc/config/xtensa/uclinux.opt
+new file mode 100644
+index 0000000..95ef777
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.opt
+@@ -0,0 +1,32 @@
++; Xtensa uClinux options.
++
++; Copyright (C) 2015 Free Software Foundation, Inc.
++;
++; This file is part of GCC.
++;
++; GCC is free software; you can redistribute it and/or modify it under
++; the terms of the GNU General Public License as published by the Free
++; Software Foundation; either version 3, or (at your option) any later
++; version.
++;
++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++; WARRANTY; without even the implied warranty of MERCHANTABILITY or
++; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++; for more details.
++;
++; You should have received a copy of the GNU General Public License
++; along with GCC; see the file COPYING3.  If not see
++; <http://www.gnu.org/licenses/>.
++
++; See the GCC internals manual (options.texi) for a description of
++; this file's format.
++
++; Please try to keep this file in ASCII collating order.
++
++elf2flt
++Driver
++
++elf2flt=
++Driver JoinedOrMissing
++
++; This comment is to ensure we retain the blank line above.
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 2c64756..2ee92c1 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -1295,6 +1295,11 @@ xtensa*-*-linux*)
+ 	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
+ 	md_unwind_header=xtensa/linux-unwind.h
+ 	;;
++xtensa*-*-uclinux*)
++	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
++	md_unwind_header=xtensa/linux-unwind.h
++	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
++	;;
+ am33_2.0-*-linux*)
+ 	# Don't need crtbeginT.o from *-*-linux* default.
+ 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+-- 
+1.8.1.4
+
diff --git a/package/gcc/4.9.3/874-xtensa-add-uclinux-support.patch b/package/gcc/4.9.3/874-xtensa-add-uclinux-support.patch
new file mode 100644
index 0000000..23db3d8
--- /dev/null
+++ b/package/gcc/4.9.3/874-xtensa-add-uclinux-support.patch
@@ -0,0 +1,174 @@
+From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Sat, 22 Aug 2015 08:44:26 +0300
+Subject: [PATCH] xtensa: add uclinux support
+
+2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
+gcc/
+	* config.gcc (xtensa*-*-uclinux*): New configuration.
+	* config/xtensa/uclinux.h: New file.
+	* config/xtensa/uclinux.opt: New file.
+
+libgcc/
+	* config.host (xtensa*-*-uclinux*): New configuration.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r228450
+
+ gcc/config.gcc                |  5 ++++
+ gcc/config/xtensa/uclinux.h   | 69 +++++++++++++++++++++++++++++++++++++++++++
+ gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++
+ libgcc/config.host            |  5 ++++
+ 4 files changed, 111 insertions(+)
+ create mode 100644 gcc/config/xtensa/uclinux.h
+ create mode 100644 gcc/config/xtensa/uclinux.opt
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index c52f5a8..56797bd 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -2995,6 +2995,11 @@ xtensa*-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
+ 	tmake_file="${tmake_file} xtensa/t-xtensa"
+ 	;;
++xtensa*-*-uclinux*)
++	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
++	tmake_file="${tmake_file} xtensa/t-xtensa"
++	extra_options="${extra_options} xtensa/uclinux.opt"
++	;;
+ am33_2.0-*-linux*)
+ 	tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
+ 	gas=yes gnu_ld=yes
+diff --git a/gcc/config/xtensa/uclinux.h b/gcc/config/xtensa/uclinux.h
+new file mode 100644
+index 0000000..4606020
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.h
+@@ -0,0 +1,69 @@
++/* Xtensa uClinux configuration.
++   Derived from the configuration for GCC for Intel i386 running Linux.
++   Copyright (C) 2001-2015 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 3, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3.  If not see
++<http://www.gnu.org/licenses/>.  */
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS()				\
++  do								\
++    {								\
++      GNU_USER_TARGET_OS_CPP_BUILTINS ();			\
++      builtin_define ("__uClinux__");				\
++    }								\
++  while (0)
++
++#undef SUBTARGET_CPP_SPEC
++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
++#undef SIZE_TYPE
++#define SIZE_TYPE "unsigned int"
++
++#undef PTRDIFF_TYPE
++#define PTRDIFF_TYPE "int"
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "long int"
++
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE 32
++
++#undef ASM_SPEC
++#define ASM_SPEC \
++ "%{mtext-section-literals:--text-section-literals} \
++  %{mno-text-section-literals:--no-text-section-literals} \
++  %{mtarget-align:--target-align} \
++  %{mno-target-align:--no-target-align} \
++  %{mlongcalls:--longcalls} \
++  %{mno-longcalls:--no-longcalls} \
++  %{mauto-litpools:--auto-litpools} \
++  %{mno-auto-litpools:--no-auto-litpools}"
++
++#undef LINK_SPEC
++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}"
++
++#undef LOCAL_LABEL_PREFIX
++#define LOCAL_LABEL_PREFIX	"."
++
++/* Always enable "-fpic" for Xtensa Linux.  */
++#define XTENSA_ALWAYS_PIC 1
++
++#undef TARGET_LIBC_HAS_FUNCTION
++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
++
++#undef DBX_REGISTER_NUMBER
++
+diff --git a/gcc/config/xtensa/uclinux.opt b/gcc/config/xtensa/uclinux.opt
+new file mode 100644
+index 0000000..95ef777
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.opt
+@@ -0,0 +1,32 @@
++; Xtensa uClinux options.
++
++; Copyright (C) 2015 Free Software Foundation, Inc.
++;
++; This file is part of GCC.
++;
++; GCC is free software; you can redistribute it and/or modify it under
++; the terms of the GNU General Public License as published by the Free
++; Software Foundation; either version 3, or (at your option) any later
++; version.
++;
++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++; WARRANTY; without even the implied warranty of MERCHANTABILITY or
++; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++; for more details.
++;
++; You should have received a copy of the GNU General Public License
++; along with GCC; see the file COPYING3.  If not see
++; <http://www.gnu.org/licenses/>.
++
++; See the GCC internals manual (options.texi) for a description of
++; this file's format.
++
++; Please try to keep this file in ASCII collating order.
++
++elf2flt
++Driver
++
++elf2flt=
++Driver JoinedOrMissing
++
++; This comment is to ensure we retain the blank line above.
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 2c64756..2ee92c1 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -1295,6 +1295,11 @@ xtensa*-*-linux*)
+ 	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
+ 	md_unwind_header=xtensa/linux-unwind.h
+ 	;;
++xtensa*-*-uclinux*)
++	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
++	md_unwind_header=xtensa/linux-unwind.h
++	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
++	;;
+ am33_2.0-*-linux*)
+ 	# Don't need crtbeginT.o from *-*-linux* default.
+ 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+-- 
+1.8.1.4
+
diff --git a/package/gcc/5.3.0/874-xtensa-add-uclinux-support.patch b/package/gcc/5.3.0/874-xtensa-add-uclinux-support.patch
new file mode 100644
index 0000000..23db3d8
--- /dev/null
+++ b/package/gcc/5.3.0/874-xtensa-add-uclinux-support.patch
@@ -0,0 +1,174 @@
+From 70c2cb98fb129b4766b5da0f945dc41fd568c77a Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Sat, 22 Aug 2015 08:44:26 +0300
+Subject: [PATCH] xtensa: add uclinux support
+
+2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
+gcc/
+	* config.gcc (xtensa*-*-uclinux*): New configuration.
+	* config/xtensa/uclinux.h: New file.
+	* config/xtensa/uclinux.opt: New file.
+
+libgcc/
+	* config.host (xtensa*-*-uclinux*): New configuration.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r228450
+
+ gcc/config.gcc                |  5 ++++
+ gcc/config/xtensa/uclinux.h   | 69 +++++++++++++++++++++++++++++++++++++++++++
+ gcc/config/xtensa/uclinux.opt | 32 ++++++++++++++++++++
+ libgcc/config.host            |  5 ++++
+ 4 files changed, 111 insertions(+)
+ create mode 100644 gcc/config/xtensa/uclinux.h
+ create mode 100644 gcc/config/xtensa/uclinux.opt
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index c52f5a8..56797bd 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -2995,6 +2995,11 @@ xtensa*-*-linux*)
+ 	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
+ 	tmake_file="${tmake_file} xtensa/t-xtensa"
+ 	;;
++xtensa*-*-uclinux*)
++	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
++	tmake_file="${tmake_file} xtensa/t-xtensa"
++	extra_options="${extra_options} xtensa/uclinux.opt"
++	;;
+ am33_2.0-*-linux*)
+ 	tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
+ 	gas=yes gnu_ld=yes
+diff --git a/gcc/config/xtensa/uclinux.h b/gcc/config/xtensa/uclinux.h
+new file mode 100644
+index 0000000..4606020
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.h
+@@ -0,0 +1,69 @@
++/* Xtensa uClinux configuration.
++   Derived from the configuration for GCC for Intel i386 running Linux.
++   Copyright (C) 2001-2015 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 3, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3.  If not see
++<http://www.gnu.org/licenses/>.  */
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS()				\
++  do								\
++    {								\
++      GNU_USER_TARGET_OS_CPP_BUILTINS ();			\
++      builtin_define ("__uClinux__");				\
++    }								\
++  while (0)
++
++#undef SUBTARGET_CPP_SPEC
++#define SUBTARGET_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
++#undef SIZE_TYPE
++#define SIZE_TYPE "unsigned int"
++
++#undef PTRDIFF_TYPE
++#define PTRDIFF_TYPE "int"
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "long int"
++
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE 32
++
++#undef ASM_SPEC
++#define ASM_SPEC \
++ "%{mtext-section-literals:--text-section-literals} \
++  %{mno-text-section-literals:--no-text-section-literals} \
++  %{mtarget-align:--target-align} \
++  %{mno-target-align:--no-target-align} \
++  %{mlongcalls:--longcalls} \
++  %{mno-longcalls:--no-longcalls} \
++  %{mauto-litpools:--auto-litpools} \
++  %{mno-auto-litpools:--no-auto-litpools}"
++
++#undef LINK_SPEC
++#define LINK_SPEC "%{!no-elf2flt:%{!elf2flt*:-elf2flt}}"
++
++#undef LOCAL_LABEL_PREFIX
++#define LOCAL_LABEL_PREFIX	"."
++
++/* Always enable "-fpic" for Xtensa Linux.  */
++#define XTENSA_ALWAYS_PIC 1
++
++#undef TARGET_LIBC_HAS_FUNCTION
++#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
++
++#undef DBX_REGISTER_NUMBER
++
+diff --git a/gcc/config/xtensa/uclinux.opt b/gcc/config/xtensa/uclinux.opt
+new file mode 100644
+index 0000000..95ef777
+--- /dev/null
++++ b/gcc/config/xtensa/uclinux.opt
+@@ -0,0 +1,32 @@
++; Xtensa uClinux options.
++
++; Copyright (C) 2015 Free Software Foundation, Inc.
++;
++; This file is part of GCC.
++;
++; GCC is free software; you can redistribute it and/or modify it under
++; the terms of the GNU General Public License as published by the Free
++; Software Foundation; either version 3, or (at your option) any later
++; version.
++;
++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++; WARRANTY; without even the implied warranty of MERCHANTABILITY or
++; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++; for more details.
++;
++; You should have received a copy of the GNU General Public License
++; along with GCC; see the file COPYING3.  If not see
++; <http://www.gnu.org/licenses/>.
++
++; See the GCC internals manual (options.texi) for a description of
++; this file's format.
++
++; Please try to keep this file in ASCII collating order.
++
++elf2flt
++Driver
++
++elf2flt=
++Driver JoinedOrMissing
++
++; This comment is to ensure we retain the blank line above.
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 2c64756..2ee92c1 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -1295,6 +1295,11 @@ xtensa*-*-linux*)
+ 	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
+ 	md_unwind_header=xtensa/linux-unwind.h
+ 	;;
++xtensa*-*-uclinux*)
++	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
++	md_unwind_header=xtensa/linux-unwind.h
++	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
++	;;
+ am33_2.0-*-linux*)
+ 	# Don't need crtbeginT.o from *-*-linux* default.
+ 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+-- 
+1.8.1.4
+
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 2/2] uclibc: enable linuxthreads for xtensa
  2016-03-17 15:27 [Buildroot] [PATCH 0/2] xtensa noMMU support Max Filippov
  2016-03-17 15:27 ` [Buildroot] [PATCH 1/2] gcc: add xtensa uClinux support Max Filippov
@ 2016-03-17 15:27 ` Max Filippov
  2016-03-31  1:57 ` [Buildroot] [PATCH 0/2] xtensa noMMU support Thomas Petazzoni
  2 siblings, 0 replies; 7+ messages in thread
From: Max Filippov @ 2016-03-17 15:27 UTC (permalink / raw)
  To: buildroot

linuxthreads is the only threading option for noMMU xtensa, enable it.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
 package/uclibc/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 16bf89c..ae32f21 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -63,7 +63,7 @@ choice
 	config BR2_PTHREADS_OLD
 		bool "linuxthreads (stable/old)"
 		select BR2_TOOLCHAIN_HAS_THREADS
-		depends on BR2_m68k || BR2_arm || BR2_armeb
+		depends on BR2_m68k || BR2_arm || BR2_armeb || BR2_xtensa
 
 	config BR2_PTHREADS_NATIVE
 		bool "Native POSIX Threading (NPTL)"
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 0/2] xtensa noMMU support
  2016-03-17 15:27 [Buildroot] [PATCH 0/2] xtensa noMMU support Max Filippov
  2016-03-17 15:27 ` [Buildroot] [PATCH 1/2] gcc: add xtensa uClinux support Max Filippov
  2016-03-17 15:27 ` [Buildroot] [PATCH 2/2] uclibc: enable linuxthreads for xtensa Max Filippov
@ 2016-03-31  1:57 ` Thomas Petazzoni
  2016-03-31  3:20   ` Max Filippov
  2 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2016-03-31  1:57 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 17 Mar 2016 18:27:02 +0300, Max Filippov wrote:

> this series enables noMMU support for xtensa.
> noMMU xtensa uses FLAT binaries and linuxthreads.
> This series assumes elf2flt support for Xtensa.

Is this actually the case?

> Max Filippov (2):
>   gcc: add xtensa uClinux support
>   uclibc: enable linuxthreads for xtensa

Applied, thanks!

Is it possible to boot a noMMU Xtensa system under Qemu ?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 0/2] xtensa noMMU support
  2016-03-31  1:57 ` [Buildroot] [PATCH 0/2] xtensa noMMU support Thomas Petazzoni
@ 2016-03-31  3:20   ` Max Filippov
  2016-03-31 14:36     ` Thomas Petazzoni
  0 siblings, 1 reply; 7+ messages in thread
From: Max Filippov @ 2016-03-31  3:20 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Mar 31, 2016 at 4:57 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> On Thu, 17 Mar 2016 18:27:02 +0300, Max Filippov wrote:
>> this series enables noMMU support for xtensa.
>> noMMU xtensa uses FLAT binaries and linuxthreads.
>> This series assumes elf2flt support for Xtensa.
>
> Is this actually the case?

The following patch would switch to elf2flt version that has xtensa support:
  https://patchwork.ozlabs.org/patch/599708/
and it was on the list before I sent this series.

But I realize that elf2flt build is not enabled for xtensa, even with the
above patch. I'll send a fix that enables it.

>> Max Filippov (2):
>>   gcc: add xtensa uClinux support
>>   uclibc: enable linuxthreads for xtensa
>
> Applied, thanks!
>
> Is it possible to boot a noMMU Xtensa system under Qemu ?

It is possible to run noMMU kernel and userspace on MMUv3 cores
with the mainline QEMU. Real noMMU cores need a fix that wasn't
accepted to the QEMU mainline:
  http://qemu.11.n7.nabble.com/PATCH-0-3-target-xtensa-xtfpga-support-cores-without-MMU-td358668.html
I probably need to get back to it and make suggested changes.

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 0/2] xtensa noMMU support
  2016-03-31  3:20   ` Max Filippov
@ 2016-03-31 14:36     ` Thomas Petazzoni
  2016-03-31 17:52       ` Max Filippov
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2016-03-31 14:36 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 31 Mar 2016 06:20:51 +0300, Max Filippov wrote:

> > Is this actually the case?
> 
> The following patch would switch to elf2flt version that has xtensa support:
>   https://patchwork.ozlabs.org/patch/599708/

Ah, ok. I need to respin this series then.

> But I realize that elf2flt build is not enabled for xtensa, even with the
> above patch. I'll send a fix that enables it.

Seen your patch, thanks!

> It is possible to run noMMU kernel and userspace on MMUv3 cores
> with the mainline QEMU. Real noMMU cores need a fix that wasn't
> accepted to the QEMU mainline:
>   http://qemu.11.n7.nabble.com/PATCH-0-3-target-xtensa-xtfpga-support-cores-without-MMU-td358668.html
> I probably need to get back to it and make suggested changes.

OK.

Do you think you could submit a minimal defconfig that creates a noMMU
Xtensa system that runs under Qemu? I think it would be quite useful,
as it would the first noMMU Qemu configuration that we would have in
Buildroot.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH 0/2] xtensa noMMU support
  2016-03-31 14:36     ` Thomas Petazzoni
@ 2016-03-31 17:52       ` Max Filippov
  0 siblings, 0 replies; 7+ messages in thread
From: Max Filippov @ 2016-03-31 17:52 UTC (permalink / raw)
  To: buildroot

On Thu, Mar 31, 2016 at 5:36 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Do you think you could submit a minimal defconfig that creates a noMMU
> Xtensa system that runs under Qemu? I think it would be quite useful,
> as it would the first noMMU Qemu configuration that we would have in
> Buildroot.

Sure, let me try.

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-03-31 17:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-17 15:27 [Buildroot] [PATCH 0/2] xtensa noMMU support Max Filippov
2016-03-17 15:27 ` [Buildroot] [PATCH 1/2] gcc: add xtensa uClinux support Max Filippov
2016-03-17 15:27 ` [Buildroot] [PATCH 2/2] uclibc: enable linuxthreads for xtensa Max Filippov
2016-03-31  1:57 ` [Buildroot] [PATCH 0/2] xtensa noMMU support Thomas Petazzoni
2016-03-31  3:20   ` Max Filippov
2016-03-31 14:36     ` Thomas Petazzoni
2016-03-31 17:52       ` Max Filippov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox