On 11/08/2010 02:54 PM, Flavio de Castro Alves Filho wrote:

> We are currently working on a platform migration from a big endian
> processor to an ARM Cortex A8 processor.

Are you going to run the Cortex in BE-mode? I don't know anyone who does
this.

> I saw that ARM processors are bi-endian - it supports both little
> endian and bi endian software. And the compiler must be prepared to
> generate both little endian and big endian code.

In theory you can compile a Toolchain that supports both little and big
endian. But this is very complicated for various reasons....

Having a toolchain that generated only one specifix type of binary code
is much easier.

> Looking at the OSELAS.Toolchain project, I could not see any option
> regarding the endianess of the generated toolchain.

The endianess is selected by the host tuple. the "arm" in
"arm-1136jfs-linux-gnueabi" indicates a le toolchain, while the "armeb"
in "armeb-xscale-linux-gnueabi" stands for a big endian toolchain. Note
the "1136jfs" and "xscale" don't select anything automatically.

However in OSELAS.Toolchain they're used to tell which arm CPU is
targeted by the toolchains default.

> > So, I would like to ask if it is possible to have an arm-cortexa8
> toolchain that generates big endian code and what should I do to build
> this toolchain.

Use the (untested) attached config to build a big endian arm-v5te
toolchain. The generated code will run on any arm-v5 (and newer), but
will not generated hardware floating point instructions like the cortex
supports. Use the "1136fjs" configuration as template, and change all
"arm-" to "armbe-"

cheers, Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |
#
# Automatically generated make config: don't edit
# PTXdist version: 1.99.19.1
#
PTXCONF__ptxconfig_MAGIC__=y
PTXCONF_BUILD_TOOLCHAIN=y
PTXCONF_NO_PLATFORM=y
PTXCONF_PROJECT="OSELAS.Toolchain-1.99.3"

#
# ----------------------------------
#
PTXCONF_ARCH_ARM=y
# PTXCONF_ARCH_M68K is not set
# PTXCONF_ARCH_MIPS is not set
# PTXCONF_ARCH_POWERPC is not set
# PTXCONF_ARCH_I386 is not set
# PTXCONF_ARCH_AVR is not set
# PTXCONF_ARCH_AVR32 is not set
PTXCONF_ARCH="arm"
PTXCONF_GNU_TARGET="armeb-v5te-linux-gnueabi"
PTXCONF_SIZEOF_LONG_DOUBLE="8"

#
# ----------------------------------
#
PTXCONF_LIBC_HEADERS=y
PTXCONF_LIBC_FIRST=y
PTXCONF_LIBC=y
PTXCONF_LIBC_GLIBC=y
# PTXCONF_LIBC_UCLIBC is not set
# PTXCONF_LIBC_NEWLIB is not set
# PTXCONF_LIBC_MINGW is not set
# PTXCONF_LIBC_AVR is not set
PTXCONF_TOOLCHAIN_ENABLE_SYSROOT=y
PTXCONF_TOOLCHAIN_CONFIG_SYSROOT="--with-sysroot=${SYSROOT}"
PTXCONF_TOOLCHAIN_DISABLE_MULTILIB=y
PTXCONF_TOOLCHAIN_CONFIG_MULTILIB="--disable-multilib"
PTXCONF_GLIBC_HEADERS=y
PTXCONF_GLIBC_CRT=y
PTXCONF_GLIBC_FIRST=y
PTXCONF_GLIBC=y
PTXCONF_GLIBC_VERSION="2.8"
PTXCONF_GLIBC_TIMESTAMP=""
PTXCONF_GLIBC_SERIES=""
PTXCONF_GLIBC_ENABLE_KERNEL="2.6.23"
PTXCONF_GLIBC_CONFIG_EXTRA="--without-fp"
PTXCONF_GLIBC_HEADERS_FAKE_CROSS="-D__ARM_EABI__"
# PTXCONF_GLIBC_ADDON_LINUXTHREADS is not set
PTXCONF_GLIBC_ADDON_NPTL=y
PTXCONF_GLIBC_TLS=y
PTXCONF_GLIBC_PORTS=y
PTXCONF_GLIBC_PORTS_VERSION="${PTXCONF_GLIBC_VERSION}"
PTXCONF_GLIBC_PORTS_TIMESTAMP="${PTXCONF_GLIBC_TIMESTAMP}"
PTXCONF_GLIBC_PORTS_SERIES=""
PTXCONF_CROSS_BINUTILS=y
PTXCONF_CROSS_BINUTILS_VERSION="2.18"

