On Tue, Jun 25 2019, Martin Reindl <mar...@catai.org> wrote: > Am 22.06.2019 um 20:09 schrieb Jeremie Courreges-Anglas: >> On Thu, Jun 06 2019, Martin Reindl <mar...@catai.org> wrote: >>> On Sat, Jun 01, 2019 at 08:03:17PM +0100, Stuart Henderson wrote: >>>> That needs fixing then.. >>>> -- >>>> Sent from a phone, apologies for poor formatting. >>>> >>>> On 1 June 2019 17:15:19 Jeremie Courreges-Anglas <j...@wxcvbn.org> wrote: >>>> >>>>> On Sat, Jun 01 2019, Stuart Henderson <s...@spacehopper.org> wrote: >>>>>> Please don't do the huge bump for SHARED_LIBS, just a standard major >>>>>> bump for the existing libraries and start the new ones at 0.0 >>>>> >>>>> IIRC the problem is that SHARED_LIBS isn't respected. >>>>> >>> >>> Here is a polished version of the diff which should pass strict inspection >>> by the ports@ team: >>> >>> - respects SHARED_LIBS by using base libtool, m4 from devel/libtool and >>> -ltdl >>> - c++ interface is deprecated and not enabled in contrast to 1.0.4 >> >> Maybe this should use COMPILER_LANGS = c, then. make >> port-lib-depends-check complains about 'Extra: estdc++.19' on sparc64. >> >>> - now uses SEPERATE-BUILD >>> - passes make test on macppc, arm64 and amd64 and schedules jobs on virtual >>> amd64 mini-mpi-cluster >>> - now uses egfortran from ports-gcc instead of f77 >> >>> - tidy up Makefile a bit so things look more in order for me >> >> Well, that's a bit of churn and it still doesn't match the canonical >> order recommended by Makefile.template. SHARED_LIBS and MASTER_SITES >> look completely out of place. >> >> Except for this point, this update looks good. make package fails on >> sparc64 because lib/openmpi/mca_patcher_overwrite.* are arch-specific. >> Here's an updated diff that uses the order of Makefile.template and >> @comments out the arch-specific files. >> >> Additional tweaks: >> - use https HOMEPAGE/MASTER_SITES >> - PERMIT_PACKAGE_CDROM -> PERMIT_PACKAGE >> - strip "base-gcc" from COMPILER, it's not needed/useful >> - use V=1 in MAKE_FLAGS, looks like --disable-silent-rules isn't passed >> down to all configure scripts. >> >> The remaining patch is still a bit broken, comparisons like >> >> "if (fsbuf.f_fstypename == MOUNT_NFS) {" >> >> can't yield true since MOUNT_NFS is string literal "nfs" and >> fsbuf.f_fstypename is a char array in a struct. I'm not sure how much >> we care, though, at least it builds... >> >> What do you think? Yay, nay? :) > > Well, yes, this is an improvement, thank you for the additional work. > Things like the NFS problem remain (but openmpi can just run with ssh > keys).
I have committed this diff, together with a few additional whitespace fixes noticed by portcheck(1). Thanks for this long-needed update! Note that what has been committed shouldn't have a problem with NFS: the code in ad_fstype.c already properly checks for f_fstypename and uses it. Our patch is still bogus though, please find an additional diff below. ok? > And there is a pthread_mutexattr_setpshared() (which we don't have) > problem deep down in pmix which needs to be investigated at some point. Is that a problem at runtime? > What is the status with > pthread_mutexattr_setpshared()/pthread_mutexattr_getpshared these days? While we do implement similar pthread_*attr_[gs]etpshared() APIs, they aren't very useful since we only implement PTHREAD_PROCESS_PRIVATE. I guess adding pthread_mutexattr_[gs]etpshared would be trivial, even if not very useful. Index: Makefile =================================================================== RCS file: /cvs/ports/devel/openmpi/Makefile,v retrieving revision 1.27 diff -u -p -r1.27 Makefile --- Makefile 27 Jun 2019 13:52:00 -0000 1.27 +++ Makefile 27 Jun 2019 14:03:11 -0000 @@ -2,8 +2,9 @@ COMMENT = open source MPI-3.1 implementation -V= 4.0.1 +V = 4.0.1 DISTNAME = openmpi-$V +REVISION = 0 SHARED_LIBS += mca_common_dstore 0.0 # 1.0 SHARED_LIBS += mca_common_monitoring 0.0 # 60.0 Index: patches/patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c =================================================================== RCS file: /cvs/ports/devel/openmpi/patches/patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c --- patches/patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c 27 Jun 2019 13:52:00 -0000 1.1 +++ patches/patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c 27 Jun 2019 14:03:11 -0000 @@ -1,90 +1,33 @@ $OpenBSD: patch-ompi_mca_io_romio321_romio_adio_common_ad_fstype_c,v 1.1 2019/06/27 13:52:00 jca Exp $ +Our struct statfs doesn't have an f_type member. + Index: ompi/mca/io/romio321/romio/adio/common/ad_fstype.c --- ompi/mca/io/romio321/romio/adio/common/ad_fstype.c.orig +++ ompi/mca/io/romio321/romio/adio/common/ad_fstype.c -@@ -38,7 +38,7 @@ - * - * There are three more "general" mechanisms that we use for detecting - * file system type: -- * - struct statfs's f_type field -+ * - struct statfs's f_fstypename field - * - struct statvfs's f_basetype field - * - struct stat's st_fstype field - * -@@ -347,15 +347,15 @@ static void ADIO_FileSysType_fncall(const char *filena +@@ -338,13 +338,15 @@ static void ADIO_FileSysType_fncall(const char *filena + /* --END ERROR HANDLING-- */ - - #ifdef ROMIO_GPFS -- if (fsbuf.f_type == GPFS_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == GPFS_SUPER_MAGIC) { - *fstype = ADIO_GPFS; - return; - } - #endif - -- /* FPRINTF(stderr, "%d\n", fsbuf.f_type);*/ -+ /* FPRINTF(stderr, "%d\n", fsbuf.f_fstypename);*/ - # ifdef NFS_SUPER_MAGIC -- if (fsbuf.f_type == NFS_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == NFS_SUPER_MAGIC) { - *fstype = ADIO_NFS; - return; - } -@@ -365,49 +365,49 @@ static void ADIO_FileSysType_fncall(const char *filena - # ifndef LL_SUPER_MAGIC - # define LL_SUPER_MAGIC 0x0BD00BD0 - # endif -- if (fsbuf.f_type == LL_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == LL_SUPER_MAGIC) { - *fstype = ADIO_LUSTRE; - return; - } - #endif - - # ifdef PAN_KERNEL_FS_CLIENT_SUPER_MAGIC -- if (fsbuf.f_type == PAN_KERNEL_FS_CLIENT_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == PAN_KERNEL_FS_CLIENT_SUPER_MAGIC) { - *fstype = ADIO_PANFS; - return; - } - # endif - - # ifdef MOUNT_NFS -- if (fsbuf.f_type == MOUNT_NFS) { -+ if (fsbuf.f_fstypename == MOUNT_NFS) { + # ifdef ROMIO_HAVE_STRUCT_STATFS_WITH_F_FSTYPENAME +- /* uncommon: maybe only on Darwin ? */ ++ /* BSD, Darwin... */ + if ( !strncmp("nfs",fsbuf.f_fstypename,3) ) { *fstype = ADIO_NFS; return; } # endif - # ifdef MOUNT_PFS -- if (fsbuf.f_type == MOUNT_PFS) { -+ if (fsbuf.f_fstypename == MOUNT_PFS) { - *fstype = ADIO_PFS; - return; - } - # endif - - # ifdef PVFS_SUPER_MAGIC -- if (fsbuf.f_type == PVFS_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == PVFS_SUPER_MAGIC) { - *fstype = ADIO_PVFS; - return; - } - # endif ++/* TODO: configure.ac check for f_type */ ++#ifdef ROMIO_HAVE_STRUCT_STATFS_WITH_F_TYPE - # ifdef PVFS2_SUPER_MAGIC -- if (fsbuf.f_type == PVFS2_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == PVFS2_SUPER_MAGIC) { - *fstype = ADIO_PVFS2; - return; + #ifdef ROMIO_GPFS + if (fsbuf.f_type == GPFS_SUPER_MAGIC) { +@@ -412,6 +414,8 @@ static void ADIO_FileSysType_fncall(const char *filena + return; } # endif ++ ++#endif /* ROMIO_HAVE_STRUCT_STATFS_WITH_F_TYPE */ - # ifdef XFS_SUPER_MAGIC -- if (fsbuf.f_type == XFS_SUPER_MAGIC) { -+ if (fsbuf.f_fstypename == XFS_SUPER_MAGIC) { - *fstype = ADIO_XFS; - return; - } + # ifdef ROMIO_UFS + /* if UFS support is enabled, default to that */ -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE