Blob Blame History Raw
From 47cdf50caa16f1b5e361ba08126a0f16a234d3d6 Mon Sep 17 00:00:00 2001
From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
Date: Tue, 9 Feb 2021 09:28:06 +0000
Subject: [PATCH 07/11] Remove rpaths

---
 CMakeLists.txt                  | 23 +++++----
 bin/nrnivmodl_makefile_cmake.in |  4 +-
 setup.py                        | 84 ++++++++++++---------------------
 src/nrnpython/setup.py.in       |  6 +--
 4 files changed, 46 insertions(+), 71 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 114a756a1..880ccae72 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -748,18 +748,17 @@ add_dependencies(nrniv_lib hh_update)
 # Generate help_data.dat
 # =============================================================================
 if(NRN_ENABLE_PYTHON)
-  add_custom_target(
-    help_data_dat
-    COMMAND
-      ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/docs/parse_rst.py ${PROJECT_SOURCE_DIR}/docs/python
-      ${PROJECT_SOURCE_DIR}/share/lib/python/neuron/help_data.dat
-    COMMAND
-      ${CMAKE_COMMAND} -E copy_if_different
-      ${PROJECT_SOURCE_DIR}/share/lib/python/neuron/help_data.dat
-      ${PROJECT_BINARY_DIR}/lib/python/neuron/help_data.dat
-    COMMENT "Generating help_data.dat"
-    VERBATIM)
-  add_dependencies(nrniv_lib help_data_dat)
+    add_custom_target(
+        help_data_dat
+        COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/docs/parse_rst.py
+                ${PROJECT_SOURCE_DIR}/docs/python
+                ${PROJECT_SOURCE_DIR}/share/lib/python/neuron/help_data.dat
+        COMMAND ${CMAKE_COMMAND} -E copy_if_different
+                ${PROJECT_SOURCE_DIR}/share/lib/python/neuron/help_data.dat
+                ${PROJECT_SOURCE_DIR}/nrnpython/help_data.dat
+        COMMENT "Generating help_data.dat"
+        VERBATIM)
+    add_dependencies(nrniv_lib help_data_dat)
 endif()
 
 # =============================================================================
diff --git a/bin/nrnivmodl_makefile_cmake.in b/bin/nrnivmodl_makefile_cmake.in
index 9d37fbaf4..5c9734916 100644
--- a/bin/nrnivmodl_makefile_cmake.in
+++ b/bin/nrnivmodl_makefile_cmake.in
@@ -123,14 +123,14 @@ C_GREEN := \033[32m
 special: $(mech_lib)
 	@printf " => $(C_GREEN)LINKING$(C_RESET) executable $(special) LDFLAGS are: $(LDFLAGS)\n"
 	$(CXX_LINK_EXE) -I $(incdir) -I $(incdir)/nrncvode -DAUTO_DLOPEN_NRNMECH=0 $(datadir)/nrnmain.cpp -o $(special) \
-	  -L $(OBJS_DIR) -l$(mech_libname) $(NRNLIB_FLAGS) -l$(mech_libname) $(extra_lib_link) -Wl,-rpath,'$(DESTDIR_RPATH)' -Wl,-rpath,$(libdir) $(LDFLAGS) $(EXTRA_LDFLAGS)
+	  -L $(OBJS_DIR) -l$(mech_libname) $(NRNLIB_FLAGS) -l$(mech_libname) $(extra_lib_link) $(LDFLAGS) $(EXTRA_LDFLAGS)
 
 $(mech_lib): $(mech_lib_type)
 
 mech_lib_shared: mod_func.o $(mod_objs) $(nrn_lib) build_always
 	@printf " => $(C_GREEN)LINKING$(C_RESET) shared library $(mech_lib)\n"
 	$(CXX_LINK_SHARED) -I $(incdir) -o ${mech_lib} ${_SONAME} \
-	  $(mod_func_o) $(mod_objs) $(NRNLIB_FLAGS) $(NRNLIB_RPATH_FLAGS) $(LDFLAGS)
+	  $(mod_func_o) $(mod_objs) $(c_objs) $(NRNLIB_FLAGS) $(LDFLAGS)
 	rm -f $(OBJS_DIR)/.libs/libnrnmech.so ; mkdir -p $(OBJS_DIR)/.libs ; cp $(mech_lib) $(OBJS_DIR)/.libs/libnrnmech.so
 
 mech_lib_static: mod_func.o $(mod_objs) $(nrn_lib) build_always
diff --git a/setup.py b/setup.py
index 1debdcc72..ec849ac9e 100644
--- a/setup.py
+++ b/setup.py
@@ -344,48 +344,32 @@ def setup_package():
         libraries=["nrniv", "nrnpython{}".format(sys.version_info[0])],
     )
 
