Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Gentoo Embedded (http://www.linux-archive.org/gentoo-embedded/)
-   -   crossdev problem (http://www.linux-archive.org/gentoo-embedded/573970-crossdev-problem.html)

Thomas Drueke 09-10-2011 04:01 PM

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

Mike Frysinger 10-13-2011 11:14 PM

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

Thomas Drueke 10-15-2011 08:16 AM

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


All times are GMT. The time now is 08:26 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.