On 2/12/19 5:22 PM, Brian Callahan wrote:


On 2/12/19 5:05 PM, Jeremie Courreges-Anglas wrote:
On Tue, Feb 12 2019, Brian Callahan <[email protected]> wrote:
On 2/1/19 4:35 PM, Brian Callahan wrote:
Hi ports --

Every time we update LLVM, flang needs to be updated and it takes me
some time to get it done.
Regarding this, do you want some time for the next major upgrades?

I wasn't able to coordinate with the LLVM update this time around and I don't think flang should hold up LLVM updates so I'm fine with flang playing catch-up.

It's done now. The patch is attached.

Some notes:
1. Haven't turned arm64 back on. I expect it to work but would like to
compile/run test it first instead of blindly turning it on.
arm64 bulk builds take ~4 days, I don't think phessler and arm64 users
will mind.

I tried it myself and things are still broken on arm64 so I'll have to talk to the flang people...

2. flang-7 wants to use -lLLVM and build and link to its own separate
libclang.so. I don't want to do either of those things to avoid
potential conflicts, so I've disabled building libclang.so and
ham-fisted a replacement for -lLLVM-7 in a post-configure target,
forcing it to use the LLVM static libs. This creates a very huge
(>80MB) binary. But I think this is fine since the only archs that
flang works on are amd64 and arm64 anyway.

3. Everything is good with the NIST Fortran 77 test suite.

Tests appreciated.

~Brian

No Fortran people? I will just commit it then...
I would not know what to test!  If only flang was a possible choice in
fortran.port.mk... :)


I use this: http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html
Specifically, the modified version that conforms to F95.

But yes, thanks for reminding me that we might want to add flang to fortran.port.mk

~Brian


New patch attached that re-enabled flang on arm64. I'm going to commit this shortly if I don't hear anything.

~Brian

Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/flang/Makefile.inc,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile.inc
--- Makefile.inc	30 Jan 2019 00:30:09 -0000	1.5
+++ Makefile.inc	13 Feb 2019 02:26:45 -0000
@@ -2,8 +2,6 @@
 
 # Also ppc64le
 ONLY_FOR_ARCHS =	amd64 arm64
-BROKEN =		needs updating for llvm-7.0.1, being worked on
-#BROKEN-arm64 =		see flang issue 557, temporary
 
 CATEGORIES ?=	lang
 
Index: driver/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/driver/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- driver/Makefile	25 Jan 2019 20:06:48 -0000	1.13
+++ driver/Makefile	13 Feb 2019 02:26:45 -0000
@@ -1,14 +1,13 @@
 # $OpenBSD: Makefile,v 1.13 2019/01/25 20:06:48 bcallah Exp $
 
 # If you are updating to a new version
-# (e.g. 6.0->6.1 or 7.0), you need to sync
+# (e.g. 7.0->7.1 or 8.0), you need to sync
 # patches with devel/llvm
 COMMENT =	LLVM Fortran compiler driver
-DISTNAME =	flang-driver-6.0.0.20181012
-REVISION =	0
+DISTNAME =	flang-driver-7.0.1.20181218
 
 GH_PROJECT =	flang-driver
-GH_COMMIT =	f90d905b99ef497cc654b4a8433f1ac35a870f11
+GH_COMMIT =	24bd54da5c41af04838bbe7b68f830840d47fc03
 
 WANTLIB += ${COMPILER_LIBCXX} c m z
 
@@ -21,8 +20,16 @@ MODULES =	devel/cmake \
 BUILD_DEPENDS =	devel/llvm \
 		textproc/libxml
 
+CONFIGURE_ARGS =	-DLIBCLANG_BUILD_STATIC=On
+
 pre-configure:
 	@${SUBST_CMD} ${WRKSRC}/lib/Driver/ToolChains/OpenBSD.cpp
+
+# Don't use the LLVM shared library.
+post-configure:
+	sed -i \
+	's,-lLLVM-7,`llvm-config --libs all --link-static --ignore-libllvm` -lz,g' \
+	${WRKBUILD}/build.ninja
 
 # We don't want yet another copy of clang and its utilities on the system.
 # Doubly true since flang is statically linked to its clang libs.
Index: driver/distinfo
===================================================================
RCS file: /cvs/ports/lang/flang/driver/distinfo,v
retrieving revision 1.10
diff -u -p -r1.10 distinfo
--- driver/distinfo	16 Oct 2018 14:56:38 -0000	1.10
+++ driver/distinfo	13 Feb 2019 02:26:45 -0000
@@ -1,2 +1,2 @@
-SHA256 (flang-driver-6.0.0.20181012-f90d905b.tar.gz) = ApdRnjeFdlRb0aiTO0GlcSu6+rB1oYQrQmHmldsuzMY=
-SIZE (flang-driver-6.0.0.20181012-f90d905b.tar.gz) = 16785531
+SHA256 (flang-driver-7.0.1.20181218-24bd54da.tar.gz) = Z54V9PfCA7i6dfxKEvC2NI3fnITSIagEkw/ljha0lu0=
+SIZE (flang-driver-7.0.1.20181218-24bd54da.tar.gz) = 17649879
Index: driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td,v
retrieving revision 1.3
diff -u -p -r1.3 patch-include_clang_Basic_DiagnosticSemaKinds_td
--- driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td	16 Jun 2018 20:08:28 -0000	1.3
+++ driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-include_clang_Basic_Diag
 Index: include/clang/Basic/DiagnosticSemaKinds.td
 --- include/clang/Basic/DiagnosticSemaKinds.td.orig
 +++ include/clang/Basic/DiagnosticSemaKinds.td
