LINUX.ORG.RU
ФорумMobile

Gentoo, crossdev, arm проблемы с сборкой helloworld

 ,


0

1

Дорогие товарищи-гентушники, подскажите пожалуйста. Собрал тулчейн через crossdev - armv7a-hardfloat-linux-gnueabi. Собралось без проблем, но не могу скомпилить helloworld.

>> ~/c_projects/bbb_helloworld % armv7a-hardfloat-linux-gnueabi-gcc main.c                                  [0:49:30]  
/usr/libexec/gcc/armv7a-hardfloat-linux-gnueabi/ld: cannot find -lgcc_s
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
, хотя
>> ~ % locate libgcc_s.so                                                                                   [0:55:17]  
/usr/lib64/gcc/armv7a-hardfloat-linux-gnueabi/9999/libgcc_s.so
/usr/lib64/gcc/armv7a-hardfloat-linux-gnueabi/9999/libgcc_s.so.1
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.2/libgcc_s.so
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.2/libgcc_s.so.1
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.2/32/libgcc_s.so
/usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.2/32/libgcc_s.so.1
С параметром L все собирается
>> ~/c_projects/bbb_helloworld % armv7a-hardfloat-linux-gnueabi-gcc -L /usr/lib/gcc/armv7a-hardfloat-linux-gnueabi/9999
 main.c 
>> ~/c_projects/bbb_helloworld % ls                                                                         [0:58:36]  
a.out  main.c
>> ~/c_projects/bbb_helloworld % gcc-config -E 1                                                            [1:00:44]  
export PATH="/usr/x86_64-pc-linux-gnu/armv7a-hardfloat-linux-gnueabi/gcc-bin/9999:/lib64/rc/bin:/bin:/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.2:/usr/x86_64-pc-linux-gnu/armv7a-hardfloat-linux-gnueabi/gcc-bin/9999:/home/bobor/.rvm/bin:/home/bobor/.rvm/scripts/rvm:/home/bobor/.fzf/bin:/home/bobor/.rvm/bin:/home/bobor/.rvm/scripts/rvm"
export GCC_SPECS=""

ЧЯДНТ? Или как сделать так, чтобы нормально компилировалось без L ?


Ответ на: комментарий от pS

Да, выставлял, не помогло. Как-то так:

>> ~ % sudo gcc-config 1                                                                                    
 * Switching cross-compiler to armv7a-hardfloat-linux-gnueabi-9999 ...                                           [ ok ]
>> ~ % gcc-config -l                                                                                        
 [1] armv7a-hardfloat-linux-gnueabi-9999 *

 [2] x86_64-pc-linux-gnu-4.9.2 *

bobor ()
Ответ на: комментарий от pS

Ставил вначале armv7a-hardfloat-linux-gnueabihf, потом удалил и поставил armv7a-hardfloat-linux-gnueabi (ну а вдруг). Ставил так:

>> ~ % sudo crossdev -S -t armv7a-hardfloat-linux-gnueabi                                                  [12:51:35]  
gawk: cmd. line:8: (FILENAME=- FNR=1) warning: gensub: third argument `' treated as 1
gawk: cmd. line:8: (FILENAME=- FNR=5) warning: gensub: third argument `' treated as 1
gawk: cmd. line:8: (FILENAME=- FNR=11) warning: gensub: third argument `' treated as 1
gawk: cmd. line:8: (FILENAME=- FNR=19) warning: gensub: third argument `' treated as 1
-----------------------------------------------------------------------------------------------------------------------
 * crossdev version:      20150602
 * Host Portage ARCH:     amd64
 * Target Portage ARCH:   arm
 * Target System:         armv7a-hardfloat-linux-gnueabi
 * Stage:                 4 (C/C++ compiler)
 * ABIs:                  default

 * binutils:              binutils-[stable]
 * gcc:                   gcc-[stable]
 * headers:               linux-headers-[stable]
 * libc:                  glibc-[stable]

 * CROSSDEV_OVERLAY:      /usr/local/portage
 * PORT_LOGDIR:           /var/log/portage
 * PORTAGE_CONFIGROOT:    
 * Portage flags:  
wiki не помог, я по нему уже делал. и я не думаю, что это проблема portage (могу ошибаться)

bobor ()
Ответ на: комментарий от Pinkbyte

Да, все что можно перезагружал. Мб правда дело в ld.so.conf.d ? :

