Attachment: binrCaxp7Bhrc.bin
Description:

Dynamic linking is first-class citizen in BSD systems, there's no libdl.
dlfcn(3) functions are provided for any dynamically linked program on NetBSD,
and they are provided by libc on FreeBSD.

diff --git a/auxdir/x_ac_dlfcn.m4 b/auxdir/x_ac_dlfcn.m4
new file mode 100644
index 0000000..66b48da
--- /dev/null
+++ b/auxdir/x_ac_dlfcn.m4
@@ -0,0 +1,10 @@
+# $NetBSD$
+
+AC_DEFUN([X_AC_DLFCN], [
+  AC_MSG_CHECKING([library containing dlopen])
+  AC_CHECK_LIB([], [dlopen], [ac_have_dlopen=yes; DL_LIBS=""],
+    [AC_CHECK_LIB([dl], [dlopen], [ac_have_dlopen=yes; DL_LIBS="-ldl"],
+      [AC_CHECK_LIB([svdl], [dlopen], [ac_have_dlopen=yes; DL_LIBS="-lsvdl"])])])
+
+  AC_SUBST(DL_LIBS)
+])
diff --git a/configure.ac b/configure.ac
index ac75d49..496dc5b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,6 +129,10 @@ dnl Checks for structures.
 dnl
 X_AC__SYSTEM_CONFIGURATION
 
+dnl Check for dlfcn
+dnl
+X_AC_DLFCN
+
 dnl check to see if glibc's program_invocation_name is available:
 dnl
 X_AC_SLURM_PROGRAM_INVOCATION_NAME
diff --git a/src/common/Makefile.am b/src/common/Makefile.am
index 6880f5a..8ad3b62 100644
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -132,7 +132,7 @@ libspank_la_SOURCES = \
 	plugstack.c plugstack.h \
 	optz.c      optz.h
 
-libcommon_la_LIBADD   = -ldl
+libcommon_la_LIBADD   = $(DL_LIBS)
 
 libcommon_la_LDFLAGS  = $(LIB_LDFLAGS) -module --export-dynamic
 
diff --git a/src/plugins/select/bluegene/Makefile.am b/src/plugins/select/bluegene/Makefile.am
index ca93187..505f17a 100644
--- a/src/plugins/select/bluegene/Makefile.am
+++ b/src/plugins/select/bluegene/Makefile.am
@@ -13,7 +13,7 @@ pkglib_LTLIBRARIES = select_bluegene.la
 
 noinst_LTLIBRARIES = libba_common.la libconfigure_api.la
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 # These are needed for pack/unpack of structures for cross-cluster stuff
 select_bluegene_la_SOURCES = select_bluegene.c \
diff --git a/src/plugins/select/bluegene/ba/Makefile.am b/src/plugins/select/bluegene/ba/Makefile.am
index 4817834..6ef2658 100644
--- a/src/plugins/select/bluegene/ba/Makefile.am
+++ b/src/plugins/select/bluegene/ba/Makefile.am
@@ -23,7 +23,7 @@ wire_testSOURCES = wire_test.c
 
 # compile against the block_allocator.o since we don't really want to
 # link against the bridge_linker.
-wire_test_LDADD = $(top_builddir)/src/api/libslurm.o -ldl \
+wire_test_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS) \
 		../libba_common.la $(libblock_allocator_la_OBJECTS)
 
 total += ../libba_common.la $(top_builddir)/src/api/libslurm.o
diff --git a/src/plugins/select/bluegene/ba_bgq/Makefile.am b/src/plugins/select/bluegene/ba_bgq/Makefile.am
index f8da9f4..27296d4 100644
--- a/src/plugins/select/bluegene/ba_bgq/Makefile.am
+++ b/src/plugins/select/bluegene/ba_bgq/Makefile.am
@@ -23,7 +23,7 @@ wire_test_SOURCES = wire_test.c
 
 # compile against the block_allocator.o since we don't really want to
 # link against the bridge_linker.
-wire_test_LDADD = $(top_builddir)/src/api/libslurm.o -ldl \
+wire_test_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS) \
 	../libba_common.la  $(libblock_allocator_la_OBJECTS)
 
 total += ../libba_common.la $(top_builddir)/src/api/libslurm.o
diff --git a/src/plugins/select/bluegene/sfree/Makefile.am b/src/plugins/select/bluegene/sfree/Makefile.am
index 426db63..edf6f76 100644
--- a/src/plugins/select/bluegene/sfree/Makefile.am
+++ b/src/plugins/select/bluegene/sfree/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)  -I$(top_srcdir)/src/common $(BG_INCLUDES)
 
 sbin_PROGRAMS = sfree
 
