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