>> ~ %  ls -l /etc/ld.so.conf.d                                                                           итого 8
-rw-r--r-- 1 root root 29 июн 18 05:30 05binutils.conf
-rw-r--r-- 1 root root 81 июн 26 00:38 05gcc-x86_64-pc-linux-gnu.conf
>> ~ %  ls -l /etc/env.d                                                                                  итого 116
-rw-r--r-- 1 root root  115 июн 23 17:34 000opengl
-rw-r--r-- 1 root root  305 июн 18 06:04 00basic
-rw-r--r-- 1 root root   37 июн 18 06:23 00glibc
-rw-r--r-- 1 root root   97 июн 23 12:39 02locale
-rw-r--r-- 1 root root  231 июн 26 00:38 04gcc-x86_64-pc-linux-gnu
-rw-r--r-- 1 root root  126 июн 25 04:20 05binutils
-rw-r--r-- 1 root root  156 июл  9 00:13 05gcc-armv7a-hardfloat-linux-gnueabi
-rw-r--r-- 1 root root   37 июн 18 06:08 09sandbox
-rw-r--r-- 1 root root   46 июн 25 01:09 30gnupg
-rw-r--r-- 1 root root   81 июн 23 19:24 30xdg-data-local
-rw-r--r-- 1 root root   44 июн 25 00:24 37fontconfig
-rw-r--r-- 1 root root   27 июн 23 18:47 44qt4-graphicssystem
-rw-r--r-- 1 root root   24 июн 25 18:42 44qt4-i686-pc-linux-gnu
-rw-r--r-- 1 root root   24 июн 25 18:43 44qt4-x86_64-pc-linux-gnu
-rw-r--r-- 1 root root   39 июн 23 21:58 50guile
-rw-r--r-- 1 root root   36 июн 24 22:11 50ncurses
-rw-r--r-- 1 root root   59 июн 25 17:20 51dconf
-rw-r--r-- 1 root root   47 июн 25 02:42 70less
-rw-r--r-- 1 root root   94 июн 23 19:13 90nss-amd64
-rw-r--r-- 1 root root   54 июн 23 19:24 90xdg-data-base
-rw-r--r-- 1 root root   14 июн 23 17:47 90xsession
-rw-r--r-- 1 root root   48 июн 25 06:07 98ca-certificates
-rw-r--r-- 1 root root  111 июн 29 11:12 98texlive
-rw-r--r-- 1 root root   42 ноя  8  2012 99gentoolkit-env
-rw-r--r-- 1 root root   56 июн 25 19:11 99libreoffice
-rw-r--r-- 1 root root   33 июн 26 14:22 99skype
drwxr-xr-x 2 root root 4096 июл  8 23:55 binutils
drwxr-xr-x 2 root root 4096 июл  9 01:46 gcc
drwxr-xr-x 2 root root 4096 июн 25 03:05 python

bobor ()
Ответ на: комментарий от Pinkbyte
>> ~ % eix -C -c cross-armv7a-hardfloat-linux-gnueabi  
[I] cross-armv7a-hardfloat-linux-gnueabi/binutils (2.24-r3(2.24)[2]@06.07.2015 2.25-r1(2.25)[2]@06.07.2015 9999(git)[2]@08.07.2015): Tools necessary to build programs
[I] cross-armv7a-hardfloat-linux-gnueabi/gcc (9999(9999)[2]@09.07.2015): Live ebuild for gcc
[N] cross-armv7a-hardfloat-linux-gnueabi/gdb (9999[2]): GNU debugger
[I] cross-armv7a-hardfloat-linux-gnueabi/glibc (9999(2.2)[2]@09.07.2015): GNU libc6 (also called glibc2) C library
[I] cross-armv7a-hardfloat-linux-gnueabi/linux-headers (4.1[2]@09.07.2015): Linux system headers
[1] "armv7a_overlay" /usr/local/portage
[2] "open-overlay" /var/lib/layman/open-overlay

Найдено 5 совпадений.
bobor ()
Ответ на: комментарий от pS

У меня теперьтак:

