Отговори на тема  [ 76 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща
GCC 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение GCC
какво точно прави liblto_plugin?
реално мога да го игнорирам със -fno-use-linker-plugin

опитвам се да орежа компилатора в "компактен" размер от няколко гиги до 50 мега - само EXE-тата (по идея на Майкрософт)
крос PC към Linux АРМ ( само за пример Расбери ) - на арма имам sysroot-a и видимо компилира - не съм пробвал с устройство

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


Нед Авг 25, 2019 7:38 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 10:31 pm
Мнения: 9645
Мнение Re: GCC
LTO (Link Time Optimization) е гъвкав механизъм как да влияеш на тази оптимизация без да прекомпилираш тулчейна.
ако не ползваш този механизъм, остава да важи дефолтния, с който е компилиран. а това силно зависи от мързела, разбирането, таргета, езиците и т.н. на създалия го. т.е. това е механизъм да получиш що-годе очакван резултат (на етапа на оптимизация) от произволно неочакван компилатор (по-скоро линкер).

и докато в плейн С нещата са относително ясни (махане на deadcode и подобни), в С++ и особено Objectiwe-C с всичките новоизмишльотини ('стандарти') около тях нещата не са толкова очевидни и кърпките за напасване на квадратния чеп в кръгла дупка са придобили стихийно-бедствен характер. при наличието на милиони пермутации на тулчейн, таргет, крос-компилация, библиотеки и ОС-ове, това като че ли е единствения вариант нещата все пак да се добутат до работещо бинари.

има цяла екосистема LLVM около тази идея (за LTO), която в някои случаи е минималистична (за плейн С, примерно), но в други става доста дебела.
ако ще правиш 'дистрибуция', която няма да я ползваш само ти, не е добра идея да елиминираш LTO механизъма, защото не се знае кой с каква мотика седне на твоята дистрибуция и ще се почнат едни питания 'защо няма топла вода в бидето, като се чеша по лявото ухо с десния крак'


Нед Авг 25, 2019 8:41 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
реално няма да го ползвам да прекомпилирам кернели, линукси....етц
а за "прости" user-ware апликации с IoT насоченост
пример GSM Линукс модули - пълния GCC е гиги бла-бла плюс гига sysroot и си е... мамата, а всъщност се ползват няколко сокета...

Като разпампурих Ажур Сферата, М-софт ползват само ЕХЕ-тата от некво GCC + sysroot към самия ARM cortex-A7 <---- който се ползва 90% при IoT орязани Линукси
В близките дни ще пробвам дали работи на девайса... то компилацията като я гледам е нормална - питанката е дали е линкиран правилно

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


Нед Авг 25, 2019 9:01 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 10:31 pm
Мнения: 9645
Мнение Re: GCC
проблем може да възникне с някое модно и възвишено програмче на C++20, което от своя страна ползва библиотеки на С++17 и С++11
ако я няма LTO оптимизацията, ще се компилира без нея и най-вероятно ще си работи, освен ако не се разчита на нея да закърпи нещо специфично.

мисълта ми е, че този плъгин не е голям и махането му няма да намали гигабайтите до мегабайти. някъде другаде е заровено голямото лакомо куче.
честно да си призная, не разбирам особения ти ентусиазъм да бориш тоя Ажур. не съм и вниквал кой знае колко какво точно бориш :?

просто цялата тема за IoT с гигабайтова тежина ми е чужда и без някой да ми плати 'вредни' нямам намерения да я пипам и с пръчка, камоли да я наближавам на дебъгер разстояние.
аз съм от изчезващия вид, който си пише сам мейк-файловете и дори automake ми идва нанагорно, а cmake направо ми 'вдига кръв', както казваше един виетнамец.


Нед Авг 25, 2019 9:41 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
130k DLL е не съм го махнал и съм РЕМнал опцията -fno-use-linker-plugin

за Ажура само портнах Ардуино да "дразня" М-Софт :) имат интересна концепция, но все си мисля че бюрократичната им машина ще пропилее и този им проект
ее - понаучих как да орежа GCC - мисълта ми е за GSM модулите с Линукс (то май само Qualcomm има Линукс портове)
та дори и малинката страда от огромните крос компилатори

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


Нед Авг 25, 2019 9:58 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
още една питанка: как да сменя defaut зададените от компилатора version-specific libraries PATH
/usr/lib/target/version/

ако не ги намира реве: real-ld.exe: cannot find crtbeginS.o: No such file or directory

просто искам да им сменя "пътя"
например да сочи /usr/lib/mdm/

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


Нед Авг 25, 2019 10:19 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 10:31 pm
Мнения: 9645
Мнение Re: GCC
понятието 'крос-компилатор' е доста разтегливо.
самия компилатор надали е особено голям. но ако визираш М$ черчевета (съдя по .ехе), това не е само компилатор, а цялата еко-система, която 'емулира' unix среда - като почнеш от cp, rm, mv; продължиш с всякакви мейкове, perl, питони, гущери, даже и http и SQL съм виждал.

може би от там идат гигабайтите. гледам да не ползвам таквиз тулове, но понякога ме наляга мързела (next->next->next), за щастие дисковете по 2ТВ са под 100 кинта :P
за мен крос-среда за unix компилатор си е ... компилатор в unix среда с различен таргет, където гореспоменатото си го има нейтив.


Нед Авг 25, 2019 10:26 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
Гледам да избягам от емулацията на еко системата
То реално cc1 & cc1plus правят крос компилацията, всичко останало е хидъри и библиотеки

BTW: М$ ползват за ARM poky дистрибуцията

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


Нед Авг 25, 2019 11:18 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
с М$ компилатора не става :) направили са къстъм линкер за сферата ( нещо мачкат хешовете ) девайса не разпознава ELF-a
ще диря компактен gcc-linux-softfloat за експерименти

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


Пон Авг 26, 2019 5:13 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
допълнение: не става що ползва musl https://www.musl-libc.org/intro.html
а аз се опитвам да го ползвам за нормален gnu :)

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


Вто Авг 27, 2019 5:55 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
Linux Library: Как се прави динамичен stub на статична библиотека?

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


Чет Сеп 05, 2019 5:05 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 10:53 pm
Мнения: 4194
Местоположение: Brussels / Пловдив
Мнение Re: GCC
TheWizard написа:
Linux Library: Как се прави динамичен stub на статична библиотека?

Че то не е ли едно и също? В смисъл, че тя библиотеката си е една и съща и в двата случая а разликата е как линкера я добавя в крайния резултат - дали изкопира от нея всички функции и данни които се ползват т.е. статично линкване или пък само вкарва референция о коя библиотека да се зареди каквото трябва по време на изпълнение т.е. динамично линкване.

_________________
Мразя да мразя ...


Чет Сеп 05, 2019 11:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
не искам да линква цялата функция в моята аппликация а само подобен stub

Код:
int open(const char *file, int oflag, ...)
open                                   
                ADR             R12, 0x3F0
                ADD             R12, R12, #0x10000
                LDR             PC, [R12,#(open_ptr - 0x103F0)]! ; __imp_open


това е генерация на това
Код:
int __open(const char * path, int flag) {
    return open(path, flag);
}

gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 stub.o
обаче __open искам да е алиас на оригинала


имам библиотека която не трябва да имам - тя е в кернела
искам да направя моя библиотека която да сочи истинската, един вид API

всъщност като имам статичната реално се прави горния stub което не е голяма загуба на памет

във оригиналната стуба е само BX LR и хаш таблици (шота)


Прикачени файлове:
Untitled-1.jpg
Untitled-1.jpg [ 83.41 KiB | Прегледано 11536 пъти ]

_________________
main[-1u]={1};
Пет Сеп 06, 2019 6:40 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 10:53 pm
Мнения: 4194
Местоположение: Brussels / Пловдив
Мнение Re: GCC
Ще погледна по късно, че сега не мога да се фокусирам (акъла ми е другаде) - ама да те питам - тази ИДА откъде я свали? Че от години не ми е трябвала и оня ден ми се наложи да декомпилирам 1к AVR фирмуер и ударих на камък без нея ...

_________________
Мразя да мразя ...


Пет Сеп 06, 2019 10:26 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4715
Мнение Re: GCC
най-вероятно от някой тракер но не си спомням

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


Пет Сеп 06, 2019 10:49 am
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 76 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща

Кой е на линия

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


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

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