Skip to contentSkip to conversation

mips64 support and sh4 support

RFC PATCH In review Khem Raj 4 participants 19 messages May 21, 2012

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover mips64 support and sh4 support

This patchset adds required bits into metadata for having mips64/n64 support. I have tested the core-image-sato and core-image-minimal builds and boots on qemumips64 and runs gcc regression testsuite. It needs linux-yocto-dev kernel for now which can be obtained from poky-extra repo. Additionally systemd-image on angstrom-next builds and boots fine on qemumips64 as well.

Additionally it also adds bits to have SH4 root file systems to be able to built and again core-image-sato builds for sh4 however qemu machine support is not yet done but root file sytem boots fine on real hardware.

The images are tested on both eglibc and uclibc.

Any help in providing feedback or testing these patches is welcome.

I have tested them enough for over a month now.

The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:

sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/mips64
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64

Khem Raj (14):
insane.bbclass: Add mips64{el} to known machines
site: Add mips64 eglibc and uclibc site files gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
binutils: Default to n64 when configured for mips64 kernel-arch.bbclass: Map mips64{el} to mips KARCH eglibc-2.15: Support mips64
libc-package: Add sh4 and mips64 to arch options
runqemu: Add qemush4 and qemumips64 knowledge
netbase: Add interface files for qemumips64 and qemush4 site/sh-common: Add missing caches variables to build glib-2.32
xserver-xorg: Fix build for mips64
tune-mips64.inc: Add new tune file for mips64 big-endian qemumips64.conf: Add machine configuration for mips64(eb) qemush4.conf: Add machine configuration for qemush4

 meta/classes/insane.bbclass                        |    4 +
 meta/classes/kernel-arch.bbclass                   |    2 +-
 meta/classes/libc-package.bbclass                  |    3 +
 meta/conf/machine/include/tune-mips64.inc          |    3 +
 meta/conf/machine/qemumips64.conf                  |   13 +++
 meta/conf/machine/qemush4.conf                     |   13 +++
 meta/recipes-core/eglibc/eglibc-locale.inc         |    2 +-
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    2 +-
 .../netbase/netbase-4.47/qemumips64/interfaces     |    8 ++
 .../netbase/netbase-4.47/qemush4/interfaces        |    8 ++
 meta/recipes-core/netbase/netbase_4.47.bb          |    4 +-
 .../binutils/mips64-default-ld-emulation.patch     |   49 +++++++++
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
 .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 ++++++
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/mips64-default-n64.patch           |   19 ++++
 meta/recipes-devtools/gcc/gcc-configure-common.inc |    4 +
 .../xorg-xserver/xserver-xorg-1.11.2.inc           |    1 +
 .../xserver-xorg-1.11.2/mips64-compiler.patch      |   29 +++++
 meta/site/mips64-linux                             |   82 +++++++++++++++
 meta/site/mips64-linux-uclibc                      |   83 +++++++++++++++
 meta/site/mips64el-linux                           |   82 +++++++++++++++
 meta/site/mips64el-linux-uclibc                    |  108 ++++++++++++++++++++
 meta/site/sh-common                                |    4 +
 scripts/runqemu                                    |   10 ++-
 scripts/runqemu-internal                           |   35 ++++++-
 27 files changed, 594 insertions(+), 11 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-mips64.inc
 create mode 100644 meta/conf/machine/qemumips64.conf
 create mode 100644 meta/conf/machine/qemush4.conf
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces
 create mode 100644 meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch
 create mode 100644 meta/site/mips64-linux
 create mode 100644 meta/site/mips64-linux-uclibc
 create mode 100644 meta/site/mips64el-linux
 create mode 100644 meta/site/mips64el-linux-uclibc
Signature · 1 line
1.7.5.4
author
#1 lore raw

PATCH 1/14 insane.bbclass: Add mips64{el} to known machines

---
 meta/classes/insane.bbclass |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
meta/classes/insane.bbclass +4 -0
index 8c4a83a..49e904a 100644
@@ -59,6 +59,8 @@ def package_qa_get_machine_dict():
                         "m68k":       ( 4,     0,    0,          False,         32),
                         "mips":       ( 8,     0,    0,          False,         32),
                         "mipsel":     ( 8,     0,    0,          True,          32),
+                        "mips64":     ( 8,     0,    0,          False,         64),
+                        "mips64el":   ( 8,     0,    0,          True,          64),
                         "s390":       (22,     0,    0,          False,         32),
                         "sh4":        (42,     0,    0,          True,          32),
                         "sparc":      ( 2,     0,    0,          False,         32),
@@ -74,6 +76,8 @@ def package_qa_get_machine_dict():
                         "x86_64":     (  62,     0,    0,          True,          64),
                         "mips":       (   8,     0,    0,          False,         32),
                         "mipsel":     (   8,     0,    0,          True,          32),
+                        "mips64":     (   8,     0,    0,          False,         64),
+                        "mips64el":   (   8,     0,    0,          True,          64),
                         "avr32":      (6317,     0,    0,          False,         32),
 			"sh4":        (42,	 0,    0,          True,          32),
 
Signature · 1 line
1.7.5.4
author
#2 lore raw

PATCH 2/14 site: Add mips64 eglibc and uclibc site files

---
 meta/site/mips64-linux          |   82 +++++++++++++++++++++++++++++
 meta/site/mips64-linux-uclibc   |   83 ++++++++++++++++++++++++++++++
 meta/site/mips64el-linux        |   82 +++++++++++++++++++++++++++++
 meta/site/mips64el-linux-uclibc |  108 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 355 insertions(+), 0 deletions(-)
 create mode 100644 meta/site/mips64-linux
 create mode 100644 meta/site/mips64-linux-uclibc
 create mode 100644 meta/site/mips64el-linux
 create mode 100644 meta/site/mips64el-linux-uclibc
meta/site/mips64-linux new file +82 -0
new file mode 100644
index 0000000..4449c96
@@ -0,0 +1,82 @@
+# general
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}
+
+# bash
+ac_cv_c_long_double=${ac_cv_c_long_double=no}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
+
+# openssh
+ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
+ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
+ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
+ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
+ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}
+
+# fget
+compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}
+
+# glib
+glib_cv___va_copy=${glib_cv___va_copy=yes}
+glib_cv_has__inline=${glib_cv_has__inline=yes}
+glib_cv_has__inline__=${glib_cv_has__inline__=yes}
+glib_cv_hasinline=${glib_cv_hasinline=yes}
+glib_cv_long_long_format=${glib_cv_long_long_format=ll}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
+glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
+glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+glib_cv_uscore=${glib_cv_uscore=no}
+
+# glib-2.0
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
+glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+ac_cv_alignof_guint32=4
+ac_cv_alignof_guint64=8
+ac_cv_alignof_unsigned_long=8
+
+# libpcap
+ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+# startup-notification
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
+
+# libidl
+libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
+
+# ncftp
+wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
+wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}
+
+# db
+db_cv_align_t=${db_cv_align_t='unsigned long long'}
+db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
+db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
+db_cv_sprintf_count=${db_cv_sprintf_count=yes}
+
+# rrdtool
+rd_cv_ieee_works=${rd_cv_ieee_works=yes}
+# ac_cv_path_PERL=${ac_cv_path_PERL=no}
+
+# gettext
+am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+# samba
+samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}
+
+# vim
+ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
+
+# intercom
+ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+# lmbench
+ac_cv_uint=${ac_cv_unit=yes}
+
+# D-BUS
+ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
+
+# eds-dbus
+ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}
+
meta/site/mips64-linux-uclibc new file +83 -0

83 lines not on this page · raw message

meta/site/mips64el-linux new file +82 -0

82 lines not on this page · raw message

meta/site/mips64el-linux-uclibc new file +108 -0

108 lines not on this page · raw message

Signature · 1 line
1.7.5.4
author
#3 lore raw

PATCH 3/14 gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler

In reply to Khem Raj

Defaults to n64 ABI

---
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
 .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/mips64-default-n64.patch           |   19 ++++++++++++
 meta/recipes-devtools/gcc/gcc-configure-common.inc |    4 ++
 5 files changed, 57 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch
meta/recipes-devtools/gcc/gcc-4.6.inc +1 -0
index 65bc65d..7a70a38 100644
@@ -74,6 +74,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
 	   file://fortran-cross-compile-hack.patch \
 	   file://cpp-honour-sysroot.patch \
+	   file://mips64-default-n64.patch \
 	  "
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch "
meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch new file +32 -0
new file mode 100644
index 0000000..bf930ec
@@ -0,0 +1,32 @@
+MIPS64 defaults to n32 ABI, this patch makes it
+so that it defaults to N64 ABI
+
+Upstream-Status: Inappropriate [OE config specific]
+
+Signed-off-by: Khem Raj <[email protected]>
+Index: gcc-4_6-branch/gcc/config.gcc
+===================================================================
+--- gcc-4_6-branch.orig/gcc/config.gcc	2012-04-22 19:12:12.431061229 -0700
++++ gcc-4_6-branch/gcc/config.gcc	2012-04-22 19:13:36.307065289 -0700
+@@ -1882,7 +1882,7 @@
+ mips64*-*-linux* | mipsisa64*-*-linux*)
+ 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h"
+ 	tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16"
+-	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
++	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_64"
+ 	case ${target} in
+ 		mips64el-st-linux-gnu)
+ 			tm_file="${tm_file} mips/st.h"
+Index: gcc-4_6-branch/gcc/config/mips/linux64.h
+===================================================================
+--- gcc-4_6-branch.orig/gcc/config/mips/linux64.h	2012-04-22 19:10:59.743057711 -0700
++++ gcc-4_6-branch/gcc/config/mips/linux64.h	2012-04-22 19:11:56.919060479 -0700
+@@ -26,7 +26,7 @@
+   BASE_DRIVER_SELF_SPECS, \
+   LINUX_DRIVER_SELF_SPECS \
+   " %{!EB:%{!EL:%(endian_spec)}}" \
+-  " %{!mabi=*: -mabi=n32}"
++  " %{!mabi=*: -mabi=64}"
+ 
+ #undef LIB_SPEC
+ #define LIB_SPEC "\
meta/recipes-devtools/gcc/gcc-4.7.inc +1 -0
index 8adeb8d..efd166c 100644
@@ -64,6 +64,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://fortran-cross-compile-hack.patch \
 	   file://libgcc-sjlj-check.patch \
 	   file://cpp-honor-sysroot.patch \
