<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylV1GTojgQ_jX4kloKQR188MFB3NorHbccd2vfrAgBcgeES8LM-O-vkygCg7uze0oBJp3ur7u_7sQTi8-LAz_TMkWSIRzHCJeInf4mkUQJzQmSGZboFQuUkpJwLEmMEs4KhFHB4hoEaAkLZUYQeSNRLSkrESlTWhIbHQZGEa9LAUYYLOFXHa8ZjTKEo4gIAbqouExY7oNoo7GcleUszR3BB3RsteAnywsFkQfMU7hzWqm1vjgLy1vCBYMrkuA670tY7lxd3mNfs5CxWSokV8EJOWe8kVMSuAa_jTpkeavL656kFJaczeKcsX_qysyAta7x4KJ00D5NkIY3vi6eI-uhZV19COfC-AAAArgGUKoPJ7LmJRp3JqyHVd-m9ij4-k27Y7muzjiN4O2942uCQSkRV9m20E3UgN9VKv-QyEoOyGh1-61WZCRxDr7sSc4iE0VIMYGhEHxtjT5LLBW4oegZu1scZcA4y10qJnbGWhlT1Ik4uEN6q96lC0KjHlfX1btyCR77rbo_sdLIAd7PpNwpdxXSDXlR-NXrMk1hpaAvZBh4n9ArLPEGn1mt6dNz4oa8I9bjdIfNRBHkGAFAFAYfoH1S5_lXLDMdrwpeusyycVWRMtZGXZtpHgy5xfHrMYmPDLQSXKCYCAX0qlyXQqDuTcEml-dufTRRvV8jauWHigPQBazOYwS9BxJHStNSvKWaaSoosAtIEE6v3eFPiyknKY4ubeArFmKLS1DKIYhC3PVlKMPQk9V6Ig4sLKhcU924tBqImAllgEqIZSW5pt_n9eG4003TCM8_HqB3dRLhEpqwRARMQ8_XWwJLTI-W54r0m8PvhEj5YMN2oFEsG-r3o65ctJO8FlkvJTcR3fd20PmChsB1Sf-tyVHFxAu2pGD8_FgnCeGqkXghOukfitdd8F3Ry-ZxCXpTDXZ0FCrY9_cPk0_d23TN6QIyNm1QeOn8_r3kWO4aLpThMoaAaw1dgQrKUyam8EJjwJ0KaxqUuggDs6bL5V-j1rx4o6o4x_00DCQwfKuAZCS-G_cWC03UzV6-4-E1Jl3bbXmlzHS3Npf9WwyNI6pEFF9JYXK2J8mv8wL7agfJ7-dgIBofCMHF_4srzYKCqf3A70C6eXjXF80u9lpCozZWzB6qBx5pidUppJeCe0abRhF0Y9CX7kd_EFuLIOGlg-1-6nfLhZ8oNHd1pgzfIqJPCkqNmXPNtc7zl-JTxZnRpX-qBz3BPbweRUN9EoWRfV1KWpDVOY-7v8LN2o6qCvR7jqO2iBdGY6S1aeRdUTMGGzvLX8gPf3acTfRBBWuMrh_B6Ue2Vj8DOA0DDopAs5mq1xrqeTY5yqF3zzXvgyJzBW8JGwTXp2xr5qiNBFqzLi8gRANwfzTYjp5rrM5ULXzHeU3MFrBC3748HcDadvmj6UwBXOgDKp9bOuG64esYaPS3pN-Lhi3RL09Xnj2gBAODYvuS7R7ZICeKR2iz-b79NPZSaGPN3LcTJKxGrmM7E9tDm4NC639-ggPdekPL-g1N7IntoDftDVgbxQsvnntzPIIqyxhfbOsMFwWJw1xgGo9qni8yKSt9TtGNAuxl9cmOWNHiXZeNVIhanRvXU3c-cUbZwvN9d4yn07H34Hv-LIkn-GHqz31nFieuhyejHJ9ILhbW9BHaeklekVahWvx0Nfr_COjCdVzXGcPXGc-csT1X1ueziT-eneJo7FoThxQQdFvpsRlPR3yhVZ7qVMBkDn92xG0SNnSaloRowIBQUpmTn_-_bP4-qrShv74cEKxtKhVdShV0aegLjfs_UixD5g>52940</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Trying to add an object file into the LLVM JIT [Execution Engine]
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MuhammedElsaid
      </td>
    </tr>
</table>

<pre>
    Trying to add an object file that was generated from a module into the execution engine. The execution engine runs another module which access this module's object file

    theModule->setTargetTriple(sys::getDefaultTargetTriple());

    std::string Error;
    auto Target = TargetRegistry::lookupTarget(TargetTriple, Error);

    if (!Target) {
        errs() << Error;
        return 1;
    }

    auto CPU = "generic";
    auto Features = "";

    TargetOptions opt;

    auto RM = Optional<Reloc::Model>(Reloc::Static);

    TargetMachine* TheTargetMachine = Target->createTargetMachine(TargetTriple, CPU, Features, opt, RM, None, CodeGenOpt::Level::Aggressive);

    theModule->setDataLayout(TheTargetMachine->createDataLayout());
    std::error_code EC;

    std::string fullPath = path
        .append(".o");

    raw_fd_ostream dest(fullPath, EC, sys::fs::OF_None);

    if (EC) {
        errs() << "Could not open file: " << EC.message();
        return 1;
    }

    legacy::PassManager pass;

    if (TheTargetMachine->addPassesToEmitFile(pass, dest, nullptr, CGFT_ObjectFile)) {
        errs() << "TheTargetMachine can't emit a file of this type";
        return 1;
    }

    pass.run(*theModule);
    dest.flush();

    ErrorOr<std::unique_ptr<MemoryBuffer>> buffer =
        MemoryBuffer::getFile(fullPath .c_str());

    if (auto error = buffer.getError()) {
        // handle error
        printf("Error %s\n", error.message().c_str());

        exit(1);
    }

    Expected<std::unique_ptr<ObjectFile>> objectOrError =
        ObjectFile::createObjectFile(buffer.get()->getMemBufferRef());

    if (!objectOrError) {
        // handle error
    }

    std::unique_ptr<ObjectFile> objectFile(std::move(objectOrError.get()));

    auto owningObject = OwningBinary<ObjectFile>(std::move(objectFile),
        std::move(buffer.get()));


    EE->addObjectFile(std::move(owningObject));