-@@ -5883,7 +5883,7 @@ def warn_pointer_indirection_from_incompatible_type : 
+@@ -5827,7 +5827,7 @@ def warn_pointer_indirection_from_incompatible_type : 
    InGroup<UndefinedReinterpretCast>, DefaultIgnore;
  def warn_taking_address_of_packed_member : Warning<
    "taking address of packed member %0 of class or structure %q1 may result in an unaligned pointer value">,
@@ -12,7 +12,7 @@ Index: include/clang/Basic/DiagnosticSem
  
  def err_objc_object_assignment : Error<
    "cannot assign to class object (%0 invalid)">;
-@@ -6842,7 +6842,7 @@ def ext_typecheck_convert_incompatible_pointer_sign : 
+@@ -6804,7 +6804,7 @@ def ext_typecheck_convert_incompatible_pointer_sign : 
    "sending to parameter of different type}0,1"
    "|%diff{casting $ to type $|casting between types}0,1}2"
    " converts between pointers to integer types with different sign">,
Index: driver/patches/patch-include_clang_Driver_Options_td
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-include_clang_Driver_Options_td,v
retrieving revision 1.3
diff -u -p -r1.3 patch-include_clang_Driver_Options_td
--- driver/patches/patch-include_clang_Driver_Options_td	16 Jun 2018 20:08:28 -0000	1.3
+++ driver/patches/patch-include_clang_Driver_Options_td	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-include_clang_Driver_Opt
 Index: include/clang/Driver/Options.td
 --- include/clang/Driver/Options.td.orig
 +++ include/clang/Driver/Options.td
-@@ -2170,7 +2170,7 @@ def pthreads : Flag<["-"], "pthreads">;
+@@ -2359,7 +2359,7 @@ def pthreads : Flag<["-"], "pthreads">;
  def pthread : Flag<["-"], "pthread">, Flags<[CC1Option]>,
    HelpText<"Support POSIX threads in generated code">;
  def no_pthread : Flag<["-"], "no-pthread">, Flags<[CC1Option]>;
Index: driver/patches/patch-include_clang_Frontend_CompilerInvocation_h
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-include_clang_Frontend_CompilerInvocation_h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-include_clang_Frontend_CompilerInvocation_h
--- driver/patches/patch-include_clang_Frontend_CompilerInvocation_h	31 Dec 2017 18:06:38 -0000	1.1.1.1
+++ driver/patches/patch-include_clang_Frontend_CompilerInvocation_h	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-include_clang_Frontend_C
 Index: include/clang/Frontend/CompilerInvocation.h
 --- include/clang/Frontend/CompilerInvocation.h.orig
 +++ include/clang/Frontend/CompilerInvocation.h
