FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Embedded

 
 
LinkBack Thread Tools
 
Old 09-10-2011, 04:01 PM
Thomas Drueke
 
Default crossdev problem

Hi,

recently I tried to use crossdev to build a toolchain for
"armv7a-softfloat-linux-gnueabi".
The build fails for glibc with

* Messages for package
cross-armv7a-softfloat-linux-gnueabi/glibc-2.12.2:
* Could not find a gcc that supports the __thread directive!
* Please update your binutils/gcc and try again.
* ERROR: cross-armv7a-softfloat-linux-gnueabi/glibc-2.12.2 failed
(unpack phase):
* No __thread support in gcc!

What fails is a compilation test executed in

/usr/portage/sys-libs/glibc/files/eblits/src_unpack.eblit - function
"check_nptl_support".
-> /usr/portage/sys-libs/glibc/files/eblits/common.eblit - function
"want__thread"
-> /usr/portage/eclass/toolchain-funcs.eclass - function
"tc-has-tls" -> "tc-getCC"

I haven't found a log showing the outcome of the compilation making the
available information
restricted somehow.

I tried different approaches for crossdev starting with

crossdev -t armv7a-softfloat-linux-gnueabi

then stated the versions of the host system on the command line:

crossdev -t armv7a-softfloat-linux-gnueabi --g 4.4.5 --l 2.12.2 --k
2.6.39 --b 2.21.1

and browsed the web for a couple of suggested combinations. So far none
worked on my machine.

I wonder if ThreadLocalStorage is supported for ArmV7a or maybe I'm
missing an environment variable ?

Regards,
Thomas
 
Old 10-13-2011, 11:14 PM
Mike Frysinger
 
Default crossdev problem

On Saturday 10 September 2011 12:01:10 Thomas Drueke wrote:
> I haven't found a log showing the outcome of the compilation making the
> available information
> restricted somehow.

it's farily simple code. if your gcc can't build this:
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}

it is broken

> then stated the versions of the host system on the command line:
>
> crossdev -t armv7a-softfloat-linux-gnueabi --g 4.4.5 --l 2.12.2 --k
> 2.6.39 --b 2.21.1

what version of gcc was actually used ? the versions you give to crossdev
merely say "these are the latest i want to use". if they aren't available,
portage will use whatever is available which is often times older than
requested.
-mike
 
Old 10-15-2011, 08:16 AM
Thomas Drueke
 
Default crossdev problem

Hi Mike,

Thanks for looking into this.
I hadn't much time to investigate this recently but found the issue today.

The problem was that a symlink for /usr was created which caused
some trouble. After moving this to a separate partition and mounting
during boot
crossdev works again (among other things).

Currently the latest versions of gcc,binutils,glibc and kernel are used.
These are the same ones on the host system.

Thomas

On 10/14/11 01:14, Mike Frysinger wrote:
> On Saturday 10 September 2011 12:01:10 Thomas Drueke wrote:
>> I haven't found a log showing the outcome of the compilation making the
>> available information
>> restricted somehow.
> it's farily simple code. if your gcc can't build this:
> int foo(int *i) {
> static __thread int j = 0;
> return *i ? j : *i;
> }
>
> it is broken
>
>> then stated the versions of the host system on the command line:
>>
>> crossdev -t armv7a-softfloat-linux-gnueabi --g 4.4.5 --l 2.12.2 --k
>> 2.6.39 --b 2.21.1
> what version of gcc was actually used ? the versions you give to crossdev
> merely say "these are the latest i want to use". if they aren't available,
> portage will use whatever is available which is often times older than
> requested.
> -mike
 

Thread Tools




All times are GMT. The time now is 02:19 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org