-sfree_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+sfree_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 sfree_SOURCES = sfree.c sfree.h opts.c
 sfree_LDFLAGS = -export-dynamic -lm $(CMD_LDFLAGS)
diff --git a/src/sacct/Makefile.am b/src/sacct/Makefile.am
index 09e9d7a..d203aaf 100644
--- a/src/sacct/Makefile.am
+++ b/src/sacct/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = sacct
 
-sacct_LDADD = 	$(top_builddir)/src/db_api/libslurmdb.o -ldl
+sacct_LDADD = 	$(top_builddir)/src/db_api/libslurmdb.o $(DL_LIBS)
 
 sacct_LDFLAGS = -export-dynamic $(CMD_LDFLAGS)
 
diff --git a/src/sacctmgr/Makefile.am b/src/sacctmgr/Makefile.am
index 76a9a32..584b4b5 100644
--- a/src/sacctmgr/Makefile.am
+++ b/src/sacctmgr/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = sacctmgr
 
-sacctmgr_LDADD =  $(top_builddir)/src/db_api/libslurmdb.o -ldl \
+sacctmgr_LDADD =  $(top_builddir)/src/db_api/libslurmdb.o $(DL_LIBS) \
 	$(READLINE_LIBS)
 
 sacctmgr_SOURCES =	\
diff --git a/src/salloc/Makefile.am b/src/salloc/Makefile.am
index 01ed5e9..4ef6a74 100644
--- a/src/salloc/Makefile.am
+++ b/src/salloc/Makefile.am
@@ -9,7 +9,7 @@ bin_PROGRAMS = salloc
 
 salloc_SOURCES = salloc.c salloc.h opt.c opt.h
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 salloc_LDADD = \
 	$(convenience_libs)
diff --git a/src/sattach/Makefile.am b/src/sattach/Makefile.am
index 036b34f..1f6b885 100644
--- a/src/sattach/Makefile.am
+++ b/src/sattach/Makefile.am
@@ -12,7 +12,7 @@ sattach_SOURCES = \
 	sattach.c \
 	sattach.wrapper.c
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 sattach_LDADD = \
 	$(convenience_libs)
diff --git a/src/sbatch/Makefile.am b/src/sbatch/Makefile.am
index 0a54592..9b88be8 100644
--- a/src/sbatch/Makefile.am
+++ b/src/sbatch/Makefile.am
@@ -9,7 +9,7 @@ bin_PROGRAMS = sbatch
 
 sbatch_SOURCES = sbatch.c mult_cluster.c mult_cluster.h opt.c opt.h
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 sbatch_LDADD = $(convenience_libs)
 
diff --git a/src/sbcast/Makefile.am b/src/sbcast/Makefile.am
index 48336a5..6ec2083 100644
--- a/src/sbcast/Makefile.am
+++ b/src/sbcast/Makefile.am
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = foreign
 INCLUDES = -I$(top_srcdir) $(BG_INCLUDES)
 bin_PROGRAMS = sbcast
 
-sbcast_LDADD = 	$(top_builddir)/src/api/libslurm.o -ldl -lm
+sbcast_LDADD = 	$(top_builddir)/src/api/libslurm.o $(DL_LIBS) -lm
 
 noinst_HEADERS = sbcast.h
 sbcast_SOURCES = agent.c sbcast.c opts.c
diff --git a/src/scancel/Makefile.am b/src/scancel/Makefile.am
index 95cfb3e..f8aa1d7 100644
--- a/src/scancel/Makefile.am
+++ b/src/scancel/Makefile.am
@@ -6,7 +6,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = scancel
 
-scancel_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+scancel_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 noinst_HEADERS  = scancel.h
 scancel_SOURCES = scancel.c opt.c
diff --git a/src/scontrol/Makefile.am b/src/scontrol/Makefile.am
index 23b4a62..af1c411 100644
--- a/src/scontrol/Makefile.am
+++ b/src/scontrol/Makefile.am
@@ -20,7 +20,7 @@ scontrol_SOURCES =	\
 	update_part.c	\
 	update_step.c
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl -lm
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS) -lm
 
 
 scontrol_LDADD = \
diff --git a/src/sdiag/Makefile.am b/src/sdiag/Makefile.am
index f170159..2f111e8 100644
--- a/src/sdiag/Makefile.am
+++ b/src/sdiag/Makefile.am
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = foreign
 INCLUDES = -I$(top_srcdir) $(BG_INCLUDES)
 bin_PROGRAMS = sdiag
 
-sdiag_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+sdiag_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 sdiag_SOURCES = sdiag.c opts.c
 
diff --git a/src/sinfo/Makefile.am b/src/sinfo/Makefile.am
index 0820811..96e06a9 100644
--- a/src/sinfo/Makefile.am
+++ b/src/sinfo/Makefile.am
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = foreign
 INCLUDES = -I$(top_srcdir) $(BG_INCLUDES)
 bin_PROGRAMS = sinfo
 
-sinfo_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+sinfo_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 noinst_HEADERS = sinfo.h print.h
 sinfo_SOURCES = sinfo.c opts.c print.c sort.c
diff --git a/src/slurmctld/Makefile.am b/src/slurmctld/Makefile.am
index 815172a..67b4631 100644
--- a/src/slurmctld/Makefile.am
+++ b/src/slurmctld/Makefile.am
@@ -65,7 +65,7 @@ sbin_PROGRAMS = slurmctld
 
 slurmctld_LDADD = 				    \
 	$(top_builddir)/src/common/libdaemonize.la  \
-	$(top_builddir)/src/api/libslurm.o -ldl
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 slurmctld_LDFLAGS = -export-dynamic $(CMD_LDFLAGS)
 
 force:
diff --git a/src/slurmd/slurmd/Makefile.am b/src/slurmd/slurmd/Makefile.am
index 1cd8f85..439155b 100644
--- a/src/slurmd/slurmd/Makefile.am
+++ b/src/slurmd/slurmd/Makefile.am
@@ -10,7 +10,7 @@ INCLUDES = -I$(top_srcdir)
 
 slurmd_LDADD = 					   \
 	$(top_builddir)/src/common/libdaemonize.la \
-	$(top_builddir)/src/api/libslurm.o -ldl	   \
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS)	   \
 	$(PLPA_LIBS) \
 	../common/libslurmd_common.la
 
diff --git a/src/slurmd/slurmstepd/Makefile.am b/src/slurmd/slurmstepd/Makefile.am
index 96e7bb6..31d7b1a 100644
--- a/src/slurmd/slurmstepd/Makefile.am
+++ b/src/slurmd/slurmstepd/Makefile.am
@@ -9,7 +9,7 @@ INCLUDES = -I$(top_srcdir)
 
 slurmstepd_LDADD = 				   \
 	$(top_builddir)/src/common/libdaemonize.la \
-	$(top_builddir)/src/api/libslurm.o -ldl \
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS) \
 	$(PLPA_LIBS) $(PAM_LIBS) $(UTIL_LIBS) \
 	../common/libslurmd_common.la
 
diff --git a/src/slurmdbd/Makefile.am b/src/slurmdbd/Makefile.am
index b229e2b..15a91a5 100644
--- a/src/slurmdbd/Makefile.am
+++ b/src/slurmdbd/Makefile.am
@@ -10,7 +10,7 @@ sbin_PROGRAMS = slurmdbd
 
 slurmdbd_LDADD = 					\
 	$(top_builddir)/src/common/libdaemonize.la \
-	$(top_builddir)/src/api/libslurm.o -ldl
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 
 slurmdbd_SOURCES = 		\
diff --git a/src/smap/Makefile.am b/src/smap/Makefile.am
index 0505839..67438cf 100644
--- a/src/smap/Makefile.am
+++ b/src/smap/Makefile.am
@@ -18,7 +18,7 @@ smap_SOURCES = smap.c \
 	job_functions.c partition_functions.c \
 	grid_functions.c reservation_functions.c opts.c
 
-smap_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+smap_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 if BLUEGENE_LOADED
 bg_dir = $(top_builddir)/src/plugins/select/bluegene
diff --git a/src/sprio/Makefile.am b/src/sprio/Makefile.am
index abadc1a..a2d2abe 100644
--- a/src/sprio/Makefile.am
+++ b/src/sprio/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = sprio
 
