public inbox for crossgcc@sourceware.org
 help / color / mirror / Atom feed
* Re: crosstool-ng: cross compiler for -mach=arm4vt (Cirrus Logic EP93xx target)
@ 2009-09-08 22:48 H Hartley Sweeten
  2009-09-09 11:01 ` Martin Guy
  0 siblings, 1 reply; 20+ messages in thread
From: H Hartley Sweeten @ 2009-09-08 22:48 UTC (permalink / raw)
  To: crossgcc; +Cc: yann.morin.1998

Hello Yann,

I did not get a CC on your reply but saw it in the mail archive.  Hopefully
this gets threaded correctly...

> On Tuesday 08 September 2009 22:42:24 H Hartley Sweeten wrote:
>> I have been trying to get CodeSourcery's arm-none-linux-gnueabi (Sourcery
>> G++ Lite 2009q1-203) 4.3.3 toolchain to work with Buildroot and an EP93xx
>> based target. ÂUnfortunately Buildroot is not setup to handle the multilib
>> feature of that toolchain (default libraries are for ARMv5T). ÂI have
>> tried a number of ways in Buildroot to get that that toolchain to work but
>> my resulting filesystem always dies due to an unrecognized instruction.
>
> If we can trust the Linux kernel, then the EP93xx is an arm920t, which
> is an armv4, not an armv5t. Which can explain why you have an illegal
> instruction...

The Linux kernel was getting compiled correctly with the CodeSourcery
toolchain so we can probably trust it.  I have been using that toolchain
for a number of months to build my kernel.  I only ran into a problem with
Buildroot when I tried rebuilding my filesystem a couple of weeks ago.

I have manually compiled a static test "init" program for my filesystem and
it ran without issues.  I think the only problem with the CodeSourcery
toolchain is that Buildroot does not understand how to handle the multilib
aspect of it.

I'm hoping that a sysroot toolchain that only supports "my" architecture
will work better with Buildroot.

>> I followed the Download and usage instructions on the website:
> [--SNIP install steps--]
>
> Correct. :-)

Well at least I did that right. ;-)

>> I think I have everything setup and configured correctly but I can't figure
>> out why the build is failing.  From the build.log it appears that linuxthreads
>> is getting checked out but when the build tries to mv it the files do not exist:
>> [ALL  ]    cvs checkout: Updating linuxthreads/linuxthreads_db
>> [DEBUG]    ==> Executing: 'mv linuxthreads glibc-linuxthreads-cvs-2.7'
>> [ALL  ]    mv: cannot stat `linuxthreads': No such file or directory
>> [ERROR]    Build failed in step 'Retrieving needed toolchain components' tarballs'
>
> I don't download everything every time, so it may well be that something
> broke at some point. Care to send your .config, so I can try to reproduce?

I tried executing the command line that fails from the build.log directly.

bigguiness@etch:~/src/tmp$ cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc co -P -r glibc-2_6-branch linuxthreads
cvs checkout: CVS password file /home/bigguiness/.cvspass does not exist - creating a new file
cvs checkout: Updating linuxthreads
[--SNIP more cvs checkout lines--]
cvs checkout: Updating linuxthreads/linuxthreads_db
bigguiness@etch:~/src/tmp$ ls
bigguiness@etch:~/src/tmp$

It appears that the checkout is not working correctly.

My .config follows at the end of this message.

>> Do I have something configured incorrectly or am I doing something wrong?
>> Is there a "magic" combination of the Binutils/C compiler/C-library version
>> that must be used?
>
> There's no armv4t sample in crosstool-NG.
> But you could base your configuration on the arm-unknown-linux-uclibc
> sample, and update the configuration to something like:
>   Target options -->
>     (armv4t) Architecture level
>     ()  Generate code for the specific ABI
>     (ep9312) Emit assembly for CPU
>     (ep9312) Tune for CPU
>     (maverick) Use specific FPU
>     Floating point: ---> hardware (FPU)
> 
> NB: do not enable EABI, I think it requires at least armv5t, but I'm
>     not sure. So stay on the safe side, and stick with OABI.

I set those options.  I used arm920t instead of ep9312 but I believe
ep9312 is just an alias.

BTW, EABI does work on the armv4t.  My kernel is compiled with it and
works with no problems.

> I give no guarantee, as I don't have the HW, but you should give it a
> try. Also, java is currently broken, so you should disable it in the
> "C compiler" sub-menu...

I don't need java so that's not a problem.  I already have it disabled in
The options.

Thanks,
Hartley

---

#
# Automatically generated make config: don't edit
# crosstool-NG version: hg_default@1523_6c2a6c04187e
# Tue Sep  8 13:11:53 2009
#

#
# Paths and misc options
#

#
# crosstool-NG behavior
#
# CT_OBSOLETE is not set
# CT_EXPERIMENTAL is not set
# CT_DEBUG_CT is not set

#
# Paths
#
CT_LOCAL_TARBALLS_DIR="/home/bigguiness/dl"
CT_SAVE_TARBALLS=y
CT_WORK_DIR="${CT_TOP_DIR}/targets"
CT_PREFIX_DIR="${HOME}/x-tools/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
CT_REMOVE_DOCS=y
CT_INSTALL_DIR_RO=y

#
# Downloading
#
# CT_FORBID_DOWNLOAD is not set
# CT_FORCE_DOWNLOAD is not set
# CT_USE_MIRROR is not set
CT_CONNECT_TIMEOUT=10
# CT_ONLY_DOWNLOAD is not set

#
# Extracting
#
# CT_FORCE_EXTRACT is not set
CT_OVERIDE_CONFIG_GUESS_SUB=y
# CT_ONLY_EXTRACT is not set
CT_PATCH_BUNDLED=y
# CT_PATCH_LOCAL is not set
# CT_PATCH_BUNDLED_LOCAL is not set
# CT_PATCH_LOCAL_BUNDLED is not set
# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
CT_PATCH_ORDER="bundled"
# CT_PATCH_SINGLE is not set
# CT_PATCH_USE_LOCAL is not set

#
# Build behavior
#
CT_PARALLEL_JOBS=1
CT_LOAD=0
CT_NICE=0
CT_USE_PIPES=y
# CT_CONFIG_SHELL_SH is not set
# CT_CONFIG_SHELL_ASH is not set
CT_CONFIG_SHELL_BASH=y
# CT_CONFIG_SHELL_CUSTOM is not set
CT_CONFIG_SHELL="bash"

#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
CT_LOG_INFO=y
# CT_LOG_EXTRA is not set
# CT_LOG_DEBUG is not set
# CT_LOG_ALL is not set
CT_LOG_LEVEL_MAX="INFO"
# CT_LOG_SEE_TOOLS_WARN is not set
CT_LOG_PROGRESS_BAR=y
CT_LOG_TO_FILE=y
CT_LOG_FILE_COMPRESS=y

#
# Target options
#
CT_ARCH="arm"
# CT_ARCH_64 is not set
# CT_ARCH_SUPPORTS_BOTH_MMU is not set
CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
CT_ARCH_SUPPORT_ARCH=y
# CT_ARCH_SUPPORT_ABI is not set
CT_ARCH_SUPPORT_CPU=y
CT_ARCH_SUPPORT_TUNE=y
CT_ARCH_SUPPORT_FPU=y
# CT_ARCH_DEFAULT_HAS_MMU is not set
# CT_ARCH_DEFAULT_BE is not set
CT_ARCH_DEFAULT_LE=y
CT_ARCH_ARCH="armv4t"
CT_ARCH_CPU="arm920t"
CT_ARCH_TUNE="arm920t"
CT_ARCH_FPU="maverick"
# CT_ARCH_BE is not set
CT_ARCH_LE=y
# CT_ARCH_FLOAT_HW is not set
CT_ARCH_FLOAT_SW=y
CT_TARGET_CFLAGS=""
CT_TARGET_LDFLAGS=""

#
# General target options
#
# CT_ARCH_alpha is not set
CT_ARCH_arm=y
# CT_ARCH_avr32 is not set
# CT_ARCH_ia64 is not set
# CT_ARCH_mips is not set
# CT_ARCH_powerpc64 is not set
# CT_ARCH_powerpc is not set
# CT_ARCH_sh is not set
# CT_ARCH_x86_64 is not set
# CT_ARCH_x86 is not set
CT_ARCH_ARM_EABI=y
CT_ARCH_USE_MMU=y

#
# Target optimisations
#

#
# Toolchain options
#

#
# General toolchain options
#
CT_USE_SYSROOT=y
CT_SYSROOT_DIR_PREFIX=""

#
# Tuple completion and aliasing
#
CT_TARGET_VENDOR="unknown"
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""

#
# Toolchain type
#
# CT_NATIVE is not set
CT_CROSS=y
# CT_CROSS_NATIVE is not set
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"

#
# Build system
#
CT_BUILD=""
CT_BUILD_PREFIX=""
CT_BUILD_SUFFIX=""

#
# Operating System
#
# CT_BARE_METAL is not set
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
CT_KERNEL="linux"
CT_KERNEL_VERSION="2.6.27.31"
# CT_KERNEL_bare_metal is not set
CT_KERNEL_linux=y
CT_KERNEL_LINUX_INSTALL=y
CT_KERNEL_LINUX_INSTALL_CHECK=y
# CT_KERNEL_V_2_6_18_8 is not set
# CT_KERNEL_V_2_6_19_7 is not set
# CT_KERNEL_V_2_6_20_21 is not set
# CT_KERNEL_V_2_6_21_7 is not set
# CT_KERNEL_V_2_6_22_19 is not set
# CT_KERNEL_V_2_6_23_17 is not set
# CT_KERNEL_V_2_6_24_7 is not set
# CT_KERNEL_V_2_6_25_20 is not set
# CT_KERNEL_V_2_6_26_8 is not set
CT_KERNEL_V_2_6_27_31=y
# CT_KERNEL_V_2_6_28_10 is not set
# CT_KERNEL_V_2_6_29 is not set
# CT_KERNEL_V_2_6_29_1 is not set
# CT_KERNEL_V_2_6_29_2 is not set
# CT_KERNEL_V_2_6_29_3 is not set
# CT_KERNEL_V_2_6_29_4 is not set
# CT_KERNEL_V_2_6_29_5 is not set
# CT_KERNEL_V_2_6_29_6 is not set
# CT_KERNEL_V_2_6_30 is not set
# CT_KERNEL_V_2_6_30_1 is not set
# CT_KERNEL_V_2_6_30_2 is not set
# CT_KERNEL_V_2_6_30_3 is not set
# CT_KERNEL_V_2_6_30_4 is not set
# CT_KERNEL_V_2_6_30_5 is not set
# CT_KERNEL_V_select is not set
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
# CT_KERNEL_LINUX_USE_CUSTOM_HEADERS is not set

#
# Common kernel options
#
CT_SHARED_LIBS=y

#
# Binary utilities
#
CT_ARCH_BINFMT_ELF=y
# CT_ARCH_BINFMT_FLAT is not set

#
# GNU binutils
#
CT_BINUTILS_VERSION="2.19.1"
# CT_BINUTILS_V_2_14 is not set
# CT_BINUTILS_V_2_15 is not set
# CT_BINUTILS_V_2_16_1 is not set
# CT_BINUTILS_V_2_17 is not set
# CT_BINUTILS_V_2_18 is not set
# CT_BINUTILS_V_2_18_50_0_4 is not set
# CT_BINUTILS_V_2_18_50_0_6 is not set
# CT_BINUTILS_V_2_18_50_0_7 is not set
# CT_BINUTILS_V_2_18_50_0_8 is not set
# CT_BINUTILS_V_2_18_50_0_9 is not set
# CT_BINUTILS_V_2_18_90 is not set
# CT_BINUTILS_V_2_18_91 is not set
# CT_BINUTILS_V_2_18_92 is not set
# CT_BINUTILS_V_2_18_93 is not set
# CT_BINUTILS_V_2_19 is not set
CT_BINUTILS_V_2_19_1=y
# CT_BINUTILS_V_2_19_50_0_1 is not set
# CT_BINUTILS_V_2_19_51_0_1 is not set
# CT_BINUTILS_V_2_19_51_0_2 is not set
CT_BINUTILS_EXTRA_CONFIG=""
# CT_BINUTILS_FOR_TARGET is not set

#
# C compiler
#
CT_CC="gcc"
CT_CC_VERSION="4.3.4"
CT_CC_gcc=y
# CT_CC_V_3_2_3 is not set
# CT_CC_V_3_3_6 is not set
# CT_CC_V_3_4_6 is not set
# CT_CC_V_4_0_0 is not set
# CT_CC_V_4_0_1 is not set
# CT_CC_V_4_0_2 is not set
# CT_CC_V_4_0_3 is not set
# CT_CC_V_4_0_4 is not set
# CT_CC_V_4_1_0 is not set
# CT_CC_V_4_1_1 is not set
# CT_CC_V_4_1_2 is not set
# CT_CC_V_4_2_0 is not set
# CT_CC_V_4_2_1 is not set
# CT_CC_V_4_2_2 is not set
# CT_CC_V_4_2_3 is not set
# CT_CC_V_4_2_4 is not set
# CT_CC_V_4_3_0 is not set
# CT_CC_V_4_3_1 is not set
# CT_CC_V_4_3_2 is not set
# CT_CC_V_4_3_3 is not set
CT_CC_V_4_3_4=y
# CT_CC_V_4_4_0 is not set
# CT_CC_V_4_4_1 is not set
CT_CC_GCC_4_3_or_later=y
# CT_CC_GCC_4_4_or_later is not set
CT_CC_CXA_ATEXIT=y
CT_CC_SJLJ_EXCEPTIONS_CONFIGURE=y
# CT_CC_SJLJ_EXCEPTIONS_USE is not set
# CT_CC_SJLJ_EXCEPTIONS_DONT_USE is not set
CT_CC_ENABLE_CXX_FLAGS=""
CT_CC_CORE_EXTRA_CONFIG=""
CT_CC_EXTRA_CONFIG=""
CT_CC_PKGVERSION="crosstool-NG-${CT_VERSION}"
CT_CC_BUGURL=""
CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_JAVA=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y

