pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

openmpi: Update to 4.1.4, build OK, install fails



Module Name:	pkgsrc-wip
Committed By:	Jason Bacon <bacon%NetBSD.org@localhost>
Pushed By:	outpaddling
Date:		Fri Jul 29 20:03:26 2022 -0500
Changeset:	d697dadda41343111383ec6c5ef624dcd6779156

Modified Files:
	openmpi/Makefile
	openmpi/PLIST
	openmpi/buildlink3.mk
	openmpi/distinfo
	openmpi/patches/patch-configure
Added Files:
	openmpi/patches/patch-ompi_mca_sharedfp_sm_sharedfp__sm.c
Removed Files:
	openmpi/patches/patch-opal_mca_pmix_pmix3x_pmix_configure
	openmpi/patches/patch-opal_tools_wrappers_opal__wrapper.c

Log Message:
openmpi: Update to 4.1.4, build OK, install fails

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=d697dadda41343111383ec6c5ef624dcd6779156

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 openmpi/Makefile                                   |  9 +--
 openmpi/PLIST                                      | 39 ++++++-------
 openmpi/buildlink3.mk                              |  3 +
 openmpi/distinfo                                   | 11 ++--
 openmpi/patches/patch-configure                    | 65 ++++++++++++++++++----
 .../patch-ompi_mca_sharedfp_sm_sharedfp__sm.c      | 14 +++++
 .../patch-opal_mca_pmix_pmix3x_pmix_configure      | 15 -----
 .../patch-opal_tools_wrappers_opal__wrapper.c      | 23 --------
 8 files changed, 99 insertions(+), 80 deletions(-)

diffs:
diff --git a/openmpi/Makefile b/openmpi/Makefile
index 71f4f83f08..403129a4ca 100644
--- a/openmpi/Makefile
+++ b/openmpi/Makefile
@@ -1,8 +1,8 @@
 # $NetBSD: Makefile,v 1.39 2018/08/22 09:46:10 wiz Exp $
 
-DISTNAME=	openmpi-4.0.0
+DISTNAME=	openmpi-4.1.4
 CATEGORIES=	parallel
-MASTER_SITES=	https://download.open-mpi.org/release/open-mpi/v4.0/
+MASTER_SITES=	https://download.open-mpi.org/release/open-mpi/v4.1/
 EXTRACT_SUFX=	.tar.bz2
 
 MAINTAINER=	bacon%NetBSD.org@localhost
@@ -60,10 +60,11 @@ PLIST.noignoretkr=	yes
 .endif
 
 REPLACE_PERL=	ompi/tools/wrappers/mpijavac.pl.in
+REPLACE_PERL+=	ompi/mca/common/monitoring/*.pl
 
 # In HPC, we must have multiple implementations and multiple versions of
-# core tools like MPI in the same tree.  Some programs will require openmpi2,
-# while others will need 3 or 4, while still others will need mpich.
+# core tools like MPI in the same tree.  Some programs will require openmp3
+# while others will need 4, while still others will need mpich.
 MPI_SUBPREFIX=	openmpi4
 MPI_PREFIX=	${PREFIX}/${MPI_SUBPREFIX}
 
diff --git a/openmpi/PLIST b/openmpi/PLIST
index f20904d4eb..d9803fe62d 100644
--- a/openmpi/PLIST
+++ b/openmpi/PLIST
@@ -36,15 +36,15 @@ openmpi4/include/mpif-io-handles.h
 openmpi4/include/mpif-sentinels.h
 openmpi4/include/mpif-sizeof.h
 openmpi4/include/mpif.h
-openmpi4/include/openmpi/ompi/mpiext/affinity/c/mpiext_affinity_c.h
-openmpi4/include/openmpi/ompi/mpiext/cuda/c/mpiext_cuda_c.h
-openmpi4/include/openmpi/ompi/mpiext/pcollreq/c/mpiext_pcollreq_c.h
-openmpi4/include/openmpi/ompi/mpiext/pcollreq/c/pmpiext_pcollreq_c.h
-openmpi4/include/openmpi/ompi/mpiext/pcollreq/mpif-h/mpiext_pcollreq_mpifh.h
+openmpi4/include/openmpi/mpiext/mpiext_affinity_c.h
+openmpi4/include/openmpi/mpiext/mpiext_cuda_c.h
+openmpi4/include/openmpi/mpiext/mpiext_pcollreq_c.h
+openmpi4/include/openmpi/mpiext/mpiext_pcollreq_mpifh.h
+openmpi4/include/openmpi/mpiext/pmpiext_pcollreq_c.h
+openmpi4/lib/libmca_common_dstore.la
 openmpi4/lib/libmca_common_monitoring.la
 openmpi4/lib/libmca_common_ompio.la
 openmpi4/lib/libmca_common_sm.la
-openmpi4/lib/libmca_common_verbs.la
 openmpi4/lib/libmpi.la
 openmpi4/lib/libmpi_mpifh.la
 openmpi4/lib/libmpi_usempi_ignore_tkr.la
@@ -65,12 +65,13 @@ openmpi4/lib/openmpi/libompi_dbg_msgq.la
 openmpi4/lib/openmpi/mca_allocator_basic.la
 openmpi4/lib/openmpi/mca_allocator_bucket.la
 openmpi4/lib/openmpi/mca_bml_r2.la
-openmpi4/lib/openmpi/mca_btl_openib.la
 openmpi4/lib/openmpi/mca_btl_self.la
 openmpi4/lib/openmpi/mca_btl_sm.la
 openmpi4/lib/openmpi/mca_btl_tcp.la
 openmpi4/lib/openmpi/mca_btl_vader.la
+openmpi4/lib/openmpi/mca_coll_adapt.la
 openmpi4/lib/openmpi/mca_coll_basic.la
+openmpi4/lib/openmpi/mca_coll_han.la
 openmpi4/lib/openmpi/mca_coll_inter.la
 openmpi4/lib/openmpi/mca_coll_libnbc.la
 openmpi4/lib/openmpi/mca_coll_monitoring.la
@@ -81,9 +82,6 @@ openmpi4/lib/openmpi/mca_coll_tuned.la
 openmpi4/lib/openmpi/mca_compress_bzip.la
 openmpi4/lib/openmpi/mca_compress_gzip.la
 openmpi4/lib/openmpi/mca_crs_none.la
-openmpi4/lib/openmpi/mca_dfs_app.la
-openmpi4/lib/openmpi/mca_dfs_orted.la
-openmpi4/lib/openmpi/mca_dfs_test.la
 openmpi4/lib/openmpi/mca_errmgr_default_app.la
 openmpi4/lib/openmpi/mca_errmgr_default_hnp.la
 openmpi4/lib/openmpi/mca_errmgr_default_orted.la
@@ -108,10 +106,10 @@ openmpi4/lib/openmpi/mca_iof_hnp.la
 openmpi4/lib/openmpi/mca_iof_orted.la
 openmpi4/lib/openmpi/mca_iof_tool.la
 openmpi4/lib/openmpi/mca_mpool_hugepage.la
-openmpi4/lib/openmpi/mca_notifier_syslog.la
 openmpi4/lib/openmpi/mca_odls_default.la
 openmpi4/lib/openmpi/mca_odls_pspawn.la
 openmpi4/lib/openmpi/mca_oob_tcp.la
+openmpi4/lib/openmpi/mca_op_avx.la
 openmpi4/lib/openmpi/mca_osc_monitoring.la
 openmpi4/lib/openmpi/mca_osc_pt2pt.la
 openmpi4/lib/openmpi/mca_osc_rdma.la
@@ -125,11 +123,12 @@ openmpi4/lib/openmpi/mca_pmix_pmix3x.la
 openmpi4/lib/openmpi/mca_pml_cm.la
 openmpi4/lib/openmpi/mca_pml_monitoring.la
 openmpi4/lib/openmpi/mca_pml_ob1.la
-openmpi4/lib/openmpi/mca_pstat_linux.la
+openmpi4/lib/openmpi/mca_pstat_test.la
 openmpi4/lib/openmpi/mca_ras_simulator.la
 openmpi4/lib/openmpi/mca_rcache_grdma.la
 openmpi4/lib/openmpi/mca_reachable_weighted.la
 openmpi4/lib/openmpi/mca_regx_fwd.la
+openmpi4/lib/openmpi/mca_regx_naive.la
 openmpi4/lib/openmpi/mca_regx_reverse.la
 openmpi4/lib/openmpi/mca_rmaps_mindist.la
 openmpi4/lib/openmpi/mca_rmaps_ppr.la
@@ -139,11 +138,11 @@ openmpi4/lib/openmpi/mca_rmaps_round_robin.la
 openmpi4/lib/openmpi/mca_rmaps_seq.la
 openmpi4/lib/openmpi/mca_rml_oob.la
 openmpi4/lib/openmpi/mca_routed_binomial.la
-openmpi4/lib/openmpi/mca_routed_debruijn.la
 openmpi4/lib/openmpi/mca_routed_direct.la
 openmpi4/lib/openmpi/mca_routed_radix.la
 openmpi4/lib/openmpi/mca_rtc_hwloc.la
 openmpi4/lib/openmpi/mca_schizo_flux.la
+openmpi4/lib/openmpi/mca_schizo_jsm.la
 openmpi4/lib/openmpi/mca_schizo_ompi.la
 openmpi4/lib/openmpi/mca_schizo_orte.la
 openmpi4/lib/openmpi/mca_sharedfp_individual.la
@@ -167,23 +166,26 @@ openmpi4/lib/pkgconfig/ompi-f90.pc
 openmpi4/lib/pkgconfig/ompi-fort.pc
 openmpi4/lib/pkgconfig/ompi.pc
 openmpi4/lib/pkgconfig/orte.pc
+openmpi4/lib/pkgconfig/pmix.pc
 openmpi4/lib/pmix/mca_bfrops_v12.la
 openmpi4/lib/pmix/mca_bfrops_v20.la
 openmpi4/lib/pmix/mca_bfrops_v21.la
 openmpi4/lib/pmix/mca_bfrops_v3.la
 openmpi4/lib/pmix/mca_gds_ds12.la
 openmpi4/lib/pmix/mca_gds_hash.la
+openmpi4/lib/pmix/mca_pcompress_zlib.la
 openmpi4/lib/pmix/mca_plog_default.la
 openmpi4/lib/pmix/mca_plog_stdfd.la
 openmpi4/lib/pmix/mca_plog_syslog.la
-openmpi4/lib/pmix/mca_pnet_tcp.la
-openmpi4/lib/pmix/mca_pnet_test.la
+openmpi4/lib/pmix/mca_preg_compress.la
 openmpi4/lib/pmix/mca_preg_native.la
 openmpi4/lib/pmix/mca_psec_native.la
 openmpi4/lib/pmix/mca_psec_none.la
 openmpi4/lib/pmix/mca_psensor_file.la
 openmpi4/lib/pmix/mca_psensor_heartbeat.la
 openmpi4/lib/pmix/mca_pshmem_mmap.la
+openmpi4/lib/pmix/mca_psquash_flex128.la
+openmpi4/lib/pmix/mca_psquash_native.la
 openmpi4/lib/pmix/mca_ptl_tcp.la
 openmpi4/lib/pmix/mca_ptl_usock.la
 openmpi4/lib/pmpi_f08_interfaces.mod
@@ -651,7 +653,6 @@ openmpi4/man/man7/orte_filem.7
 openmpi4/man/man7/orte_hosts.7
 openmpi4/man/man7/orte_snapc.7
 openmpi4/man/man7/orte_sstore.7
-openmpi4/share/openmpi/amca-param-sets/btl-openib-benchmark
 openmpi4/share/openmpi/amca-param-sets/example.conf
 openmpi4/share/openmpi/examples/openmpi-mca-params.conf
 openmpi4/share/openmpi/examples/openmpi-totalview.tcl
@@ -668,9 +669,6 @@ openmpi4/share/openmpi/help-mca-hook-base.txt
 openmpi4/share/openmpi/help-mca-var.txt
 openmpi4/share/openmpi/help-mpi-api.txt
 openmpi4/share/openmpi/help-mpi-btl-base.txt
-openmpi4/share/openmpi/help-mpi-btl-openib-cpc-base.txt
-openmpi4/share/openmpi/help-mpi-btl-openib-cpc-rdmacm.txt
-openmpi4/share/openmpi/help-mpi-btl-openib.txt
 openmpi4/share/openmpi/help-mpi-btl-sm.txt
 openmpi4/share/openmpi/help-mpi-btl-tcp.txt
 openmpi4/share/openmpi/help-mpi-coll-sm.txt
@@ -681,14 +679,12 @@ openmpi4/share/openmpi/help-mpi-runtime.txt
 openmpi4/share/openmpi/help-mpool-base.txt
 openmpi4/share/openmpi/help-oob-base.txt
 openmpi4/share/openmpi/help-oob-tcp.txt
-openmpi4/share/openmpi/help-opal-common-verbs.txt
 openmpi4/share/openmpi/help-opal-crs-none.txt
 openmpi4/share/openmpi/help-opal-hwloc-base.txt
 openmpi4/share/openmpi/help-opal-runtime.txt
 openmpi4/share/openmpi/help-opal-shmem-mmap.txt
 openmpi4/share/openmpi/help-opal-shmem-posix.txt
 openmpi4/share/openmpi/help-opal-shmem-sysv.txt
-openmpi4/share/openmpi/help-opal-timer-linux.txt
 openmpi4/share/openmpi/help-opal-util.txt
 openmpi4/share/openmpi/help-opal-wrapper.txt
 openmpi4/share/openmpi/help-opal_info.txt
@@ -722,7 +718,6 @@ openmpi4/share/openmpi/help-rcache-base.txt
 openmpi4/share/openmpi/help-regex.txt
 openmpi4/share/openmpi/help-rmaps_rank_file.txt
 openmpi4/share/openmpi/help-state-base.txt
-openmpi4/share/openmpi/mca-btl-openib-device-params.ini
 openmpi4/share/openmpi/mpiCC-wrapper-data.txt
 openmpi4/share/openmpi/mpic++-wrapper-data.txt
 openmpi4/share/openmpi/mpicc-wrapper-data.txt
diff --git a/openmpi/buildlink3.mk b/openmpi/buildlink3.mk
index 830b3d93a1..27ed288826 100644
--- a/openmpi/buildlink3.mk
+++ b/openmpi/buildlink3.mk
@@ -8,6 +8,9 @@ OPENMPI_BUILDLINK3_MK:=
 BUILDLINK_API_DEPENDS.openmpi+=	openmpi>=1.5.1
 BUILDLINK_PKGSRCDIR.openmpi?=	../../parallel/openmpi
 
+MPI_SUBPREFIX=  openmpi4
+MPI_PREFIX=     ${PREFIX}/${MPI_SUBPREFIX}
+
 .include "../../parallel/hwloc/buildlink3.mk"
 .endif # OPENMPI_BUILDLINK3_MK
 
diff --git a/openmpi/distinfo b/openmpi/distinfo
index 7c7b874c09..4ce3222420 100644
--- a/openmpi/distinfo
+++ b/openmpi/distinfo
@@ -1,13 +1,12 @@
 $NetBSD$
 
-RMD160 (openmpi-4.0.0.tar.bz2) = e7833fdac28306e23e0fc878c0715e860aa80f97
-SHA512 (openmpi-4.0.0.tar.bz2) = 978097dcbb16df2a616dcbbef9536fed0f7be40914daa8f927882d91bdda9265e54334fc12aeef49b41073d8782321b5611a7e9c71182258a45bca5f640e927b
-Size (openmpi-4.0.0.tar.bz2) = 9812193 bytes
+BLAKE2s (openmpi-4.1.4.tar.bz2) = 0d98f1b9404f2a4328288c01d614421ca0a409f7e8550164664a5d692209b4b4
+SHA512 (openmpi-4.1.4.tar.bz2) = c70a92c9b16b8c76a871183f9b180d60861186e64140da897d206d53bc06213f31ea93b31734645f580f4bf28dda5605d85dbce2417e4596955384d961bed653
+Size (openmpi-4.1.4.tar.bz2) = 10042839 bytes
 SHA1 (patch-aj) = e50a1843fa512b1957faea952f01da77e3396543
 SHA1 (patch-ak) = 1dba883fb533df57f5869b743e499a3117339529
 SHA1 (patch-config_opal__setup__wrappers.m4) = c3fe3cb5ff7cedcb5c847f25eea129d4299dd5d2
-SHA1 (patch-configure) = fa89816deef508726f960baf1c01a7a66fd48d11
+SHA1 (patch-configure) = bb6373289ffa2beabccedb6ead679367c85dbe1e
 SHA1 (patch-ompi_mca_io_romio321_romio_configure) = 1adf4e3fff2ece5abba7c5909f006e8345917b9d
+SHA1 (patch-ompi_mca_sharedfp_sm_sharedfp__sm.c) = 7ce9147662864be5ae072166231d65189cb1bed2
 SHA1 (patch-ompi_mpi_java_java_Makefile.in) = bd61f02f56e03af9799d2ba86d66c1ded35f62f4
-SHA1 (patch-opal_mca_pmix_pmix3x_pmix_configure) = 3f8fdb36b3a5da1335d44ac467b2516c29550f14
-SHA1 (patch-opal_tools_wrappers_opal__wrapper.c) = b566990131b1a0ea815961610d21263a8764bce7
diff --git a/openmpi/patches/patch-configure b/openmpi/patches/patch-configure
index 76b3724337..d7ace886b1 100644
--- a/openmpi/patches/patch-configure
+++ b/openmpi/patches/patch-configure
@@ -1,19 +1,64 @@
 $NetBSD$
 
-# POSIX sh compat
+# Portability of test command
 
---- configure.orig	2019-02-05 14:06:54.253381573 +0000
+--- configure.orig	2022-07-29 20:55:26.095390777 +0000
 +++ configure
-@@ -164141,7 +164141,7 @@ else
+@@ -156118,7 +156118,7 @@ $as_echo_n "checking if memory patcher s
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opal_memory_patcher_happy" >&5
+ $as_echo "$opal_memory_patcher_happy" >&6; }
+ 
+-    if test "$opal_memory_patcher_happy" == "yes"; then :
++    if test "$opal_memory_patcher_happy" = "yes"; then :
+ 
+         for ac_func in __curbrk
+ do :
+@@ -338377,7 +338377,7 @@ cat >>confdefs.h <<_ACEOF
+ #define OMPI_MCA_OP_HAVE_SSE3 $op_sse3_support
+ _ACEOF
+ 
+-     if test "$op_avx512_support" == "1"; then
++     if test "$op_avx512_support" = "1"; then
+   MCA_BUILD_ompi_op_has_avx512_support_TRUE=
+   MCA_BUILD_ompi_op_has_avx512_support_FALSE='#'
+ else
+@@ -338385,7 +338385,7 @@ else
+   MCA_BUILD_ompi_op_has_avx512_support_FALSE=
+ fi
+ 
+-     if test "$op_avx2_support" == "1"; then
++     if test "$op_avx2_support" = "1"; then
+   MCA_BUILD_ompi_op_has_avx2_support_TRUE=
+   MCA_BUILD_ompi_op_has_avx2_support_FALSE='#'
+ else
+@@ -338393,7 +338393,7 @@ else
+   MCA_BUILD_ompi_op_has_avx2_support_FALSE=
  fi
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if want to install standalone libpmix" >&5
- $as_echo_n "checking if want to install standalone libpmix... " >&6; }
--    if test "$enable_install_libpmix" == "yes"; then :
-+    if test "$enable_install_libpmix" = "yes"; then :
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
+ 
+-     if test "$op_avx_support" == "1"; then
++     if test "$op_avx_support" = "1"; then
+   MCA_BUILD_ompi_op_has_avx_support_TRUE=
+   MCA_BUILD_ompi_op_has_avx_support_FALSE='#'
+ else
+@@ -338401,7 +338401,7 @@ else
+   MCA_BUILD_ompi_op_has_avx_support_FALSE=
+ fi
+ 
+-     if test "$op_sse41_support" == "1"; then
++     if test "$op_sse41_support" = "1"; then
+   MCA_BUILD_ompi_op_has_sse41_support_TRUE=
+   MCA_BUILD_ompi_op_has_sse41_support_FALSE='#'
+ else
+@@ -338409,7 +338409,7 @@ else
+   MCA_BUILD_ompi_op_has_sse41_support_FALSE=
+ fi
+ 
+-     if test "$op_sse3_support" == "1"; then
++     if test "$op_sse3_support" = "1"; then
+   MCA_BUILD_ompi_op_has_sse3_support_TRUE=
+   MCA_BUILD_ompi_op_has_sse3_support_FALSE='#'
  else
-@@ -340177,7 +340177,7 @@ if test "${with_ompi_pmix_rte+set}" = se
+@@ -361527,7 +361527,7 @@ if test "${with_ompi_pmix_rte+set}" = se
    withval=$with_ompi_pmix_rte;
  fi
  
diff --git a/openmpi/patches/patch-ompi_mca_sharedfp_sm_sharedfp__sm.c b/openmpi/patches/patch-ompi_mca_sharedfp_sm_sharedfp__sm.c
new file mode 100644
index 0000000000..37c7eebc8b
--- /dev/null
+++ b/openmpi/patches/patch-ompi_mca_sharedfp_sm_sharedfp__sm.c
@@ -0,0 +1,14 @@
+$NetBSD$
+
+# Fix missing constants
+
+--- ompi/mca/sharedfp/sm/sharedfp_sm.c.orig	2022-07-29 23:04:14.067867314 +0000
++++ ompi/mca/sharedfp/sm/sharedfp_sm.c
+@@ -26,6 +26,7 @@
+  * modules just to query their version and parameters
+  */
+ 
++#include <sys/stat.h>	// Hack for NetBSD
+ #include "ompi_config.h"
+ #include "mpi.h"
+ #include "ompi/mca/sharedfp/sharedfp.h"
diff --git a/openmpi/patches/patch-opal_mca_pmix_pmix3x_pmix_configure b/openmpi/patches/patch-opal_mca_pmix_pmix3x_pmix_configure
deleted file mode 100644
index 3b269d6013..0000000000
--- a/openmpi/patches/patch-opal_mca_pmix_pmix3x_pmix_configure
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD$
-
-# POSIX sh compat
-
---- opal/mca/pmix/pmix3x/pmix/configure.orig	2019-02-05 13:59:01.473887840 +0000
-+++ opal/mca/pmix/pmix3x/pmix/configure
-@@ -55349,7 +55349,7 @@ fi
- 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if opamgt requested" >&5
- $as_echo_n "checking if opamgt requested... " >&6; }
--    if test "$with_opamgt" == "no"; then :
-+    if test "$with_opamgt" = "no"; then :
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-            pmix_check_opamgt_happy=no
diff --git a/openmpi/patches/patch-opal_tools_wrappers_opal__wrapper.c b/openmpi/patches/patch-opal_tools_wrappers_opal__wrapper.c
deleted file mode 100644
index 50328b42a0..0000000000
--- a/openmpi/patches/patch-opal_tools_wrappers_opal__wrapper.c
+++ /dev/null
@@ -1,23 +0,0 @@
-$NetBSD$
-
-# NetBSD uses rpath to prevent leakage
-
---- opal/tools/wrappers/opal_wrapper.c.orig	2018-11-12 20:20:53.000000000 +0000
-+++ opal/tools/wrappers/opal_wrapper.c
-@@ -56,6 +56,7 @@
- 
- #define OPAL_INCLUDE_FLAG  "-I"
- #define OPAL_LIBDIR_FLAG   "-L"
-+#define OPAL_RPATH_FLAG    "-R"
- 
- struct options_data_t {
-     char **compiler_args;
-@@ -333,6 +334,8 @@ data_callback(const char *key, const cha
-             char *line;
-             asprintf(&line, OPAL_LIBDIR_FLAG"%s",
-                      options_data[parse_options_idx].path_libdir);
-+            asprintf(&line, OPAL_RPATH_FLAG"%s",
-+                     options_data[parse_options_idx].path_libdir);
-             opal_argv_append_nosize(&options_data[parse_options_idx].link_flags, line);
-             free(line);
-         }


Home | Main Index | Thread Index | Old Index