The Exception:
**/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:300: void llvm::RuntimeDyldELF::resolveX86_64Relocation(const llvm::SectionEntry &, uint64_t, uint64_t, uint32_t, int64_t, uint64_t): Assertion `(Type == ELF::R_X86_64_32 && (Value <= UINT32_MAX)) || (Type == ELF::R_X86_64_32S && ((int64_t)Value <= INT32_MAX && (int64_t)Value >= INT32_MIN))' failed.**

    Running LLVM-13git
    Ubuntu 20.04.3 LTS (GNU/Linux 4.4.0 x86_64)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydV1GTojgQ_jX4kloKQR188MFBnJorHbdcd2vfrAgBcgeES8LM-O-vkygCg7uzpxRg0un-uvvrTjyx-Lw48DMtUyQZwnGMcInY6W8SSZTQnCCZYYnesEApKQnHksQo4axAGBUsrkGAlrBQZgSRdxLVkrISkTKlJbHRYWAU8boUYITBEn7V8ZbRKEM4iogQoIuKy4TlPog2GstZWc7S3BF8QMdWC36xvFAQecA8hTunlVrri7OwvCVcMLgiCa7zvoTlztXlPfY1CxmbpUJyFZyQc8YbOSWBa_DbqEOWt7q87klKYcnZLM4Z-6euzAxY6xoPLkoH7dMEaXjj6-I5sh5a1tWHcC6MDwAggGsApfpwImteonFnwnpY9W1qj4Kv37U7luvqjNMI3j46viYYlBJxlW0L3UQN-F2l8g-JrOSAjFa332pFRhLn4Mue5CwyUYQUExgKwdfW6DeJpQI3FD1jd4ujDBhnuUvFxM5YK2OKOhEHd0hv1Yd0QWjU4-q6elcuwWO_VfcXVho5wPtEyp1yVyHdkFeFX70u0xRWCvpKhoH3Cb3CEm_wmdWaPj0nbsg7Yj1Od9hMFEGOEQBEYfAJ2id1nn_FMtPxquClyywbVxUpY23UtZnmwZBbHL8dk_jIQCvBBYqJUECvynUpBOreFGxyee7WRxPV-zWiVn6qOABdwOo8RtB7IHGkNC3FW6qZpoICu4AE4fTaHf5vMeUkxdGlDXzFQmxxCUo5BFGIu74MZRh6slpPxIGFBZVrqhuXVgMRM6EMUAmxrCTX9HtaH4473TSN8PzzAfpQJxEuoQlLRMA09Hy9JbDE9Gh5rki_OfxJiJQPNmwHGsWyoX4_6spFO8lrkfVSchPRfW8HnS9oCFyX9N-aHFVMvGBLCsbPj3WSEK4aiReik_6heN0F3xW9bB6XoDfVYEdHoYJ9f_8w-dS9TdecLiBj0waFl87v30uO5a7hQhkuYwi41tAVqKA8ZWIKLzQG3KmwpkGpizAwa7pc_j1qzYt3qopz3E_DQALD9wpIRuK7cW-x0ETd7OU7Hl5j0rXdllfKTHdrc9m_xdA4okpE8ZUUJmd7kvw-L7CvdpD8eQ4GovGJEFz8v7jSLCiY2g_8DqSbh3d90exibyU0amPF7KF64JGWWJ1Ceim4Z7RpFEE3Bn3pfvQHsbUIEl462O6Xfrdc-IVCc1dnyvA9IvqkoNSYOddc6zx_Lb5UnBld-qd60BPcw-tRNNQnURjZ16WkBVmd87j7K9ys7aiqQL_nOGqLeGU0RlqbRt4VNWOwsbP8lfz0Z8fZRB9UsMbo-hGcfmRr9TcAp2HAQRFoNlP1WkM9zyZHOfTuueZ9UGSu4C1hg-D6lG3NHLWRQGvW5QWEaADujwbb0XON1ZmqhR84r4nZAlbo-_PLAaxtlz-bzhTAhT6h8ltLJ1w3fB0Djf6W9EfRsCX6_HLl2QNKMDAoti_Z7pENcqJ4hDabH9svYy-FNtbMfT9BwmrkOrYzsT20OSi0_tMLHOjWG1rW72hiT2wHvWtvwNooXnjx3JvjkaQyJ7_-j9T8BVKm0V_PB2RNHxu2oQvdpqtRzfNFJmWlTze6vQDKrD7ZEStabO1ymApRq9PmeurOJ84oW8TRQ-J709ghU4zdk-fPZpHrRA_Y93yCp_4oxyeSiwWAgM2gJG9Iq1AbA2CgC9dxXWcMX2c8c8b2fOrP_fls4o9npzgau9bEIQUE2lY4bMbTEV9oSKc6FTCZwx8ccZuETZymJSHaHOiHrpQxvtjWGS4KEoe5wDQeaQQL7cF_BegvhQ">