On 05/06/18 11:38, Brian Callahan wrote:
On 05/05/18 08:42, Brian Callahan wrote:On 05/02/18 00:41, Brian Callahan wrote:Hi ports -- Finally got flang fixed for llvm-6.It requires a new sub-port, lang/flang/libpgmath, the new Fortran math library that comes with flang6.New sub-port + diff for the other 2 sub-ports attached.Passes the NIST Fortran 77 test suite (get a copy here: http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html)OK? ~BrianFlang has been updated in the meantime, new patch/tarball. ~BrianIf it makes reviewing easier, this update of flang does not depend on the libaio_compat port I sent out. We'll handle that after this goes in, not before. I'd like to see flang unbroken so I can move on to adding arm64 support.
In the meantime meantime, flang has been updated again. Since I'm already here, now includes patches to allow flang6 to link with lld and have programs compiled with it also link with lld.
~Brian
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/Makefile,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 Makefile
--- Makefile 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ Makefile 9 May 2018 16:03:53 -0000
@@ -3,5 +3,6 @@
SUBDIR =
SUBDIR += driver
SUBDIR += flang
+SUBDIR += libpgmath
.include <bsd.port.subdir.mk>
Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/flang/Makefile.inc,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 Makefile.inc
--- Makefile.inc 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ Makefile.inc 9 May 2018 16:03:53 -0000
@@ -12,6 +12,7 @@ GH_ACCOUNT ?= flang-compiler
# driver: BSD
# flang: Apache 2.0 (will become BSD once integrated into LLVM)
+# libpgmath: Apache 2.0 (will become BSD once integrated into LLVM)
PERMIT_PACKAGE_CDROM = Yes
NO_TEST ?= Yes
Index: driver/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/driver/Makefile,v
retrieving revision 1.4
diff -u -p -r1.4 Makefile
--- driver/Makefile 7 Apr 2018 14:58:18 -0000 1.4
+++ driver/Makefile 9 May 2018 16:03:53 -0000
@@ -1,15 +1,13 @@
# $OpenBSD: Makefile,v 1.4 2018/04/07 14:58:18 ajacoutot Exp $
-BROKEN = needs work for LLVM 6.0
-
# If you are updating to a new version
-# (e.g. 5.0->5.1 or 6.0), you need to sync
+# (e.g. 6.0->6.1 or 7.0), you need to sync
# patches with devel/llvm
COMMENT = LLVM Fortran compiler driver
-DISTNAME = flang-driver-5.0.1.20180308
+DISTNAME = flang-driver-6.0.0.20180416
GH_PROJECT = flang-driver
-GH_COMMIT = 095de1354dd583b0cd4c7a91d5c328710a1a9c32
+GH_COMMIT = ccd507ca383f2122b2c5510aac0f7393f440398a
WANTLIB += ${COMPILER_LIBCXX} c m z
Index: driver/distinfo
===================================================================
RCS file: /cvs/ports/lang/flang/driver/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- driver/distinfo 13 Mar 2018 02:46:44 -0000 1.3
+++ driver/distinfo 9 May 2018 16:03:53 -0000
@@ -1,2 +1,2 @@
-SHA256 (flang-driver-5.0.1.20180308-095de135.tar.gz) = 075nJLft1rXgOM+TEzWUVYodhbg7QbKo5mF5BKuaF84=
-SIZE (flang-driver-5.0.1.20180308-095de135.tar.gz) = 16017829
+SHA256 (flang-driver-6.0.0.20180416-ccd507ca.tar.gz) = a+XxP6BYrHFYQRFKdqyVUHezzqujZMed11JmyctKeg0=
+SIZE (flang-driver-6.0.0.20180416-ccd507ca.tar.gz) = 16780237
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.1.1.1
diff -u -p -r1.1.1.1 patch-include_clang_Basic_DiagnosticSemaKinds_td
--- driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-include_clang_Basic_DiagnosticSemaKinds_td 9 May 2018 16:03:53 -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
-@@ -5810,7 +5810,7 @@ def warn_pointer_indirection_from_incompatible_type :
+@@ -5879,7 +5879,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)">;
-@@ -6747,7 +6747,7 @@ def ext_typecheck_convert_incompatible_pointer_sign :
+@@ -6838,7 +6838,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.1.1.1
diff -u -p -r1.1.1.1 patch-include_clang_Driver_Options_td
--- driver/patches/patch-include_clang_Driver_Options_td 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-include_clang_Driver_Options_td 9 May 2018 16:03:53 -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
-@@ -2166,7 +2166,7 @@ def pthreads : Flag<["-"], "pthreads">;
+@@ -2169,7 +2169,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_Sema_Sema_h
===================================================================
RCS file: /cvs/ports/lang/flang/driver/patches/patch-include_clang_Sema_Sema_h,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-include_clang_Sema_Sema_h
--- driver/patches/patch-include_clang_Sema_Sema_h 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-include_clang_Sema_Sema_h 9 May 2018 16:03:53 -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
-@@ -10255,6 +10255,7 @@ class Sema { (public)
+@@ -10361,6 +10361,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.1.1.1
diff -u -p -r1.1.1.1 patch-lib_Driver_ToolChains_Arch_AArch64_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-lib_Driver_ToolChains_Arch_AArch64_cpp 9 May 2018 16:03:53 -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
-@@ -145,7 +145,8 @@ getAArch64MicroArchFeaturesFromMcpu(const Driver &D, S
+@@ -149,7 +149,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;
-@@ -187,9 +188,11 @@ void aarch64::getAArch64TargetFeatures(const Driver &D
+@@ -191,9 +192,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.2
diff -u -p -r1.2 patch-lib_Driver_ToolChains_Clang_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Clang_cpp 5 Feb 2018 04:08:24 -0000 1.2
+++ driver/patches/patch-lib_Driver_ToolChains_Clang_cpp 9 May 2018 16:03:53 -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
-@@ -342,7 +342,7 @@ static void getTargetFeatures(const ToolChain &TC, con
+@@ -332,7 +332,7 @@ static void getTargetFeatures(const ToolChain &TC, con
break;
case llvm::Triple::aarch64:
case llvm::Triple::aarch64_be:
@@ -12,11 +12,11 @@ Index: lib/Driver/ToolChains/Clang.cpp
break;
case llvm::Triple::x86:
case llvm::Triple::x86_64:
-@@ -2308,9 +2308,12 @@ void Clang::ConstructJob(Compilation &C, const JobActi
+@@ -3362,9 +3362,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.
-- bool TBAAOnByDefault = !getToolChain().getDriver().IsCLMode();
+- bool TBAAOnByDefault = !D.IsCLMode();
+ bool StrictAliasingDefault = !getToolChain().getDriver().IsCLMode();
+ // We also turn off strict aliasing on OpenBSD.
+ if (getToolChain().getTriple().isOSOpenBSD())
@@ -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))
-@@ -3296,7 +3299,8 @@ void Clang::ConstructJob(Compilation &C, const JobActi
+@@ -3950,7 +3953,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,22 +37,22 @@ Index: lib/Driver/ToolChains/Clang.cpp
if (Arg *A = Args.getLastArg(options::OPT_freroll_loops,
options::OPT_fno_reroll_loops))
-@@ -4232,6 +4236,18 @@ void Clang::ConstructJob(Compilation &C, const JobActi
- CmdArgs.push_back("-fno-builtin-strcpy");
- }
+@@ -4781,6 +4785,18 @@ ObjCRuntime Clang::AddObjCRuntimeArgs(const ArgList &a
+ #else
+ unsigned nonFragileABIVersion = 2;
#endif
+
+ // Disable some builtins on OpenBSD because they are just not
+ // right...
+ if (getToolChain().getTriple().isOSOpenBSD()) {
-+ CmdArgs.push_back("-fno-builtin-malloc");
-+ CmdArgs.push_back("-fno-builtin-calloc");
-+ CmdArgs.push_back("-fno-builtin-realloc");
-+ CmdArgs.push_back("-fno-builtin-valloc");
-+ CmdArgs.push_back("-fno-builtin-free");
-+ CmdArgs.push_back("-fno-builtin-strdup");
-+ CmdArgs.push_back("-fno-builtin-strndup");
++ cmdArgs.push_back("-fno-builtin-malloc");
++ cmdArgs.push_back("-fno-builtin-calloc");
++ cmdArgs.push_back("-fno-builtin-realloc");
++ cmdArgs.push_back("-fno-builtin-valloc");
++ cmdArgs.push_back("-fno-builtin-free");
++ cmdArgs.push_back("-fno-builtin-strdup");
++ cmdArgs.push_back("-fno-builtin-strndup");
+ }
- bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports,
- options::OPT_fno_rewrite_imports, false);
+ if (Arg *abiArg =
+ args.getLastArg(options::OPT_fobjc_nonfragile_abi_version_EQ)) {
Index: driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp
===================================================================
RCS file: driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp
diff -N driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ driver/patches/patch-lib_Driver_ToolChains_CommonArgs_cpp 9 May 2018 16:03:53 -0000
@@ -0,0 +1,23 @@
+$OpenBSD$
+
+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
+ // Add Fortan "main" before the first linker input
+ if (!SeenFirstLinkerInput) {
+ if (needFortranMain(D, Args)) {
++ CmdArgs.push_back("-lflangrti");
+ CmdArgs.push_back("-lflangmain");
+ }
+ SeenFirstLinkerInput = true;
+@@ -206,6 +207,7 @@ void tools::AddLinkerInputs(const ToolChain &TC, const
+ }
+
+ if (!SeenFirstLinkerInput && needFortranMain(D, Args)) {
++ CmdArgs.push_back("-lflangrti");
+ CmdArgs.push_back("-lflangmain");
+ }
+
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.1.1.1
diff -u -p -r1.1.1.1 patch-lib_Driver_ToolChains_Gnu_cpp
--- driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-lib_Driver_ToolChains_Gnu_cpp 9 May 2018 16:03:53 -0000
@@ -3,7 +3,7 @@ $OpenBSD: patch-lib_Driver_ToolChains_Gn
Index: lib/Driver/ToolChains/Gnu.cpp
--- lib/Driver/ToolChains/Gnu.cpp.orig
+++ lib/Driver/ToolChains/Gnu.cpp
-@@ -2345,6 +2345,9 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
+@@ -2253,6 +2253,9 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
case llvm::Triple::systemz:
case llvm::Triple::mips:
case llvm::Triple::mipsel:
@@ -13,7 +13,7 @@ Index: lib/Driver/ToolChains/Gnu.cpp
return true;
case llvm::Triple::mips64:
case llvm::Triple::mips64el:
-@@ -2352,7 +2355,8 @@ bool Generic_GCC::IsIntegratedAssemblerDefault() const
+@@ -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 ||
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.2
diff -u -p -r1.2 patch-lib_Driver_ToolChains_OpenBSD_cpp
--- driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp 5 Feb 2018 04:08:24 -0000 1.2
+++ driver/patches/patch-lib_Driver_ToolChains_OpenBSD_cpp 9 May 2018 16:03:53 -0000
@@ -11,7 +11,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
#include "clang/Driver/Options.h"
#include "llvm/Option/ArgList.h"
-@@ -165,16 +166,22 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -165,16 +166,23 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
}
}
@@ -36,11 +36,12 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
+ }
+
+ CmdArgs.push_back(Args.MakeArgString("-L${LOCALBASE}/lib"));
++ CmdArgs.push_back(Args.MakeArgString("-L/usr/lib"));
+
AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
-@@ -188,8 +195,13 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -189,8 +197,14 @@ 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.
@@ -50,12 +51,13 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
+ else
+ CmdArgs.push_back("-lgcc");
++ CmdArgs.push_back("-lpgmath");
+ CmdArgs.push_back("-lflang");
+
if (Args.hasArg(options::OPT_pthread)) {
if (!Args.hasArg(options::OPT_shared) && Args.hasArg(options::OPT_pg))
CmdArgs.push_back("-lpthread_p");
-@@ -204,7 +216,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -205,7 +219,10 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
CmdArgs.push_back("-lc");
}
@@ -67,7 +69,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
}
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
-@@ -225,8 +240,7 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
+@@ -226,8 +243,7 @@ void openbsd::Linker::ConstructJob(Compilation &C, con
OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple,
const ArgList &Args)
: Generic_ELF(D, Triple, Args) {
@@ -77,7 +79,7 @@ Index: lib/Driver/ToolChains/OpenBSD.cpp
}
Tool *OpenBSD::buildAssembler() const {
-@@ -234,3 +248,62 @@ Tool *OpenBSD::buildAssembler() const {
+@@ -235,3 +251,62 @@ Tool *OpenBSD::buildAssembler() const {
}
Tool *OpenBSD::buildLinker() const { return new tools::openbsd::Linker(*this); }
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.1.1.1
diff -u -p -r1.1.1.1 patch-lib_Sema_SemaChecking_cpp
--- driver/patches/patch-lib_Sema_SemaChecking_cpp 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-lib_Sema_SemaChecking_cpp 9 May 2018 16:03:53 -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
-@@ -4901,7 +4901,7 @@ checkFormatStringExpr(Sema &S, const Expr *E, ArrayRef
+@@ -5136,7 +5136,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)
-@@ -4998,6 +4998,7 @@ bool Sema::CheckFormatArguments(ArrayRef<const Expr *>
+@@ -5233,6 +5233,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;
-@@ -6539,8 +6540,9 @@ static void CheckFormatString(Sema &S, const FormatStr
+@@ -6777,8 +6778,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,
-@@ -6550,7 +6552,7 @@ static void CheckFormatString(Sema &S, const FormatStr
+@@ -6788,7 +6790,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.1.1.1
diff -u -p -r1.1.1.1 patch-lib_Sema_SemaDeclAttr_cpp
--- driver/patches/patch-lib_Sema_SemaDeclAttr_cpp 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ driver/patches/patch-lib_Sema_SemaDeclAttr_cpp 9 May 2018 16:03:53 -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
-@@ -3168,6 +3168,7 @@ static FormatAttrKind getFormatAttrKind(StringRef Form
+@@ -3206,6 +3206,7 @@ static FormatAttrKind getFormatAttrKind(StringRef Form
.Case("freebsd_kprintf", SupportedFormat) // FreeBSD.
.Case("os_trace", SupportedFormat)
.Case("os_log", SupportedFormat)
Index: flang/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/flang/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- flang/Makefile 7 Apr 2018 14:58:18 -0000 1.10
+++ flang/Makefile 9 May 2018 16:03:53 -0000
@@ -1,18 +1,16 @@
# $OpenBSD: Makefile,v 1.10 2018/04/07 14:58:18 ajacoutot Exp $
-BROKEN = needs an update
-
COMMENT = LLVM Fortran compiler passes and runtime library
-DISTNAME = flang-5.0.1.20180308
+DISTNAME = flang-6.0.0.20180507
-SHARED_LIBS += flang 0.0 # 5.0
-SHARED_LIBS += flangrti 0.0 # 5.0
-SHARED_LIBS += ompstub 0.0 # 5.0
+SHARED_LIBS += flang 1.0 # 6.0
+SHARED_LIBS += flangrti 1.0 # 6.0
+SHARED_LIBS += ompstub 0.0 # 6.0
GH_PROJECT = flang
-GH_COMMIT = e8123d1aa7882ea996851133b77ef17f1ec0e51d
+GH_COMMIT = 79dced4b9be4bb20f25ea5ebbb5cb61b1626f0c1
-WANTLIB += c execinfo m pthread
+WANTLIB += c execinfo m pgmath pthread
# C11
COMPILER = base-clang ports-gcc ports-clang
@@ -22,16 +20,19 @@ MODULES = devel/cmake
BUILD_DEPENDS = devel/llvm \
${RUN_DEPENDS}
-LIB_DEPENDS = devel/libexecinfo
+LIB_DEPENDS = devel/libexecinfo \
+ lang/flang/libpgmath
RUN_DEPENDS = lang/flang/driver
# Fortran support has not been integrated into Ninja yet
USE_NINJA = No
+# CONFIGURE_ENV is to appease lld
CONFIGURE_ARGS = -DCMAKE_Fortran_COMPILER="${LOCALBASE}/bin/flang" \
-DFLANG_LIBEXECINFO="${LOCALBASE}/lib/libexecinfo.a" \
-DFLANG_LIBOMP="${WRKBUILD}/lib/libompstub.a" \
+ -DLIBPGMATH="${LOCALBASE}/lib/libpgmath.a" \
-DWITH_WERROR=OFF
post-patch:
Index: flang/distinfo
===================================================================
RCS file: /cvs/ports/lang/flang/flang/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- flang/distinfo 13 Mar 2018 02:46:44 -0000 1.8
+++ flang/distinfo 9 May 2018 16:03:53 -0000
@@ -1,2 +1,2 @@
-SHA256 (flang-5.0.1.20180308-e8123d1a.tar.gz) = 9EC3ndBcpkmri8yHk8BE3cwgxgPHOzZ1bpmnr7MneEQ=
-SIZE (flang-5.0.1.20180308-e8123d1a.tar.gz) = 3952311
+SHA256 (flang-6.0.0.20180507-79dced4b.tar.gz) = keJ0hVHHIbNjiqCQeAsVs6BJ5Fiw5ioql5AdtsK3GSE=
+SIZE (flang-6.0.0.20180507-79dced4b.tar.gz) = 4508822
Index: flang/patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/flang/patches/patch-CMakeLists_txt,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-CMakeLists_txt
--- flang/patches/patch-CMakeLists_txt 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ flang/patches/patch-CMakeLists_txt 9 May 2018 16:03:53 -0000
@@ -5,7 +5,7 @@ Add OpenBSD/amd64
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
-@@ -51,6 +51,15 @@ if( ${TARGET_OS} STREQUAL "Linux" )
+@@ -49,6 +49,15 @@ if( ${TARGET_OS} STREQUAL "Linux" )
message("Unsupported architecture: ${TARGET_ARCHITECTURE}" )
return()
endif()
Index: flang/patches/patch-runtime_flang_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/flang/patches/patch-runtime_flang_CMakeLists_txt,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-runtime_flang_CMakeLists_txt
--- flang/patches/patch-runtime_flang_CMakeLists_txt 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ flang/patches/patch-runtime_flang_CMakeLists_txt 9 May 2018 16:03:53 -0000
@@ -1,11 +1,21 @@
$OpenBSD: patch-runtime_flang_CMakeLists_txt,v 1.1.1.1 2017/12/31 18:06:38 bcallah Exp $
No -lrt
+Appease lld
Index: runtime/flang/CMakeLists.txt
--- runtime/flang/CMakeLists.txt.orig
+++ runtime/flang/CMakeLists.txt
-@@ -491,7 +491,7 @@ add_flang_library(flang_shared
+@@ -18,7 +18,7 @@ enable_language(C ASM Fortran) # Enable assembly and F
+
+ SET(ASM_OPTIONS "-DLINUX_ELF")
+ SET(CMAKE_ASM_FLAGS "${CFLAGS} ${ASM_OPTIONS}" )
+-SET(CMAKE_SHARED_LINKER_FLAGS "-no-flang-libs")
++SET(CMAKE_SHARED_LINKER_FLAGS "-no-flang-libs -L/usr/lib")
+
+ # We are using Fortran driver to build this library with fresh compiler
+ # components, so point its binary directory to the build directory to pick up
+@@ -426,7 +426,7 @@ add_flang_library(flang_shared
set_property(TARGET flang_shared PROPERTY OUTPUT_NAME flang)
target_link_libraries(flang_shared ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib/libflangrti.so)
# Resolve symbols against libm and librt
Index: flang/patches/patch-runtime_flangrti_CMakeLists_txt
===================================================================
RCS file: /cvs/ports/lang/flang/flang/patches/patch-runtime_flangrti_CMakeLists_txt,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-runtime_flangrti_CMakeLists_txt
--- flang/patches/patch-runtime_flangrti_CMakeLists_txt 31 Dec 2017 18:06:38 -0000 1.1.1.1
+++ flang/patches/patch-runtime_flangrti_CMakeLists_txt 9 May 2018 16:03:53 -0000
@@ -5,13 +5,13 @@ We need -lexecinfo. Use the static versi
Index: runtime/flangrti/CMakeLists.txt
--- runtime/flangrti/CMakeLists.txt.orig
+++ runtime/flangrti/CMakeLists.txt
-@@ -200,6 +200,9 @@ if (NOT DEFINED LIBOMP_EXPORT_DIR)
- target_link_libraries(flangrti_shared ${FLANG_LIBOMP})
- endif()
-
+@@ -112,6 +113,9 @@ find_library(
+ libpgmath.so
+ HINTS ${CMAKE_BINARY_DIR}/lib)
+ target_link_libraries(flangrti_shared ${LIBPGMATH})
++
+# Import execinfo
+target_link_libraries(flangrti_shared ${FLANG_LIBEXECINFO})
-+
+
if( ${TARGET_ARCHITECTURE} STREQUAL "aarch64" )
target_compile_definitions(flangrti_static PRIVATE TARGET_LINUX_ARM)
- target_compile_definitions(flangrti_shared PRIVATE TARGET_LINUX_ARM)
libpgmath.tgz
Description: Binary data
