intel/intel-cmt-cat

API lock initialization error! while integrating with boringssl

kazi-m22 opened this issue · 2 comments

I am trying to use boringssl with CAT.

For making things simple, first I have compiled CAT example files using following commands:

gcc -lpqos association_app.c -o assoc.x
sudo ./assoc.x

in associatoin_app.c, I used the following code:

        struct pqos_config cfg;
        int ret, exit_val = EXIT_SUCCESS;

        memset(&cfg, 0, sizeof(cfg));
        cfg.fd_log = STDOUT_FILENO;
        cfg.verbose = 0;
        cfg.interface = PQOS_INTER_OS;
        /* PQoS Initialization - Check and initialize CAT and CMT capability */
        ret = pqos_init(&cfg);
        if (ret != PQOS_RETVAL_OK) {
                printf("Error initializing PQoS library!\n");
                exit_val = EXIT_FAILURE;
        }


        ret = pqos_alloc_assoc_set(1,1);


        ret = pqos_fini();
        if (ret != PQOS_RETVAL_OK)
                printf("Error shutting down PQoS library!\n");
        return exit_val;

which worked fine for association. (I avoided the long gcc flags and linker libraries when I found using -lpqos compiles it successfully)

Then I tried to integrate this piece of code with boringssl (in aead.c). In the CMakeLists.txt, I just added -lpqos in C_CXX_FLAGS. Files compiled fine but while running, it can not initialize pqos, showing the error:

API lock initialization error!

I am running all programs from root. So what might be the issue that same piece of code is working when I am running as a single file but can not initialize pqos in my case. I also tried adding -lpthread but it remains same.

Please check permissions to "/var/lock/libpqos" file.

No update for more than 5 weeks