This is an automated email from the ASF dual-hosted git repository.

marcoabreu pushed a commit to branch revert-15489-acc_api
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git

commit 1e97b86e7027dc3adbf467aab90cee3ea3f6f236
Author: Marco de Abreu <[email protected]>
AuthorDate: Mon Aug 5 21:29:17 2019 +0200

    Revert "Dynamic Library Loading Support (#15489)"
    
    This reverts commit 3112893f80fdda2c9d8f6832562146bec97de205.
---
 CMakeLists.txt                                |   1 -
 Makefile                                      |   2 +-
 example/lib_api/Makefile                      |  31 -------
 example/lib_api/libtest.cc                    |  78 ----------------
 example/lib_api/mylib.cc                      |  37 --------
 example/lib_api/test.py                       |  31 -------
 include/mxnet/c_api.h                         |   7 --
 include/mxnet/lib_api.h                       |  50 -----------
 python/mxnet/__init__.py                      |   1 -
 python/mxnet/base.py                          |   2 +-
 python/mxnet/library.py                       |  49 ----------
 src/c_api/c_api.cc                            |  15 ----
 src/common/library.cc                         | 125 --------------------------
 src/common/library.h                          |  57 ------------
 src/engine/naive_engine.cc                    |   5 --
 src/engine/threaded_engine.h                  |   5 --
 tests/python/gpu/test_operator_gpu.py         |   1 -
 tests/python/unittest/test_library_loading.py |  38 --------
 18 files changed, 2 insertions(+), 533 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a86435f..7c479f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -701,7 +701,6 @@ if(UNIX)
   add_library(mxnet SHARED ${DUMMY_SOURCE})
   target_link_libraries(mxnet PRIVATE ${BEGIN_WHOLE_ARCHIVE} 
$<TARGET_FILE:mxnet_static> ${END_WHOLE_ARCHIVE})
   target_link_libraries(mxnet PRIVATE mxnet_static)
-  target_link_libraries(mxnet_static PUBLIC ${CMAKE_DL_LIBS})
   set_target_properties(mxnet_static PROPERTIES OUTPUT_NAME mxnet)
 else()
   add_library(mxnet SHARED ${SOURCE})
diff --git a/Makefile b/Makefile
index f1e21d6..b54df17 100644
--- a/Makefile
+++ b/Makefile
@@ -107,7 +107,7 @@ else
        CFLAGS += -O3 -DNDEBUG=1
 endif
 CFLAGS += -I$(TPARTYDIR)/mshadow/ -I$(TPARTYDIR)/dmlc-core/include -fPIC 
-I$(NNVM_PATH)/include -I$(DLPACK_PATH)/include -I$(TPARTYDIR)/tvm/include 
-Iinclude $(MSHADOW_CFLAGS)
-LDFLAGS = -pthread -ldl $(MSHADOW_LDFLAGS) $(DMLC_LDFLAGS)
+LDFLAGS = -pthread $(MSHADOW_LDFLAGS) $(DMLC_LDFLAGS)
 
 ifeq ($(ENABLE_TESTCOVERAGE), 1)
         CFLAGS += --coverage