+	   file://mips64-default-n64.patch \
 	  "
 
 S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}"
meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch new file +19 -0
new file mode 100644
index 0000000..a42569e
@@ -0,0 +1,19 @@
+MIPS64 defaults to n32 ABI, this patch makes it
+so that it defaults to N64 ABI
+
+Upstream-Status: Inappropriate [OE config specific]
+
+Signed-off-by: Khem Raj <[email protected]>
+Index: gcc-4_7-branch/gcc/config.gcc
+===================================================================
+--- gcc-4_7-branch.orig/gcc/config.gcc	2012-04-22 19:30:21.000000000 -0700
++++ gcc-4_7-branch/gcc/config.gcc	2012-04-22 21:09:57.783403173 -0700
+@@ -1750,7 +1750,7 @@
+ mips64*-*-linux* | mipsisa64*-*-linux*)
+ 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h"
+ 	tmake_file="${tmake_file} mips/t-linux64"
+-	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
++	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_64"
+ 	case ${target} in
+ 		mips64el-st-linux-gnu)
+ 			tm_file="${tm_file} mips/st.h"
meta/recipes-devtools/gcc/gcc-configure-common.inc +4 -0
index a812b98..4d11ef4 100644
@@ -49,6 +49,10 @@ EXTRA_OECONF = "${@['--enable-clocale=generic', ''][d.getVar('USE_NLS', True) !=
 # Build uclibc compilers without cxa_atexit support
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_libc-uclibc        = " --enable-__cxa_atexit"
+
+EXTRA_OECONF_append_mips64    = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64"
+EXTRA_OECONF_append_mips64el    = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64"
+
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 CPPFLAGS = ""
 
Signature · 1 line
1.7.5.4
author
#4 lore raw

PATCH 4/14 binutils: Default to n64 when configured for mips64

In reply to Khem Raj

Default ABI for mips64 is n64 so make it default in binutils

---
 .../binutils/mips64-default-ld-emulation.patch     |   49 ++++++++++++++++++++
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
 2 files changed, 51 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch new file +49 -0
new file mode 100644
index 0000000..ab01859
@@ -0,0 +1,49 @@
+for mips64*-*-linux we change the default emulations to be
+N64 instead of N32
+
+Upstream-Status: Inappropriate [ OE configuration Specific]
+
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: binutils-2.22/bfd/config.bfd
+===================================================================
+--- binutils-2.22.orig/bfd/config.bfd	2011-07-28 15:35:13.000000000 -0700
++++ binutils-2.22/bfd/config.bfd	2012-04-23 21:07:44.151578222 -0700
+@@ -970,13 +970,13 @@
+     ;;
+ #ifdef BFD64
+   mips64*el-*-linux*)
+-    targ_defvec=bfd_elf32_ntradlittlemips_vec
+-    targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradlittlemips_vec bfd_elf64_tradbigmips_vec"
++    targ_defvec=bfd_elf64_tradlittlemips_vec
++    targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf64_tradbigmips_vec"
+     want64=true
+     ;;
+   mips64*-*-linux*)
+-    targ_defvec=bfd_elf32_ntradbigmips_vec
+-    targ_selvecs="bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradbigmips_vec bfd_elf64_tradlittlemips_vec"
++    targ_defvec=bfd_elf64_tradbigmips_vec
++    targ_selvecs="bfd_elf32_ntradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_tradbigmips_vec bfd_elf32_tradlittlemips_vec bfd_elf64_tradlittlemips_vec"
+     want64=true
+     ;;
+ #endif
+Index: binutils-2.22/ld/configure.tgt
+===================================================================
+--- binutils-2.22.orig/ld/configure.tgt	2011-11-21 01:29:37.000000000 -0800
++++ binutils-2.22/ld/configure.tgt	2012-04-23 21:05:34.183571931 -0700
+@@ -395,11 +395,11 @@
+ mips*-*-vxworks*)	targ_emul=elf32ebmipvxworks
+ 		        targ_extra_emuls="elf32elmipvxworks" ;;
+ mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
+-mips64*el-*-linux-*)	targ_emul=elf32ltsmipn32
+-			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
++mips64*el-*-linux-*)	targ_emul=elf64ltsmip
++			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
+ 			targ_extra_libpath=$targ_extra_emuls ;;
+-mips64*-*-linux-*)	targ_emul=elf32btsmipn32
+-			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
++mips64*-*-linux-*)	targ_emul=elf64btsmip
++			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
+ 			targ_extra_libpath=$targ_extra_emuls ;;
+ mips*el-*-linux-*)	targ_emul=elf32ltsmip
+ 			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
meta/recipes-devtools/binutils/binutils_2.22.bb +2 -1
index d6d19a1..ae15e82 100644
@@ -1,6 +1,6 @@
 require binutils.inc
 
-PR = "r6"
+PR = "r7"
 
 LIC_FILES_CHKSUM="\
     file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
@@ -31,6 +31,7 @@ SRC_URI = "\
      file://clone-shadow.patch \
      file://binutils-powerpc-e5500.patch \
      file://binutils-armv5e.patch \
+     file://mips64-default-ld-emulation.patch \
      "
 
 SRC_URI[md5sum] = "ee0f10756c84979622b992a4a61ea3f5"
Signature · 1 line
1.7.5.4
author
#5 lore raw

PATCH 5/14 kernel-arch.bbclass: Map mips64{el} to mips KARCH

In reply to Khem Raj
---
 meta/classes/kernel-arch.bbclass |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/classes/kernel-arch.bbclass +1 -1
index d37c1fb..e186422 100644
@@ -23,7 +23,7 @@ def map_kernel_arch(a, d):
 	if   re.match('(i.86|athlon|x86.64)$', a):	return 'x86'
 	elif re.match('arm26$', a):		        return 'arm26'
 	elif re.match('armeb$', a):		        return 'arm'
-	elif re.match('mipsel$', a):		        return 'mips'
+	elif re.match('mips(el|64|64el)$', a):	        return 'mips'
 	elif re.match('p(pc|owerpc)(|64)', a):		return 'powerpc'
 	elif re.match('sh(3|4)$', a):		        return 'sh'
 	elif re.match('bfin', a):                       return 'blackfin'
Signature · 1 line
1.7.5.4
author
#6 lore raw

PATCH 6/14 eglibc-2.15: Support mips64

In reply to Khem Raj

Add mips64 to binary locale arches Enabling ports in addons causes wrong machtype to be chosen for mips64 and it always chose mips32 which is wrong for mips64 so enable all the addons we have and we were enabling them anyway

---
 meta/recipes-core/eglibc/eglibc-locale.inc |    2 +-
 meta/recipes-core/eglibc/eglibc_2.15.bb    |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/eglibc/eglibc-locale.inc +1 -1
index 70c5cd1..6990569 100644
@@ -20,7 +20,7 @@ ENABLE_BINARY_LOCALE_GENERATION_pn-eglibc-locale-nativesdk = "0"
 
 #enable locale generation on these arches
 # BINARY_LOCALE_ARCHES is a space separated list of regular expressions
-BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips"
+BINARY_LOCALE_ARCHES ?= "arm.* i[3-6]86 x86_64 powerpc mips mips64"
 
 # set "1" to use cross-localedef for locale generation
 # set "0" for qemu emulation of native localedef for locale generation
meta/recipes-core/eglibc/eglibc_2.15.bb +1 -1
index 340ec99..fa92670 100644
@@ -68,7 +68,7 @@ export libc_cv_slibdir = "${base_libdir}"
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
                 --without-cvs --disable-profile --disable-debug --without-gd \
                 --enable-clocale=gnu \
-                --enable-add-ons=${GLIBC_ADDONS},ports \
+                --enable-add-ons \
                 --with-headers=${STAGING_INCDIR} \
                 --without-selinux \
                 ${GLIBC_EXTRA_OECONF}"
Signature · 1 line
1.7.5.4
author
#7 lore raw

PATCH 7/14 libc-package: Add sh4 and mips64 to arch options

In reply to Khem Raj

needed for new architecture support

---
 meta/classes/libc-package.bbclass |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
meta/classes/libc-package.bbclass +3 -0
index 10f5f87..9df3c17 100644
@@ -266,10 +266,13 @@ python package_do_split_gconvs () {
 			target_arch = d.getVar('TARGET_ARCH', True)
 			locale_arch_options = { \
 				"arm":     " --uint32-align=4 --little-endian ", \
+				"sh4":     " --uint32-align=4 --big-endian ",    \
 				"powerpc": " --uint32-align=4 --big-endian ",    \
 				"powerpc64": " --uint32-align=4 --big-endian ",  \
 				"mips":    " --uint32-align=4 --big-endian ",    \
+				"mips64":  " --uint32-align=4 --big-endian ",    \
 				"mipsel":  " --uint32-align=4 --little-endian ", \
+				"mips64el":" --uint32-align=4 --little-endian ", \
 				"i586":    " --uint32-align=4 --little-endian ", \
 				"i686":    " --uint32-align=4 --little-endian ", \
 				"x86_64":  " --uint32-align=4 --little-endian "  }
Signature · 1 line
1.7.5.4
author
#8 lore raw

PATCH 8/14 runqemu: Add qemush4 and qemumips64 knowledge

In reply to Khem Raj

New machines need to be added and they also
have different kernel commandlines

---
 scripts/runqemu          |   10 ++++++++--
 scripts/runqemu-internal |   35 ++++++++++++++++++++++++++++++++---
 2 files changed, 40 insertions(+), 5 deletions(-)
scripts/runqemu +8 -2
index fc7363f..1e803ed 100755
@@ -94,7 +94,7 @@ KVM_ENABLED="no"
 while true; do
     arg=${1}
     case "$arg" in
-        "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemuppc")
+        "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemumips64" | "qemush4"  | "qemuppc")
             [ -z "$MACHINE" ] && MACHINE=$arg || \
                 error "conflicting MACHINE types [$MACHINE] and [$arg]"
             ;;
@@ -223,7 +223,7 @@ if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
 fi
 
 if [ -z "$MACHINE" ]; then
-    MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips\|qemuppc\).*/\1/'`
+    MACHINE=`basename $KERNEL | sed 's/.*-\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/'`
     if [ -z "$MACHINE" ]; then
         error "Unable to set MACHINE from kernel filename [$KERNEL]"
     fi
@@ -245,6 +245,12 @@ QEMUARM_DEFAULT_FSTYPE=ext3
 QEMUMIPS_DEFAULT_KERNEL=vmlinux-qemumips.bin
 QEMUMIPS_DEFAULT_FSTYPE=ext3
 
+QEMUMIPS64_DEFAULT_KERNEL=vmlinux-qemumips64.bin
+QEMUMIPS64_DEFAULT_FSTYPE=ext3
+
+QEMUSH4_DEFAULT_KERNEL=vmlinux-qemumips.bin
+QEMUSH4_DEFAULT_FSTYPE=ext3
+
 QEMUPPC_DEFAULT_KERNEL=vmlinux-qemuppc.bin
 QEMUPPC_DEFAULT_FSTYPE=ext3
 
scripts/runqemu-internal +32 -3
index fe2974b..c8e3186 100755
@@ -51,12 +51,15 @@ else
         "qemuarm")
             mem_size=128
             ;;
-        "qemumips")
+        "qemumips"|"qemumips64")
             mem_size=128
             ;;
         "qemuppc")
             mem_size=128
             ;;
+        "qemush4")
+            mem_size=1024
+            ;;
         *)
             mem_size=64
             ;;
@@ -233,6 +236,8 @@ fi
 case "$MACHINE" in
     "qemuarm") ;;
     "qemumips") ;;
+    "qemumips64") ;;
+    "qemush4") ;;
     "qemuppc") ;;
     "qemuarmv6") ;;
     "qemuarmv7") ;;
@@ -370,8 +375,12 @@ if [ "$MACHINE" = "spitz" ]; then
     fi
 fi
 
-if [ "$MACHINE" = "qemumips" ]; then
-    QEMU=qemu-system-mips
+if [ "$MACHINE" = "qemumips" -o "$MACHINE" = "qemumips64" ]; then
+    if [ "$MACHINE" = "qemumips64" ]; then
+	QEMU=qemu-system-mips64
+    else
+	QEMU=qemu-system-mips
+    fi
     MACHINE_SUBTYPE=malta
     QEMU_UI_OPTIONS="-vga cirrus $QEMU_UI_OPTIONS"
     if [ "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then
@@ -411,6 +420,26 @@ if [ "$MACHINE" = "qemuppc" ]; then
     fi
 fi
 
+if [ "$MACHINE" = "qemush4" ]; then
+    QEMU=qemu-system-sh4
+    MACHINE_SUBTYPE=r2d
+    QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
+    if [ "$FSTYPE" = "ext3" -o "$FSTYPE" = "btrfs" ]; then
+        #KERNCMDLINE="root=/dev/hda console=ttyS0 console=tty0 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        KERNCMDLINE="root=/dev/hda rw console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
+    fi
+    if [ "$FSTYPE" = "nfs" ]; then
+        if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
+            echo "Error: NFS mount point $ROOTFS doesn't exist"
+            cleanup
+            return
+        fi
+        KERNCMDLINE="root=/dev/nfs console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
+    fi
+fi
+
 if [ "$MACHINE" = "akita" ]; then
     QEMU=qemu-system-arm
     if [ "$FSTYPE" = "jffs2" ]; then
Signature · 1 line
1.7.5.4
author
#9 lore raw

PATCH 9/14 netbase: Add interface files for qemumips64 and qemush4

In reply to Khem Raj

These files are alike other qemu machines they
help in creating a working network interface when
using qemumips64 or qemush4

---
 .../netbase/netbase-4.47/qemumips64/interfaces     |    8 ++++++++
 .../netbase/netbase-4.47/qemush4/interfaces        |    8 ++++++++
 meta/recipes-core/netbase/netbase_4.47.bb          |    4 ++--
 3 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces
meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces new file +8 -0
new file mode 100644
index 0000000..f62b9a8
@@ -0,0 +1,8 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+ 
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+
+
meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces new file +8 -0
new file mode 100644
index 0000000..f62b9a8
@@ -0,0 +1,8 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+ 
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+
+
meta/recipes-core/netbase/netbase_4.47.bb +2 -2
index a1462f8..1c85997 100644
@@ -4,7 +4,7 @@ HOMEPAGE = "http://packages.debian.org/netbase"
 SECTION = "base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
-PR = "r1"
+PR = "r2"
 
 inherit update-rc.d
 
@@ -37,7 +37,7 @@ do_install () {
 
 	# Disable network manager on machines that commonly do NFS booting
 	case "${MACHINE}" in
-		"qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
+		"qemuarm*" | "qemux86" | "qemux86-64" | "qemumips*" | "qemuppc" | "qemush*")
 			touch ${D}${sysconfdir}/network/nm-disabled-eth0
 			;;
 		*)
Signature · 1 line
1.7.5.4
author
#10 lore raw

PATCH 10/14 site/sh-common: Add missing caches variables to build glib-2.32

In reply to Khem Raj

This is on the same tone as done for other architectures

---
 meta/site/sh-common |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
meta/site/sh-common +4 -0
index c386266..bde416a 100644
@@ -147,6 +147,10 @@ glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
 glib_cv_sys_use_pid_niceness_surrogate=${glib_cv_sys_use_pid_niceness_surrogate=yes}
 
 glib_cv_strlcpy=${glib_cv_strlcpy=no}
+glib_cv_va_val_copy=${glib_cv_va_val_copy=yes}
+ac_cv_alignof_guint32=4
+ac_cv_alignof_guint64=8
+ac_cv_alignof_unsigned_long=4
 
 # httppc
 ac_cv_strerror_r_SUSv3=${ac_cv_strerror_r_SUSv3=no}
Signature · 1 line
1.7.5.4
author
#11 lore raw

PATCH 11/14 xserver-xorg: Fix build for mips64

In reply to Khem Raj

mips64 N64 ABI has different size for int and pointer which means the compiler will complain about conversions which works fine for 32 bit since sizes are same.

amd64 is taken care of already so we take care of mips64 with this patch by understanding the difference in sizes in compiler.h

---
 .../xorg-xserver/xserver-xorg-1.11.2.inc           |    1 +
 .../xserver-xorg-1.11.2/mips64-compiler.patch      |   29 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch
meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2.inc +1 -0
index fc41568..595ab77 100644
@@ -2,6 +2,7 @@
 SRC_URI += "file://crosscompile.patch \
             file://fix_open_max_preprocessor_error.patch \
             file://gcc-47-warning.patch \
+	    file://mips64-compiler.patch \
            "
 
 SRC_URI[md5sum] = "8796fff441e5435ee36a72579008af24"
meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch new file +29 -0
new file mode 100644
index 0000000..e6bc95b
@@ -0,0 +1,29 @@
+on mips64/n64 pointers are 64bit therefore the pointer conversions to int dont work well
+so we end up with incompatible conversion errors
+
+This patch choses the right values for mips64
+
+Signed-off-by: Khem Raj <[email protected]>
+
+Upstream-Status: Pending
+Index: xorg-server-1.11.2/hw/xfree86/common/compiler.h
+===================================================================
+--- xorg-server-1.11.2.orig/hw/xfree86/common/compiler.h	2012-05-10 12:19:59.485599046 -0700
++++ xorg-server-1.11.2/hw/xfree86/common/compiler.h	2012-05-10 12:20:53.109602488 -0700
+@@ -104,6 +104,7 @@
+ 
+ #  if !defined(__arm__)
+ #   if !defined(__sparc__) && !defined(__sparc) && !defined(__arm32__) && !defined(__nds32__) \
++      && !defined(__mips64) \
+       && !(defined(__alpha__) && defined(linux)) \
+       && !(defined(__ia64__) && defined(linux)) \
+ 
+@@ -708,7 +709,7 @@
+ }
+ 
+ #   elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
+-#    ifdef __arm32__
++#    if defined (__arm32__) || defined (__mips64)
+ #     define PORT_SIZE long
+ #    else
+ #     define PORT_SIZE short
Signature · 1 line
1.7.5.4
author
#12 lore raw

PATCH 12/14 tune-mips64.inc: Add new tune file for mips64 big-endian

In reply to Khem Raj
---
 meta/conf/machine/include/tune-mips64.inc |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-mips64.inc
meta/conf/machine/include/tune-mips64.inc new file +3 -0
new file mode 100644
index 0000000..ba79e2b
@@ -0,0 +1,3 @@
+DEFAULTTUNE ?= "mips64"
+
+require conf/machine/include/mips/arch-mips.inc
Signature · 1 line
1.7.5.4
author
#13 lore raw

PATCH 13/14 qemumips64.conf: Add machine configuration for mips64(eb)

In reply to Khem Raj

New machine description for qemu emulating malta64/mips64 big-endian system

---
 meta/conf/machine/qemumips64.conf |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
 create mode 100644 meta/conf/machine/qemumips64.conf
meta/conf/machine/qemumips64.conf new file +13 -0
new file mode 100644
index 0000000..8e9a488
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: mti_malta64 MIPS64
+#@DESCRIPTION: mti_malta64
+
+require conf/machine/include/qemu.inc
+require conf/machine/include/tune-mips64.inc
+
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
+
+SERIAL_CONSOLE = "115200 ttyS0"
+
+MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
Signature · 1 line
1.7.5.4
author
#14 lore raw

PATCH 14/14 qemush4.conf: Add machine configuration for qemush4

In reply to Khem Raj

SH4 qemu emulation using rts7751r2dplus board

---
 meta/conf/machine/qemush4.conf |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
 create mode 100644 meta/conf/machine/qemush4.conf
meta/conf/machine/qemush4.conf new file +13 -0
new file mode 100644
index 0000000..acf7faf
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: base
+#@DESCRIPTION: rts7751r2dplus
+
+require conf/machine/include/qemu.inc
+require conf/machine/include/tune-sh4.inc
+
+KERNEL_IMAGETYPE = "zImage"
+
+SERIAL_CONSOLE = "115200 ttySC1 noiotrap earlyprintk=sh-sci.1"
+
+MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
+
Signature · 1 line
1.7.5.4
#15 lore raw
In reply to Khem Raj
Quoted 26 lines · Khem Raj

This patchset adds required bits into metadata for having mips64/n64 support. I have tested the core-image-sato and core-image-minimal builds and boots on qemumips64 and runs gcc regression testsuite. It needs linux-yocto-dev kernel for now which can be obtained from poky-extra repo. Additionally systemd-image on angstrom-next builds and boots fine on qemumips64 as well.

Additionally it also adds bits to have SH4 root file systems to be able to built and again core-image-sato builds for sh4 however qemu machine support is not yet done but root file sytem boots fine on real hardware.

The images are tested on both eglibc and uclibc.

Any help in providing feedback or testing these patches is welcome.

I have tested them enough for over a month now.

The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:

sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/mips64
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64

Quoted 15 lines

Khem Raj (14):
insane.bbclass: Add mips64{el} to known machines
site: Add mips64 eglibc and uclibc site files gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
binutils: Default to n64 when configured for mips64 kernel-arch.bbclass: Map mips64{el} to mips KARCH eglibc-2.15: Support mips64
libc-package: Add sh4 and mips64 to arch options
runqemu: Add qemush4 and qemumips64 knowledge
netbase: Add interface files for qemumips64 and qemush4 site/sh-common: Add missing caches variables to build glib-2.32
xserver-xorg: Fix build for mips64
tune-mips64.inc: Add new tune file for mips64 big-endian qemumips64.conf: Add machine configuration for mips64(eb) qemush4.conf: Add machine configuration for qemush4

We need to figure out what it means to add new qemu machines like this to OE-Core. I'm not against it however I can't offer the Yocto Project's resources to test them at this point as we're haven't budgeted for it.

The above patches make sense regardless so I've merged them except the final two machine files. I'd like to hold off adding those until the system builds and runs with our default kernel and qemu recipes. Hopefully this lets you develop without having a huge queue of patches.

In the meantime we need to figure out the resource concern for testing. Is there a commercial interest in these new machines from anyone who could perhaps help with the resource issue?

Cheers,

Richard

author
#16 lore raw
Quoted 49 lines · Richard Purdie
Quoted 2 lines · Khem Raj

This patchset adds required bits into metadata for having mips64/n64 support. I have tested the core-image-sato and

core-image-minimal

Quoted 3 lines

builds and boots on qemumips64 and runs gcc regression testsuite. It needs linux-yocto-dev kernel for now which can be obtained from poky-extra repo. Additionally systemd-image on angstrom-next builds and

boots

Quoted 7 lines

fine on qemumips64 as well.

Additionally it also adds bits to have SH4 root file systems to be able to built and again core-image-sato builds for sh4 however qemu machine support is not yet done but root file sytem boots fine on real hardware.

Quoted 7 lines

The images are tested on both eglibc and uclibc.

Any help in providing feedback or testing these patches is welcome.

I have tested them enough for over a month now.

The following changes since commit

326563d5a897ae2dba7cfd8d73579d3d979d72c8:

Quoted 2 lines

sstate.bbclass: Make sure we don't have an empty fixmepath file

(2012-05-18 15:24:45 +0100)

Quoted 4 lines

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/mips64

http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64

Quoted 16 lines

Khem Raj (14):
insane.bbclass: Add mips64{el} to known machines
site: Add mips64 eglibc and uclibc site files gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
binutils: Default to n64 when configured for mips64 kernel-arch.bbclass: Map mips64{el} to mips KARCH eglibc-2.15: Support mips64
libc-package: Add sh4 and mips64 to arch options
runqemu: Add qemush4 and qemumips64 knowledge
netbase: Add interface files for qemumips64 and qemush4 site/sh-common: Add missing caches variables to build glib-2.32
xserver-xorg: Fix build for mips64
tune-mips64.inc: Add new tune file for mips64 big-endian qemumips64.conf: Add machine configuration for mips64(eb) qemush4.conf: Add machine configuration for qemush4

Quoted 3 lines

We need to figure out what it means to add new qemu machines like this to OE-Core. I'm not against it however I can't offer the Yocto Project's resources to test them at this point as we're haven't budgeted for it.

Yes absolutely, in another version Actually I have these machines in a separate later
Called meta-qemuextra may be such a layer would make sense ?

Quoted 22 lines

The above patches make sense regardless so I've merged them except the final two machine files. I'd like to hold off adding those until the system builds and runs with our default kernel and qemu recipes. Hopefully this lets you develop without having a huge queue of patches.

In the meantime we need to figure out the resource concern for testing. Is there a commercial interest in these new machines from anyone who could perhaps help with the resource issue?

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list [email protected] <javascript:;>
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

#17 lore raw
In reply to Richard Purdie
Quoted 12 lines · Richard Purdie
Quoted 6 lines · Khem Raj

This patchset adds required bits into metadata for having mips64/n64 support. I have tested the core-image-sato and core-image-minimal builds and boots on qemumips64 and runs gcc regression testsuite. It needs linux-yocto-dev kernel for now which can be obtained from poky-extra repo. Additionally systemd-image on angstrom-next builds and boots fine on qemumips64 as well.

We need to figure out what it means to add new qemu machines like this to OE-Core. I'm not against it however I can't offer the Yocto Project's resources to test them at this point as we're haven't budgeted for it.

Quoted 8 lines

The above patches make sense regardless so I've merged them except the final two machine files. I'd like to hold off adding those until the system builds and runs with our default kernel and qemu recipes. Hopefully this lets you develop without having a huge queue of patches.

In the meantime we need to figure out the resource concern for testing. Is there a commercial interest in these new machines from anyone who could perhaps help with the resource issue?

From a commercial interest standpoint, I don't know if there is any with SH4. For the company I work for, SH has been so minor that we likely wouldn't consider it significant enough to spend effort on.

However, MIPS64 is completely different. There are numerous MIPS64 processors and such, and I strongly advocate OE (and Yocto Project) support for MIPS64.

One thing to note, it should be possible to use the MIPS64 QEMU to replace the "qemumips" configuration already in OE-core. Then the qemumips64 can be used to validation, mips (o32), mips64 (n64) and eventually mips64 (n32) binaries once they are available. This would also be a good target to validation complex multilib sets on.

--Mark

Quoted 11 lines

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

#18 lore raw
In reply to Khem Raj
Quoted 4 lines · Khem Raj

This patchset adds required bits into metadata for having mips64/n64 support. I have tested the core-image-sato and core-image-minimal builds and boots on qemumips64 and runs gcc regression testsuite. It needs linux-yocto-dev kernel for now which can be obtained from

And as an extra point on this, I have a full _3.4 recipe prep'd, but vacation reared
it's ugly head. I'll send the changes out when I return (or sooner if I sneak away
to a decent computer and internet connection :).

The series looks good to me, thanks Khem!

Bruce

Quoted 88 lines

poky-extra repo. Additionally systemd-image on angstrom-next builds and boots fine on qemumips64 as well.

Additionally it also adds bits to have SH4 root file systems to be able to built and again core-image-sato builds for sh4 however qemu machine support is not yet done but root file sytem boots fine on real hardware.

The images are tested on both eglibc and uclibc.

Any help in providing feedback or testing these patches is welcome.

I have tested them enough for over a month now.

The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:

 sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)

are available in the git repository at:
 git://git.openembedded.org/openembedded-core-contrib kraj/mips64
 http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64

Khem Raj (14):
 insane.bbclass: Add mips64{el} to known machines
 site: Add mips64 eglibc and uclibc site files
 gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
 binutils: Default to n64 when configured for mips64 kernel-arch.bbclass: Map mips64{el} to mips KARCH eglibc-2.15: Support mips64
 libc-package: Add sh4 and mips64 to arch options
 runqemu: Add qemush4 and qemumips64 knowledge
 netbase: Add interface files for qemumips64 and qemush4 site/sh-common: Add missing caches variables to build glib-2.32
 xserver-xorg: Fix build for mips64
 tune-mips64.inc: Add new tune file for mips64 big-endian qemumips64.conf: Add machine configuration for mips64(eb) qemush4.conf: Add machine configuration for qemush4

 meta/classes/insane.bbclass                        |    4 + meta/classes/kernel-arch.bbclass                   |    2 +- meta/classes/libc-package.bbclass                  |    3 + meta/conf/machine/include/tune-mips64.inc          |    3 + meta/conf/machine/qemumips64.conf                  |   13 +++ meta/conf/machine/qemush4.conf                     |   13 +++ meta/recipes-core/eglibc/eglibc-locale.inc         |    2 +- meta/recipes-core/eglibc/eglibc_2.15.bb            |    2 +- .../netbase/netbase-4.47/qemumips64/interfaces     |    8 ++ .../netbase/netbase-4.47/qemush4/interfaces        |    8 ++ meta/recipes-core/netbase/netbase_4.47.bb          |    4 +- .../binutils/mips64-default-ld-emulation.patch     |   49 +++++++++ meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +- meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 + .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 ++++++ meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 + .../gcc/gcc-4.7/mips64-default-n64.patch           |   19 ++++ meta/recipes-devtools/gcc/gcc-configure-common.inc |    4 + .../xorg-xserver/xserver-xorg-1.11.2.inc           |    1 + .../xserver-xorg-1.11.2/mips64-compiler.patch      |   29 +++++ meta/site/mips64-linux                             |   82 +++++++++++++++ meta/site/mips64-linux-uclibc                      |   83 +++++++++++++++ meta/site/mips64el-linux                           |   82 +++++++++++++++ meta/site/mips64el-linux-uclibc                    |  108 ++++++++++++++++++++ meta/site/sh-common                                |    4 + scripts/runqemu                                    |   10 ++- scripts/runqemu-internal                           |   35 ++++++-

 27 files changed, 594 insertions(+), 11 deletions(-)

 create mode 100644 meta/conf/machine/include/tune-mips64.inc
 create mode 100644 meta/conf/machine/qemumips64.conf
 create mode 100644 meta/conf/machine/qemush4.conf
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces create mode 100644 meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch create mode 100644 meta/site/mips64-linux
 create mode 100644 meta/site/mips64-linux-uclibc
 create mode 100644 meta/site/mips64el-linux
 create mode 100644 meta/site/mips64el-linux-uclibc

--
1.7.5.4

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"