mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: remove RTLD_GLOBAL flag from libnvgpu-drv.so dlopen for QNX tests
currently libnvgpu-drv.so is opened with RTLD_GLOBAL flag which is required for nvgpu common tests but for qnx tests we dont need any symbol from libnvgpu-drv.so (except nvgpu_posix_probe and nvgpu_posix_cleanup which we will eventually remove for qnx) so RTLD_GLOBAL should not be used in case of qnx tests. If RTLD_GLOBAL is used for qnx tests then the symbols from libnvgpu-drv.so will be used instead of from libqnx_mock.so which is wrong. This change uses -Q command line option to make the decision about RTLD_GLOBAL flag After this change qnx unit tests should be run with -Q option and nvgpu common unit tests should be run without it JIRA NVGPU-1352 Change-Id: I759db679f5b95696835c8125c21f95bf35df590c Signed-off-by: asah <asah@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2011271 Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Ankur Kishore <ankkishore@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
@@ -37,14 +37,21 @@
|
|||||||
int core_load_nvgpu(struct unit_fw *fw)
|
int core_load_nvgpu(struct unit_fw *fw)
|
||||||
{
|
{
|
||||||
const char *msg;
|
const char *msg;
|
||||||
|
int flag = RTLD_NOW;
|
||||||
|
|
||||||
/*
|
if (fw->args->is_qnx == 0) {
|
||||||
* Specify a GLOBAL binding so that subsequently loaded unit tests see
|
/*
|
||||||
* the nvgpu-drv library. They will of course need it (and will access
|
* Specify a GLOBAL binding so that subsequently loaded
|
||||||
* it directly). I.e they will link against nvgpu-drv and this should
|
* unit tests see the nvgpu-drv library. They will of course
|
||||||
* satisfy that linkage.
|
* need it (and will access it directly). I.e they will link
|
||||||
*/
|
* against nvgpu-drv and this should satisfy that linkage.
|
||||||
fw->nvgpu_so = dlopen("libnvgpu-drv.so", RTLD_NOW | RTLD_GLOBAL);
|
*/
|
||||||
|
flag |= RTLD_GLOBAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: WAR: remove this dependency of libnvgpu-drv.so for qnx unit
|
||||||
|
* test, refer NVGPU-1935 for more detail */
|
||||||
|
fw->nvgpu_so = dlopen("libnvgpu-drv.so", flag);
|
||||||
|
|
||||||
if (fw->nvgpu_so == NULL) {
|
if (fw->nvgpu_so == NULL) {
|
||||||
msg = dlerror();
|
msg = dlerror();
|
||||||
|
|||||||
Reference in New Issue
Block a user