1195972f6Sopenharmony_ciFrom 970d9d6fd15c433af20bbbd7418c5e9773d58471 Mon Sep 17 00:00:00 2001 2195972f6Sopenharmony_ciFrom: jiangheng <jiangheng12@huawei.com> 3195972f6Sopenharmony_ciDate: Mon, 7 Mar 2022 21:08:13 +0800 4195972f6Sopenharmony_ciSubject: [PATCH] remove chose_dlsym_handle function, set handle to RTLD_NEXT 5195972f6Sopenharmony_ci 6195972f6Sopenharmony_ci--- 7195972f6Sopenharmony_ci src/api/posix_api.c | 33 +-------------------------------- 8195972f6Sopenharmony_ci 1 file changed, 1 insertion(+), 32 deletions(-) 9195972f6Sopenharmony_ci 10195972f6Sopenharmony_cidiff --git a/src/api/posix_api.c b/src/api/posix_api.c 11195972f6Sopenharmony_ciindex eff9f46..bce07f5 100644 12195972f6Sopenharmony_ci--- a/src/api/posix_api.c 13195972f6Sopenharmony_ci+++ b/src/api/posix_api.c 14195972f6Sopenharmony_ci@@ -64,33 +64,6 @@ void posix_api_fork(void) 15195972f6Sopenharmony_ci posix_api->get_socket = chld_get_socket; 16195972f6Sopenharmony_ci } 17195972f6Sopenharmony_ci 18195972f6Sopenharmony_ci-static int chose_dlsym_handle(void *__restrict* khandle) 19195972f6Sopenharmony_ci-{ 20195972f6Sopenharmony_ci- void *dlhandle; 21195972f6Sopenharmony_ci- int (*gazelle_epoll_create)(int size); 22195972f6Sopenharmony_ci- dlhandle = dlopen ("liblstack.so", RTLD_LAZY); 23195972f6Sopenharmony_ci- if (dlhandle == NULL) { 24195972f6Sopenharmony_ci- return ERR_IF; 25195972f6Sopenharmony_ci- } 26195972f6Sopenharmony_ci- 27195972f6Sopenharmony_ci- gazelle_epoll_create = dlsym(dlhandle, "epoll_create"); 28195972f6Sopenharmony_ci- if (gazelle_epoll_create == NULL) { 29195972f6Sopenharmony_ci- return ERR_MEM; 30195972f6Sopenharmony_ci- } 31195972f6Sopenharmony_ci- 32195972f6Sopenharmony_ci- dlclose(dlhandle); 33195972f6Sopenharmony_ci- 34195972f6Sopenharmony_ci- *khandle = RTLD_NEXT; 35195972f6Sopenharmony_ci- if (dlsym(*khandle, "epoll_create") == gazelle_epoll_create) { 36195972f6Sopenharmony_ci- RTE_LOG(ERR, EAL, "posix api use RTLD_DEFAULT\n"); 37195972f6Sopenharmony_ci- *khandle = RTLD_DEFAULT; 38195972f6Sopenharmony_ci- } else { 39195972f6Sopenharmony_ci- RTE_LOG(ERR, EAL, "posix api use RTLD_NEXT\n"); 40195972f6Sopenharmony_ci- } 41195972f6Sopenharmony_ci- 42195972f6Sopenharmony_ci- return ERR_OK; 43195972f6Sopenharmony_ci-} 44195972f6Sopenharmony_ci- 45195972f6Sopenharmony_ci int posix_api_init(void) 46195972f6Sopenharmony_ci { 47195972f6Sopenharmony_ci /* the symbol we use here won't be NULL, so we don't need dlerror() 48195972f6Sopenharmony_ci@@ -102,11 +75,7 @@ int posix_api_init(void) 49195972f6Sopenharmony_ci 50195972f6Sopenharmony_ci posix_api = &posix_api_val; 51195972f6Sopenharmony_ci 52195972f6Sopenharmony_ci- void *__restrict handle; 53195972f6Sopenharmony_ci- int ret = chose_dlsym_handle(&handle); 54195972f6Sopenharmony_ci- if (ret != ERR_OK) { 55195972f6Sopenharmony_ci- return ret; 56195972f6Sopenharmony_ci- } 57195972f6Sopenharmony_ci+ void *__restrict handle = RTLD_NEXT; 58195972f6Sopenharmony_ci 59195972f6Sopenharmony_ci /* glibc standard api */ 60195972f6Sopenharmony_ci CHECK_DLSYM_RET_RETURN(posix_api->socket_fn = dlsym(handle, "socket")); 61195972f6Sopenharmony_ci-- 62195972f6Sopenharmony_ci1.8.3.1 63195972f6Sopenharmony_ci 64