>> ~ $ eix -lc cross*/*
[I] cross-armv7a-hardfloat-linux-gnueabi/binutils [1] (2.24-r3(2.24)@10.07.2015): Tools necessary to build programs
[I] cross-armv7a-hardfloat-linux-gnueabi/gcc [1] (4.8.4(4.8.4)@10.07.2015): The GNU Compiler Collection
[N] cross-armv7a-hardfloat-linux-gnueabi/gdb [1] ((~)7.9.1): GNU debugger
[I] cross-armv7a-hardfloat-linux-gnueabi/glibc [1] (2.20-r2(2.2)@10.07.2015): GNU libc6 (also called glibc2) C library
[I] cross-armv7a-hardfloat-linux-gnueabi/linux-headers [1] (3.18@10.07.2015): Linux system headers
[1] "crossdev" /usr/local/portage/crossdev

Найдено 5 совпадений.

pS ()
Ответ на: комментарий от pS

Да тут походу правда что-то с портежем поломалось. И я не учел, что он мог из open-overlay поставиться. Подскажи, пожалуйста, как можно пофиксить

>> ~ % sudo emerge -uavDN world
Пароль: 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] net-im/skype-4.3.0.37-r5::gentoo  USE="pulseaudio -apulse -pax_kernel -plasma% (-selinux)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

!!! Problems have been detected with your world file
!!! Please run emaint --check world


!!! Ebuilds for the following packages are either all
!!! masked or don't exist:
cross-armv7a-hardfloat-linux-gnueabihf/binutils cross-armv7a-hardfloat-linux-gnueabihf/glibc cross-armv7a-hardfloat-linux-gnueabihf/binutils:2.24 cross-armv7a-hardfloat-linux-gnueabi/binutils:2.25 cross-armv7a-hardfloat-linux-gnueabi/binutils cross-armv7a-hardfloat-linux-gnueabi/binutils:2.24 cross-armv7a-hardfloat-linux-gnueabi/glibc cross-armv7a-hardfloat-linux-gnueabihf/linux-headers cross-armv7a-hardfloat-linux-gnueabi/gcc cross-armv7a-hardfloat-linux-gnueabi/linux-headers cross-armv7a-hardfloat-linux-gnueabihf/gcc

Would you like to merge these packages? [Yes/No] 
>> /etc/portage % sudo emaint --check world
Пароль: 
Emaint: check world        100% [============================================>]

'cross-armv7a-hardfloat-linux-gnueabihf/binutils' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/linux-headers' is not installed
'cross-armv7a-hardfloat-linux-gnueabihf/glibc' is not installed
'cross-armv7a-hardfloat-linux-gnueabihf/binutils:2.24' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/binutils:2.25' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/binutils' is not installed
'cross-armv7a-hardfloat-linux-gnueabihf/gcc' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/binutils:2.24' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/glibc' is not installed
'cross-armv7a-hardfloat-linux-gnueabihf/linux-headers' is not installed
'cross-armv7a-hardfloat-linux-gnueabi/gcc' is not installed

bobor ()
Ответ на: комментарий от pS

Решил проблему удалением ручками всего что связано с этими компиляторами + удалил из world. Переустановил и все вроде вcтало без косяков. Итог получился таким:

>> ~/c_projects/bbb_helloworld % eix -C -c armv7a
[I] cross-armv7a-hardfloat-linux-gnueabi/binutils [1] (2.24-r3(2.24)@12.07.2015): Tools necessary to build programs
[I] cross-armv7a-hardfloat-linux-gnueabi/gcc [1] (4.8.4(4.8.4)@12.07.2015): The GNU Compiler Collection
[N] cross-armv7a-hardfloat-linux-gnueabi/gdb [1] ((~)9999): GNU debugger
[I] cross-armv7a-hardfloat-linux-gnueabi/glibc [1] (2.20-r2(2.2)@12.07.2015): GNU libc6 (also called glibc2) C library
[I] cross-armv7a-hardfloat-linux-gnueabi/linux-headers [1] (3.18@12.07.2015): Linux system headers
[1] "armv7a_overlay" /usr/local/portage

Найдено 5 совпадений.
Всем огромное спасибо за помощь! Проблема решена.

bobor ()
Ответ на: комментарий от bobor

Пропустил твоё предыдущее сообщение. У меня раньше /var/lib/portage/world вообще пустой был, всё в сетах. Теперь этот паразит crossdev нагадил в world. Рекомендую из пакеты из world разбросать по сетам, потом легче разбираться. crossdev -C -t ... должен всё чистить, но кто его знает?

pS ()
Ответ на: комментарий от pS

Вообще у меня возникла странная проблема, где вообще почитать можно про кроссдев нормально, а не обрывками ? man говорит, что про crossdev ничего не знает. На wiki особо много не написано, ну или я плохо ищу.

bobor ()
Ответ на: комментарий от pS

А можешь мне еще подсказать? Чтобы не плодить темы спрошу тут. Теперь проблема с настройкой самого портежа и я не могу ее решить. Проблема такого рода:

!!! All ebuilds that could satisfy "dev-libs/libxml2" for /usr/armv7a-hardfloat-linux-gnueabihf/ have been masked. 
!!! One of the following masked packages is required to complete your request: 
- dev-libs/libxml2-2.9.2-r1::gentoo (masked by: invalid: DEPEND: USE flag 'hppa' referenced in conditional 'hppa?' is not in IUSE) 
Каким здесь боком оказался hppa я не понимаю. Даже тему создал на форуме gentoo, но там пока молчат. https://forums.gentoo.org/viewtopic-t-1021912.html Мб ты знаешь решение?

bobor ()
Ответ на: комментарий от bobor

Кривой ебилд. Я сейчас попробовал переустановить: не ругается. На всяк случай выложи версию portage. Раньше о таких вещах говорили, что после синхронизации исчезают. Ну и можно ускорить, написав мэйнтейнеру ебилда.

Заглянул в dev-libs/libxml2-2.9.2-r1.ebuild:

DEPEND="${COMMON_DEPEND}
        dev-util/gtk-doc-am
        virtual/pkgconfig
        hppa? ( >=sys-devel/binutils-2.15.92.0.2 )
"

То есть, если у тебя версия binutils какая надо, то можешь скопировать в локальный оверлей этот ебилд и обозвать, например libxml2-2.9.2_p20150715-r1.ebuild, а в нём снести строчку с hppa.

pS ()
Последнее исправление: pS (всего исправлений: 1)
Ответ на: комментарий от pS

Ну в итоге я остановился на такой сборке :

>> ~ % eix -c cross-armv7a-hardfloat-linux-gnueabihf/                                                       [9:25:30]  
[I] cross-armv7a-hardfloat-linux-gnueabihf/binutils [1] (2.24-r3(2.24)[?]@12.07.2015): Tools necessary to build programs
[I] cross-armv7a-hardfloat-linux-gnueabihf/gcc [1] (4.8.4(4.8.4)[?]@13.07.2015): The GNU Compiler Collection
[N] cross-armv7a-hardfloat-linux-gnueabihf/gdb [1] ((~)9999): GNU debugger
[I] cross-armv7a-hardfloat-linux-gnueabihf/glibc [1] (2.20-r2(2.2)[?]@12.07.2015): GNU libc6 (also called glibc2) C library
[I] cross-armv7a-hardfloat-linux-gnueabihf/linux-headers [1] (3.18[?]@12.07.2015): Linux system headers
[1] /usr/local/portage-crossdev
Проблема в том, что такая ошибка появляется в libxml2, при попытке поставить lxc (который мне и нужен). Но похожие ошибки появляются при установке других пакетов (не всех) Например:
>> ~ % sudo emerge-armv7a-hardfloat-linux-gnueabihf '=app-misc/mc-4.8.13'

 * IMPORTANT: 3 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

Calculating dependencies... done!

!!! All ebuilds that could satisfy "=app-misc/mc-4.8.13" for /usr/armv7a-hardfloat-linux-gnueabihf/ have been masked.
!!! One of the following masked packages is required to complete your request:
- app-misc/mc-4.8.13::gentoo (masked by: invalid: DEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in IUSE, invalid: RDEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in IUSE)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
>> ~ % sudo emerge-armv7a-hardfloat-linux-gnueabihf '=app-editors/vim-7.4.769' 

 * IMPORTANT: 3 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.

Calculating dependencies... done!

!!! All ebuilds that could satisfy "=app-editors/vim-7.4.769" for /usr/armv7a-hardfloat-linux-gnueabihf/ have been masked.
!!! One of the following masked packages is required to complete your request:
- app-editors/vim-7.4.769::gentoo (masked by: invalid: DEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in IUSE, invalid: RDEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in IUSE)

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
Поэтому мне кажется, что дело не в конкретном ebuild'е. Но в чем я не знаю. Не встречался с подобной ошибкой. Аа и да, sync я пробовал уже, тоже в интернетах читал, что кому-то помогло.

bobor ()
Ответ на: комментарий от bobor

invalid: DEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in IUSE
kernel_linux

См. /usr/portage/profiles/desc/kernel.desc.

pS ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.