jak dat procedure abs.adresu v C v Yagarto?

Jan Waclawek konfera na efton.sk
Úterý Prosinec 7 16:09:39 CET 2010


Ale ved Vy kazdou vetou len potvrdzujete moje slova!
Ja som totiz nepovedal, ze linker funguje z principu zle, ale ze je ledabolo (= zle) zdokumentovany

>>  Nie je to teda "nedokumentovana vlastnost"
>
>Tu som bol trochu vseobecny. Skor som myslel na pouzivanie SECTIONS 
>alebo MEMORY v dodatkovom skripte

U mna to "augment" znamena, ze SECTIONS a MEMORY z dodatkoveho skriptu doplnaju SECTIONS a MEMORY v defaultnom skripte, ako by to tam bolo dopisane. Preco by som mal predpokladat, ze to tak nie je? Ako inak by ste interpretovali slovo "augment" resp. ine vyrazy z uvedeneho popisu?

Ak autori vedia, ze to nepracuje sposobom, ktory by sa ocakaval na zaklade takehoto jednoducheho popisu, mohli na to upozornit - staci na to veta typu "nejedna sa o jednoduche doplnenie, a preto sa bezne pouzivanie neodporuca". Namiesto toho je tam "obvykle sa to pouziva na X a Y", co nijako neupozornuje na mozne chyby... ledazeby bol citatel uz vopred paranoidny z nejakeho dovodu (napr. kvoli zlym skusenostiam z podobnych projektov ;-) ).


>
>-Tbss=org
>
>-Tdata=org
>
>-Ttext=org
>
>Same as‘--section-start’,with .bss, .data or .text as the sectionname.

To som samozrejme vedel - inak by som nezvolil "nahodou" meno "data" pre linker script ;-)

>Takze, podla predpisu je spravne "-T data" alebo "--script=data". Tak 
>pise dokumentacia. A tym je problem vyrieseny.

Nie je. Naschval som vypichol z uvodu danej kapitoly vetu, ktora pri jednopismenovych prepinacoch dovoluje "prilepit" parameter bez medzery, t.j. "-Tdata" by mal byt legalnym ekvivalentom "-T data". Vyskusajte si to s inym menom linker scriptu, skutocne to tak funguje. Jednoducho sa vynimka "-Tdata" spracovava skor ako vseobecne "-Tcokolvek".

Ja chapem ze toto vzniklo z historickych dovodov, ale to neospravedlnuje mizernu dokumentaciu. Spravne by na to mala dokumentacia pri polozke "-T xxx" upozornit na existenciu vynimiek. Mne toto vypichlo oko hned pri prvom citani dokumentacie; nehovorte mi, ze si to autor(i) nemohli vsimnut.



>K problemu so somedata samotnemu: Popis parametra --section-start hovori 
>o sekcii vo vystupnom subore. Vy ale vystupnu sekciu nikde nedefinujete. 

To je pravda; na druhej strane vsak linker heuristickym sposobom premenoval vstupne sekcie (vsimnite si somedata.1) a priradil ich nejako vystupnym sekciam.

Ako pisete, je to zle zdokumentovana vlastnost. To neznamena, ze by sa nemala pouzivat - to je len Vasa interpretacia. Je to uzitocna vlastnost, ktora je zle zdokumentovana, nic menej a nic viac. Ak by autori chceli zdoraznit, ze sa to nema pouzivat, tak to mali napisat do dokumentacie; ak to tam nie je, znova to znamena len to, ze je ta dokumentacia zla.


>Ono je to aj pristupe. 

Presne tak; a pristup drvivej vacsiny programatorov je dokumentaciu flakat. To nie je len vysada GNU, samozrejme; to je len ze ja som zhodou okolnosti oplul prave GNU linker a Vy ste sa ho zastali.


>Ja som zastancom 
>presnych specifikacii a nespolieham sa na to, ze nieco bude fungovat 
>podla nejakych implicitnych pravidiel, ktore nie su explicitne 
>specifikovane. 

Pred nejakym casom som sa s linker skriptami boril. Verte mi, ze som prisiel do stavu kde skutocnost priamo nezodpovedala explicitne dokumentovanemu stavu - ano, jednalo sa o "nie prilis obvyklu vec" (myslim, ze sa to tykalo zarovnavania adries na nejake mocniny dvoch); nechcite po mne, aby som to zopakoval, bolo to uz pred vyse rokom.

Ja chapem, ze je dobre sa drzat len tych "odskusanych veci" co "urcite funguju", lenze ak dokumentacia nepise jasne, ktore to su, tak ja ako novacik toto bohuzial nemam odkial vediet. Tento stav dobre poznam - ti, co sa v danej oblasti pohybuju dlhsie, sledovali evoluciu a preto su im tie suvislosti "toto je uz odskusane a takto to funguje"/"toto je experimentalna zalezitost, nedotykat sa" jasne; lenze ony by mali byt aj jasne zdokumentovane pre tych, co pridu neskor. A to tak nie je.

A toto je to, kvoli comu som vobec tuto debatu zacal.


wek




Další informace o konferenci Hw-list