chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文了解Prelink的注意事項(xiàng)

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-22 08:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.1. 地址無關(guān)代碼

需要被 Prelink 的 ELF 文件,無論是共享庫還是可執(zhí)行文件,編譯時(shí)必須加 -fpic/-fPIC 參數(shù),生成目標(biāo)無關(guān)地址代碼。對(duì)于可執(zhí)行文件,不能使用 -fpie/-fPIE 加 –pie 生成地址無關(guān)可執(zhí)行文件,否則無法被 prelink。

一文了解Prelink的注意事項(xiàng)

這個(gè)結(jié)論是根據(jù)上述測(cè)試程序得出的,其中的詳細(xì)機(jī)理有待進(jìn)一步研究。

1.2. 檢查Prelink 狀態(tài)

可以使用 readelf 和 objdump 工具來檢查一個(gè) ELF 文件是否已經(jīng)被 prelink。例如:

注意觀察到 6~14 行,對(duì)比沒有被 prelink 之前的狀態(tài),INIT、FINI、STRTAB、SYMTAB 等 section 的地址已經(jīng)修改為運(yùn)行時(shí)進(jìn)程空間的虛擬內(nèi)存地址。第 30 行,RELACOUNT 表示已經(jīng)預(yù)先進(jìn)行重定位的符號(hào)的數(shù)量;第 31 行是 prelink 根據(jù) ELF 所直接依賴的共享庫計(jì)算的 MD5 值,該值用于判斷該 ELF 所以來的共享庫是否被修改過;從第 32 行可以看出該 ELF 已被加上 PRELINKED 標(biāo)記和時(shí)間戳。

但是,并非所有被成功 prelink 的 ELF 文件都會(huì)加上 PRELINKED 的標(biāo)記和時(shí)間戳。在用 prelink 處理完我們的SDK的后,發(fā)現(xiàn) target_bin 所有的依賴項(xiàng)都有 PRELINKED 標(biāo)記,target_bin 自身并沒有此標(biāo)記。但是通過測(cè)試其啟動(dòng)速度,確有巨大的提升,證明 prelink 在 target_bin 上確實(shí)發(fā)揮了作用。

至于為什么沒有這個(gè)標(biāo)記,暫時(shí)還沒有調(diào)查清楚,仍待進(jìn)一步研究。

對(duì)于上述情況,通過 objdump 等工具查看ELF文件的 section header,我們?nèi)匀豢梢园l(fā)現(xiàn) prelink 處理后留下的蛛絲馬跡。

Prelink 之前,查看 target_bin 的節(jié)頭:

Prelink 之后,再次查看節(jié)頭:

對(duì)比 prelink 前后的節(jié)頭信息,我們發(fā)現(xiàn) prelink 后每個(gè)節(jié)的地址都有了調(diào)整,增加了.gnu.liblist , .gnu.conflict 和 .gnu.prelink_undo 這三個(gè)節(jié)。同時(shí) .dynstr 節(jié)的 size 由 0xa3cb1 增加到了 0xa3e8c。這些都是 prelink 之后 ELF 的 size 有所增大的原因。

1.3. 查看ELF依賴樹

Prelink 的處理過程是從目標(biāo) ELF 文件開始,檢查其依賴樹。從葉子節(jié)點(diǎn)開始處理,自底向上,直至根節(jié)點(diǎn)。若中間任何節(jié)點(diǎn)處理異常,則目標(biāo)文件都無法被 prelink。同理,如果已經(jīng)被 prelink 處理的 ELF 文件,如果其依賴樹的中任何節(jié)點(diǎn)對(duì)應(yīng)的 ELF 文件有更改,則需要從根開始重新 prelink。如果被更改的 ELF 所處的層級(jí)較低,被很多可執(zhí)行文件依賴,則可能整個(gè)系統(tǒng)的 ELF 都需要重新進(jìn)行 Prelink 處理。

可以使用 lddtree 查看 ELF 文件的依賴樹。但是這個(gè)工具比較雞肋,只適用于處理本機(jī)的 ELF 文件,無法像 prelink 一樣可以在運(yùn)行時(shí)指定 sysroot 和 LD_LIBRARY_PATH。

1.4. 不必要的依賴項(xiàng)

如果 prelink 在處理某個(gè) ELF 文件(記為 A)的過程中,發(fā)現(xiàn) A 并沒有使用其直接依賴的另一個(gè) ELF 文件(記為 B),而 A 又通過 C 間接依賴到 B,并且 B 已經(jīng)被 prelink 處理。此時(shí),A 將無法被 prelink。

1.5. 動(dòng)態(tài)加載的共享庫

Prelink 對(duì)于通過 dlopen 方式打開的共享庫沒有效果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    686

    瀏覽量

    34934
  • Prelink
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1717
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CW32F030在使用中的注意事項(xiàng)有哪些?

    CW32F030在使用中的注意事項(xiàng)有哪些?
    發(fā)表于 11-18 06:20

    emWin AppWizard 開發(fā)注意事項(xiàng)有哪些?

    emWin AppWizard 開發(fā)注意事項(xiàng)
    發(fā)表于 09-04 06:18

    別讓這些細(xì)節(jié)毀了PCBA!焊接注意事項(xiàng)清單

    站式PCBA加工廠家今天為大家講講PCBA加工中電子元器件焊接注意事項(xiàng)有哪些?PCBA加工中電子元器件焊接注意事項(xiàng)。 電子元器件焊接關(guān)鍵注意事項(xiàng) 在PCBA加工中,焊接工藝直接影響電
    的頭像 發(fā)表于 07-23 09:26 ?846次閱讀

    美國(guó)Odyssey奧德賽電池充電注意事項(xiàng)全解析

    Odyssey奧德賽電池充電注意事項(xiàng)全解析 奧德賽電池作為高性能的深循環(huán)鉛酸電池,廣泛應(yīng)用于汽車啟動(dòng)、摩托車、船舶以及備用電源系統(tǒng)中。正確的充電方法不僅能夠延長(zhǎng)電池壽命,還能保障其性能穩(wěn)定發(fā)揮
    的頭像 發(fā)表于 05-19 16:31 ?885次閱讀
    美國(guó)Odyssey奧德賽電池充電<b class='flag-5'>注意事項(xiàng)</b>全解析

    IGBT器件的防靜電注意事項(xiàng)

    IGBT作為功率半導(dǎo)體器件,對(duì)靜電極為敏感。我將從其靜電敏感性原理入手,詳細(xì)闡述使用過程中防靜電的具體注意事項(xiàng)與防護(hù)措施,確保其安全穩(wěn)定運(yùn)行。
    的頭像 發(fā)表于 05-15 14:55 ?1191次閱讀

    手機(jī)喇叭氣密性檢測(cè)儀的注意事項(xiàng)

    使用手機(jī)喇叭氣密性檢測(cè)儀的注意事項(xiàng)包括以下幾點(diǎn):、使用前注意事項(xiàng)仔細(xì)閱讀手機(jī)喇叭氣密性檢測(cè)儀的使用說明書,了解設(shè)備的操作方法和注意事項(xiàng)。檢
    的頭像 發(fā)表于 05-15 13:38 ?585次閱讀
    手機(jī)喇叭氣密性檢測(cè)儀的<b class='flag-5'>注意事項(xiàng)</b>

    SiC MOSFET驅(qū)動(dòng)電路設(shè)計(jì)注意事項(xiàng)

    柵極驅(qū)動(dòng)器是保證SiC MOSFET安全運(yùn)行的關(guān)鍵,設(shè)計(jì)柵極驅(qū)動(dòng)電路的關(guān)鍵點(diǎn)包括柵極電阻、柵極電壓和布線方式等,本章節(jié)帶你了解SiC MOSFET驅(qū)動(dòng)電路設(shè)計(jì)、驅(qū)動(dòng)電阻選擇、死區(qū)時(shí)間等注意事項(xiàng)。
    的頭像 發(fā)表于 04-24 17:00 ?1752次閱讀
    SiC MOSFET驅(qū)動(dòng)電路設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    運(yùn)算放大器的使用注意事項(xiàng)

    上篇我們了解了運(yùn)算放大器的基本定義和內(nèi)部工作原理。在本篇中,為了把運(yùn)算放大器用好,建議我們?cè)谑褂弥?,先弄?b class='flag-5'>一些重要的產(chǎn)品性質(zhì)和注意事項(xiàng)。
    的頭像 發(fā)表于 04-07 17:18 ?1223次閱讀
    運(yùn)算放大器的使用<b class='flag-5'>注意事項(xiàng)</b>

    掃描電鏡的日常維護(hù)有哪些注意事項(xiàng)?

    掃描電鏡日常維護(hù)的注意事項(xiàng)。
    的頭像 發(fā)表于 03-24 11:38 ?900次閱讀
    掃描電鏡的日常維護(hù)有哪些<b class='flag-5'>注意事項(xiàng)</b>?

    iW1710驅(qū)動(dòng)設(shè)計(jì)方案與PCB布線注意事項(xiàng)

    iW1710驅(qū)動(dòng)設(shè)計(jì)方案與PCB布線注意事項(xiàng)
    發(fā)表于 02-17 14:19 ?0次下載

    驅(qū)動(dòng)板設(shè)計(jì)注意事項(xiàng)

    設(shè)計(jì)驅(qū)動(dòng)板時(shí)我們需要考慮電路原理與元器件選擇、PCB設(shè)計(jì)、熱管理、電磁兼容性(EMC)、其他注意事項(xiàng)。以下是關(guān)于相關(guān)內(nèi)容的詳細(xì)介紹,讓我們起來簡(jiǎn)單的了解下吧!
    的頭像 發(fā)表于 02-12 13:48 ?1043次閱讀

    GD32單片機(jī)GPIO結(jié)構(gòu)及注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《GD32單片機(jī)GPIO結(jié)構(gòu)及注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 02-07 17:27 ?3次下載
    GD32單片機(jī)GPIO結(jié)構(gòu)及<b class='flag-5'>注意事項(xiàng)</b>

    智多晶DDR Controller使用注意事項(xiàng)

    最后期我們主要介紹智多晶DDR Controller使用時(shí)的注意事項(xiàng)。
    的頭像 發(fā)表于 01-24 11:14 ?1335次閱讀
    智多晶DDR Controller使用<b class='flag-5'>注意事項(xiàng)</b>

    AN20-儀表低通濾波器的應(yīng)用注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《AN20-儀表低通濾波器的應(yīng)用注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 01-12 11:25 ?0次下載
    AN20-儀表低通濾波器的應(yīng)用<b class='flag-5'>注意事項(xiàng)</b>

    多層板埋孔設(shè)計(jì)注意事項(xiàng)

    多層板埋孔設(shè)計(jì)注意事項(xiàng)
    的頭像 發(fā)表于 12-20 16:06 ?1225次閱讀