VirtualBox

Changeset 105813 in vbox for trunk/src/bldprogs


Ignore:
Timestamp:
Aug 22, 2024 11:38:31 AM (3 months ago)
Author:
vboxsync
Message:

Backed out r162650: bldprogs/VBoxDef2LazyLoad: Get it working on linux.arm64/ELF, ​bugref:10391

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bldprogs/VBoxDef2LazyLoad.cpp

    r104213 r105813  
    12301230                    "___LazyLoad___%s:\n"
    12311231                    "    adrp    x9, PAGE(g_sz%s)\n"
    1232                     "#ifndef ASM_FORMAT_ELF\n"
    12331232                    "    add     x9, x9, PAGEOFF(g_sz%s)\n"
    1234                     "#else\n"
    1235                     "    ldr     x9, [x9, PAGEOFF(g_sz%s)]\n"
    1236                     "#endif\n"
    12371233                    "    adrp    x10, PAGE(NAME(%s%s))\n"
    1238                     "#ifndef ASM_FORMAT_ELF\n"
    12391234                    "    add     x10, x10, PAGEOFF(NAME(%s%s))\n"
    1240                     "#else\n"
    1241                     "    ldr     x10, [x10, PAGEOFF(NAME(%s%s))]\n"
    1242                     "#endif\n"
    12431235                    "    mov     x16, x30\n"
    12441236                    "    bl      LazyLoadResolver\n"
    12451237                    "    mov     x30, x16\n"
    12461238                    , pExp->pszExportedNm,
    1247                     pExp->pszExportedNm, pExp->pszExportedNm, pExp->pszExportedNm,
    1248                     !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm,
     1239                    pExp->pszExportedNm, pExp->pszExportedNm,
    12491240                    !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm,
    12501241                    !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm);
     
    12541245                    "    movk    w9, #%u\n"
    12551246                    "    adrp    x10, PAGE(NAME(%s%s))\n"
    1256                     "#ifndef ASM_FORMAT_ELF\n"
    12571247                    "    add     x10, x10, PAGEOFF(NAME(%s%s))\n"
    1258                     "#else\n"
    1259                     "    ldr     x10, [x10, PAGEOFF(NAME(%s%s))]\n"
    1260                     "#endif\n"
    12611248                    , pExp->pszExportedNm,
    12621249                    pExp->uOrdinal,
    1263                     !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm,
    12641250                    !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm,
    12651251                    !pExp->fData ? "g_pfn" : "g_LazyPtr_", pExp->pszExportedNm);
     
    13581344            "    mov     x3, x0\n"
    13591345            "    adrp    x2, PAGE(g_szLibrary)\n"
    1360             "#ifndef ASM_FORMAT_ELF\n"
    13611346            "    add     x2, x2, PAGEOFF(g_szLibrary)\n"
    1362             "#else\n"
    1363             "    ldr     x2, [x2, PAGEOFF(g_szLibrary)]\n"
    1364             "#endif\n"
    13651347            "    mov     x1, x19\n"
    13661348            "    adrp    x0, PAGE(g_szFailLoadFmt)\n"
    1367             "#ifndef ASM_FORMAT_ELF\n"
    13681349            "    add     x0, x0, PAGEOFF(g_szFailLoadFmt)\n"
    1369             "#else\n"
    1370             "    ldr     x0, [x0, PAGEOFF(g_szFailLoadFmt)]\n"
    1371             "#endif\n"
    13721350            "    stp     x1, x2, [sp]\n"
    13731351            "    str     x3,     [sp, #16]\n"
     
    14371415                "    mov     x2, #0\n"
    14381416                "    adrp    x1, PAGE(g_hMod)\n"
    1439                 "#ifndef ASM_FORMAT_ELF\n"
    14401417                "    add     x1, x1, PAGEOFF(g_hMod)\n"
    1441                 "#else\n"
    1442                 "    ldr     x1, [x1, PAGEOFF(g_hMod)]\n"
    1443                 "#endif\n"
    14441418                "    adrp    x0, PAGE(g_szLibrary)\n"
    1445                 "#ifndef ASM_FORMAT_ELF\n"
    14461419                "    add     x0, x0, PAGEOFF(g_szLibrary)\n"
    1447                 "#else\n"
    1448                 "    ldr     x0, [x0, PAGEOFF(g_szLibrary)]\n"
    1449                 "#endif\n"
    14501420                "    bl      NAME(SUPR3HardenedLdrLoadAppPriv)\n");
    14511421    else
     
    14531423                "    /* Call RTLdrLoadSystem(const char *pszFilename, bool fNoUnload, PRTLDRMOD phLdrMod); */\n"
    14541424                "    adrp    x2, PAGE(g_hMod)\n"
    1455                 "#ifndef ASM_FORMAT_ELF\n"
    14561425                "    add     x2, x2, PAGEOFF(g_hMod)\n"
    1457                 "#else\n"
    1458                 "    ldr     x2, [x2, PAGEOFF(g_hMod)]\n"
    1459                 "#endif\n"
    14601426                "    mov     x1, #1\n"
    14611427                "    adrp    x0, PAGE(g_szLibrary)\n"
    1462                 "#ifndef ASM_FORMAT_ELF\n"
    14631428                "    add     x0, x0, PAGEOFF(g_szLibrary)\n"
    1464                 "#else\n"
    1465                 "    ldr     x0, [x0, PAGEOFF(g_szLibrary)]\n"
    1466                 "#endif\n"
    14671429                "    bl      NAME(RTLdrLoadSystem)\n");
    14681430
     
    14741436            "    mov     x2, x0\n"
    14751437            "    adrp    x1, PAGE(g_szLibrary)\n"
    1476             "#ifndef ASM_FORMAT_ELF\n"
    14771438            "    add     x1, x1, PAGEOFF(g_szLibrary)\n"
    1478             "#else\n"
    1479             "    ldr     x1, [x1, PAGEOFF(g_szLibrary)]\n"
    1480             "#endif\n"
    14811439            "    adrp    x0, PAGE(g_szFailResolveFmt)\n"
    1482             "#ifndef ASM_FORMAT_ELF\n"
    14831440            "    add     x0, x0, PAGEOFF(g_szFailResolveFmt)\n"
    1484             "#else\n"
    1485             "    ldr     x0, [x0, PAGEOFF(g_szFailResolveFmt)]\n"
    1486             "#endif\n"
    14871441            "    stp     x1, x2, [sp]\n"
    14881442            "    bl      NAME(RTAssertMsg2Weak)\n"
     
    15581512                    "    mov     x2, #0\n"
    15591513                    "    adrp    x1, PAGE(g_hMod)\n"
    1560                     "#ifndef ASM_FORMAT_ELF\n"
    15611514                    "    add     x1, x1, PAGEOFF(g_hMod)\n"
    1562                     "#else\n"
    1563                     "    ldr     x1, [x1, PAGEOFF(g_hMod)]\n"
    1564                     "#endif\n"
    15651515                    "    adrp    x0, PAGE(g_szLibrary)\n"
    1566                     "#ifndef ASM_FORMAT_ELF\n"
    15671516                    "    add     x0, x0, PAGEOFF(g_szLibrary)\n"
    1568                     "#else\n"
    1569                     "    ldr     x0, [x0, PAGEOFF(g_szLibrary)]\n"
    1570                     "#endif\n"
    15711517                    "    bl      NAME(SUPR3HardenedLdrLoadAppPriv)\n");
    15721518        else
     
    15741520                    "    /* Call RTLdrLoadSystem(const char *pszFilename, bool fNoUnload, PRTLDRMOD phLdrMod); */\n"
    15751521                    "    adrp    x2, PAGE(g_hMod)\n"
    1576                     "#ifndef ASM_FORMAT_ELF\n"
    15771522                    "    add     x2, x2, PAGEOFF(g_hMod)\n"
    1578                     "#else\n"
    1579                     "    ldr     x2, [x2, PAGEOFF(g_hMod)]\n"
    1580                     "#endif\n"
    15811523                    "    mov     x1, #1\n"
    15821524                    "    adrp    x0, PAGE(g_szLibrary)\n"
    1583                     "#ifndef ASM_FORMAT_ELF\n"
    15841525                    "    add     x0, x0, PAGEOFF(g_szLibrary)\n"
    1585                     "#else\n"
    1586                     "    ldr     x0, [x0, PAGEOFF(g_szLibrary)]\n"
    1587                     "#endif\n"
    15881526                    "    bl      NAME(RTLdrLoadSystem)\n");
    15891527        fprintf(pOutput,
     
    16011539                "\n"
    16021540                "    adrp     x22, PAGE(g_szzNames)\n"
    1603                 "#ifndef ASM_FORMAT_ELF\n"
    16041541                "    add      x22, x22, PAGEOFF(g_szzNames)\n"
    1605                 "#else\n"
    1606                 "    ldr      x22, [x22, PAGEOFF(g_szzNames)]\n"
    1607                 "#endif\n"
    16081542                "    adrp     x23, PAGE(g_apfnImports)\n"
    1609                 "#ifndef ASM_FORMAT_ELF\n"
    16101543                "    add      x23, x23, PAGEOFF(g_apfnImports)\n"
    1611                 "#else\n"
    1612                 "    ldr      x23, [x23, PAGEOFF(g_apfnImports)]\n"
    1613                 "#endif\n"
    16141544                "Lexplicit_load_next_import:\n"
    16151545                "    ldr     x0, [x23]\n"
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette