Отговори на тема  [ 4 мнения ] 
Linix компилация на библиотеки 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение 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

_________________
main[-1u]={1};


Пон Авг 12, 2019 6:32 pm
Профил ICQ
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Съб Фев 06, 2016 7:29 pm
Мнения: 170
Мнение Re: Linix компилация на библиотеки
Пробвай да замениш само в асемблера ioctl с _ioctl, т.е. да започва с 'подчертилка' ;)


Пон Авг 12, 2019 8:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение 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 :)

_________________
main[-1u]={1};


Вто Авг 13, 2019 9:43 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: Linix компилация на библиотеки
бях забравил extern "C" int ioctl(... а го викам от cpp
линкира се ама ... Microsoft Azure Sphere - хака не минава :) проверяват ала-бализми, може да са сложили некви чексуми по тяхните библиотеки
компилира, качва го но не го стартира...

_________________
main[-1u]={1};


Вто Авг 13, 2019 2:28 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни