Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Linix компилация на библиотеки
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16717
Страница 1 от 1

Автор:  TheWizard [ Пон Авг 12, 2019 7:32 pm ]
Заглавие:  Linix компилация на библиотеки

... не съм в час - питам ... GCC Linux ARM

SYSROOT:
./lib
те тук има библиотека със SCV 0 (syscall) към кернела например ioctl()
./usr/include
./usr/lib
те тука има API библиотекa, която сочи горната библиотека обаче ioctl() липсва като API

та питанката е как да линкна "моя" ioctl() към syscall библиотеката, всичко останало е линкнато някакси но не знам как :) и питам...

пробвах:
Код:
    .syntax unified
    .code 16
    .section .text.ioctl_0
    .globl ioctl
    .thumb_func
ioctl:
    BX LR


обаче отговора е: undefined reference to ioctl

Автор:  iss [ Пон Авг 12, 2019 9:49 pm ]
Заглавие:  Re: Linix компилация на библиотеки

Пробвай да замениш само в асемблера ioctl с _ioctl, т.е. да започва с 'подчертилка' ;)

Автор:  TheWizard [ Вто Авг 13, 2019 10:43 am ]
Заглавие:  Re: Linix компилация на библиотеки

начи:

реалната библиотека
Код:
Elf32_Sym <"ioctl"-offset, ioctl+1, 0x48, 0x12, 0, 8>
Elf32_Sym <"setsockopt"-offset, setsockopt+1, 0x16, 0x12, 0, 8>


узер API
Код:
Elf32_Sym <"setsockopt"-offset, setsockopt+1, 2, 0x12, 0, 5>



Код:
Elf32_Sym       
    st_name         DCD     "setsockopt"-offset
    st_value        DCD     setsockopt+1
    st_size         DCD     0x16 or 0x02
    st_info         DCB     0x12
    st_other        DCB     0 = The visibility is STV_DEFAULT
    st_shndx        DCW     8 = SHT_NOBITS, 5 = SHT_HASH


реалната и узер функции се различават само по st_shndx 8 = SHT_NOBITS, 5 = SHT_HASH
и определят секцията на функцията - нещо като .section .hash (това дава 2)
обаче немога да я нацеля тази с 5 :)

Автор:  TheWizard [ Вто Авг 13, 2019 3:28 pm ]
Заглавие:  Re: Linix компилация на библиотеки

бях забравил extern "C" int ioctl(... а го викам от cpp
линкира се ама ... Microsoft Azure Sphere - хака не минава :) проверяват ала-бализми, може да са сложили некви чексуми по тяхните библиотеки
компилира, качва го но не го стартира...

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/