# crossdev arm glibc failed

## lawl

Пытаюсь собрать crossdev для arm, но не могу собрать glibc, ошибка в логе следующая: 

```

...

../sysdeps/unix/sysv/linux/arm/sigrestorer.S: Assembler messages:

../sysdeps/unix/sysv/linux/arm/sigrestorer.S:67: Error: invalid constant (900077) after fixup

../sysdeps/unix/sysv/linux/arm/sigrestorer.S:80: Error: invalid constant (9000ad) after fixup

/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/build-default-arm-unknown-linux-gnu-nptl/sysd-rules:39: recipe for target '/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/build-default-arm-unknown-linux-gnu-nptl/signal/sigrestorer.os' failed

make[2]: *** [/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/build-default-arm-unknown-linux-gnu-nptl/signal/sigrestorer.os] Error 1

make[2]: *** Waiting for unfinished jobs....

make[2]: Leaving directory '/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/glibc-2.20/signal'

Makefile:214: recipe for target 'signal/subdir_lib' failed

make[1]: *** [signal/subdir_lib] Error 2

make[1]: Leaving directory '/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/glibc-2.20'

Makefile:9: recipe for target 'all' failed

make: *** [all] Error 2

make: Leaving directory '/tmp/portage/cross-arm-unknown-linux-gnu/glibc-2.20-r2/work/build-default-arm-unknown-linux-gnu-nptl'

```

Собственно, что говорить кроссдев:

```

 * crossdev version:      20141030

 * Host Portage ARCH:     amd64

 * Target Portage ARCH:   arm

 * Target System:         arm-unknown-linux-gnu

 * Stage:                 4 (C/C++ compiler)

 * ABIs:                  default

 * binutils:              binutils-[latest]

 * gcc:                   gcc-4.7.4

 * headers:               linux-headers-[latest]

 * libc:                  glibc-[latest]

 * CROSSDEV_OVERLAY:      /usr/local/portage

 * PORT_LOGDIR:           /var/log/portage/

 * PORTAGE_CONFIGROOT:    

 * Portage flags:         

  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~

 * leaving sys-devel/binutils in /usr/local/portage

 * leaving sys-devel/gcc in /usr/local/portage

 * leaving sys-kernel/linux-headers in /usr/local/portage

 * leaving sys-libs/glibc in /usr/local/portage

 * leaving sys-devel/gdb in /usr/local/portage

 * enabling thin-manifests due to /var/lib/layman/stuff

  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-binutils.log

 * Emerging cross-binutils ...                                                         [ ok ]

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-linux-headers-quick.log

 * Emerging cross-linux-headers-quick ...                                              [ ok ]

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-glibc-headers.log

 * Emerging cross-glibc-headers ...                                                    [ ok ]

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-gcc-stage1.log

 * Emerging cross-gcc-stage1 ...                                                       [ ok ]

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-linux-headers.log

 * Emerging cross-linux-headers ...                                                    [ ok ]

 * Log: /var/log/portage//cross-arm-unknown-linux-gnu-glibc.log

 * Emerging cross-glibc ...

 * glibc failed :(

 * If you file a bug, please attach the following logfiles:

 * /var/log/portage//cross-arm-unknown-linux-gnu-info.log

 * /var/log/portage//cross-arm-unknown-linux-gnu-glibc.log.xz

 * /tmp/portage/cross-arm-unknown-linux-gnu/glibc*/temp/glibc-config.logs.tar.xz

```

ниже по ссылке те файлы, что он просил прикладывать.

Еще один вопрос, чуть менее актуальный, но затрагивающий данную тему, до этого не смог собрать для того же арм gcc версии выше 4.7, правильно ли я понял, что это нормально?

http://owncloud.last-try.org/index.php/s/iIxkhToJX9qTnLI

----------

## TigerJr

 *Quote:*   

> ../sysdeps/unix/sysv/linux/arm/sigrestorer.S:67: Error: invalid constant (900077) after fixup 
> 
> ../sysdeps/unix/sysv/linux/arm/sigrestorer.S:80: Error: invalid constant (9000ad) after fixup 

 

Сообщение от ассемблера: в файле sigrestorer.S на строке 67 и на строке 80 не верные константы. "Вероятно" не верно настроена кросскомпиляция (ассемблерный компилятор наверно настроен под x86 а не под арм).

ЗЫ

 *Quote:*   

> LIBDIR_amd64="lib64"
> 
> LIBDIR_amd64_fbsd="lib64"
> 
> LIBDIR_arm="lib"
> ...

 

Не уверен что проблема с переменными средами, но мне кажется что LIBDIR_arm не должна ссылаться на библиотеки x86. 

Хотя полной картины у меня нет.

----------

## Pinkbyte

 *lawl wrote:*   

> Пытаюсь собрать crossdev для arm, но не могу собрать glibc, ошибка в логе следующая: 
> 
> Еще один вопрос, чуть менее актуальный, но затрагивающий данную тему, до этого не смог собрать для того же арм gcc версии выше 4.7, правильно ли я понял, что это нормально?
> 
> http://owncloud.last-try.org/index.php/s/iIxkhToJX9qTnLI

 

Нет

```
pinkbyte@phantom ~/dev/gentoo-dev/gentoo $ gcc-config -l | grep arm

 [1] armv6j-hardfloat-linux-gnueabi-4.8.4
```

Что-то у тебя не так с кросс-тулчейном - удаляй содержимое /usr/arm* и собирай всё заново

----------

## TigerJr

 *Quote:*   

> Что-то у тебя не так с кросс-тулчейном - удаляй содержимое /usr/arm* и собирай всё заново

 

Лучше форматируй диск и устанавливай генту заного))))

----------