-sprio_LDADD = 	$(top_builddir)/src/api/libslurm.o -ldl
+sprio_LDADD = 	$(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 noinst_HEADERS = sprio.h print.h
 sprio_SOURCES = sprio.c print.c opts.c
diff --git a/src/squeue/Makefile.am b/src/squeue/Makefile.am
index 2f3030b..ee56435 100644
--- a/src/squeue/Makefile.am
+++ b/src/squeue/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = squeue
 
-squeue_LDADD = 	$(top_builddir)/src/api/libslurm.o -ldl
+squeue_LDADD = 	$(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 noinst_HEADERS = squeue.h print.h
 squeue_SOURCES = squeue.c print.c opts.c sort.c
diff --git a/src/sreport/Makefile.am b/src/sreport/Makefile.am
index 2ed41f5..cfec9b4 100644
--- a/src/sreport/Makefile.am
+++ b/src/sreport/Makefile.am
@@ -17,7 +17,7 @@ sreport_SOURCES =	\
 	common.c
 
 sreport_LDADD =  \
-	$(top_builddir)/src/db_api/libslurmdb.o -ldl \
+	$(top_builddir)/src/db_api/libslurmdb.o $(DL_LIBS) \
 	$(READLINE_LIBS)
 
 sreport_LDFLAGS = -export-dynamic $(CMD_LDFLAGS)
diff --git a/src/srun/Makefile.am b/src/srun/Makefile.am
index 2db2143..7811edc 100644
--- a/src/srun/Makefile.am
+++ b/src/srun/Makefile.am
@@ -26,7 +26,7 @@ srun_SOURCES = \
 # pthread is needed for compiling with g++ (which is used for linking
 # no matter if on a BGQ or not because of mentioning a .cc file
 convenience_libs = \
-	$(top_builddir)/src/api/libslurm.o -ldl -lpthread
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS) -lpthread
 
 srun_LDADD = \
 	$(convenience_libs)
diff --git a/src/srun_cr/Makefile.am b/src/srun_cr/Makefile.am
index 153b01e..f4f3ec9 100644
--- a/src/srun_cr/Makefile.am
+++ b/src/srun_cr/Makefile.am
@@ -9,7 +9,7 @@ bin_PROGRAMS = srun_cr
 
 srun_cr_SOURCES = srun_cr.c
 
-convenience_libs = $(top_builddir)/src/api/libslurm.o -ldl
+convenience_libs = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 srun_cr_LDADD = $(convenience_libs) $(BLCR_LIBS)
 
diff --git a/src/sshare/Makefile.am b/src/sshare/Makefile.am
index 5ff6e8c..805f758 100644
--- a/src/sshare/Makefile.am
+++ b/src/sshare/Makefile.am
@@ -8,7 +8,7 @@ INCLUDES = -I$(top_srcdir)
 bin_PROGRAMS = sshare
 
 sshare_LDADD =  \
-	$(top_builddir)/src/api/libslurm.o -ldl -lm \
+	$(top_builddir)/src/api/libslurm.o $(DL_LIBS) -lm \
 	$(READLINE_LIBS)
 
 sshare_SOURCES =	\
diff --git a/src/sstat/Makefile.am b/src/sstat/Makefile.am
index 020f54a..b01ba0b 100644
--- a/src/sstat/Makefile.am
+++ b/src/sstat/Makefile.am
@@ -6,7 +6,7 @@ INCLUDES = -I$(top_srcdir)
 
 bin_PROGRAMS = sstat
 
-sstat_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+sstat_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 sstat_SOURCES =		\
 	options.c	\
diff --git a/src/strigger/Makefile.am b/src/strigger/Makefile.am
index 0f8cebf..90ddadc 100644
--- a/src/strigger/Makefile.am
+++ b/src/strigger/Makefile.am
@@ -6,7 +6,7 @@ AUTOMAKE_OPTIONS = foreign
 INCLUDES = -I$(top_srcdir) $(BG_INCLUDES)
 bin_PROGRAMS = strigger
 
-strigger_LDADD = $(top_builddir)/src/api/libslurm.o -ldl
+strigger_LDADD = $(top_builddir)/src/api/libslurm.o $(DL_LIBS)
 
 noinst_HEADERS = strigger.h
 strigger_SOURCES = strigger.c opts.c
diff --git a/src/sview/Makefile.am b/src/sview/Makefile.am
index bcd92de..2896382 100644
--- a/src/sview/Makefile.am
+++ b/src/sview/Makefile.am
@@ -9,7 +9,7 @@ if BUILD_SVIEW
 
 bin_PROGRAMS = sview
 
-sview_LDADD = $(top_builddir)/src/db_api/libslurmdb.o -ldl
+sview_LDADD = $(top_builddir)/src/db_api/libslurmdb.o $(DL_LIBS)
 
 noinst_HEADERS = sview.h
 sview_SOURCES = sview.c popups.c grid.c part_info.c job_info.c \
diff --git a/testsuite/slurm_unit/common/Makefile.am b/testsuite/slurm_unit/common/Makefile.am
index d44d04e..a797587 100644
--- a/testsuite/slurm_unit/common/Makefile.am
+++ b/testsuite/slurm_unit/common/Makefile.am
@@ -9,7 +9,7 @@ elan_lib =
 endif
 
 INCLUDES = 	-I$(top_srcdir)
-LDADD =		$(top_builddir)/src/api/libslurm.o -ldl\
+LDADD =		$(top_builddir)/src/api/libslurm.o $(DL_LIBS)\
 		$(elan_lib)
 
 check_PROGRAMS = \

Attachment: binE7sZ0jqSmu.bin
Description:

Reply via email to