#
# Additional supported languages:
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JAVA is not set
CT_LIBC="glibc"

#
# C-library
#
CT_LIBC_VERSION="2.7"
# CT_LIBC_eglibc is not set
CT_LIBC_glibc=y
# CT_LIBC_newlib is not set
# CT_LIBC_uClibc is not set
# CT_LIBC_V_2_3_6 is not set
# CT_LIBC_V_2_5 is not set
# CT_LIBC_V_2_5_1 is not set
# CT_LIBC_V_2_6 is not set
# CT_LIBC_V_2_6_1 is not set
CT_LIBC_V_2_7=y
# CT_LIBC_V_2_8 is not set
# CT_LIBC_V_2_9 is not set
# CT_LIBC_V_LATEST is not set
# CT_LIBC_V_date is not set
# CT_LIBC_GLIBC_2_8_or_later is not set
# CT_LIBC_GLIBC_TARBALL is not set
CT_LIBC_GLIBC_CVS=y
CT_LIBC_GLIBC_CVS_date=""

#
# glibc/eglibc common options
#
CT_LIBC_GLIBC_EXTRA_CONFIG=""
CT_LIBC_GLIBC_CONFIGPARMS=""
CT_LIBC_GLIBC_EXTRA_CFLAGS=""
CT_LIBC_EXTRA_CC_ARGS=""
CT_LIBC_GLIBC_USE_PORTS=y
CT_LIBC_ADDONS_LIST=""
# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_LIBC_GLIBC_MIN_KERNEL="2.6.27.31"

#
# Common C library options
#
CT_LIBC_SUPPORT_NPTL=y
CT_LIBC_SUPPORT_LINUXTHREADS=y
CT_THREADS="linuxthreads"
# CT_THREADS_NPTL is not set
CT_THREADS_LINUXTHREADS=y
# CT_THREADS_NONE is not set

#
# Debug facilities
#
# CT_DEBUG_dmalloc is not set
# CT_DEBUG_duma is not set
# CT_DEBUG_gdb is not set
# CT_DEBUG_ltrace is not set
# CT_DEBUG_strace is not set

#
# Tools facilities
#
# CT_TOOL_libelf is not set
# CT_TOOL_sstrip is not set

#
# Companion libraries
#
CT_WRAPPER_NEEDED=y
CT_GMP_MPFR=y
CT_GMP_V_4_2_2=y
# CT_GMP_V_4_2_4 is not set
# CT_GMP_V_4_3_0 is not set
# CT_GMP_V_4_3_1 is not set
CT_GMP_VERSION="4.2.2"
CT_MPFR_V_2_3_1=y
# CT_MPFR_V_2_3_2 is not set
# CT_MPFR_V_2_4_0 is not set
# CT_MPFR_V_2_4_1 is not set
CT_MPFR_VERSION="2.3.1"
# CT_PPL_CLOOG_MPC is not set

#
# Companion libraries common options
#
# CT_COMP_LIBS_CHECK is not set
# CT_COMP_LIBS_TARGET is not set
CT_TOOLS_WRAPPER_SCRIPT=y
# CT_TOOLS_WRAPPER_EXEC is not set
CT_TOOLS_WRAPPER="script"

--
For unsubscribe information see http://sourceware.org/lists.html#faq