-    extensions = [
-        CMakeAugmentedExtension(
-            "neuron.hoc",
-            ["src/nrnpython/inithoc.cpp"],
-            cmake_collect_dirs=NRN_COLLECT_DIRS,
-            cmake_flags=[
-                "-DNRN_ENABLE_CORENEURON=" + ("ON" if Components.CORENRN else "OFF"),
-                "-DNRN_ENABLE_INTERVIEWS=" + ("ON" if Components.IV else "OFF"),
-                "-DIV_ENABLE_X11_DYNAMIC=" + ("ON" if Components.IV else "OFF"),
-                "-DNRN_ENABLE_RX3D=OFF",  # Never build within CMake
-                "-DNRN_ENABLE_MPI=" + ("ON" if Components.MPI else "OFF"),
-                "-DNRN_ENABLE_MPI_DYNAMIC=" + ("ON" if Components.MPI else "OFF"),
-                "-DNRN_ENABLE_PYTHON_DYNAMIC=ON",
-                "-DNRN_ENABLE_MODULE_INSTALL=OFF",
-                "-DNRN_ENABLE_REL_RPATH=ON",
-                "-DLINK_AGAINST_PYTHON=OFF",
-                "-DCMAKE_VERBOSE_MAKEFILE=OFF",
-                "-DCORENRN_ENABLE_OPENMP=ON",  # TODO: manylinux portability questions
-            ]
-            + (
-                [
-                    "-DCORENRN_ENABLE_GPU=ON",
-                    "-DCMAKE_C_COMPILER=nvc",  # use nvc and nvc++ for GPU support
-                    "-DCMAKE_CXX_COMPILER=nvc++",
-                    "-DCMAKE_CUDA_COMPILER=nvcc",
-                ]
-                if Components.GPU
-                else []
-            ),
-            include_dirs=[
-                "src",
-                "src/oc",
-                "src/nrnpython",
-                "src/nrnmpi",
-            ],
-            extra_link_args=[
-                # use relative rpath to .data/lib
-                "-Wl,-rpath,{}".format(REL_RPATH + "/.data/lib/")
-            ],
-            **extension_common_params,
-        )
-    ]
+    extensions = [CMakeAugmentedExtension(
+        "neuron.hoc",
+        ["src/nrnpython/inithoc.cpp"],
+        cmake_collect_dirs=NRN_COLLECT_DIRS,
+        cmake_flags=[
+            '-DNRN_ENABLE_CORENEURON=OFF',
+            '-DNRN_ENABLE_INTERVIEWS=' + ("ON" if Components.IV else "OFF"),
+            '-DIV_ENABLE_X11_DYNAMIC=' + ("ON" if Components.IV else "OFF"),
+            '-DNRN_ENABLE_RX3D=OFF',  # Never build within CMake
+            '-DNRN_ENABLE_MPI='         + ("ON" if Components.MPI else "OFF"),
+            '-DNRN_ENABLE_MPI_DYNAMIC=' + ("ON" if Components.MPI else "OFF"),
+            '-DNRN_ENABLE_PYTHON_DYNAMIC=ON',
+            '-DNRN_ENABLE_MODULE_INSTALL=OFF',
+            '-DNRN_ENABLE_REL_RPATH=ON',
+            '-DLINK_AGAINST_PYTHON=OFF',
+        ],
+        include_dirs=[
+            "src",
+            "src/oc",
+            "src/nrnpython",
+            "src/nrnmpi",
+        ],
+        extra_link_args=[
+        ],
+        **extension_common_params
+    )]
 
     if Components.RX3D:
         include_dirs = ["share/lib/python/neuron/rxd/geometry3d", numpy.get_include()]
@@ -394,17 +378,11 @@ def setup_package():
         # But pay the price if uploading distribution
         extra_compile_args = ["-O2" if "NRN_BUILD_FOR_UPLOAD" in os.environ else "-O0"]
         rxd_params = extension_common_params.copy()
-        rxd_params["libraries"].append("rxdmath")
-        rxd_params.update(
-            dict(
-                # Cython files take a long time to compile with O2 but this
-                # is a distribution...
-                extra_compile_args=extra_compile_args,
-                extra_link_args=[
-                    "-Wl,-rpath,{}".format(REL_RPATH + "/../../.data/lib/")
-                ],
-            )
-        )
+        rxd_params['libraries'].append("rxdmath")
+        rxd_params.update(dict(
+            extra_compile_args=[],  # cython files take too long to compile with O3
+            extra_link_args=[]
+        ))
 
         log.info("RX3D compile flags %s" % str(rxd_params))
 
diff --git a/src/nrnpython/setup.py.in b/src/nrnpython/setup.py.in
index 0c8f325a9..d2b1007b6 100644
--- a/src/nrnpython/setup.py.in
+++ b/src/nrnpython/setup.py.in
@@ -122,10 +122,7 @@ libdirs = [destdir + get_escaped_path("@NRN_LIBDIR@"),
 
 # prepare rpath flags for neuron and iv libs directories
 rpath_prefix_flag='-Wl,-R'
-extra_link_args = [@NRN_LINK_FLAGS_COMMA_SEPARATED_STRINGS@]
-@MAC_DARWIN_FALSE@extra_link_args += [rpath_prefix_flag+lib_path for lib_path in libdirs]
-@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,@loader_path/../../")
-@MAC_DARWIN_TRUE@extra_link_args.append("-Wl,-rpath,%s" % ivlibdir)
+extra_rpath_flags = []
 
 # as neuron module will be built during make, add build/lib
 # directory for linking. Note that build/lib shouldn't be
@@ -144,6 +141,7 @@ if "@IVHINES@" != "":
     libs.append("@IVHINES@")
 
 extra_compile_args = [@NRN_COMPILE_FLAGS_COMMA_SEPARATED_STRINGS@]
+extra_link_args = []
 
 if using_pgi:
   extra_link_args.append(pgi_compiler_flags)
-- 
2.39.1