-@@ -48,7 +48,7 @@ class DiagnosticsEngine;
+@@ -53,7 +53,7 @@ class TargetOptions;
  /// report the error(s).
  bool ParseDiagnosticArgs(DiagnosticOptions &Opts, llvm::opt::ArgList &Args,
                           DiagnosticsEngine *Diags = nullptr,
Index: driver/patches/patch-include_clang_Sema_Sema_h
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-include_clang_Sema_Sema_h,v
retrieving revision 1.2
diff -u -p -r1.2 patch-include_clang_Sema_Sema_h
--- driver/patches/patch-include_clang_Sema_Sema_h	9 May 2018 22:27:41 -0000	1.2
+++ driver/patches/patch-include_clang_Sema_Sema_h	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-include_clang_Sema_Sema_
 Index: include/clang/Sema/Sema.h
 --- include/clang/Sema/Sema.h.orig
 +++ include/clang/Sema/Sema.h
-@@ -10361,6 +10361,7 @@ class Sema { (public)
+@@ -10454,6 +10454,7 @@ class Sema { (public)
      FST_FreeBSDKPrintf,
      FST_OSTrace,
      FST_OSLog,
Index: driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_Driver_ToolChains_Arch_AArch64_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp	9 May 2018 22:27:41 -0000	1.2
+++ driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-lib_Driver_ToolChains_Ar
 Index: lib/Driver/ToolChains/Arch/AArch64.cpp
 --- lib/Driver/ToolChains/Arch/AArch64.cpp.orig
 +++ lib/Driver/ToolChains/Arch/AArch64.cpp
-@@ -149,7 +149,8 @@ getAArch64MicroArchFeaturesFromMcpu(const Driver &D, S
+@@ -152,7 +152,8 @@ getAArch64MicroArchFeaturesFromMcpu(const Driver &D, S
    return getAArch64MicroArchFeaturesFromMtune(D, CPU, Args, Features);
  }
  
@@ -13,7 +13,7 @@ Index: lib/Driver/ToolChains/Arch/AArch6
                                         std::vector<StringRef> &Features) {
    Arg *A;
    bool success = true;
-@@ -191,9 +192,11 @@ void aarch64::getAArch64TargetFeatures(const Driver &D
+@@ -194,9 +195,11 @@ void aarch64::getAArch64TargetFeatures(const Driver &D
    }
  
    if (Arg *A = Args.getLastArg(options::OPT_mno_unaligned_access,
Index: driver/patches/patch-lib_Driver_ToolChains_Clang_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_Clang_cpp,v
retrieving revision 1.5
diff -u -p -r1.5 patch-lib_Driver_ToolChains_Clang_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Clang_cpp	26 Aug 2018 00:40:22 -0000	1.5
+++ driver/patches/patch-lib_Driver_ToolChains_Clang_cpp	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-lib_Driver_ToolChains_Cl
 Index: lib/Driver/ToolChains/Clang.cpp
 --- lib/Driver/ToolChains/Clang.cpp.orig
 +++ lib/Driver/ToolChains/Clang.cpp
-@@ -332,7 +332,7 @@ static void getTargetFeatures(const ToolChain &TC, con
+@@ -341,7 +341,7 @@ static void getTargetFeatures(const ToolChain &TC, con
      break;
    case llvm::Triple::aarch64:
    case llvm::Triple::aarch64_be:
@@ -12,7 +12,7 @@ Index: lib/Driver/ToolChains/Clang.cpp
      break;
    case llvm::Triple::x86:
    case llvm::Triple::x86_64:
-@@ -3423,9 +3423,12 @@ void Clang::ConstructJob(Compilation &C, const JobActi
+@@ -3539,9 +3539,12 @@ void Clang::ConstructJob(Compilation &C, const JobActi
        OFastEnabled ? options::OPT_Ofast : options::OPT_fstrict_aliasing;
    // We turn strict aliasing off by default if we're in CL mode, since MSVC
    // doesn't do any TBAA.
@@ -27,7 +27,7 @@ Index: lib/Driver/ToolChains/Clang.cpp
      CmdArgs.push_back("-relaxed-aliasing");
    if (!Args.hasFlag(options::OPT_fstruct_path_tbaa,
                      options::OPT_fno_struct_path_tbaa))
-@@ -4011,7 +4014,8 @@ void Clang::ConstructJob(Compilation &C, const JobActi
+@@ -4147,7 +4150,8 @@ void Clang::ConstructJob(Compilation &C, const JobActi
                                        options::OPT_fno_strict_overflow)) {
      if (A->getOption().matches(options::OPT_fno_strict_overflow))
        CmdArgs.push_back("-fwrapv");
@@ -37,7 +37,7 @@ Index: lib/Driver/ToolChains/Clang.cpp
  
    if (Arg *A = Args.getLastArg(options::OPT_freroll_loops,
                                 options::OPT_fno_reroll_loops))
-@@ -4842,6 +4846,18 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(const ArgList &a
+@@ -5015,6 +5019,18 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(const ArgList &a
  #else
        unsigned nonFragileABIVersion = 2;
  #endif
Index: driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-lib_Driver_ToolChains_CommonArgs_cpp
--- driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp	9 May 2018 22:27:41 -0000	1.1
+++ driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp	13 Feb 2019 02:26:45 -0000
@@ -5,7 +5,7 @@ Appease lld.
 Index: lib/Driver/ToolChains/CommonArgs.cpp
 --- lib/Driver/ToolChains/CommonArgs.cpp.orig
 +++ lib/Driver/ToolChains/CommonArgs.cpp
-@@ -183,6 +183,7 @@ void tools::AddLinkerInputs(const ToolChain &TC, const
+@@ -187,6 +187,7 @@ void tools::AddLinkerInputs(const ToolChain &TC, const
      // Add Fortan "main" before the first linker input
      if (!SeenFirstLinkerInput) {
        if (needFortranMain(D, Args)) {
@@ -13,7 +13,7 @@ Index: lib/Driver/ToolChains/CommonArgs.
          CmdArgs.push_back("-lflangmain");
        }
        SeenFirstLinkerInput = true;
-@@ -206,6 +207,7 @@ void tools::AddLinkerInputs(const ToolChain &TC, const
+@@ -210,6 +211,7 @@ void tools::AddLinkerInputs(const ToolChain &TC, const
    }
  
    if (!SeenFirstLinkerInput && needFortranMain(D, Args)) {
Index: driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_Driver_ToolChains_Gnu_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp	9 May 2018 22:27:41 -0000	1.2
+++ driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp	13 Feb 2019 02:26:45 -0000
@@ -1,9 +1,9 @@
-$OpenBSD: patch-lib_Driver_ToolChains_Gnu_cpp,v 1.2 2018/05/09 22:27:41 bcallah Exp $
+$OpenBSD$
 
 Index: lib/Driver/ToolChains/Gnu.cpp
 --- lib/Driver/ToolChains/Gnu.cpp.orig
 +++ lib/Driver/ToolChains/Gnu.cpp
-@@ -2253,6 +2253,9 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
+@@ -2422,6 +2422,9 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
    case llvm::Triple::systemz:
    case llvm::Triple::mips:
    case llvm::Triple::mipsel:
@@ -13,13 +13,3 @@ Index: lib/Driver/ToolChains/Gnu.cpp
      return true;
    case llvm::Triple::mips64:
    case llvm::Triple::mips64el:
-@@ -2260,7 +2263,8 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
-     // identify the ABI in use (Debian) or only use N64 for MIPS64 (Android).
-     // Other targets are unable to distinguish N32 from N64.
-     if (getTriple().getEnvironment() == llvm::Triple::GNUABI64 ||
--        getTriple().isAndroid())
-+        getTriple().isAndroid() ||
-+        getTriple().isOSOpenBSD())
-       return true;
-     return false;
-   default:
Index: driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp,v
retrieving revision 1.4
diff -u -p -r1.4 patch-lib_Driver_ToolChains_OpenBSD_cpp
--- driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp	16 Jun 2018 20:08:28 -0000	1.4
+++ driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp	13 Feb 2019 02:26:45 -0000
@@ -1,4 +1,4 @@
-$OpenBSD: patch-lib_Driver_ToolChains_OpenBSD_cpp,v 1.4 2018/06/16 20:08:28 bcallah Exp $
+$OpenBSD$
 
 Index: lib/Driver/ToolChains/OpenBSD.cpp
 --- lib/Driver/ToolChains/OpenBSD.cpp.orig
@@ -9,9 +9,9 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
  #include "clang/Driver/Compilation.h"
 +#include "clang/Driver/DriverDiagnostic.h"
  #include "clang/Driver/Options.h"
+ #include "clang/Driver/SanitizerArgs.h"
  #include "llvm/Option/ArgList.h"
- 
-@@ -165,16 +166,23 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -168,17 +169,23 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
      }
    }
  
@@ -20,6 +20,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
 -    Triple.replace(0, 6, "amd64");
 -  CmdArgs.push_back(
 -      Args.MakeArgString("-L/usr/lib/gcc-lib/" + Triple + "/4.2.1"));
+-  CmdArgs.push_back(Args.MakeArgString("-L/usr/lib"));
 -
    Args.AddAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
                              options::OPT_e, options::OPT_s, options::OPT_t,
@@ -38,11 +39,11 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
 +  CmdArgs.push_back(Args.MakeArgString("-L${LOCALBASE}/lib"));
 +  CmdArgs.push_back(Args.MakeArgString("-L/usr/lib"));
 +
+   bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
+   bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
    AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
- 
-   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
-@@ -189,8 +197,16 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
- 
+@@ -202,8 +209,16 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+     }
      // FIXME: For some reason GCC passes -lgcc before adding
      // the default system libraries. Just mimic this for now.
 -    CmdArgs.push_back("-lgcc");
@@ -59,7 +60,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
      if (Args.hasArg(options::OPT_pthread)) {
        if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))
          CmdArgs.push_back("-lpthread_p");
-@@ -205,7 +221,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -218,7 +233,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
          CmdArgs.push_back("-lc");
      }
  
@@ -71,7 +72,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
    }
  
    if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
-@@ -226,8 +245,7 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -257,8 +275,7 @@ SanitizerMask OpenBSD::getSupportedSanitizers() const 
  OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple,
                   const ArgList &Args)
      : Generic_ELF(D, Triple, Args) {
@@ -80,8 +81,8 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
 +  getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
  }
  
- Tool *OpenBSD::buildAssembler() const {
-@@ -235,3 +253,62 @@ Tool *OpenBSD::buildAssembler() const {
+ void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args,
+@@ -274,3 +291,48 @@ Tool *OpenBSD::buildAssembler() const {
  }
  
  Tool *OpenBSD::buildLinker() const { return new tools::openbsd::Linker(*this); }
@@ -127,20 +128,6 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
 +                     getDriver().SysRoot + "${LOCALBASE}/include/c++/${GCC_VER}/${GCC_CONFIG}");
 +    addSystemInclude(DriverArgs, CC1Args,
 +                     getDriver().SysRoot + "${LOCALBASE}/include/c++/${GCC_VER}/backward");
-+    break;
-+  }
-+}
-+
-+void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args,
-+                                 ArgStringList &CmdArgs) const {
-+ switch (GetCXXStdlibType(Args)) {
-+  case ToolChain::CST_Libcxx:
-+    CmdArgs.push_back("-lc++");
-+    CmdArgs.push_back("-lc++abi");
-+    CmdArgs.push_back("-lpthread");
-+    break;
-+  case ToolChain::CST_Libstdcxx:
-+    CmdArgs.push_back("-lestdc++");
 +    break;
 +  }
 +}
Index: driver/patches/patch-lib_Driver_ToolChains_OpenBSD_h
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Driver_ToolChains_OpenBSD_h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-lib_Driver_ToolChains_OpenBSD_h
--- driver/patches/patch-lib_Driver_ToolChains_OpenBSD_h	31 Dec 2017 18:06:38 -0000	1.1.1.1
+++ driver/patches/patch-lib_Driver_ToolChains_OpenBSD_h	13 Feb 2019 02:26:45 -0000
@@ -3,16 +3,14 @@ $OpenBSD: patch-lib_Driver_ToolChains_Op
 Index: lib/Driver/ToolChains/OpenBSD.h
 --- lib/Driver/ToolChains/OpenBSD.h.orig
 +++ lib/Driver/ToolChains/OpenBSD.h
-@@ -59,6 +59,13 @@ class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic
-   bool IsObjCNonFragileABIDefault() const override { return true; }
-   bool isPIEDefault() const override { return true; }
+@@ -61,6 +61,11 @@ class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic
+   void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
+                            llvm::opt::ArgStringList &CmdArgs) const override;
  
 +  CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
 +  void AddClangCXXStdlibIncludeArgs(
 +      const llvm::opt::ArgList &DriverArgs,
 +      llvm::opt::ArgStringList &CC1Args) const override;
-+  void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
-+                           llvm::opt::ArgStringList &CmdArgs) const override;
 +
    unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
      return 2;
Index: driver/patches/patch-lib_Sema_SemaChecking_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Sema_SemaChecking_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_Sema_SemaChecking_cpp
--- driver/patches/patch-lib_Sema_SemaChecking_cpp	9 May 2018 22:27:41 -0000	1.2
+++ driver/patches/patch-lib_Sema_SemaChecking_cpp	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-lib_Sema_SemaChecking_cp
 Index: lib/Sema/SemaChecking.cpp
 --- lib/Sema/SemaChecking.cpp.orig
 +++ lib/Sema/SemaChecking.cpp
-@@ -5136,7 +5136,7 @@ checkFormatStringExpr(Sema &S, const Expr *E, ArrayRef
+@@ -6431,7 +6431,7 @@ checkFormatStringExpr(Sema &S, const Expr *E, ArrayRef
  Sema::FormatStringType Sema::GetFormatStringType(const FormatAttr *Format) {
    return llvm::StringSwitch<FormatStringType>(Format->getType()->getName())
        .Case("scanf", FST_Scanf)
@@ -12,7 +12,7 @@ Index: lib/Sema/SemaChecking.cpp
        .Cases("NSString", "CFString", FST_NSString)
        .Case("strftime", FST_Strftime)
        .Case("strfmon", FST_Strfmon)
-@@ -5233,6 +5233,7 @@ bool Sema::CheckFormatArguments(ArrayRef<const Expr *>
+@@ -6528,6 +6528,7 @@ bool Sema::CheckFormatArguments(ArrayRef<const Expr *>
      case FST_Kprintf:
      case FST_FreeBSDKPrintf:
      case FST_Printf:
@@ -20,7 +20,7 @@ Index: lib/Sema/SemaChecking.cpp
        Diag(FormatLoc, diag::note_format_security_fixit)
          << FixItHint::CreateInsertion(FormatLoc, "\"%s\", ");
        break;
-@@ -6777,8 +6778,9 @@ static void CheckFormatString(Sema &S, const FormatStr
+@@ -8079,8 +8080,9 @@ static void CheckFormatString(Sema &S, const FormatStr
    }
  
    if (Type == Sema::FST_Printf || Type == Sema::FST_NSString ||
@@ -32,7 +32,7 @@ Index: lib/Sema/SemaChecking.cpp
      CheckPrintfHandler H(
          S, FExpr, OrigFormatExpr, Type, firstDataArg, numDataArgs,
          (Type == Sema::FST_NSString || Type == Sema::FST_OSTrace), Str,
-@@ -6788,7 +6790,7 @@ static void CheckFormatString(Sema &S, const FormatStr
+@@ -8090,7 +8092,7 @@ static void CheckFormatString(Sema &S, const FormatStr
      if (!analyze_format_string::ParsePrintfString(H, Str, Str + StrLen,
                                                    S.getLangOpts(),
                                                    S.Context.getTargetInfo(),
Index: driver/patches/patch-lib_Sema_SemaDeclAttr_cpp
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-lib_Sema_SemaDeclAttr_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_Sema_SemaDeclAttr_cpp
--- driver/patches/patch-lib_Sema_SemaDeclAttr_cpp	9 May 2018 22:27:41 -0000	1.2
+++ driver/patches/patch-lib_Sema_SemaDeclAttr_cpp	13 Feb 2019 02:26:45 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-lib_Sema_SemaDeclAttr_cp
 Index: lib/Sema/SemaDeclAttr.cpp
 --- lib/Sema/SemaDeclAttr.cpp.orig
 +++ lib/Sema/SemaDeclAttr.cpp
-@@ -3206,6 +3206,7 @@ static FormatAttrKind getFormatAttrKind(StringRef Form
+@@ -3179,6 +3179,7 @@ static FormatAttrKind getFormatAttrKind(StringRef Form
        .Case("freebsd_kprintf", SupportedFormat) // FreeBSD.
        .Case("os_trace", SupportedFormat)
        .Case("os_log", SupportedFormat)
Index: driver/patches/patch-tools_libclang_CMakeLists_txt
===================================================================
RCS file: driver/patches/patch-tools_libclang_CMakeLists_txt
diff -N driver/patches/patch-tools_libclang_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ driver/patches/patch-tools_libclang_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Don't build a shared libclang.so...
+I don't want to make flang anything but a single static binary.
+
+Index: tools/libclang/CMakeLists.txt
+--- tools/libclang/CMakeLists.txt.orig
++++ tools/libclang/CMakeLists.txt
+@@ -73,7 +73,7 @@ if(MSVC)
+   set(LLVM_EXPORTED_SYMBOL_FILE)
+ endif()
+ 
+-if( LLVM_ENABLE_PIC )
++if( 0 )
+   set(ENABLE_SHARED SHARED)
+ endif()
+ 
Index: flang/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/flang/Makefile,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile
--- flang/Makefile	25 Jan 2019 20:06:48 -0000	1.34
+++ flang/Makefile	13 Feb 2019 02:26:45 -0000
@@ -1,7 +1,7 @@
 # $OpenBSD: Makefile,v 1.34 2019/01/25 20:06:48 bcallah Exp $
 
 COMMENT =	LLVM Fortran compiler passes and runtime library
-DISTNAME =	flang-6.0.0.20190124
+DISTNAME =	flang-7.0.1.20190124
 
 SHARED_LIBS +=	flang                     1.4 # 6.0
 SHARED_LIBS +=	flangrti                  3.0 # 6.0
Index: flang/distinfo
===================================================================
RCS file: /cvs/ports/lang/flang/flang/distinfo,v
retrieving revision 1.29
diff -u -p -r1.29 distinfo
--- flang/distinfo	25 Jan 2019 20:06:48 -0000	1.29
+++ flang/distinfo	13 Feb 2019 02:26:45 -0000
@@ -1,2 +1,2 @@
-SHA256 (flang-6.0.0.20190124-17fd8acf.tar.gz) = fXaPJSpVTtHe9/Ovd/hJOoaY11imcUMoveS10gm95+I=
-SIZE (flang-6.0.0.20190124-17fd8acf.tar.gz) = 4703330
+SHA256 (flang-7.0.1.20190124-17fd8acf.tar.gz) = fXaPJSpVTtHe9/Ovd/hJOoaY11imcUMoveS10gm95+I=
+SIZE (flang-7.0.1.20190124-17fd8acf.tar.gz) = 4703330
Index: libpgmath/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/Makefile,v
retrieving revision 1.21
diff -u -p -r1.21 Makefile
--- libpgmath/Makefile	25 Jan 2019 20:06:48 -0000	1.21
+++ libpgmath/Makefile	13 Feb 2019 02:26:45 -0000
@@ -2,7 +2,7 @@
 
 # Sync version with lang/flang/flang always!
 COMMENT =	LLVM Fortran math library
-DISTNAME =	flang-6.0.0.20190124
+DISTNAME =	flang-7.0.1.20190124
 PKGNAME =	${DISTNAME:S/flang/libpgmath/}
 
 SHARED_LIBS +=	pgmath                    4.0 # 6.0
@@ -23,6 +23,12 @@ BUILD_DEPENDS =	devel/llvm
 
 # If you delete flang, this should go too.
 RUN_DEPENDS =	lang/flang/driver
+
+# arm64-specific routines don't build with clang
+# (known upstream) so use the generic routines for now.
+.if ${MACHINE_ARCH:Maarch64}
+CONFIGURE_ARGS +=	-DLIBPGMATH_WITH_GENERIC=On
+.endif
 
 WRKDIST =	${WRKDIR}/flang-${GH_COMMIT}/runtime/libpgmath
 
Index: libpgmath/distinfo
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/distinfo,v
retrieving revision 1.20
diff -u -p -r1.20 distinfo
--- libpgmath/distinfo	25 Jan 2019 20:06:48 -0000	1.20
+++ libpgmath/distinfo	13 Feb 2019 02:26:45 -0000
@@ -1,2 +1,2 @@
-SHA256 (flang-6.0.0.20190124-17fd8acf.tar.gz) = fXaPJSpVTtHe9/Ovd/hJOoaY11imcUMoveS10gm95+I=
-SIZE (flang-6.0.0.20190124-17fd8acf.tar.gz) = 4703330
+SHA256 (flang-7.0.1.20190124-17fd8acf.tar.gz) = fXaPJSpVTtHe9/Ovd/hJOoaY11imcUMoveS10gm95+I=
+SIZE (flang-7.0.1.20190124-17fd8acf.tar.gz) = 4703330
Index: libpgmath/patches/patch-lib_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_CMakeLists_txt,v
retrieving revision 1.6
diff -u -p -r1.6 patch-lib_CMakeLists_txt
--- libpgmath/patches/patch-lib_CMakeLists_txt	26 Dec 2018 17:37:14 -0000	1.6
+++ libpgmath/patches/patch-lib_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -41,7 +41,12 @@ Index: lib/CMakeLists.txt
  
      # common
      # Definitions and compiler flags for level 1 directories
-@@ -151,12 +154,12 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+@@ -147,16 +150,16 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set_property(GLOBAL APPEND PROPERTY "DEFINITIONS_PPC64LE_L2" ${DEFINITIONS_L2})
+   set_property(GLOBAL APPEND_STRING PROPERTY "FLAGS_PPC64LE_L2" ${FLAGS_L2})
+   # ppc64le
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
    set(DEFINITIONS_L1 HOST_LINUX MAXCPUS=8192 MAXCPUSL=128 MAXCPUSR=128
      TARGET_LINUX TARGET_LINUX_ARM TARGET_LINUX_ARM64 TARGET_LLVM
      TARGET_LLVM_LINUXAARCH64 TM_I8)
@@ -71,7 +76,7 @@ Index: lib/CMakeLists.txt
  
    # common
    # Definitions and compiler flags for level 1 directories
-@@ -210,7 +213,7 @@ else()
+@@ -210,11 +213,11 @@ else()
  endif()
  
  include_directories(common)
@@ -80,7 +85,12 @@ Index: lib/CMakeLists.txt
    include_directories(x86_64)
  # elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
  #   include_directories(ppc64le)
-@@ -223,7 +226,7 @@ endif()
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   include_directories(generic)
+   include_directories(aarch64)
+ elseif(${PROCESSOR} MATCHES "ppc64le|generic" OR ${LIBPGMATH_WITH_GENERIC})
+@@ -223,11 +226,11 @@ endif()
  
  # Add directories to build
  add_subdirectory(common)
@@ -89,3 +99,8 @@ Index: lib/CMakeLists.txt
    add_subdirectory(x86_64)
  # elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
  #   add_subdirectory(ppc64le)
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   add_subdirectory(generic)
+   add_subdirectory(aarch64)
+ elseif(${PROCESSOR} MATCHES "ppc64le|generic" OR ${LIBPGMATH_WITH_GENERIC})
Index: libpgmath/patches/patch-lib_common_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_CMakeLists_txt,v
retrieving revision 1.6
diff -u -p -r1.6 patch-lib_common_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_CMakeLists_txt	26 Dec 2018 17:37:14 -0000	1.6
+++ libpgmath/patches/patch-lib_common_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -23,9 +23,12 @@ Index: lib/common/CMakeLists.txt
      add_subdirectory("sincosf")
      add_subdirectory("tanf")
  
-@@ -134,8 +134,8 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+@@ -132,10 +132,10 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+     kidnnt.c
+     sincos.c
      sincosf.c)
- elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
    set_property(SOURCE dispatch.c APPEND_STRING PROPERTY COMPILE_FLAGS "-fno-builtin")
 -  set_property(SOURCE mth_xintrinsics.c APPEND_STRING PROPERTY COMPILE_FLAGS "-mcpu=${LLVM_FLANG_CPU_TARGET} ")
 -  set_property(SOURCE mth_128defs.c mth_128defs_init.c mth_128defs_stats.c APPEND_STRING PROPERTY COMPILE_FLAGS "-mcpu=${LLVM_FLANG_CPU_TARGET} ")
@@ -104,3 +107,12 @@ Index: lib/common/CMakeLists.txt
      set_property(SOURCE ${TARGET_NAME}.c APPEND_STRING PROPERTY COMPILE_FLAGS "-mtune=knl -march=knl")
    elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
      set_property(SOURCE ${TARGET_NAME}.c APPEND_STRING PROPERTY COMPILE_FLAGS "-mavx512f -mfma")
+@@ -382,7 +382,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   add_custom_target(${TARGET_NAME} ALL DEPENDS "${TARGET_NAME}.c")
+   libmath_add_object_library("${TARGET_NAME}.c" "${FLAGS}" "${DEFINITIONS}" "${TARGET_NAME}_build")
+   add_dependencies("${TARGET_NAME}_build" ${TARGET_NAME})
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   # Generate mth_128mask.cpp
+   set(TARGET_NAME "mth_128mask")
+   add_custom_command(OUTPUT ${TARGET_NAME}.cpp DEPENDS ${LIBPGMATH_TOOLS_DIR}/mth_mask.awk PRE_BUILD
Index: libpgmath/patches/patch-lib_common_acos_fma3_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_acos_fma3_CMakeLists_txt,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-lib_common_acos_fma3_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_acos_fma3_CMakeLists_txt	9 May 2018 22:26:14 -0000	1.1.1.1
+++ libpgmath/patches/patch-lib_common_acos_fma3_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,3 +14,12 @@ Index: lib/common/acos/fma3/CMakeLists.t
      set(SRCS
        sdacos.cpp
        ssacos.cpp
+@@ -48,7 +48,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set_property(SOURCE sdacos.cpp vdacos2.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=long)
+   set_property(SOURCE ssacos.cpp vsacos4.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS
+     sdacos.cpp
+     ssacos.cpp
Index: libpgmath/patches/patch-lib_common_asin_fma3_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_asin_fma3_CMakeLists_txt,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-lib_common_asin_fma3_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_asin_fma3_CMakeLists_txt	9 May 2018 22:26:14 -0000	1.1.1.1
+++ libpgmath/patches/patch-lib_common_asin_fma3_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,3 +14,12 @@ Index: lib/common/asin/fma3/CMakeLists.t
      set(SRCS
        sdasin.cpp
        ssasin.cpp
+@@ -48,7 +48,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set_property(SOURCE sdasin.cpp vdasin2.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=long)
+   set_property(SOURCE ssasin.cpp vsasin4.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS
+     sdasin.cpp
+     ssasin.cpp
Index: libpgmath/patches/patch-lib_common_exp_CMakeLists_txt
===================================================================
RCS file: libpgmath/patches/patch-lib_common_exp_CMakeLists_txt
diff -N libpgmath/patches/patch-lib_common_exp_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ libpgmath/patches/patch-lib_common_exp_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/common/exp/CMakeLists.txt
+--- lib/common/exp/CMakeLists.txt.orig
++++ lib/common/exp/CMakeLists.txt
+@@ -21,7 +21,7 @@ get_property(DEFINITIONS GLOBAL PROPERTY "DEFINITIONS_
+ get_property(FLAGS GLOBAL PROPERTY "FLAGS_L1")
+ 
+ set(SRCS)
+-if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS gsexp4.c gdexp2.c)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+ endif()
Index: libpgmath/patches/patch-lib_common_exp_fma3_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_exp_fma3_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_common_exp_fma3_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_exp_fma3_CMakeLists_txt	31 Jul 2018 03:34:42 -0000	1.2
+++ libpgmath/patches/patch-lib_common_exp_fma3_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,7 +14,14 @@ Index: lib/common/exp/fma3/CMakeLists.tx
      set(SRCS
        sdexp.cpp
        ssexp.cpp
-@@ -58,6 +58,6 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+@@ -52,12 +52,12 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   libmath_add_object_library_asm("sdexp" "${NEWDEFS} -DVINT=long" "${FLAGS}")
+   libmath_add_object_library_asm("vdexp2" "${NEWDEFS} -DVINT=long" "${FLAGS}")
+   libmath_add_object_library_asm("vsexp4" "${NEWDEFS} -DVINT=" "${FLAGS}")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS
+     ssexp.cpp
      sdexp.cpp
      vdexp2.cpp
      vsexp4.cpp)
Index: libpgmath/patches/patch-lib_common_log_CMakeLists_txt
===================================================================
RCS file: libpgmath/patches/patch-lib_common_log_CMakeLists_txt
diff -N libpgmath/patches/patch-lib_common_log_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ libpgmath/patches/patch-lib_common_log_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/common/log/CMakeLists.txt
+--- lib/common/log/CMakeLists.txt.orig
++++ lib/common/log/CMakeLists.txt
+@@ -22,7 +22,7 @@ get_property(FLAGS GLOBAL PROPERTY "FLAGS_L1")
+ 
+ set(SRCS)
+ 
+-if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS gslog4.c gdlog2.c)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+ endif()
Index: libpgmath/patches/patch-lib_common_log_fma3_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_log_fma3_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_common_log_fma3_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_log_fma3_CMakeLists_txt	31 Jul 2018 03:34:42 -0000	1.2
+++ libpgmath/patches/patch-lib_common_log_fma3_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,6 +14,15 @@ Index: lib/common/log/fma3/CMakeLists.tx
      set(SRCS
        fdlog1.cpp
        fdlog2.cpp
+@@ -64,7 +64,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set_property(SOURCE ${INT_SRCS} APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
+   set_property(SOURCE ${LONG_SRCS} APPEND PROPERTY COMPILE_DEFINITIONS VINT=long)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(INT_SRCS
+     fslog1.cpp
+     fslog4.cpp
 @@ -78,6 +78,6 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
      ${LONG_SRCS})
    set_property(SOURCE ${INT_SRCS} APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
Index: libpgmath/patches/patch-lib_common_pow_CMakeLists_txt
===================================================================
RCS file: libpgmath/patches/patch-lib_common_pow_CMakeLists_txt
diff -N libpgmath/patches/patch-lib_common_pow_CMakeLists_txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ libpgmath/patches/patch-lib_common_pow_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: lib/common/pow/CMakeLists.txt
+--- lib/common/pow/CMakeLists.txt.orig
++++ lib/common/pow/CMakeLists.txt
+@@ -22,7 +22,7 @@ get_property(FLAGS GLOBAL PROPERTY "FLAGS_L1")
+ 
+ set(SRCS)
+ 
+-if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS gspow4.c gdpow2.c)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+ endif()
Index: libpgmath/patches/patch-lib_common_pow_fma3_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_pow_fma3_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_common_pow_fma3_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_pow_fma3_CMakeLists_txt	31 Jul 2018 03:34:42 -0000	1.2
+++ libpgmath/patches/patch-lib_common_pow_fma3_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,7 +14,15 @@ Index: lib/common/pow/fma3/CMakeLists.tx
      set(SRCS
        sdpow.cpp
        sspow.cpp
-@@ -55,5 +55,5 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+@@ -48,12 +48,12 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set_property(SOURCE sdpow.cpp vdpow2.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=long)
+   set_property(SOURCE sspow.cpp vspow4.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS
+     sdpow.cpp
+     sspow.cpp
      vdpow2.cpp)
    set_property(SOURCE sdpow.cpp vdpow2.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=long)
    set_property(SOURCE sspow.cpp vspow4.cpp APPEND PROPERTY COMPILE_DEFINITIONS VINT=)
Index: libpgmath/patches/patch-lib_common_powi_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_powi_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_common_powi_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_powi_CMakeLists_txt	31 Jul 2018 03:34:42 -0000	1.2
+++ libpgmath/patches/patch-lib_common_powi_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -14,9 +14,12 @@ Index: lib/common/powi/CMakeLists.txt
      # Set source files
      set(CORE2_SRCS fxpowi.c pxpowi.c)
      set_property(SOURCE ${CORE2_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS "-march=core2 ")
-@@ -50,7 +50,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+@@ -48,9 +48,9 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+   set(SRCS fxpowi.c pxpowi.c)
    set_property(SOURCE ${SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS "-mcpu=power8 ")
- elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
    set(SRCS fxpowi.c gspowi4.c gdpowi2.c pxpowi.c)
 -  set_property(SOURCE ${SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS "-mcpu=${LLVM_FLANG_CPU_TARGET} ")
 +  set_property(SOURCE ${SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " ")
Index: libpgmath/patches/patch-lib_common_sincos_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/patches/patch-lib_common_sincos_CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_common_sincos_CMakeLists_txt
--- libpgmath/patches/patch-lib_common_sincos_CMakeLists_txt	25 Jul 2018 21:08:47 -0000	1.2
+++ libpgmath/patches/patch-lib_common_sincos_CMakeLists_txt	13 Feb 2019 02:26:45 -0000
@@ -3,6 +3,15 @@ $OpenBSD: patch-lib_common_sincos_CMakeL
 Index: lib/common/sincos/CMakeLists.txt
 --- lib/common/sincos/CMakeLists.txt.orig
 +++ lib/common/sincos/CMakeLists.txt
+@@ -18,7 +18,7 @@
+ get_property(DEFINITIONS GLOBAL PROPERTY "DEFINITIONS_L1")
+ get_property(FLAGS GLOBAL PROPERTY "FLAGS_L1")
+ 
+-if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   set(SRCS gsincos.cpp)
+   set_property(SOURCE ${SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS "-std=c++11 ")
+ else()
 @@ -26,8 +26,8 @@ else()
  endif()
  
@@ -14,3 +23,12 @@ Index: lib/common/sincos/CMakeLists.txt
      libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "gssincos4")
      set_property(TARGET gssincos4 APPEND PROPERTY COMPILE_DEFINITIONS SINCOS=__mth_sincos PRECSIZE=4 VLEN=4)
      libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "gdsincos2")
+@@ -135,7 +135,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc64le")
+ 
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "gdsincos2")
+   set_property(TARGET gdsincos2 APPEND PROPERTY COMPILE_DEFINITIONS SINCOS=sincosf PRECSIZE=4 VLEN=4)
+-elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
++elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" AND NOT ${LIBPGMATH_WITH_GENERIC})
+   libmath_add_object_library("${SRCS}" "${FLAGS}" "${DEFINITIONS}" "gssincos4")
+   set_property(TARGET gssincos4 APPEND PROPERTY COMPILE_DEFINITIONS SINCOS=sincos PRECSIZE=8 VLEN=2)
+ 

Reply via email to