#
# kernel                      
#
PTXCONF_KERNEL_HEADERS=y
PTXCONF_KERNEL_HEADERS_VERSION="2.6.27"
PTXCONF_KERNEL_HEADERS_SANITIZED=y
PTXCONF_CROSS_GCC=y
PTXCONF_CROSS_GCC_VERSION="4.3.2"
PTXCONF_CROSS_GCC_43=y
PTXCONF_CROSS_GCC_SERIES=""
PTXCONF_CROSS_GCC_CONFIG_EXTRA="--with-float=soft --with-fpu=vfp 
--with-cpu=arm926ej-s"

#
# Additional supported languages:
#
PTXCONF_CROSS_GCC_LANG_C=y
PTXCONF_CROSS_GCC_LANG_CXX=y
# PTXCONF_CROSS_GCC_LANG_FORTRAN is not set
# PTXCONF_CROSS_GCC_LANG_JAVA is not set
PTXCONF_CROSS_GCC_ENABLE_CXA_ATEXIT=y
PTXCONF_CROSS_GCC_CONFIG_CXA_ATEXIT="--enable-__cxa_atexit"
PTXCONF_CROSS_GCC_DISABLE_SJLJ_EXCEPTIONS=y
PTXCONF_CROSS_GCC_CONFIG_SJLJ_EXCEPTIONS="--disable-sjlj-exceptions"
PTXCONF_CROSS_GCC_DISABLE_LIBSSP=y
PTXCONF_CROSS_GCC_CONFIG_LIBSSP="--disable-libssp"
PTXCONF_CROSS_GCC_ENABLE_SHARED=y
PTXCONF_CROSS_GCC_CONFIG_SHARED="--enable-shared"
PTXCONF_CROSS_GCC_THREADS_POSIX=y
PTXCONF_CROSS_GCC_THREADS="posix"
PTXCONF_CROSS_GCC_FIRST=y
PTXCONF_CROSS_GDB=y
PTXCONF_CROSS_GDB_VERSION="6.8"
PTXCONF_CROSS_TOOLCHAIN=y
PTXCONF_HOST_GMP=y
PTXCONF_HOST_MPFR=y

#
# ----------------------------------
#

#
# misc                        
#
PTXCONF_PREFIX="/opt"
PTXCONF_PREFIX_KERNEL="-sanitized"
PTXCONF_PREFIX_TCID="gcc-${PTXCONF_CROSS_GCC_VERSION}${PTXCONF_PREFIX_JAVA}-glibc-${PTXCONF_GLIBC_VERSION}-binutils-${PTXCONF_CROSS_BINUTILS_VERSION}-kernel-${PTXCONF_KERNEL_HEADERS_VERSION}${PTXCONF_PREFIX_KERNEL}"
PTXCONF_SYSROOT_HOST="${PTXDIST_PLATFORMDIR}/sysroot-host"
PTXCONF_SYSROOT_CROSS="${PTX_AUTOBUILD_DESTDIR}${PTXCONF_PREFIX}/${PTXCONF_PROJECT}/${PTXCONF_GNU_TARGET}/${PTXCONF_PREFIX_TCID}"
PTXCONF_SYSROOT_TARGET="${PTXCONF_SYSROOT_CROSS}/sysroot-${PTXCONF_GNU_TARGET}"
PTXCONF_PLATFORM="${PTXCONF_GNU_TARGET}-${PTXCONF_PREFIX_TCID}"
PTXCONF_COMPILER_PREFIX="${PTXCONF_GNU_TARGET}-"
# PTXCONF_TOOLCHAIN_DEBUG is not set
PTXCONF_CONFIGFILE_VERSION="1.99.9"

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
ptxdist mailing list
[email protected]

Reply via email to