diff --git a/example/lib_api/Makefile b/example/lib_api/Makefile
deleted file mode 100644
index e5893c8..0000000
--- a/example/lib_api/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-all:
-       g++ -shared -fPIC mylib.cc -o mylib.so -I ../../include/mxnet
-
-test:
-       g++ -std=c++11 -O3 -o libtest libtest.cc -ldl -I ../../include/mxnet
-
-windows:
-       cl /LD mylib.cc
-
-win_test:
-       cl libtest.cc
-
-clean:
-       rm -rf mylib.so libtest
diff --git a/example/lib_api/libtest.cc b/example/lib_api/libtest.cc
deleted file mode 100644
index 8bdf36c..0000000
--- a/example/lib_api/libtest.cc
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*!
- * Copyright (c) 2015 by Contributors
- * \file libtest.cc
- * \brief This test checks if the library is implemented correctly
- * and does not involve dynamic loading of library into MXNet
- * This test is supposed to be run before test.py
- */
-
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-#include <windows.h>
-#else
-#include <dlfcn.h>
-#endif
-
-#include <iostream>
-#include "lib_api.h"
-
-#define MXNET_VERSION 10500
-
-int main(void) {
-  // Get a handle to the library.
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-  HINSTANCE handle;
-  handle = LoadLibrary(TEXT("mylib.dll"));
-#else
-  void *handle;
-  handle = dlopen("mylib.so", RTLD_LAZY);
-#endif
-
-  if (!handle) {
-    std::cerr << "Unable to load library" << std::endl;
-    return 1;
-  }
-
-  // get initialize function address from the library
-  initialize_t init_lib;
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-  init_lib = (initialize_t) GetProcAddress(handle, MXLIB_INITIALIZE_STR);
-#else
-  init_lib = (initialize_t) dlsym(handle, MXLIB_INITIALIZE_STR);
-#endif
-
-  if (!init_lib) {
-    std::cerr << "Unable to get function 'intialize' from library" << 
std::endl;
-    return 1;
-  }
-
-  // Call the function.
-  (init_lib)(MXNET_VERSION);
-
-  // Deallocate memory.
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-  FreeLibrary(handle);
-#else
-  dlclose(handle);
-#endif
-
-  return 0;
-}
diff --git a/example/lib_api/mylib.cc b/example/lib_api/mylib.cc
deleted file mode 100644
index e67560a..0000000
--- a/example/lib_api/mylib.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*!
- * Copyright (c) 2015 by Contributors
- * \file mylib.cc
- * \brief Sample library file
- */
-
-#include <iostream>
-#include "lib_api.h"
-
-int initialize(int version) {
-  if (version >= 10400) {
-    std::cout << "MXNet version " << version << " supported" << std::endl;
-    return 1;
-  } else {
-    std::cout << "MXNet version " << version << " not supported" << std::endl;
-    return 0;
-  }
-}
diff --git a/example/lib_api/test.py b/example/lib_api/test.py
deleted file mode 100644
index d73d85c..0000000
--- a/example/lib_api/test.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env python3
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# coding: utf-8
-# pylint: disable=arguments-differ
-
-# This test checks if dynamic loading of library into MXNet is successful
-
-import mxnet as mx
-import os
-
-if (os.name=='posix'):
-    mx.library.load('mylib.so')
-elif (os.name=='nt'):
-    mx.library.load('mylib.dll')
diff --git a/include/mxnet/c_api.h b/include/mxnet/c_api.h
index 376c7e9..058f859 100644
--- a/include/mxnet/c_api.h
+++ b/include/mxnet/c_api.h
@@ -227,13 +227,6 @@ MXNET_DLL const char *MXGetLastError();
 //-------------------------------------
 
 /*!
- * \brief Load library dynamically
- * \param path to the library .so file
- * \return 0 when success, -1 when failure happens.
- */
-MXNET_DLL int MXLoadLib(const char *path);
-
-/*!
  * \brief Get list of features supported on the runtime
  * \param libFeature pointer to array of LibFeature
  * \param size of the array
diff --git a/include/mxnet/lib_api.h b/include/mxnet/lib_api.h
deleted file mode 100644
index ca3b295..0000000
--- a/include/mxnet/lib_api.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*!
- * Copyright (c) 2015 by Contributors
- * \file lib_api.h
- * \brief APIs to interact with libraries
- */
-#ifndef MXNET_LIB_API_H_
-#define MXNET_LIB_API_H_
-
-/*!
- * \brief Following are the APIs implemented in the external library
- * Each API has a #define string that is used to lookup the function in the 
library
- * Followed by the function declaration
- */
-#define MXLIB_INITIALIZE_STR "initialize"
-typedef int (*initialize_t)(int);
-
-extern "C" {
-    /*!
-     * \brief Checks if the MXNet version is supported by the library.
-     * If supported, initializes the library.
-     * \param version MXNet version number passed to library and defined as:
-     *                MXNET_VERSION = (MXNET_MAJOR*10000 + MXNET_MINOR*100 + 
MXNET_PATCH)
-     * \return Non-zero value on error i.e. library incompatible with passed 
MXNet version
-     */
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-    __declspec(dllexport) int __cdecl initialize(int);
-#else
-    int initialize(int);
-#endif
-}
-#endif  // MXNET_LIB_API_H_
diff --git a/python/mxnet/__init__.py b/python/mxnet/__init__.py
index 233bb2a..ab4bffd 100644
--- a/python/mxnet/__init__.py
+++ b/python/mxnet/__init__.py
@@ -26,7 +26,6 @@ from . import engine
 from .base import MXNetError
 from .util import is_np_shape, set_np_shape, np_shape, use_np_shape
 from . import base