^ permalink raw reply	[flat|nested] 20+ messages in thread
* crosstool-ng: cross compiler for -mach=arm4vt (Cirrus Logic EP93xx target)
@ 2009-09-08 20:42 H Hartley Sweeten
  2009-09-08 21:17 ` Yann E. MORIN
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: H Hartley Sweeten @ 2009-09-08 20:42 UTC (permalink / raw)
  To: crossgcc

Hello all,

I have been trying to get CodeSourcery's arm-none-linux-gnueabi (Sourcery
G++ Lite 2009q1-203) 4.3.3 toolchain to work with Buildroot and an EP93xx
based target.  Unfortunately Buildroot is not setup to handle the multilib
feature of that toolchain (default libraries are for ARMv5T).  I have
tried a number of ways in Buildroot to get that that toolchain to work but
my resulting filesystem always dies due to an unrecognized instruction.

Today I downloaded crosstool-ng to try and build a sysroot toolchain
specifically for the armv4t.  I think I have everything setup correctly
but the build always dies at:

bigguiness@etch:~/toolchain$ ct-ng build
[INFO ]  Performing some trivial sanity checks
[INFO ]  Build started 20090908.131159
[INFO ]  Building environment variables
[WARN ]  You did not specify the build system. That's OK, I can guess...
[INFO ]  =================================================================
[INFO ]  Retrieving needed toolchain components' tarballs
[ERROR]    Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]    Error happened in '/home/bigguiness/lib/ct-ng-hg_default@1523_6c2a6c04187e/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR]          called from '/home/bigguiness/lib/ct-ng-hg_default@1523_6c2a6c04187e/scripts/functions' at line # 502 in function 'CT_GetCVS'
[ERROR]          called from '/home/bigguiness/lib/ct-ng-hg_default@1523_6c2a6c04187e/scripts/build/libc/glibc.sh' at line # 44 in function 'do_libc_get'
[ERROR]          called from '/home/bigguiness/lib/ct-ng-hg_default@1523_6c2a6c04187e/scripts/crosstool-NG.sh' at line # 496 in function 'main'
[ERROR]    Look at '/home/bigguiness/x-tools/arm-unknown-linux-gnueabi/build.log' for more info on this error.
[ERROR]  (elapsed: 9:41.97)
[09:42] / make: *** [build] Error 1
bigguiness@etch:~/toolchain$ 

I followed the Download and usage instructions on the website:

bigguiness@etch:~/src$ hg clone http://ymorin.is-a-geek.org/hg/crosstool-ng
bigguiness@etch:~/src$ cd crosstool-ng
bigguiness@etch:~/src/crosstool-ng$ ./configure --prefix=/home/bigguiness
bigguiness@etch:~/src/crosstool-ng$ make
bigguiness@etch:~/src/crosstool-ng$ export PATH="${PATH}:/home/bigguiness/bin"
bigguiness@etch:~/src/crosstool-ng$ cd /home/bigguiness/toolchain
bigguiness@etch:~/toolchain$ ct-ng help
bigguiness@etch:~/toolchain$ ct-ng menuconfig
bigguiness@etch:~/toolchain$ ct-ng build

I think I have everything setup and configured correctly but I can't figure
out why the build is failing.  From the build.log it appears that linuxthreads
is getting checked out but when the build tries to mv it the files do not exist:

[ALL  ]    cvs checkout: Updating linuxthreads/linuxthreads_db
[DEBUG]    ==> Executing: 'mv linuxthreads glibc-linuxthreads-cvs-2.7'
[ALL  ]    mv: cannot stat `linuxthreads': No such file or directory
[ERROR]    Build failed in step 'Retrieving needed toolchain components' tarballs'

Do I have something configured incorrectly or am I doing something wrong?
Is there a "magic" combination of the Binutils/C compiler/C-library version
that must be used?

Thanks for any reply,
Hartley Sweeten

--
For unsubscribe information see http://sourceware.org/lists.html#faq

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

end of thread, other threads:[~2009-09-13 15:55 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-08 22:48 crosstool-ng: cross compiler for -mach=arm4vt (Cirrus Logic EP93xx target) H Hartley Sweeten
2009-09-09 11:01 ` Martin Guy
2009-09-09 18:06   ` H Hartley Sweeten
2009-09-09 19:26     ` wino
2009-09-11 19:33     ` Martin Guy
2009-09-11 21:57       ` ng
2009-09-11 22:12         ` wino
2009-09-11 22:20         ` Martin Guy
2009-09-12 20:18           ` Khem Raj
2009-09-13 13:15             ` Martin Guy
2009-09-13 15:55               ` Khem Raj
  -- strict thread matches above, loose matches on Subject: below --
2009-09-08 20:42 H Hartley Sweeten
2009-09-08 21:17 ` Yann E. MORIN
2009-09-08 21:31   ` Matthias Kaehlcke
2009-09-09  8:39 ` Steve Papacharalambous
2009-09-09 11:21   ` Martin Guy
2009-09-09 15:30     ` Steve Papacharalambous
2009-09-09 13:42 ` ng
2009-09-09 17:26   ` H Hartley Sweeten
2009-09-11 10:29     ` Martin Guy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).