| Автор |
Съобщение |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 GCC
какво точно прави liblto_plugin? реално мога да го игнорирам със -fno-use-linker-plugin
опитвам се да орежа компилатора в "компактен" размер от няколко гиги до 50 мега - само EXE-тата (по идея на Майкрософт) крос PC към Linux АРМ ( само за пример Расбери ) - на арма имам sysroot-a и видимо компилира - не съм пробвал с устройство
_________________ main[-1u]={1};
|
| Нед Авг 25, 2019 8:38 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: GCC
LTO (Link Time Optimization) е гъвкав механизъм как да влияеш на тази оптимизация без да прекомпилираш тулчейна. ако не ползваш този механизъм, остава да важи дефолтния, с който е компилиран. а това силно зависи от мързела, разбирането, таргета, езиците и т.н. на създалия го. т.е. това е механизъм да получиш що-годе очакван резултат (на етапа на оптимизация) от произволно неочакван компилатор (по-скоро линкер).
и докато в плейн С нещата са относително ясни (махане на deadcode и подобни), в С++ и особено Objectiwe-C с всичките новоизмишльотини ('стандарти') около тях нещата не са толкова очевидни и кърпките за напасване на квадратния чеп в кръгла дупка са придобили стихийно-бедствен характер. при наличието на милиони пермутации на тулчейн, таргет, крос-компилация, библиотеки и ОС-ове, това като че ли е единствения вариант нещата все пак да се добутат до работещо бинари.
има цяла екосистема LLVM около тази идея (за LTO), която в някои случаи е минималистична (за плейн С, примерно), но в други става доста дебела. ако ще правиш 'дистрибуция', която няма да я ползваш само ти, не е добра идея да елиминираш LTO механизъма, защото не се знае кой с каква мотика седне на твоята дистрибуция и ще се почнат едни питания 'защо няма топла вода в бидето, като се чеша по лявото ухо с десния крак'
|
| Нед Авг 25, 2019 9:41 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
реално няма да го ползвам да прекомпилирам кернели, линукси....етц а за "прости" user-ware апликации с IoT насоченост пример GSM Линукс модули - пълния GCC е гиги бла-бла плюс гига sysroot и си е... мамата, а всъщност се ползват няколко сокета...
Като разпампурих Ажур Сферата, М-софт ползват само ЕХЕ-тата от некво GCC + sysroot към самия ARM cortex-A7 <---- който се ползва 90% при IoT орязани Линукси В близките дни ще пробвам дали работи на девайса... то компилацията като я гледам е нормална - питанката е дали е линкиран правилно
_________________ main[-1u]={1};
|
| Нед Авг 25, 2019 10:01 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: GCC
проблем може да възникне с някое модно и възвишено програмче на C++20, което от своя страна ползва библиотеки на С++17 и С++11 ако я няма LTO оптимизацията, ще се компилира без нея и най-вероятно ще си работи, освен ако не се разчита на нея да закърпи нещо специфично. мисълта ми е, че този плъгин не е голям и махането му няма да намали гигабайтите до мегабайти. някъде другаде е заровено голямото лакомо куче. честно да си призная, не разбирам особения ти ентусиазъм да бориш тоя Ажур. не съм и вниквал кой знае колко какво точно бориш  просто цялата тема за IoT с гигабайтова тежина ми е чужда и без някой да ми плати 'вредни' нямам намерения да я пипам и с пръчка, камоли да я наближавам на дебъгер разстояние. аз съм от изчезващия вид, който си пише сам мейк-файловете и дори automake ми идва нанагорно, а cmake направо ми 'вдига кръв', както казваше един виетнамец.
|
| Нед Авг 25, 2019 10:41 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
130k DLL е не съм го махнал и съм РЕМнал опцията -fno-use-linker-plugin за Ажура само портнах Ардуино да "дразня" М-Софт  имат интересна концепция, но все си мисля че бюрократичната им машина ще пропилее и този им проект ее - понаучих как да орежа GCC - мисълта ми е за GSM модулите с Линукс (то май само Qualcomm има Линукс портове) та дори и малинката страда от огромните крос компилатори
_________________ main[-1u]={1};
|
| Нед Авг 25, 2019 10:58 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 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 11:19 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: GCC
понятието 'крос-компилатор' е доста разтегливо. самия компилатор надали е особено голям. но ако визираш М$ черчевета (съдя по .ехе), това не е само компилатор, а цялата еко-система, която 'емулира' unix среда - като почнеш от cp, rm, mv; продължиш с всякакви мейкове, perl, питони, гущери, даже и http и SQL съм виждал. може би от там идат гигабайтите. гледам да не ползвам таквиз тулове, но понякога ме наляга мързела (next->next->next), за щастие дисковете по 2ТВ са под 100 кинта за мен крос-среда за unix компилатор си е ... компилатор в unix среда с различен таргет, където гореспоменатото си го има нейтив.
|
| Нед Авг 25, 2019 11:26 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
Гледам да избягам от емулацията на еко системата То реално cc1 & cc1plus правят крос компилацията, всичко останало е хидъри и библиотеки
BTW: М$ ползват за ARM poky дистрибуцията
_________________ main[-1u]={1};
|
| Нед Авг 25, 2019 12:18 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
с М$ компилатора не става  направили са къстъм линкер за сферата ( нещо мачкат хешовете ) девайса не разпознава ELF-a ще диря компактен gcc-linux-softfloat за експерименти
_________________ main[-1u]={1};
|
| Пон Авг 26, 2019 6:13 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
допълнение: не става що ползва musl https://www.musl-libc.org/intro.htmlа аз се опитвам да го ползвам за нормален gnu 
_________________ main[-1u]={1};
|
| Вто Авг 27, 2019 6:55 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
Linux Library: Как се прави динамичен stub на статична библиотека?
_________________ main[-1u]={1};
|
| Чет Сеп 05, 2019 6:05 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: GCC
Че то не е ли едно и също? В смисъл, че тя библиотеката си е една и съща и в двата случая а разликата е как линкера я добавя в крайния резултат - дали изкопира от нея всички функции и данни които се ползват т.е. статично линкване или пък само вкарва референция о коя библиотека да се зареди каквото трябва по време на изпълнение т.е. динамично линкване.
_________________ Мразя да мразя ...
|
| Пет Сеп 06, 2019 12:14 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
не искам да линква цялата функция в моята аппликация а само подобен stub това е генерация на това gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 stub.o обаче __open искам да е алиас на оригинала имам библиотека която не трябва да имам - тя е в кернела искам да направя моя библиотека която да сочи истинската, един вид API всъщност като имам статичната реално се прави горния stub което не е голяма загуба на памет във оригиналната стуба е само BX LR и хаш таблици (шота)
_________________ main[-1u]={1};
|
| Пет Сеп 06, 2019 7:40 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: GCC
Ще погледна по късно, че сега не мога да се фокусирам (акъла ми е другаде) - ама да те питам - тази ИДА откъде я свали? Че от години не ми е трябвала и оня ден ми се наложи да декомпилирам 1к AVR фирмуер и ударих на камък без нея ...
_________________ Мразя да мразя ...
|
| Пет Сеп 06, 2019 11:26 am |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: GCC
най-вероятно от някой тракер но не си спомням
_________________ main[-1u]={1};
|
| Пет Сеп 06, 2019 11:49 am |
|
|