-from . import library
 from . import contrib
 from . import ndarray
 from . import ndarray as nd
diff --git a/python/mxnet/base.py b/python/mxnet/base.py
index 17819bd..bf80263 100644
--- a/python/mxnet/base.py
+++ b/python/mxnet/base.py
@@ -86,7 +86,7 @@ _Null = _NullType()
 
 
 class MXNetError(Exception):
-    """Error that will be thrown by all mxnet functions."""
+    """Error that will be throwed by all mxnet functions."""
     pass
 
 
diff --git a/python/mxnet/library.py b/python/mxnet/library.py
deleted file mode 100644
index 9ebf2c2..0000000
--- a/python/mxnet/library.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# coding: utf-8
-"""Library management API of mxnet."""
-from __future__ import absolute_import
-import ctypes
-import os
-from .base import _LIB, check_call, MXNetError
-
-def load(path):
-    """Loads library dynamically.
-
-    Parameters
-    ---------
-    path : Path to library .so/.dll file
-
-    Returns
-    ---------
-    void
-    """
-    #check if path exists
-    if not os.path.exists(path):
-        raise MXNetError("load path %s does NOT exist" % path)
-    #check if path is an absolute path
-    if not os.path.isabs(path):
-        raise MXNetError("load path %s is not an absolute path" % path)
-    #check if path is to a library file
-    _, file_ext = os.path.splitext(path)
-    if not file_ext in ['.so', '.dll']:
-        raise MXNetError("load path %s is NOT a library file" % path)
-
-    byt_obj = path.encode('utf-8')
-    chararr = ctypes.c_char_p(byt_obj)
-    check_call(_LIB.MXLoadLib(chararr))
diff --git a/src/c_api/c_api.cc b/src/c_api/c_api.cc
index 5b23a8c..5207bdf 100644
--- a/src/c_api/c_api.cc
+++ b/src/c_api/c_api.cc
@@ -45,13 +45,11 @@
 #include "mxnet/storage.h"
 #include "mxnet/libinfo.h"
 #include "mxnet/imperative.h"
-#include "mxnet/lib_api.h"
 #include "./c_api_common.h"
 #include "../operator/custom/custom-inl.h"
 #include "../operator/tensor/matrix_op-inl.h"
 #include "../operator/tvmop/op_module.h"
 #include "../common/utils.h"
-#include "../common/library.h"
 
 using namespace mxnet;
 
@@ -92,19 +90,6 @@ inline int MXAPIGetFunctionRegInfo(const FunRegType *e,
 
 // NOTE: return value is added in API_END
 
-// Loads library and initializes it
-int MXLoadLib(const char *path) {
-  API_BEGIN();
-  void *lib = load_lib(path);
-  if (!lib)
-    LOG(FATAL) << "Unable to load library";
-
-  initialize_t initialize = get_func<initialize_t>(lib, 
const_cast<char*>(MXLIB_INITIALIZE_STR));
-  if (!initialize(static_cast<int>(MXNET_VERSION)))
-    LOG(FATAL) << "Library failed to initialize";
-  API_END();
-}
-
 int MXLibInfoFeatures(const struct LibFeature **lib_features, size_t *size) {
   using namespace features;
   API_BEGIN();
diff --git a/src/common/library.cc b/src/common/library.cc
deleted file mode 100644
index 9e79b5d..0000000
--- a/src/common/library.cc
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*!
- * Copyright (c) 2015 by Contributors
- * \file library.cc
- * \brief Dynamically loading accelerator library
- * and accessing its functions
- */
-
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-#include <windows.h>
-#else
-#include <dlfcn.h>
-#endif
-
-#include <string>
-#include "library.h"
-
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-/*!
- * \brief Retrieve the system error message for the last-error code
- * \param err string that gets the error message
- */
-void win_err(char **err) {
-  uint32_t dw = GetLastError();
-  FormatMessage(
-        FORMAT_MESSAGE_ALLOCATE_BUFFER |
-        FORMAT_MESSAGE_FROM_SYSTEM |
-        FORMAT_MESSAGE_IGNORE_INSERTS,
-        NULL,
-        dw,
-        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-        reinterpret_cast<char*>(err),
-        0, NULL);
-}
-#endif
-
-
-/*!
- * \brief Loads the dynamic shared library file
- * \param path library file location
- * \return handle a pointer for the loaded library, nullptr if loading 
unsuccessful
- */
-void* load_lib(const char* path) {
-  void *handle = nullptr;
-  std::string path_str(path);
-  // check if library was already loaded
-  if (loaded_libs.find(path_str) == loaded_libs.end()) {
-    // if not, load it
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-    handle = LoadLibrary(path);
-    if (!handle) {
-      char *err_msg = nullptr;
-      win_err(&err_msg);
-      LOG(FATAL) << "Error loading library: '" << path << "'\n" << err_msg;
-      LocalFree(err_msg);
-      return nullptr;
-    }
-#else
-    handle = dlopen(path, RTLD_LAZY);
-    if (!handle) {
-      LOG(FATAL) << "Error loading library: '" << path << "'\n" << dlerror();
-      return nullptr;
-    }
-#endif  // _WIN32 or _WIN64 or __WINDOWS__
-    // then store the pointer to the library
-    loaded_libs[path_str] = handle;
-  } else {
-    // otherwise just look up the pointer
-    handle = loaded_libs[path_str];
-  }
-  return handle;
-}
-
-/*!
- * \brief Closes the loaded dynamic shared library file
- * \param handle library file handle
- */
-void close_lib(void* handle) {
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-  FreeLibrary((HMODULE)handle);
-#else
-  dlclose(handle);
-#endif  // _WIN32 or _WIN64 or __WINDOWS__
-}
-
-/*!
- * \brief Obtains address of given function in the loaded library
- * \param handle pointer for the loaded library
- * \param func function pointer that gets output address
- * \param name function name to be fetched
- */
-void get_sym(void* handle, void** func, char* name) {
-#if defined(_WIN32) || defined(_WIN64) || defined(__WINDOWS__)
-  *func = GetProcAddress((HMODULE)handle, name);
-  if (!(*func)) {
-    char *err_msg = nullptr;
-    win_err(&err_msg);
-    LOG(FATAL) << "Error getting function '" << name << "' from library\n" << 
err_msg;
-    LocalFree(err_msg);
-  }
-#else
-  *func = dlsym(handle, name);
-  if (!(*func)) {
-    LOG(FATAL) << "Error getting function '" << name << "' from library\n" << 
dlerror();
-  }
-#endif  // _WIN32 or _WIN64 or __WINDOWS__
-}
diff --git a/src/common/library.h b/src/common/library.h
deleted file mode 100644
index d6eff41..0000000
--- a/src/common/library.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/*!
- * Copyright (c) 2015 by Contributors
- * \file library.h
- * \brief Defining library loading functions
- */
-#ifndef MXNET_COMMON_LIBRARY_H_
-#define MXNET_COMMON_LIBRARY_H_
-
-#include <iostream>
-#include <map>
-#include <string>
-#include "dmlc/io.h"
-
-// map of libraries loaded
-static std::map<std::string, void*> loaded_libs;
-
-void* load_lib(const char* path);
-void close_lib(void* handle);
-void get_sym(void* handle, void** func, char* name);
-
-/*!
- * \brief a templated function that fetches from the library
- * a function pointer of any given datatype and name
- * \param T a template parameter for data type of function pointer
- * \param lib library handle
- * \param func_name function name to search for in the library
- * \return func a function pointer
- */
-template<typename T>
-T get_func(void *lib, char *func_name) {
-  T func;
-  get_sym(lib, reinterpret_cast<void**>(&func), func_name);
-  if (!func)
-    LOG(FATAL) << "Unable to get function '" << func_name << "' from library";
-  return func;
-}
-
-#endif  // MXNET_COMMON_LIBRARY_H_
diff --git a/src/engine/naive_engine.cc b/src/engine/naive_engine.cc
index 371a6eb..92b38a8 100644
--- a/src/engine/naive_engine.cc
+++ b/src/engine/naive_engine.cc
@@ -30,7 +30,6 @@
 #include "./openmp.h"
 #include "../common/object_pool.h"
 #include "../profiler/custom_op_profiler.h"
-#include "../../src/common/library.h"
 
 namespace mxnet {
 namespace engine {
@@ -85,10 +84,6 @@ class NaiveEngine final : public Engine {
       }
     }
 #endif
-    // close opened libraries
-    for (auto const& lib : loaded_libs) {
-      close_lib(lib.second);
-    }
   }
 
   void Stop() override {
diff --git a/src/engine/threaded_engine.h b/src/engine/threaded_engine.h
index e9ced88..bf74485 100644
--- a/src/engine/threaded_engine.h
+++ b/src/engine/threaded_engine.h
@@ -44,7 +44,6 @@
 #include "./openmp.h"
 #include "../common/object_pool.h"
 #include "../profiler/custom_op_profiler.h"
-#include "../../src/common/library.h"
 
 namespace mxnet {
 namespace engine {
@@ -332,10 +331,6 @@ class ThreadedEngine : public Engine {
       kill_.store(true);
     }
     finished_cv_.notify_all();
-    // close opened libraries
-    for (auto const& lib : loaded_libs) {
-      close_lib(lib.second);
-    }
   }
 
  protected:
diff --git a/tests/python/gpu/test_operator_gpu.py 
b/tests/python/gpu/test_operator_gpu.py
index a8aa1ff..91ba9fb 100644
--- a/tests/python/gpu/test_operator_gpu.py
+++ b/tests/python/gpu/test_operator_gpu.py
@@ -45,7 +45,6 @@ from test_ndarray import *
 from test_subgraph_op import *
 from test_contrib_operator import test_multibox_target_op
 from test_tvm_op import *
-from test_library_loading import *
 
 set_default_context(mx.gpu(0))
 del test_support_vector_machine_l1_svm  # noqa
diff --git a/tests/python/unittest/test_library_loading.py 
b/tests/python/unittest/test_library_loading.py
deleted file mode 100644
index 3d56d0c..0000000
--- a/tests/python/unittest/test_library_loading.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This test checks if dynamic loading of library into MXNet is successful
-
-import os
-import platform
-import unittest
-import mxnet as mx
-from mxnet.test_utils import download
-
-def check_platform():
-    return platform.machine() not in ['x86_64', 'AMD64']
-
[email protected](check_platform(), "not all machine types supported")
-def test_library_loading():
-    if (os.name=='posix'):
-        lib = 'mylib.so'
-    elif (os.name=='nt'):
-        lib = 'mylib.dll'
-
-    fname = 
mx.test_utils.download('https://mxnet-demo-models.s3.amazonaws.com/lib_binary/'+lib)
-    fname = os.path.abspath(fname)
-    mx.library.load(fname)

Reply via email to