Re: UPDATE: LLVM - Fix building on arm

2020-11-03 Thread Brad Smith

On 11/3/2020 3:37 PM, Jeremie Courreges-Anglas wrote:

On Tue, Nov 03 2020, Brad Smith  wrote:

The following diff fixes building the LLVM port on arm.

http://build-failures.rhaalovely.net/arm/2020-06-03/devel/llvm,,-main.log

Is it supposed to fix this error?  What was the problem?



Yes, to resolve that issue.


revision 1.133
date: 2017/02/16 15:07:16;  author: jca;  state: Exp;  lines: +8 -3;  
commitid: ZCMIOK4N5VLJOUXb;

Use -mlong-calls on arm and powerpc to work around relocations overflow

On those architectures the .text section of the executables is too big
for the 32M immediate branch offset.  ld --relax is supposed to fix
things on powerpc, but it is actually ineffective here.  cc -mlong-calls
creates branches instructions using a full 32 bits register; FreeBSD
uses the same workaround.

A fix for lib/csu is still needed to avoid an overflow between .init
and .fini sections.  powerpc hasn't been tested, but we know that
devel/llvm is already broken there anyway.

ok Brad (maintainer)


But I don't remember ever seeing any arm packages and that was before
switching to Clang and then lld as defaults.

The PowerPC part was eventually removed as it did not work.


revision 1.203
date: 2019/01/04 00:14:57;  author: jca;  state: Exp;  lines: +2 -4;  
commitid: Xwd6ogyWHrLM99NH;

Stop using -mlongcall on powerpc

Using long calls means slower code.  It is not useful right now because
the size of the llvm executables has been reduced, as shown by tests by
Charlene Wendling.  And it breaks compilation with gcc 6, as pointed out
by a report from George Koehler.




UPDATE: LLVM - Fix building on arm

2020-11-03 Thread Brad Smith
The following diff fixes building the LLVM port on arm.

pickles$ make install
===>  Verifying specs: c++ c++abi pthread c edit m pthread z
===>  found c++.5.0 c++abi.3.0 pthread.26.1 c.96.0 edit.5.2 m.10.1 z.5.0
===>  Installing llvm-10.0.1p3 from /usr/ports/packages/arm/all/
llvm-10.0.1p3: ok
New and changed readme(s):
/usr/local/share/doc/pkg-readmes/llvm
pickles$ /usr/local/bin/clang --version
clang version 10.0.1
Target: arm-unknown-openbsd6.8
Thread model: posix
InstalledDir: /usr/local/bin



Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.263
diff -u -p -u -p -r1.263 Makefile
--- Makefile4 Sep 2020 09:55:35 -   1.263
+++ Makefile3 Nov 2020 17:48:10 -
@@ -109,10 +109,7 @@ CXXFLAGS +=-fno-ret-protector
 CXXFLAGS +=-mno-retpoline
 .endif
 
-.if ${MACHINE_ARCH} == "arm"
-CFLAGS +=  -mlong-calls
-CXXFLAGS +=-mlong-calls
-.elif ${MACHINE_ARCH} == "powerpc"
+.if ${MACHINE_ARCH} == "powerpc"
 CONFIGURE_ARGS +=  -DCMAKE_EXE_LINKER_FLAGS="-Wl,-relax"
 CONFIGURE_ARGS +=  -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-relax"
 .endif



Re: UPDATE: LLVM - Fix building on arm

2020-11-03 Thread Jeremie Courreges-Anglas
On Tue, Nov 03 2020, Brad Smith  wrote:
> On 11/3/2020 3:37 PM, Jeremie Courreges-Anglas wrote:
>> On Tue, Nov 03 2020, Brad Smith  wrote:
>>> The following diff fixes building the LLVM port on arm.
>> http://build-failures.rhaalovely.net/arm/2020-06-03/devel/llvm,,-main.log
>>
>> Is it supposed to fix this error?  What was the problem?
>
>
> Yes, to resolve that issue.

So what was the problem in the cmake error log?  What helped you
understand and solve this issue?

Thanks for the diff, I'm going to commit it anyway since it looks like
removing -mlongcall fixed powerpc too but... oh well.

> 
> revision 1.133
> date: 2017/02/16 15:07:16;  author: jca;  state: Exp;  lines: +8 -3; 
> commitid: ZCMIOK4N5VLJOUXb;
> Use -mlong-calls on arm and powerpc to work around relocations overflow
>
> On those architectures the .text section of the executables is too big
> for the 32M immediate branch offset.  ld --relax is supposed to fix
> things on powerpc, but it is actually ineffective here.  cc -mlong-calls
> creates branches instructions using a full 32 bits register; FreeBSD
> uses the same workaround.
>
> A fix for lib/csu is still needed to avoid an overflow between .init
> and .fini sections.  powerpc hasn't been tested, but we know that
> devel/llvm is already broken there anyway.
>
> ok Brad (maintainer)
> 
>
> But I don't remember ever seeing any arm packages

Well I highly suspect I actually tested that fix on the cubox machine
I had around at that time.

Looking at the arm bulk build reports,

bulk build on armv7-0.ports.openbsd.org
started on  Thu Feb 2 13:04:20 MST 2017
finished at Sat Feb 11 01:55:20 MST 2017
lasted 09D05h51m
done with kern.version=OpenBSD 6.0-current (GENERIC) #36: Tue Jan 31 00:42:23 
MST 2017

llvm fails

bulk build on armv7-0.ports.openbsd.org
started on  Wed Mar 1 15:05:08 MST 2017
finished at Sat Mar 11 07:33:24 MST 2017
lasted 10D09h28m
done with kern.version=OpenBSD 6.0-current (GENERIC) #53: Tue Feb 28 05:50:54 
MST 2017

no llvm failure

> and that was before
> switching to Clang and then lld as defaults.

Granted.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM - Fix building on arm

2020-11-03 Thread Jeremie Courreges-Anglas
On Tue, Nov 03 2020, Brad Smith  wrote:
> The following diff fixes building the LLVM port on arm.

http://build-failures.rhaalovely.net/arm/2020-06-03/devel/llvm,,-main.log

Is it supposed to fix this error?  What was the problem?

> pickles$ make install
> ===>  Verifying specs: c++ c++abi pthread c edit m pthread z
> ===>  found c++.5.0 c++abi.3.0 pthread.26.1 c.96.0 edit.5.2 m.10.1 z.5.0
> ===>  Installing llvm-10.0.1p3 from /usr/ports/packages/arm/all/
> llvm-10.0.1p3: ok
> New and changed readme(s):
> /usr/local/share/doc/pkg-readmes/llvm
> pickles$ /usr/local/bin/clang --version
> clang version 10.0.1
> Target: arm-unknown-openbsd6.8
> Thread model: posix
> InstalledDir: /usr/local/bin
>
>
> Index: Makefile
> ===
> RCS file: /home/cvs/ports/devel/llvm/Makefile,v
> retrieving revision 1.263
> diff -u -p -u -p -r1.263 Makefile
> --- Makefile  4 Sep 2020 09:55:35 -   1.263
> +++ Makefile  3 Nov 2020 17:48:10 -
> @@ -109,10 +109,7 @@ CXXFLAGS +=  -fno-ret-protector
>  CXXFLAGS +=  -mno-retpoline
>  .endif
>  
> -.if ${MACHINE_ARCH} == "arm"
> -CFLAGS +=-mlong-calls
> -CXXFLAGS +=  -mlong-calls
> -.elif ${MACHINE_ARCH} == "powerpc"
> +.if ${MACHINE_ARCH} == "powerpc"
>  CONFIGURE_ARGS +=-DCMAKE_EXE_LINKER_FLAGS="-Wl,-relax"
>  CONFIGURE_ARGS +=-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-relax"
>  .endif
>

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM - mips64

2019-10-13 Thread Brad Smith

ping.

On 9/28/2019 4:45 PM, Brad Smith wrote:

mips64 has switched over to Clang by default.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.234
diff -u -p -u -p -r1.234 Makefile
--- Makefile9 Sep 2019 21:15:16 -   1.234
+++ Makefile18 Sep 2019 23:40:55 -
@@ -18,7 +18,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
  PKGNAME-main =llvm-${LLVM_V}
  PKGNAME-python =  py-llvm-${LLVM_V}
  PKGNAME-lldb =lldb-${LLVM_V}
-REVISION-main =0
+REVISION-main =1
  
  CATEGORIES =	devel
  
Index: patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp

===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
--- patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 8 Jul 2019 
07:56:53 -   1.10
+++ patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 27 Sep 2019 
21:18:54 -
@@ -42,7 +42,7 @@ Index: tools/clang/lib/Driver/ToolChains
 }
   
 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {

-@@ -255,16 +266,70 @@ OpenBSD::OpenBSD(const Driver , const llvm::Triple &
+@@ -255,16 +266,71 @@ OpenBSD::OpenBSD(const Driver , const llvm::Triple &
 getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
   }
   
@@ -76,6 +76,7 @@ Index: tools/clang/lib/Driver/ToolChains

  +  case llvm::Triple::aarch64:
  +  case llvm::Triple::x86:
  +  case llvm::Triple::x86_64:
++  case llvm::Triple::mips64:
  +return ToolChain::CST_Libcxx;
  +break;
  +  default:




UPDATE: LLVM - mips64

2019-09-28 Thread Brad Smith
mips64 has switched over to Clang by default.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.234
diff -u -p -u -p -r1.234 Makefile
--- Makefile9 Sep 2019 21:15:16 -   1.234
+++ Makefile18 Sep 2019 23:40:55 -
@@ -18,7 +18,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =0
+REVISION-main =1
 
 CATEGORIES =   devel
 
Index: patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
--- patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 8 Jul 2019 
07:56:53 -   1.10
+++ patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 27 Sep 2019 
21:18:54 -
@@ -42,7 +42,7 @@ Index: tools/clang/lib/Driver/ToolChains
}
  
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
-@@ -255,16 +266,70 @@ OpenBSD::OpenBSD(const Driver , const llvm::Triple &
+@@ -255,16 +266,71 @@ OpenBSD::OpenBSD(const Driver , const llvm::Triple &
getFilePaths().push_back(getDriver().SysRoot + "/usr/lib");
  }
  
@@ -76,6 +76,7 @@ Index: tools/clang/lib/Driver/ToolChains
 +  case llvm::Triple::aarch64:
 +  case llvm::Triple::x86:
 +  case llvm::Triple::x86_64:
++  case llvm::Triple::mips64:
 +return ToolChain::CST_Libcxx;
 +break;
 +  default:



Re: UPDATE: LLVM 8.0.1

2019-09-03 Thread Jeremie Courreges-Anglas
On Mon, Sep 02 2019, Brad Smith  wrote:
> Here is an update to LLVM 8.0.1.

I'm testing a similar diff on amd64 and sparc64, thanks.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



UPDATE: LLVM 8.0.1

2019-09-02 Thread Brad Smith
Here is an update to LLVM 8.0.1.


Index: lang/clang/clang.port.mk
===
RCS file: /home/cvs/ports/lang/clang/clang.port.mk,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 clang.port.mk
--- lang/clang/clang.port.mk6 Jul 2019 15:06:37 -   1.33
+++ lang/clang/clang.port.mk22 Jul 2019 00:16:36 -
@@ -1,6 +1,6 @@
 # $OpenBSD: clang.port.mk,v 1.33 2019/07/06 15:06:37 jca Exp $
 
-MODCLANG_VERSION=  8.0.0
+MODCLANG_VERSION=  8.0.1
 
 MODCLANG_ARCHS ?= ${LLVM_ARCHS}
 MODCLANG_LANGS ?=
Index: devel/llvm/Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.232
diff -u -p -u -p -r1.232 Makefile
--- devel/llvm/Makefile 10 Aug 2019 19:41:07 -  1.232
+++ devel/llvm/Makefile 2 Sep 2019 21:42:02 -
@@ -11,15 +11,13 @@ COMMENT-python =Python bindings for Cla
 
 # XXX: Remember to bump MODCLANG_VERSION in lang/clang/clang.port.mk when
 # updating this port.
-LLVM_V =   8.0.0
+LLVM_V =   8.0.1
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 PKGSPEC-main = llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION = 1
-REVISION-main =3
 
 CATEGORIES =   devel
 
@@ -36,7 +34,7 @@ MAINTAINER=   Jeremie Courreges-Anglas https://releases.llvm.org/${LLVM_V}/
+MASTER_SITES = 
https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_V}/
 EXTRACT_SUFX = .tar.xz
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: devel/llvm/distinfo
===
RCS file: /home/cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 distinfo
--- devel/llvm/distinfo 6 Jul 2019 15:06:36 -   1.33
+++ devel/llvm/distinfo 21 Jul 2019 23:05:50 -
@@ -1,8 +1,8 @@
-SHA256 (cfe-8.0.0.src.tar.xz) = CEwRWqsAhOY7I+7owjOrtnOcOZ4plm6uzPxuCI4Lc2s=
-SHA256 (lld-8.0.0.src.tar.xz) = nK7I7JIuMv+hMPD7COTFokLX5oznV2MeQl6eui4abjc=
-SHA256 (lldb-8.0.0.src.tar.xz) = SZGLnwmBZVSiCsRMX4WjLcCnoAdZsyWeeAZNZ06sA3M=
-SHA256 (llvm-8.0.0.src.tar.xz) = iHK+GxLGFFDKzIKz0VPqsCviVG7zT6NYDtFBN7smIkw=
-SIZE (cfe-8.0.0.src.tar.xz) = 12868468
-SIZE (lld-8.0.0.src.tar.xz) = 999864
-SIZE (lldb-8.0.0.src.tar.xz) = 19602332
-SIZE (llvm-8.0.0.src.tar.xz) = 30503732
+SHA256 (cfe-8.0.1.src.tar.xz) = cO/9afeoqySfZrCmirqLCK9Sqiq3EN+4oPuhAmhbFkY=
+SHA256 (lld-8.0.1.src.tar.xz) = n7oelCSb15E+imw6rcswi3bIw9g8XONsmcPzTXOHPYg=
+SHA256 (lldb-8.0.1.src.tar.xz) = 6Kebqm0R3QZQq0obR59pnfrYKvYny7zUn6by3BThMdc=
+SHA256 (llvm-8.0.1.src.tar.xz) = RHh6bQL3FA8UXiJQ1WyfhJM04R+a43mCdRDtcvErdec=
+SIZE (cfe-8.0.1.src.tar.xz) = 12810056
+SIZE (lld-8.0.1.src.tar.xz) = 996440
+SIZE (lldb-8.0.1.src.tar.xz) = 19586288
+SIZE (llvm-8.0.1.src.tar.xz) = 30477608
Index: 
devel/llvm/patches/patch-lib_Target_Mips_MCTargetDesc_MipsTargetStreamer_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_Mips_MCTargetDesc_MipsTargetStreamer_cpp,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 patch-lib_Target_Mips_MCTargetDesc_MipsTargetStreamer_cpp
--- 
devel/llvm/patches/patch-lib_Target_Mips_MCTargetDesc_MipsTargetStreamer_cpp
9 Jul 2019 13:21:37 -   1.1
+++ 
devel/llvm/patches/patch-lib_Target_Mips_MCTargetDesc_MipsTargetStreamer_cpp
10 Jul 2019 00:21:49 -
@@ -23,7 +23,7 @@ Index: lib/Target/Mips/MCTargetDesc/Mips
  }
  
  /// Emit a store instruction with an immediate offset.
-@@ -1133,7 +1133,7 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
+@@ -1136,7 +1136,7 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
  
MCInst TmpInst;
TmpInst.setOpcode(Mips::LUi);
@@ -32,7 +32,7 @@ Index: lib/Target/Mips/MCTargetDesc/Mips
const MCExpr *HiSym = MipsMCExpr::create(
MipsMCExpr::MEK_HI,
MCSymbolRefExpr::create("_gp_disp", MCSymbolRefExpr::VK_None,
-@@ -1145,8 +1145,8 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
+@@ -1148,8 +1148,8 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
TmpInst.clear();
  
TmpInst.setOpcode(Mips::ADDiu);
@@ -43,7 +43,7 @@ Index: lib/Target/Mips/MCTargetDesc/Mips
const MCExpr *LoSym = MipsMCExpr::create(
MipsMCExpr::MEK_LO,
MCSymbolRefExpr::create("_gp_disp", MCSymbolRefExpr::VK_None,
-@@ -1158,8 +1158,8 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
+@@ -1161,8 +1161,8 @@ void MipsTargetELFStreamer::emitDirectiveCpLoad(unsign
TmpInst.clear();
  
TmpInst.setOpcode(Mips::ADDu);
@@ -54,7 +54,7 @@ Index: lib/Target/Mips/MCTargetDesc/Mips
TmpInst.addOperand(MCOperand::createReg(RegNo));
getStreamer().EmitInstruction(TmpInst, STI);
  
-@@ -1182,7 +1182,7 @@ bool MipsTargetELFStreamer::emitDirectiveCpRestore(
+@@ -1185,7 +1185,7 

Re: UPDATE: LLVM

2019-04-29 Thread Jeremie Courreges-Anglas
On Mon, Apr 29 2019, Jeremie Courreges-Anglas  wrote:
> On Sat, Apr 27 2019, Brad Smith  wrote:
>> Now that the GCC compiler has been updated and we now have a C++11 compliant
>> libstdc++ the workaround for lldb can be removed.
>
> Please state what you have tested and what you haven't tested, on which
> architectures.
>
> Here's an updated diff after the recent commits in this port.

Less bogus diff that builds on amd64, sparc64 bulk build ongoing.


Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.221
diff -u -p -r1.221 Makefile
--- Makefile29 Apr 2019 12:37:52 -  1.221
+++ Makefile29 Apr 2019 14:48:36 -
@@ -48,10 +48,9 @@ DISTFILES =  llvm-${LLVM_V}.src${EXTRACT_
clang-tools-extra-${LLVM_V}.src${EXTRACT_SUFX}
 
 MULTI_PACKAGES = -main -python -lldb -extras
-PSEUDO_FLAVORS = no_lldb no_extras
+PSEUDO_FLAVORS = no_extras
 # XXX enabling -extras changes the content of the -main subpackage
 FLAVOR ?=  no_extras
-NOT_FOR_ARCHS-lldb = ${GCC4_ARCHS}
 
 COMPILER = base-clang ports-gcc
 MODULES =  devel/cmake \
@@ -140,9 +139,6 @@ post-extract:
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp
-@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
-.if !${BUILD_PACKAGES:M-lldb}
-   rm -r ${WRKSRC}/tools/lldb
-.endif
 .if !${BUILD_PACKAGES:M-extras}
rm -r ${WRKSRC}/tools/clang/tools/extra
 .endif
@@ -165,9 +161,7 @@ post-install:
# lit and FileCheck are not installed
@rm ${PREFIX}/man/man1/lit.1
@rm ${PREFIX}/man/man1/FileCheck.1
-.if ${BUILD_PACKAGES:M-lldb}
ln -fs ${TRUEPREFIX}/lib/liblldb.so.${LIBlldb_VERSION} \
${PREFIX}/lib/python${MODPY_VERSION}/site-packages/lldb/_lldb.so
-.endif
 
 .include 


-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM

2019-04-29 Thread Jeremie Courreges-Anglas
On Sat, Apr 27 2019, Brad Smith  wrote:
> Now that the GCC compiler has been updated and we now have a C++11 compliant
> libstdc++ the workaround for lldb can be removed.

Please state what you have tested and what you haven't tested, on which
architectures.

Here's an updated diff after the recent commits in this port.


Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.221
diff -u -p -r1.221 Makefile
--- Makefile29 Apr 2019 12:37:52 -  1.221
+++ Makefile29 Apr 2019 12:41:53 -
@@ -48,10 +48,9 @@ DISTFILES =  llvm-${LLVM_V}.src${EXTRACT_
clang-tools-extra-${LLVM_V}.src${EXTRACT_SUFX}
 
 MULTI_PACKAGES = -main -python -lldb -extras
-PSEUDO_FLAVORS = no_lldb no_extras
+PSEUDO_FLAVORS = no_extras
 # XXX enabling -extras changes the content of the -main subpackage
 FLAVOR ?=  no_extras
-NOT_FOR_ARCHS-lldb = ${GCC4_ARCHS}
 
 COMPILER = base-clang ports-gcc
 MODULES =  devel/cmake \
@@ -140,9 +139,6 @@ post-extract:
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp
-@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
-.if !${BUILD_PACKAGES:M-lldb}
-   rm -r ${WRKSRC}/tools/lldb
-.endif
 .if !${BUILD_PACKAGES:M-extras}
rm -r ${WRKSRC}/tools/clang/tools/extra
 .endif
@@ -165,9 +161,5 @@ post-install:
# lit and FileCheck are not installed
@rm ${PREFIX}/man/man1/lit.1
@rm ${PREFIX}/man/man1/FileCheck.1
-.if ${BUILD_PACKAGES:M-lldb}
-   ln -fs ${TRUEPREFIX}/lib/liblldb.so.${LIBlldb_VERSION} \
-   ${PREFIX}/lib/python${MODPY_VERSION}/site-packages/lldb/_lldb.so
-.endif
 
 .include 


-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



UPDATE: LLVM

2019-04-27 Thread Brad Smith
Now that the GCC compiler has been updated and we now have a C++11 compliant
libstdc++ the workaround for lldb can be removed.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.217
diff -u -p -u -p -r1.217 Makefile
--- Makefile27 Apr 2019 21:26:34 -  1.217
+++ Makefile27 Apr 2019 22:01:36 -
@@ -45,10 +45,6 @@ PERMIT_PACKAGE_CDROM =   Yes
 WANTLIB =  ${COMPILER_LIBCXX} c curses edit form m panel pthread \
${MODPY_WANTLIB} z
 
-PSEUDO_FLAVORS = no_lldb
-FLAVOR ?=
-NOT_FOR_ARCHS-lldb = ${GCC4_ARCHS}
-
 MODULES =  devel/cmake \
lang/python
 
@@ -131,9 +127,6 @@ post-extract:
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp
-@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
-.if !${BUILD_PACKAGES:M-lldb}
-   rm -r ${WRKSRC}/tools/lldb
-.endif
 
 post-build:
cd ${WRKSRC}/docs && make -f Makefile.sphinx man
@@ -153,9 +146,7 @@ post-install:
# lit and FileCheck are not installed
@rm ${PREFIX}/man/man1/lit.1
@rm ${PREFIX}/man/man1/FileCheck.1
-.if ${BUILD_PACKAGES:M-lldb}
ln -fs ${TRUEPREFIX}/lib/liblldb.so.${LIBlldb_VERSION} \
${PREFIX}/lib/python${MODPY_VERSION}/site-packages/lldb/_lldb.so
-.endif
 
 .include 



Re: UPDATE: LLVM

2019-03-28 Thread George Koehler
On Sat, 16 Mar 2019 18:35:30 -0400
Brad Smith  wrote:

> Bring in some patches from upstream..
> 
> Make sure PowerPC backend is in sync with the frontend and enable Secure PLT
> support their too.

Hours ago, my PowerPC machine finished a build of devel/llvm.  I tried
to test your diff and my local changes at the same time, but I might
have removed your patch to lib/Target/PowerPC/PPCSubtarget.cpp when I
added my patch to the same file.  If your diff gets into CVS, I will
do another build of devel/llvm.  A build takes about 29 hours.

My patches for PowerPC try to fix compatibility with GCC when
returning a small struct (40736) and enable -fomit-frame-pointer by
default (41094), but I need more time to test them.

- https://bugs.llvm.org/show_bug.cgi?id=40736
- https://bugs.llvm.org/show_bug.cgi?id=41094

> Index: Makefile
> ===
> RCS file: /home/cvs/ports/devel/llvm/Makefile,v
> retrieving revision 1.216
> diff -u -p -u -p -r1.216 Makefile
> --- Makefile  9 Mar 2019 06:18:11 -   1.216
> +++ Makefile  10 Mar 2019 21:39:41 -
> @@ -20,7 +20,7 @@ PKGSPEC-main =  llvm-=${LLVM_V}
>  PKGNAME-main =   llvm-${LLVM_V}
>  PKGNAME-python = py-llvm-${LLVM_V}
>  PKGNAME-lldb =   lldb-${LLVM_V}
> -REVISION-main =  9
> +REVISION-main =  10
>  REVISION-lldb =  0
>  CATEGORIES = devel
>  DISTFILES =  llvm-${LLVM_V}.src${EXTRACT_SUFX} \
> Index: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
> ===
> RCS file: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
> diff -N patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -
> +++ patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp 10 Mar 2019 22:12:43 
> -
> @@ -0,0 +1,18 @@
> +$OpenBSD$
> +
> +Default to Secure PLT on PPC for NetBSD and OpenBSD.
> +This matches the default settings of clang.
> +
> +Index: lib/Target/PowerPC/PPCSubtarget.cpp
> +--- lib/Target/PowerPC/PPCSubtarget.cpp.orig
>  lib/Target/PowerPC/PPCSubtarget.cpp
> +@@ -138,6 +138,9 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU
> +   if (isDarwin())
> + HasLazyResolverStubs = true;
> + 
> ++  if (TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD())
> ++SecurePlt = true;
> ++
> +   if (HasSPE && IsPPC64)
> + report_fatal_error( "SPE is only supported for 32-bit targets.\n", 
> false);
> +   if (HasSPE && (HasAltivec || HasQPX || HasVSX || HasFPU))
> Index: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
> ===
> RCS file: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
> diff -N patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -
> +++ patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp  10 Mar 
> 2019 21:47:14 -
> @@ -0,0 +1,16 @@
> +$OpenBSD$
> +
> +Use Secure PLT as default on NetBSD/PowerPC.
> +
> +Index: tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
> +--- tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp.orig
>  tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
> +@@ -116,7 +116,7 @@ ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Dr
> +   const ArgList ) {
> +   if (Args.getLastArg(options::OPT_msecure_plt))
> + return ppc::ReadGOTPtrMode::SecurePlt;
> +-  if (Triple.isOSOpenBSD())
> ++  if (Triple.isOSNetBSD() || Triple.isOSOpenBSD())
> + return ppc::ReadGOTPtrMode::SecurePlt;
> +   else
> + return ppc::ReadGOTPtrMode::Bss;
> 


-- 
George Koehler 



UPDATE: LLVM

2019-03-16 Thread Brad Smith
Bring in some patches from upstream..

Make sure PowerPC backend is in sync with the frontend and enable Secure PLT
support their too.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.216
diff -u -p -u -p -r1.216 Makefile
--- Makefile9 Mar 2019 06:18:11 -   1.216
+++ Makefile10 Mar 2019 21:39:41 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =9
+REVISION-main =10
 REVISION-lldb =0
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
===
RCS file: patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
diff -N patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_PowerPC_PPCSubtarget_cpp   10 Mar 2019 22:12:43 
-
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+Default to Secure PLT on PPC for NetBSD and OpenBSD.
+This matches the default settings of clang.
+
+Index: lib/Target/PowerPC/PPCSubtarget.cpp
+--- lib/Target/PowerPC/PPCSubtarget.cpp.orig
 lib/Target/PowerPC/PPCSubtarget.cpp
+@@ -138,6 +138,9 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU
+   if (isDarwin())
+ HasLazyResolverStubs = true;
+ 
++  if (TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD())
++SecurePlt = true;
++
+   if (HasSPE && IsPPC64)
+ report_fatal_error( "SPE is only supported for 32-bit targets.\n", false);
+   if (HasSPE && (HasAltivec || HasQPX || HasVSX || HasFPU))
Index: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
===
RCS file: patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
diff -N patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_lib_Driver_ToolChains_Arch_PPC_cpp10 Mar 
2019 21:47:14 -
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Use Secure PLT as default on NetBSD/PowerPC.
+
+Index: tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+--- tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp.orig
 tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp
+@@ -116,7 +116,7 @@ ppc::ReadGOTPtrMode ppc::getPPCReadGOTPtrMode(const Dr
+   const ArgList ) {
+   if (Args.getLastArg(options::OPT_msecure_plt))
+ return ppc::ReadGOTPtrMode::SecurePlt;
+-  if (Triple.isOSOpenBSD())
++  if (Triple.isOSNetBSD() || Triple.isOSOpenBSD())
+ return ppc::ReadGOTPtrMode::SecurePlt;
+   else
+ return ppc::ReadGOTPtrMode::Bss;



Re: UPDATE: LLVM

2019-02-24 Thread Jeremie Courreges-Anglas
On Fri, Feb 22 2019, Brad Smith  wrote:
> Merge in a diff from base:
>
> Improve the X86FixupGadgets pass

I have committed this part.  Thanks.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM

2019-02-24 Thread Jeremie Courreges-Anglas
On Fri, Feb 22 2019, Brad Smith  wrote:
> Merge in a diff from base:
>
> Improve the X86FixupGadgets pass
>
> Merge in a bug fix from upstream:
>
> [MC] Make symbol version errors non-fatal

Regarding this part, should the fix go into base llvm/clang too?

> Index: Makefile
> ===
> RCS file: /home/cvs/ports/devel/llvm/Makefile,v
> retrieving revision 1.213
> diff -u -p -u -p -r1.213 Makefile
> --- Makefile  20 Feb 2019 00:24:11 -  1.213
> +++ Makefile  22 Feb 2019 14:33:44 -
> @@ -20,7 +20,7 @@ PKGSPEC-main =  llvm-=${LLVM_V}
>  PKGNAME-main =   llvm-${LLVM_V}
>  PKGNAME-python = py-llvm-${LLVM_V}
>  PKGNAME-lldb =   lldb-${LLVM_V}
> -REVISION-main =  6
> +REVISION-main =  7
>  REVISION-lldb =  0
>  CATEGORIES = devel
>  DISTFILES =  llvm-${LLVM_V}.src${EXTRACT_SUFX} \
> Index: patches/patch-lib_MC_ELFObjectWriter_cpp
> ===
> RCS file: patches/patch-lib_MC_ELFObjectWriter_cpp
> diff -N patches/patch-lib_MC_ELFObjectWriter_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -
> +++ patches/patch-lib_MC_ELFObjectWriter_cpp  22 Feb 2019 14:36:33 -
> @@ -0,0 +1,34 @@
> +$OpenBSD$
> +
> +[MC] Make symbol version errors non-fatal
> +
> +Index: lib/MC/ELFObjectWriter.cpp
> +--- lib/MC/ELFObjectWriter.cpp.orig
>  lib/MC/ELFObjectWriter.cpp
> +@@ -1258,14 +1258,20 @@ void 
> ELFObjectWriter::executePostLayoutBinding(MCAssem
> + if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
> +   continue;
> + 
> +-// FIXME: produce a better error message.
> ++// FIXME: Get source locations for these errors or diagnose them 
> earlier.
> + if (Symbol.isUndefined() && Rest.startswith("@@") &&
> +-!Rest.startswith("@@@"))
> +-  report_fatal_error("A @@ version cannot be undefined");
> ++!Rest.startswith("@@@")) {
> ++  Asm.getContext().reportError(SMLoc(), "versioned symbol " + AliasName 
> +
> ++" must be defined");
> ++  continue;
> ++}
> + 
> +-if (Renames.count() && Renames[] != Alias)
> +-  report_fatal_error(llvm::Twine("Multiple symbol versions defined for 
> ") +
> +- Symbol.getName());
> ++if (Renames.count() && Renames[] != Alias) {
> ++  Asm.getContext().reportError(
> ++  SMLoc(), llvm::Twine("multiple symbol versions defined for ") +
> ++   Symbol.getName());
> ++  continue;
> ++}
> + 
> + Renames.insert(std::make_pair(, Alias));
> +   }

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



UPDATE: LLVM

2019-02-22 Thread Brad Smith
Merge in a diff from base:

Improve the X86FixupGadgets pass

Merge in a bug fix from upstream:

[MC] Make symbol version errors non-fatal



Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.213
diff -u -p -u -p -r1.213 Makefile
--- Makefile20 Feb 2019 00:24:11 -  1.213
+++ Makefile22 Feb 2019 14:33:44 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =6
+REVISION-main =7
 REVISION-lldb =0
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_MC_ELFObjectWriter_cpp
===
RCS file: patches/patch-lib_MC_ELFObjectWriter_cpp
diff -N patches/patch-lib_MC_ELFObjectWriter_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_MC_ELFObjectWriter_cpp22 Feb 2019 14:36:33 -
@@ -0,0 +1,34 @@
+$OpenBSD$
+
+[MC] Make symbol version errors non-fatal
+
+Index: lib/MC/ELFObjectWriter.cpp
+--- lib/MC/ELFObjectWriter.cpp.orig
 lib/MC/ELFObjectWriter.cpp
+@@ -1258,14 +1258,20 @@ void ELFObjectWriter::executePostLayoutBinding(MCAssem
+ if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
+   continue;
+ 
+-// FIXME: produce a better error message.
++// FIXME: Get source locations for these errors or diagnose them earlier.
+ if (Symbol.isUndefined() && Rest.startswith("@@") &&
+-!Rest.startswith("@@@"))
+-  report_fatal_error("A @@ version cannot be undefined");
++!Rest.startswith("@@@")) {
++  Asm.getContext().reportError(SMLoc(), "versioned symbol " + AliasName +
++" must be defined");
++  continue;
++}
+ 
+-if (Renames.count() && Renames[] != Alias)
+-  report_fatal_error(llvm::Twine("Multiple symbol versions defined for ") 
+
+- Symbol.getName());
++if (Renames.count() && Renames[] != Alias) {
++  Asm.getContext().reportError(
++  SMLoc(), llvm::Twine("multiple symbol versions defined for ") +
++   Symbol.getName());
++  continue;
++}
+ 
+ Renames.insert(std::make_pair(, Alias));
+   }
Index: patches/patch-lib_Target_X86_X86FixupGadgets_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FixupGadgets_cpp,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-lib_Target_X86_X86FixupGadgets_cpp
--- patches/patch-lib_Target_X86_X86FixupGadgets_cpp28 Jan 2019 06:27:28 
-  1.2
+++ patches/patch-lib_Target_X86_X86FixupGadgets_cpp22 Feb 2019 19:20:40 
-
@@ -1,15 +1,16 @@
 $OpenBSD: patch-lib_Target_X86_X86FixupGadgets_cpp,v 1.2 2019/01/28 06:27:28 
jca Exp $
 
-Add a clang pass that identifies potential ROP gadgets and replaces ROP
-friendly instructions with safe alternatives. This initial commit fixes
-3 instruction forms that will lower to include a c3 (return) byte.
-Additional problematic instructions can be fixed incrementally using
-this framework.
+- Add a clang pass that identifies potential ROP gadgets and replaces ROP
+  friendly instructions with safe alternatives. This initial commit fixes
+  3 instruction forms that will lower to include a c3 (return) byte.
+  Additional problematic instructions can be fixed incrementally using
+  this framework.
+- Improve the X86FixupGadgets pass
 
 Index: lib/Target/X86/X86FixupGadgets.cpp
 --- lib/Target/X86/X86FixupGadgets.cpp.orig
 +++ lib/Target/X86/X86FixupGadgets.cpp
-@@ -0,0 +1,273 @@
+@@ -0,0 +1,720 @@
 +//===-- X86FixupGadgets.cpp - Fixup Instructions that make ROP Gadgets 
===//
 +//
 +// The LLVM Compiler Infrastructure
@@ -47,10 +48,10 @@ Index: lib/Target/X86/X86FixupGadgets.cp
 +
 +#define DEBUG_TYPE FIXUPGADGETS_NAME
 +
-+// Toggle with cc1 option: -backend-option -x86-fixup-gadgets=
++// Toggle with cc1 option: -mllvm -x86-fixup-gadgets=
 +static cl::opt FixupGadgets(
-+"x86-fixup-gadgets",
-+cl::desc("Replace ROP friendly instructions with alternatives"),
++"x86-fixup-gadgets", cl::Hidden,
++cl::desc("Replace ROP friendly instructions with safe alternatives"),
 +cl::init(true));
 +
 +namespace {
@@ -78,24 +79,33 @@ Index: lib/Target/X86/X86FixupGadgets.cp
 +  const X86InstrInfo *TII;
 +  const X86RegisterInfo *TRI;
 +  bool Is64Bit;
-+  enum InstrType {
-+NoType = 0,
-+OneGPRegC3,
-+TwoGPRegC3,
-+ThreeGPRegC3,
-+  };
 +
-+  /// If an Instr has a ROP friendly construct, return it
-+  InstrType isROPFriendly(MachineInstr ) const;
++  struct FixupInfo {
++unsigned op1;
++unsigned op2;
++bool fixup;
++bool align;
++  };
 +
-+  /// Helper functions for various kinds of instructions
-+  bool 

Re: UPDATE: LLVM

2019-02-19 Thread Jeremie Courreges-Anglas
On Mon, Feb 18 2019, Brad Smith  wrote:
> Merge in bits from base..
>
> - Merge LLVM commits r340844, r353818 and r353819 from the 8.0 branch
>   to fix a regression in floating point operations.
> - When generating code for OpenBSD/powerpc, avoid unaligned floating-point
>   load and store instructions.
> - Skip retguard instructions in prologue detection.
> - When bsd.lib.mk builds shared libraries it builds with -DPIC which
>   causes problems in the following files which use PIC as a variable name.

Committed, thanks.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



UPDATE: LLVM

2019-02-18 Thread Brad Smith
Merge in bits from base..

- Merge LLVM commits r340844, r353818 and r353819 from the 8.0 branch
  to fix a regression in floating point operations.
- When generating code for OpenBSD/powerpc, avoid unaligned floating-point
  load and store instructions.
- Skip retguard instructions in prologue detection.
- When bsd.lib.mk builds shared libraries it builds with -DPIC which
  causes problems in the following files which use PIC as a variable name.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.212
diff -u -p -u -p -r1.212 Makefile
--- Makefile11 Feb 2019 05:33:57 -  1.212
+++ Makefile18 Feb 2019 19:33:06 -
@@ -20,7 +20,8 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =5
+REVISION-main =6
+REVISION-lldb =0
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-include_llvm_Config_llvm-config_h_cmake
===
RCS file: patches/patch-include_llvm_Config_llvm-config_h_cmake
diff -N patches/patch-include_llvm_Config_llvm-config_h_cmake
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-include_llvm_Config_llvm-config_h_cmake   18 Feb 2019 
19:19:28 -
@@ -0,0 +1,28 @@
+$OpenBSD$
+
+When bsd.lib.mk builds shared libraries it builds with -DPIC which
+causes problems in the following files which use PIC as a variable name.
+Undefine PIC in llvm-config.h to minimise the diff to upstream LLVM.
+
+Index: include/llvm/Config/llvm-config.h.cmake
+--- include/llvm/Config/llvm-config.h.cmake.orig
 include/llvm/Config/llvm-config.h.cmake
+@@ -14,6 +14,18 @@
+ #ifndef LLVM_CONFIG_H
+ #define LLVM_CONFIG_H
+ 
++/*
++ * When bsd.lib.mk builds shared libraries it builds with -DPIC which 
++ * causes problems in the following files which use PIC as a variable name.
++ * undefine PIC here to minimise the diff to upstream LLVM
++ *
++ * include/llvm/MC/MCObjectFileInfo.h
++ * lib/MC/MCObjectFileInfo.cpp
++ * lib/Transforms/Scalar/LICM.cpp
++ * lib/Transforms/Utils/PredicateInfo.cpp
++ */
++#undef PIC
++
+ /* Define if LLVM_ENABLE_DUMP is enabled */
+ #cmakedefine LLVM_ENABLE_DUMP
+ 
Index: patches/patch-lib_Target_PowerPC_PPCISelLowering_cpp
===
RCS file: patches/patch-lib_Target_PowerPC_PPCISelLowering_cpp
diff -N patches/patch-lib_Target_PowerPC_PPCISelLowering_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_PowerPC_PPCISelLowering_cpp18 Feb 2019 
19:47:58 -
@@ -0,0 +1,27 @@
+$OpenBSD$
+
+When generating code for OpenBSD/powerpc, avoid unaligned floating-point
+load and store instructions.  The vast majority of PowerPC CPUs that
+OpenBSD runs on don't implement those and will generate an alignment
+exceptions.  While we do emulate lfd and stfd (to work around GCC bugs),
+we don't emulate lfs and stfs.  It is way more efficient to have the
+compiler generate code that only uses aligned load and store instructions.
+
+Index: lib/Target/PowerPC/PPCISelLowering.cpp
+--- lib/Target/PowerPC/PPCISelLowering.cpp.orig
 lib/Target/PowerPC/PPCISelLowering.cpp
+@@ -13921,6 +13921,14 @@ bool PPCTargetLowering::allowsMisalignedMemoryAccesses
+   if (VT == MVT::ppcf128)
+ return false;
+ 
++  if (Subtarget.isTargetOpenBSD()) {
++// Traditional PowerPC does not support unaligned memory access
++// for floating-point and the OpenBSD kernel does not emulate
++// all possible floating-point load-store instructions.
++if (VT == MVT::f32 || VT == MVT::f64)
++  return false;
++  }
++
+   if (Fast)
+ *Fast = true;
+ 
Index: patches/patch-lib_Target_PowerPC_PPCSubtarget_h
===
RCS file: patches/patch-lib_Target_PowerPC_PPCSubtarget_h
diff -N patches/patch-lib_Target_PowerPC_PPCSubtarget_h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_PowerPC_PPCSubtarget_h 18 Feb 2019 19:48:14 
-
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+When generating code for OpenBSD/powerpc, avoid unaligned floating-point
+load and store instructions.  The vast majority of PowerPC CPUs that
+OpenBSD runs on don't implement those and will generate an alignment
+exceptions.  While we do emulate lfd and stfd (to work around GCC bugs),
+we don't emulate lfs and stfs.  It is way more efficient to have the
+compiler generate code that only uses aligned load and store instructions.
+
+Index: lib/Target/PowerPC/PPCSubtarget.h
+--- lib/Target/PowerPC/PPCSubtarget.h.orig
 lib/Target/PowerPC/PPCSubtarget.h
+@@ -305,6 +305,7 @@ class PPCSubtarget : public PPCGenSubtargetInfo { (pub
+   bool isTargetELF() const { return 

Re: UPDATE: LLVM

2019-02-11 Thread Brad Smith

On 2/11/2019 7:44 PM, Jeremie Courreges-Anglas wrote:


cc'ing Alexander who reported the bug in base and Patrick who commented
on upstream's bugzilla...

On Mon, Feb 11 2019, Brad Smith  wrote:

Pull in 3 patches for the X86 backend..

- [X86] Add FPSW as a Def on some FP instructions that were missing it.
- [X86] Connect the default fpsr and dirflag clobbers in inline
   assembly to the registers we have defined for them.
- [X86] Add FPCW as a register and start using it as an implicit use on
   floating point instructions.

Resolves miscompilation of libm mentioned here..
https://marc.info/?l=openbsd-bugs=154896725914212=2

Thanks.  Just to be clear, the bc testcase still fails with base from

   kern.version=OpenBSD 6.4-current (GENERIC.MP) #703: Sun Feb 10 20:20:49 MST 
2019

but rebuilding libm and the testcase with the patched ports-clang fixes
the issue.  (I haven't done further tests.)

https://bugs.llvm.org/show_bug.cgi?id=40206 says

Craig Topper 2019-02-08 15:31:09 PST
Fixed in r353489

So I don't know whether one of three commits are needed.  Three,
I guess?

Anyway, this feels like it should go in base first.  Alexander, Patrick,
any opinion?


https://marc.info/?l=freebsd-commits-all=154965032814190=2

I brought over the same bits FreeBSD did when backporting from trunk to 7.


--78<--
Pull in 3 patches for the X86 backend..

- [X86] Add FPSW as a Def on some FP instructions that were missing it.
- [X86] Connect the default fpsr and dirflag clobbers in inline
   assembly to the registers we have defined for them.
- [X86] Add FPCW as a register and start using it as an implicit use on
   floating point instructions.

Resolves miscompilation of libm mentioned here..
https://marc.info/?l=openbsd-bugs=154896725914212=2




Re: UPDATE: LLVM

2019-02-11 Thread Jeremie Courreges-Anglas


cc'ing Alexander who reported the bug in base and Patrick who commented
on upstream's bugzilla...

On Mon, Feb 11 2019, Brad Smith  wrote:
> Pull in 3 patches for the X86 backend..
>
> - [X86] Add FPSW as a Def on some FP instructions that were missing it.
> - [X86] Connect the default fpsr and dirflag clobbers in inline
>   assembly to the registers we have defined for them.
> - [X86] Add FPCW as a register and start using it as an implicit use on
>   floating point instructions.
>
> Resolves miscompilation of libm mentioned here..
> https://marc.info/?l=openbsd-bugs=154896725914212=2

Thanks.  Just to be clear, the bc testcase still fails with base from

  kern.version=OpenBSD 6.4-current (GENERIC.MP) #703: Sun Feb 10 20:20:49 MST 
2019

but rebuilding libm and the testcase with the patched ports-clang fixes
the issue.  (I haven't done further tests.)

https://bugs.llvm.org/show_bug.cgi?id=40206 says

   Craig Topper 2019-02-08 15:31:09 PST
   Fixed in r353489

So I don't know whether one of three commits are needed.  Three,
I guess?

Anyway, this feels like it should go in base first.  Alexander, Patrick,
any opinion?


--8<--
Pull in 3 patches for the X86 backend..

- [X86] Add FPSW as a Def on some FP instructions that were missing it.
- [X86] Connect the default fpsr and dirflag clobbers in inline
  assembly to the registers we have defined for them.
- [X86] Add FPCW as a register and start using it as an implicit use on
  floating point instructions.

Resolves miscompilation of libm mentioned here..
https://marc.info/?l=openbsd-bugs=154896725914212=2


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.212
diff -u -p -u -p -r1.212 Makefile
--- Makefile11 Feb 2019 05:33:57 -  1.212
+++ Makefile11 Feb 2019 06:42:57 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =5
+REVISION-main =6
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_Target_X86_X86ISelLowering_cpp
===
RCS file: patches/patch-lib_Target_X86_X86ISelLowering_cpp
diff -N patches/patch-lib_Target_X86_X86ISelLowering_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86ISelLowering_cpp11 Feb 2019 06:19:24 
-
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+[X86] Connect the default fpsr and dirflag clobbers in inline
+assembly to the registers we have defined for them.
+
+Index: lib/Target/X86/X86ISelLowering.cpp
+--- lib/Target/X86/X86ISelLowering.cpp.orig
 lib/Target/X86/X86ISelLowering.cpp
+@@ -40619,6 +40619,20 @@ X86TargetLowering::getRegForInlineAsmConstraint(const 
+   return Res;
+ }
+ 
++// dirflag -> DF
++if (StringRef("{dirflag}").equals_lower(Constraint)) {
++  Res.first = X86::DF;
++  Res.second = ::DFCCRRegClass;
++  return Res;
++}
++
++// fpsr -> FPSW
++if (StringRef("{fpsr}").equals_lower(Constraint)) {
++  Res.first = X86::FPSW;
++  Res.second = ::FPCCRRegClass;
++  return Res;
++}
++
+ // 'A' means [ER]AX + [ER]DX.
+ if (Constraint == "A") {
+   if (Subtarget.is64Bit()) {
Index: patches/patch-lib_Target_X86_X86InstrFPStack_td
===
RCS file: patches/patch-lib_Target_X86_X86InstrFPStack_td
diff -N patches/patch-lib_Target_X86_X86InstrFPStack_td
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86InstrFPStack_td 11 Feb 2019 06:38:04 
-
@@ -0,0 +1,186 @@
+$OpenBSD$
+
+- [X86] Add FPSW as a Def on some FP instructions that were missing it.
+- [X86] Add FPCW as a register and start using it as an implicit use on 
floating
+  point instructions.
+
+Index: lib/Target/X86/X86InstrFPStack.td
+--- lib/Target/X86/X86InstrFPStack.td.orig
 lib/Target/X86/X86InstrFPStack.td
+@@ -230,7 +230,7 @@ def _FI32m  : FPI<0xDA, fp, (outs), (ins i32mem:$src),
+ } // mayLoad = 1, hasSideEffects = 1
+ }
+ 
+-let Defs = [FPSW] in {
++let Defs = [FPSW], Uses = [FPCW] in {
+ // FPBinary_rr just defines pseudo-instructions, no need to set a scheduling
+ // resources.
+ let hasNoSchedulingInfo = 1 in {
+@@ -267,7 +267,7 @@ class FPrST0PInst
+ // NOTE: GAS and apparently all other AT style assemblers have a broken 
notion
+ // of some of the 'reverse' forms of the fsub and fdiv instructions.  As such,
+ // we have to put some 'r's in and take them out of weird places.
+-let SchedRW = [WriteFAdd] in {
++let SchedRW = [WriteFAdd], Defs = [FPSW], Uses = [FPCW] in {
+ def ADD_FST0r   : FPST0rInst ;
+ def ADD_FrST0   : FPrST0Inst ;
+ def ADD_FPrST0  : FPrST0PInst;
+@@ -278,16 +278,16 @@ def SUB_FST0r   : FPST0rInst ;
+ def SUBR_FrST0  : FPrST0Inst 

UPDATE: LLVM

2019-02-10 Thread Brad Smith
Pull in 3 patches for the X86 backend..

- [X86] Add FPSW as a Def on some FP instructions that were missing it.
- [X86] Connect the default fpsr and dirflag clobbers in inline
  assembly to the registers we have defined for them.
- [X86] Add FPCW as a register and start using it as an implicit use on
  floating point instructions.

Resolves miscompilation of libm mentioned here..
https://marc.info/?l=openbsd-bugs=154896725914212=2


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.212
diff -u -p -u -p -r1.212 Makefile
--- Makefile11 Feb 2019 05:33:57 -  1.212
+++ Makefile11 Feb 2019 06:42:57 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =5
+REVISION-main =6
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_Target_X86_X86ISelLowering_cpp
===
RCS file: patches/patch-lib_Target_X86_X86ISelLowering_cpp
diff -N patches/patch-lib_Target_X86_X86ISelLowering_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86ISelLowering_cpp11 Feb 2019 06:19:24 
-
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+[X86] Connect the default fpsr and dirflag clobbers in inline
+assembly to the registers we have defined for them.
+
+Index: lib/Target/X86/X86ISelLowering.cpp
+--- lib/Target/X86/X86ISelLowering.cpp.orig
 lib/Target/X86/X86ISelLowering.cpp
+@@ -40619,6 +40619,20 @@ X86TargetLowering::getRegForInlineAsmConstraint(const 
+   return Res;
+ }
+ 
++// dirflag -> DF
++if (StringRef("{dirflag}").equals_lower(Constraint)) {
++  Res.first = X86::DF;
++  Res.second = ::DFCCRRegClass;
++  return Res;
++}
++
++// fpsr -> FPSW
++if (StringRef("{fpsr}").equals_lower(Constraint)) {
++  Res.first = X86::FPSW;
++  Res.second = ::FPCCRRegClass;
++  return Res;
++}
++
+ // 'A' means [ER]AX + [ER]DX.
+ if (Constraint == "A") {
+   if (Subtarget.is64Bit()) {
Index: patches/patch-lib_Target_X86_X86InstrFPStack_td
===
RCS file: patches/patch-lib_Target_X86_X86InstrFPStack_td
diff -N patches/patch-lib_Target_X86_X86InstrFPStack_td
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86InstrFPStack_td 11 Feb 2019 06:38:04 
-
@@ -0,0 +1,186 @@
+$OpenBSD$
+
+- [X86] Add FPSW as a Def on some FP instructions that were missing it.
+- [X86] Add FPCW as a register and start using it as an implicit use on 
floating
+  point instructions.
+
+Index: lib/Target/X86/X86InstrFPStack.td
+--- lib/Target/X86/X86InstrFPStack.td.orig
 lib/Target/X86/X86InstrFPStack.td
+@@ -230,7 +230,7 @@ def _FI32m  : FPI<0xDA, fp, (outs), (ins i32mem:$src),
+ } // mayLoad = 1, hasSideEffects = 1
+ }
+ 
+-let Defs = [FPSW] in {
++let Defs = [FPSW], Uses = [FPCW] in {
+ // FPBinary_rr just defines pseudo-instructions, no need to set a scheduling
+ // resources.
+ let hasNoSchedulingInfo = 1 in {
+@@ -267,7 +267,7 @@ class FPrST0PInst
+ // NOTE: GAS and apparently all other AT style assemblers have a broken 
notion
+ // of some of the 'reverse' forms of the fsub and fdiv instructions.  As such,
+ // we have to put some 'r's in and take them out of weird places.
+-let SchedRW = [WriteFAdd] in {
++let SchedRW = [WriteFAdd], Defs = [FPSW], Uses = [FPCW] in {
+ def ADD_FST0r   : FPST0rInst ;
+ def ADD_FrST0   : FPrST0Inst ;
+ def ADD_FPrST0  : FPrST0PInst;
+@@ -278,16 +278,16 @@ def SUB_FST0r   : FPST0rInst ;
+ def SUBR_FrST0  : FPrST0Inst ;
+ def SUBR_FPrST0 : FPrST0PInst;
+ } // SchedRW
+-let SchedRW = [WriteFCom] in {
++let SchedRW = [WriteFCom], Defs = [FPSW], Uses = [FPCW] in {
+ def COM_FST0r   : FPST0rInst ;
+ def COMP_FST0r  : FPST0rInst ;
+ } // SchedRW
+-let SchedRW = [WriteFMul] in {
++let SchedRW = [WriteFMul], Defs = [FPSW], Uses = [FPCW] in {
+ def MUL_FST0r   : FPST0rInst ;
+ def MUL_FrST0   : FPrST0Inst ;
+ def MUL_FPrST0  : FPrST0PInst;
+ } // SchedRW
+-let SchedRW = [WriteFDiv] in {
++let SchedRW = [WriteFDiv], Defs = [FPSW], Uses = [FPCW] in {
+ def DIVR_FST0r  : FPST0rInst ;
+ def DIV_FrST0   : FPrST0Inst ;
+ def DIV_FPrST0  : FPrST0PInst;
+@@ -307,7 +307,7 @@ def _Fp80  : FpI_<(outs RFP80:$dst), (ins RFP80:$src),
+ def _F : FPI<0xD9, fp, (outs), (ins), asmstring>;
+ }
+ 
+-let Defs = [FPSW] in {
++let Defs = [FPSW], Uses = [FPCW] in {
+ 
+ let SchedRW = [WriteFSign] in {
+ defm CHS : FPUnary;
+@@ -335,7 +335,7 @@ def TST_F  : FPI<0xD9, MRM_E4, (outs), (ins), "ftst">;
+ 
+ // Versions of FP instructions that take a single memory operand.  Added for 
the
+ //   disassembler; remove as they are included with patterns elsewhere.
+-let SchedRW = 

Re: UPDATE: LLVM

2019-02-10 Thread Brad Smith
On Fri, Feb 08, 2019 at 06:31:41PM -0500, Brad Smith wrote:
> On Mon, Feb 04, 2019 at 08:04:02PM -0500, Brad Smith wrote:
> > Re-merge the -msave-args diff plus fix and add a diff to make use
> > of pthread_get_name_np.
> 
> Comment tweak with the pthread_get_name_np patch being commited upstream.

And merge in the PowerPC long double fix from George now that it has been
commited upstream.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.210
diff -u -p -u -p -r1.210 Makefile
--- Makefile3 Feb 2019 18:29:48 -   1.210
+++ Makefile4 Feb 2019 22:22:21 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =3
+REVISION-main =4
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-include_llvm_BinaryFormat_Dwarf_def
===
RCS file: patches/patch-include_llvm_BinaryFormat_Dwarf_def
diff -N patches/patch-include_llvm_BinaryFormat_Dwarf_def
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-include_llvm_BinaryFormat_Dwarf_def   5 Feb 2019 00:34:58 
-
@@ -0,0 +1,16 @@
+$OpenBSD: patch-include_llvm_BinaryFormat_Dwarf_def,v 1.1 2019/01/31 13:40:22 
jca Exp $
+
+implement -msave-args in clang/llvm, like the sun did for gcc 
+
+Index: include/llvm/BinaryFormat/Dwarf.def
+--- include/llvm/BinaryFormat/Dwarf.def.orig
 include/llvm/BinaryFormat/Dwarf.def
+@@ -355,6 +355,8 @@ HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
+ HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
+ HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
+ HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
++// Sun Extension
++HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, GNU)
+ // Borland extensions.
+ HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
+ HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
Index: patches/patch-lib_Support_Unix_Threading_inc
===
RCS file: patches/patch-lib_Support_Unix_Threading_inc
diff -N patches/patch-lib_Support_Unix_Threading_inc
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Support_Unix_Threading_inc7 Feb 2019 02:06:21 
-
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Add OpenBSD support to be able to get the thread name
+
+Index: lib/Support/Unix/Threading.inc
+--- lib/Support/Unix/Threading.inc.orig
 lib/Support/Unix/Threading.inc
+@@ -203,6 +203,12 @@ void llvm::get_thread_name(SmallVectorImpl 
+   ::pthread_getname_np(::pthread_self(), buf, len);
+ 
+   Name.append(buf, buf + strlen(buf));
++#elif defined(__OpenBSD__)
++  constexpr uint32_t len = get_max_thread_name_length_impl();
++  char buf[len];
++  ::pthread_get_name_np(::pthread_self(), buf, len);
++
++  Name.append(buf, buf + strlen(buf));
+ #elif defined(__linux__)
+ #if HAVE_PTHREAD_GETNAME_NP
+   constexpr uint32_t len = get_max_thread_name_length_impl();
Index: patches/patch-lib_Target_X86_X86FrameLowering_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FrameLowering_cpp,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-lib_Target_X86_X86FrameLowering_cpp
--- patches/patch-lib_Target_X86_X86FrameLowering_cpp   3 Feb 2019 18:29:48 
-   1.5
+++ patches/patch-lib_Target_X86_X86FrameLowering_cpp   5 Feb 2019 03:05:20 
-
@@ -1,4 +1,4 @@
-$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.5 2019/02/03 18:29:48 
jca Exp $
+$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.4 2019/01/31 13:40:22 
jca Exp $
 
 - Add RETGUARD to clang for amd64. This security mechanism uses per-function
   random cookies to protect access to function return instructions, with the
@@ -18,6 +18,7 @@ $OpenBSD: patch-lib_Target_X86_X86FrameL
   jumping into the instruction stream partway through other instructions. Work 
to
   remove these gadgets will continue through other mechanisms.
 - Refactor retguard to make adding additional arches easier.
+- implement -msave-args in clang/llvm, like the sun did for gcc
 
 Index: lib/Target/X86/X86FrameLowering.cpp
 --- lib/Target/X86/X86FrameLowering.cpp.orig
@@ -39,7 +40,153 @@ Index: lib/Target/X86/X86FrameLowering.c
// Cache a bunch of frame-related predicates for this subtarget.
SlotSize = TRI->getSlotSize();
Is64Bit = STI.is64Bit();
-@@ -3153,4 +3154,8 @@ void X86FrameLowering::processFunctionBeforeFrameFinal
+@@ -47,6 +48,7 @@ X86FrameLowering::X86FrameLowering(const X86Subtarget 
+   // standard x86_64 and NaCl use 64-bit frame/stack pointers, x32 - 32-bit.
+   Uses64BitFramePtr = STI.isTarget64BitLP64() || STI.isTargetNaCl64();
+   StackPtr = TRI->getStackRegister();
++  SaveArgs = Is64Bit ? 

Re: UPDATE: LLVM

2019-02-08 Thread Brad Smith
On Mon, Feb 04, 2019 at 08:04:02PM -0500, Brad Smith wrote:
> Re-merge the -msave-args diff plus fix and add a diff to make use
> of pthread_get_name_np.

Comment tweak with the pthread_get_name_np patch being commited upstream.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.210
diff -u -p -u -p -r1.210 Makefile
--- Makefile3 Feb 2019 18:29:48 -   1.210
+++ Makefile4 Feb 2019 22:22:21 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =3
+REVISION-main =4
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-include_llvm_BinaryFormat_Dwarf_def
===
RCS file: patches/patch-include_llvm_BinaryFormat_Dwarf_def
diff -N patches/patch-include_llvm_BinaryFormat_Dwarf_def
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-include_llvm_BinaryFormat_Dwarf_def   5 Feb 2019 00:34:58 
-
@@ -0,0 +1,16 @@
+$OpenBSD: patch-include_llvm_BinaryFormat_Dwarf_def,v 1.1 2019/01/31 13:40:22 
jca Exp $
+
+implement -msave-args in clang/llvm, like the sun did for gcc 
+
+Index: include/llvm/BinaryFormat/Dwarf.def
+--- include/llvm/BinaryFormat/Dwarf.def.orig
 include/llvm/BinaryFormat/Dwarf.def
+@@ -355,6 +355,8 @@ HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
+ HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
+ HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
+ HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
++// Sun Extension
++HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, GNU)
+ // Borland extensions.
+ HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
+ HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
Index: patches/patch-lib_Support_Unix_Threading_inc
===
RCS file: patches/patch-lib_Support_Unix_Threading_inc
diff -N patches/patch-lib_Support_Unix_Threading_inc
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Support_Unix_Threading_inc7 Feb 2019 02:06:21 
-
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Add OpenBSD support to be able to get the thread name
+
+Index: lib/Support/Unix/Threading.inc
+--- lib/Support/Unix/Threading.inc.orig
 lib/Support/Unix/Threading.inc
+@@ -203,6 +203,12 @@ void llvm::get_thread_name(SmallVectorImpl 
+   ::pthread_getname_np(::pthread_self(), buf, len);
+ 
+   Name.append(buf, buf + strlen(buf));
++#elif defined(__OpenBSD__)
++  constexpr uint32_t len = get_max_thread_name_length_impl();
++  char buf[len];
++  ::pthread_get_name_np(::pthread_self(), buf, len);
++
++  Name.append(buf, buf + strlen(buf));
+ #elif defined(__linux__)
+ #if HAVE_PTHREAD_GETNAME_NP
+   constexpr uint32_t len = get_max_thread_name_length_impl();
Index: patches/patch-lib_Target_X86_X86FrameLowering_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FrameLowering_cpp,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-lib_Target_X86_X86FrameLowering_cpp
--- patches/patch-lib_Target_X86_X86FrameLowering_cpp   3 Feb 2019 18:29:48 
-   1.5
+++ patches/patch-lib_Target_X86_X86FrameLowering_cpp   5 Feb 2019 03:05:20 
-
@@ -1,4 +1,4 @@
-$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.5 2019/02/03 18:29:48 
jca Exp $
+$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.4 2019/01/31 13:40:22 
jca Exp $
 
 - Add RETGUARD to clang for amd64. This security mechanism uses per-function
   random cookies to protect access to function return instructions, with the
@@ -18,6 +18,7 @@ $OpenBSD: patch-lib_Target_X86_X86FrameL
   jumping into the instruction stream partway through other instructions. Work 
to
   remove these gadgets will continue through other mechanisms.
 - Refactor retguard to make adding additional arches easier.
+- implement -msave-args in clang/llvm, like the sun did for gcc
 
 Index: lib/Target/X86/X86FrameLowering.cpp
 --- lib/Target/X86/X86FrameLowering.cpp.orig
@@ -39,7 +40,153 @@ Index: lib/Target/X86/X86FrameLowering.c
// Cache a bunch of frame-related predicates for this subtarget.
SlotSize = TRI->getSlotSize();
Is64Bit = STI.is64Bit();
-@@ -3153,4 +3154,8 @@ void X86FrameLowering::processFunctionBeforeFrameFinal
+@@ -47,6 +48,7 @@ X86FrameLowering::X86FrameLowering(const X86Subtarget 
+   // standard x86_64 and NaCl use 64-bit frame/stack pointers, x32 - 32-bit.
+   Uses64BitFramePtr = STI.isTarget64BitLP64() || STI.isTargetNaCl64();
+   StackPtr = TRI->getStackRegister();
++  SaveArgs = Is64Bit ? STI.getSaveArgs() : 0;
+ }
+ 
+ bool X86FrameLowering::hasReservedCallFrame(const MachineFunction ) const {
+@@ -90,7 +92,8 @@ bool X86FrameLowering::hasFP(const 

UPDATE: LLVM

2019-02-04 Thread Brad Smith
Re-merge the -msave-args diff plus fix and add a diff to make use
of pthread_get_name_np.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.210
diff -u -p -u -p -r1.210 Makefile
--- Makefile3 Feb 2019 18:29:48 -   1.210
+++ Makefile4 Feb 2019 22:22:21 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =3
+REVISION-main =4
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-include_llvm_BinaryFormat_Dwarf_def
===
RCS file: patches/patch-include_llvm_BinaryFormat_Dwarf_def
diff -N patches/patch-include_llvm_BinaryFormat_Dwarf_def
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-include_llvm_BinaryFormat_Dwarf_def   5 Feb 2019 00:34:58 
-
@@ -0,0 +1,16 @@
+$OpenBSD: patch-include_llvm_BinaryFormat_Dwarf_def,v 1.1 2019/01/31 13:40:22 
jca Exp $
+
+implement -msave-args in clang/llvm, like the sun did for gcc 
+
+Index: include/llvm/BinaryFormat/Dwarf.def
+--- include/llvm/BinaryFormat/Dwarf.def.orig
 include/llvm/BinaryFormat/Dwarf.def
+@@ -355,6 +355,8 @@ HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
+ HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
+ HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
+ HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
++// Sun Extension
++HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, GNU)
+ // Borland extensions.
+ HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
+ HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
Index: patches/patch-lib_Support_Unix_Threading_inc
===
RCS file: patches/patch-lib_Support_Unix_Threading_inc
diff -N patches/patch-lib_Support_Unix_Threading_inc
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Support_Unix_Threading_inc4 Feb 2019 22:28:22 
-
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Make use of pthread_get_name_np() to retrieve the thread name.
+
+Index: lib/Support/Unix/Threading.inc
+--- lib/Support/Unix/Threading.inc.orig
 lib/Support/Unix/Threading.inc
+@@ -203,6 +203,12 @@ void llvm::get_thread_name(SmallVectorImpl 
+   ::pthread_getname_np(::pthread_self(), buf, len);
+ 
+   Name.append(buf, buf + strlen(buf));
++#elif defined(__OpenBSD__)
++  constexpr uint32_t len = get_max_thread_name_length_impl();
++  char buf[len];
++  ::pthread_get_name_np(::pthread_self(), buf, len);
++
++  Name.append(buf, buf + strlen(buf));
+ #elif defined(__linux__)
+ #if HAVE_PTHREAD_GETNAME_NP
+   constexpr uint32_t len = get_max_thread_name_length_impl();
Index: patches/patch-lib_Target_X86_X86FrameLowering_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FrameLowering_cpp,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-lib_Target_X86_X86FrameLowering_cpp
--- patches/patch-lib_Target_X86_X86FrameLowering_cpp   3 Feb 2019 18:29:48 
-   1.5
+++ patches/patch-lib_Target_X86_X86FrameLowering_cpp   5 Feb 2019 00:34:58 
-
@@ -1,4 +1,4 @@
-$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.5 2019/02/03 18:29:48 
jca Exp $
+$OpenBSD: patch-lib_Target_X86_X86FrameLowering_cpp,v 1.4 2019/01/31 13:40:22 
jca Exp $
 
 - Add RETGUARD to clang for amd64. This security mechanism uses per-function
   random cookies to protect access to function return instructions, with the
@@ -18,6 +18,7 @@ $OpenBSD: patch-lib_Target_X86_X86FrameL
   jumping into the instruction stream partway through other instructions. Work 
to
   remove these gadgets will continue through other mechanisms.
 - Refactor retguard to make adding additional arches easier.
+- implement -msave-args in clang/llvm, like the sun did for gcc
 
 Index: lib/Target/X86/X86FrameLowering.cpp
 --- lib/Target/X86/X86FrameLowering.cpp.orig
@@ -39,7 +40,153 @@ Index: lib/Target/X86/X86FrameLowering.c
// Cache a bunch of frame-related predicates for this subtarget.
SlotSize = TRI->getSlotSize();
Is64Bit = STI.is64Bit();
-@@ -3153,4 +3154,8 @@ void X86FrameLowering::processFunctionBeforeFrameFinal
+@@ -47,6 +48,7 @@ X86FrameLowering::X86FrameLowering(const X86Subtarget 
+   // standard x86_64 and NaCl use 64-bit frame/stack pointers, x32 - 32-bit.
+   Uses64BitFramePtr = STI.isTarget64BitLP64() || STI.isTargetNaCl64();
+   StackPtr = TRI->getStackRegister();
++  SaveArgs = Is64Bit ? STI.getSaveArgs() : 0;
+ }
+ 
+ bool X86FrameLowering::hasReservedCallFrame(const MachineFunction ) const {
+@@ -90,7 +92,8 @@ bool X86FrameLowering::hasFP(const MachineFunction 
+   MF.getInfo()->getForceFramePointer() ||
+   MF.callsUnwindInit() || MF.hasEHFunclets() || 

Re: UPDATE: LLVM # -msave-args # lang/rust broken

2019-02-03 Thread Jeremie Courreges-Anglas
On Sun, Feb 03 2019, Sebastien Marie  wrote:
> On Wed, Jan 30, 2019 at 05:29:53PM -0500, Brad Smith wrote:
>> Pull in the save-args patch from base.
>
> with this llvm change, lang/rust is broken. it is not able to recompile
> itself (`cd /usr/ports/lang/rust && make' fail).
>
> if I backout the change on devel/llvm, it build again.
> (I am Cc dlg@ as the diff comes from base)
>
> error occurs at end of the build (in first steps, it uses bootstrapper
> to build compiler, and later it will use the rustc binary it just
> compiled, using llvm libs).
>
> example of errors:
> - signal: 11, SIGSEGV: invalid memory reference
> - rustc(71476) in free(): bogus pointer (double free?) 0x3c24548b44d88941
> - signal: 10, SIGBUS: access to undefined memory
> - signal: 6, SIGABRT: process abort signal
>
> A build log is available at 
> https://exopi.bsdfrog.org/logs/latest/packages/rust-1.32.0p1.log
>
> it affects only amd64 and not i386 (for aarch64 I dunno).

Sorry for the trouble, I have backed out the -msave-args addition in
devel/llvm.

Note to self: lang/rust is a very good testsuite for devel/llvm!

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM # -msave-args # lang/rust broken

2019-02-03 Thread Sebastien Marie
On Wed, Jan 30, 2019 at 05:29:53PM -0500, Brad Smith wrote:
> Pull in the save-args patch from base.

with this llvm change, lang/rust is broken. it is not able to recompile
itself (`cd /usr/ports/lang/rust && make' fail).

if I backout the change on devel/llvm, it build again.
(I am Cc dlg@ as the diff comes from base)

error occurs at end of the build (in first steps, it uses bootstrapper
to build compiler, and later it will use the rustc binary it just
compiled, using llvm libs).

example of errors:
- signal: 11, SIGSEGV: invalid memory reference
- rustc(71476) in free(): bogus pointer (double free?) 0x3c24548b44d88941
- signal: 10, SIGBUS: access to undefined memory
- signal: 6, SIGABRT: process abort signal

A build log is available at 
https://exopi.bsdfrog.org/logs/latest/packages/rust-1.32.0p1.log

it affects only amd64 and not i386 (for aarch64 I dunno).

Any help will be appreciate as I am unsure to have enough background to
understand the changes introduced by -msave-args stuff.

Some comments in the diff anyway. I will do some tests, but as it takes
ages to rebuild llvm and rustc...

Please note that rustc doesn't use -msave-args to my knowledge, so I
am only looking at modified code path in general case.

> Index: patches/patch-lib_Target_X86_X86FrameLowering_cpp
> ===
> RCS file: 
> /home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FrameLowering_cpp,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-lib_Target_X86_X86FrameLowering_cpp
> --- patches/patch-lib_Target_X86_X86FrameLowering_cpp 28 Jan 2019 06:27:28 
> -  1.3
> +++ patches/patch-lib_Target_X86_X86FrameLowering_cpp 30 Jan 2019 19:27:30 
> -
> +@@ -1618,20 +1676,6 @@ void X86FrameLowering::emitEpilogue(MachineFunction 
> +   }
> +   uint64_t SEHStackAllocAmt = NumBytes;
> + 
> +-  if (HasFP) {
> +-// Pop EBP.
> +-BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::POP64r : X86::POP32r),
> +-MachineFramePtr)
> +-.setMIFlag(MachineInstr::FrameDestroy);
> +-if (NeedsDwarfCFI) {
> +-  unsigned DwarfStackPtr =
> +-  TRI->getDwarfRegNum(Is64Bit ? X86::RSP : X86::ESP, true);
> +-  BuildCFI(MBB, MBBI, DL, MCCFIInstruction::createDefCfa(
> +-  nullptr, DwarfStackPtr, -SlotSize));
> +-  --MBBI;
> +-}
> +-  }
> +-
> +   MachineBasicBlock::iterator FirstCSPop = MBBI;
> +   // Skip the callee-saved pop instructions.
> +   while (MBBI != MBB.begin()) {
> +@@ -1701,6 +1745,28 @@ void X86FrameLowering::emitEpilogue(MachineFunction 
> + --MBBI;
> +   }
> + 
> ++  if (HasFP) {
> ++MBBI = Terminator;

here, MBBI is explicitly assigned to Terminator. It wasn't the case
before in this code path.

Maybe it should be moved to `if (X86FI->getSaveArgSize())' case only ?

> ++
> ++if (X86FI->getSaveArgSize()) {
> ++  // LEAVE is effectively mov rbp,rsp; pop rbp
> ++  BuildMI(MBB, MBBI, DL, TII.get(X86::LEAVE64), MachineFramePtr)
> ++.setMIFlag(MachineInstr::FrameDestroy);
> ++} else {
> ++  // Pop EBP.
> ++  BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::POP64r : X86::POP32r),
> ++  MachineFramePtr)
> ++  .setMIFlag(MachineInstr::FrameDestroy);
> ++}
> ++if (NeedsDwarfCFI) {
> ++  unsigned DwarfStackPtr =
> ++  TRI->getDwarfRegNum(Is64Bit ? X86::RSP : X86::ESP, true);
> ++  BuildCFI(MBB, MBBI, DL, MCCFIInstruction::createDefCfa(
> ++  nullptr, DwarfStackPtr, -SlotSize));
> ++  --MBBI;
> ++}
> ++  }
> ++
> +   // Windows unwinder will not invoke function's exception handler if IP is
> +   // either in prologue or in epilogue.  This behavior causes a problem 
> when a
> +   // call immediately precedes an epilogue, because the return address 
> points
> +@@ -1789,6 +1855,8 @@ int X86FrameLowering::getFrameIndexReference(const Mac
> +"FPDelta isn't aligned per the Win64 ABI!");
> +   }
> + 
> ++  if (FI >= 0)
> ++Offset -= X86FI->getSaveArgSize();
> + 
> +   if (TRI->hasBasePointer(MF)) {
> + assert(HasFP && "VLAs and dynamic stack realign, but no FP?!");
> +@@ -3153,4 +3221,8 @@ void X86FrameLowering::processFunctionBeforeFrameFinal
> addFrameReference(BuildMI(MBB, MBBI, DL, TII.get(X86::MOV64mi32)),
>   UnwindHelpFI)
> .addImm(-2);

-- 
Sebastien Marie



UPDATE: LLVM

2019-01-30 Thread Brad Smith
Pull in the save-args patch from base.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.208
diff -u -p -u -p -r1.208 Makefile
--- Makefile30 Jan 2019 07:36:06 -  1.208
+++ Makefile30 Jan 2019 17:15:57 -
@@ -20,7 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =1
+REVISION-main =2
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-include_llvm_BinaryFormat_Dwarf_def
===
RCS file: patches/patch-include_llvm_BinaryFormat_Dwarf_def
diff -N patches/patch-include_llvm_BinaryFormat_Dwarf_def
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-include_llvm_BinaryFormat_Dwarf_def   30 Jan 2019 19:26:16 
-
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+implement -msave-args in clang/llvm, like the sun did for gcc 
+
+Index: include/llvm/BinaryFormat/Dwarf.def
+--- include/llvm/BinaryFormat/Dwarf.def.orig
 include/llvm/BinaryFormat/Dwarf.def
+@@ -355,6 +355,8 @@ HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
+ HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
+ HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
+ HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
++// Sun Extension
++HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, GNU)
+ // Borland extensions.
+ HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
+ HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
Index: patches/patch-lib_Target_X86_X86FrameLowering_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_Target_X86_X86FrameLowering_cpp,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-lib_Target_X86_X86FrameLowering_cpp
--- patches/patch-lib_Target_X86_X86FrameLowering_cpp   28 Jan 2019 06:27:28 
-  1.3
+++ patches/patch-lib_Target_X86_X86FrameLowering_cpp   30 Jan 2019 19:27:30 
-
@@ -18,6 +18,7 @@ $OpenBSD: patch-lib_Target_X86_X86FrameL
   jumping into the instruction stream partway through other instructions. Work 
to
   remove these gadgets will continue through other mechanisms.
 - Refactor retguard to make adding additional arches easier.
+- implement -msave-args in clang/llvm, like the sun did for gcc
 
 Index: lib/Target/X86/X86FrameLowering.cpp
 --- lib/Target/X86/X86FrameLowering.cpp.orig
@@ -39,7 +40,153 @@ Index: lib/Target/X86/X86FrameLowering.c
// Cache a bunch of frame-related predicates for this subtarget.
SlotSize = TRI->getSlotSize();
Is64Bit = STI.is64Bit();
-@@ -3153,4 +3154,8 @@ void X86FrameLowering::processFunctionBeforeFrameFinal
+@@ -47,6 +48,7 @@ X86FrameLowering::X86FrameLowering(const X86Subtarget 
+   // standard x86_64 and NaCl use 64-bit frame/stack pointers, x32 - 32-bit.
+   Uses64BitFramePtr = STI.isTarget64BitLP64() || STI.isTargetNaCl64();
+   StackPtr = TRI->getStackRegister();
++  SaveArgs = Is64Bit ? STI.getSaveArgs() : 0;
+ }
+ 
+ bool X86FrameLowering::hasReservedCallFrame(const MachineFunction ) const {
+@@ -90,7 +92,8 @@ bool X86FrameLowering::hasFP(const MachineFunction 
+   MF.getInfo()->getForceFramePointer() ||
+   MF.callsUnwindInit() || MF.hasEHFunclets() || MF.callsEHReturn() ||
+   MFI.hasStackMap() || MFI.hasPatchPoint() ||
+-  MFI.hasCopyImplyingStackAdjustment());
++  MFI.hasCopyImplyingStackAdjustment() ||
++  SaveArgs);
+ }
+ 
+ static unsigned getSUBriOpcode(unsigned IsLP64, int64_t Imm) {
+@@ -871,6 +874,24 @@ void X86FrameLowering::BuildStackAlignAND(MachineBasic
+   MI->getOperand(3).setIsDead();
+ }
+ 
++// FIXME: Get this from tablegen.
++static ArrayRef get64BitArgumentGPRs(CallingConv::ID CallConv,
++const X86Subtarget 
) {
++  assert(Subtarget.is64Bit());
++
++  if (Subtarget.isCallingConvWin64(CallConv)) {
++static const MCPhysReg GPR64ArgRegsWin64[] = {
++  X86::RCX, X86::RDX, X86::R8,  X86::R9
++};
++return makeArrayRef(std::begin(GPR64ArgRegsWin64), 
std::end(GPR64ArgRegsWin64));
++  }
++
++  static const MCPhysReg GPR64ArgRegs64Bit[] = {
++X86::RDI, X86::RSI, X86::RDX, X86::RCX, X86::R8, X86::R9
++  };
++  return makeArrayRef(std::begin(GPR64ArgRegs64Bit), 
std::end(GPR64ArgRegs64Bit));
++}
++
+ /// emitPrologue - Push callee-saved registers onto the stack, which
+ /// automatically adjust the stack pointer. Adjust the stack pointer to 
allocate
+ /// space for local variables. Also emit labels used by the exception handler 
to
+@@ -1153,6 +1174,43 @@ void X86FrameLowering::emitPrologue(MachineFunction 
+ nullptr, DwarfFramePtr));
+   }
+ 
++  if (SaveArgs && !Fn.arg_empty()) {
++ArrayRef GPRs =
++  

Re: UPDATE: LLVM

2019-01-28 Thread Jeremie Courreges-Anglas
On Mon, Jan 28 2019, Brad Smith  wrote:
> On Mon, Jan 28, 2019 at 03:38:38AM -0500, Brad Smith wrote:
>> Merge in the other bits I had in the last diff I posted.
>> 
>> - Simplify a patch
>> - Add -z interpose
>> - 4 patches from patrick's tree for Clang/lld
>
> And the i386 lld fix.

Thanks, will test and commit.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



Re: UPDATE: LLVM

2019-01-28 Thread Brad Smith
On Mon, Jan 28, 2019 at 03:38:38AM -0500, Brad Smith wrote:
> Merge in the other bits I had in the last diff I posted.
> 
> - Simplify a patch
> - Add -z interpose
> - 4 patches from patrick's tree for Clang/lld

And the i386 lld fix.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.206
diff -u -p -u -p -r1.206 Makefile
--- Makefile28 Jan 2019 06:27:28 -  1.206
+++ Makefile28 Jan 2019 08:15:46 -
@@ -20,6 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
+REVISION-main =0
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_MC_MCParser_AsmParser_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_MC_MCParser_AsmParser_cpp,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-lib_MC_MCParser_AsmParser_cpp
--- patches/patch-lib_MC_MCParser_AsmParser_cpp 28 Jan 2019 06:27:28 -  
1.5
+++ patches/patch-lib_MC_MCParser_AsmParser_cpp 28 Jan 2019 08:08:50 -
@@ -11,22 +11,14 @@ a file directive.
 Index: lib/MC/MCParser/AsmParser.cpp
 --- lib/MC/MCParser/AsmParser.cpp.orig
 +++ lib/MC/MCParser/AsmParser.cpp
-@@ -858,6 +858,8 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
-   AsmCond StartingCondState = TheCondState;
-   SmallVector AsmStrRewrites;
- 
-+  StringRef Filename = getContext().getMainFileName();
-+
-   // If we are generating dwarf for assembly source files save the initial 
text
-   // section.  (Don't use enabledGenDwarfForAssembly() here, as we aren't
-   // emitting any actual debug info yet and haven't had a chance to parse any
-@@ -873,6 +875,9 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
- assert(InsertResult && ".text section should not have debug info yet");
+@@ -874,6 +874,10 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
  (void)InsertResult;
}
-+
+ 
++  StringRef Filename = getContext().getMainFileName();
 +  if (!Filename.empty() && (Filename.compare(StringRef("-")) != 0))
 +Out.EmitFileDirective(Filename);
- 
++
// While we have input, parse each statement.
while (Lexer.isNot(AsmToken::Eof)) {
+ ParseStatementInfo Info();
Index: patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
--- patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 28 Jan 2019 
06:27:28 -  1.7
+++ patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 28 Jan 2019 
08:09:12 -
@@ -162,7 +162,7 @@ Index: tools/clang/lib/Driver/ToolChains
 +  case ToolChain::CST_Libcxx:
 +CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++");
 +CmdArgs.push_back(Profiling ? "-lc++abi_p" : "-lc++abi");
-+CmdArgs.push_back("-lpthread");
++CmdArgs.push_back(Profiling ? "-lpthread_p" : "-lpthread");
 +break;
 +  case ToolChain::CST_Libstdcxx:
 +CmdArgs.push_back("-lestdc++");
Index: patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
===
RCS file: patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
diff -N patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp 28 Jan 2019 
08:06:37 -
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Index: tools/clang/lib/Frontend/InitHeaderSearch.cpp
+--- tools/clang/lib/Frontend/InitHeaderSearch.cpp.orig
 tools/clang/lib/Frontend/InitHeaderSearch.cpp
+@@ -431,14 +431,6 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths
+   case llvm::Triple::DragonFly:
+ AddPath("/usr/include/c++/5.0", CXXSystem, false);
+ break;
+-  case llvm::Triple::OpenBSD: {
+-std::string t = triple.getTriple();
+-if (t.substr(0, 6) == "x86_64")
+-  t.replace(0, 6, "amd64");
+-AddGnuCPlusPlusIncludePaths("/usr/include/g++",
+-t, "", "", triple);
+-break;
+-  }
+   case llvm::Triple::Minix:
+ AddGnuCPlusPlusIncludePaths("/usr/gnu/include/c++/4.4.3",
+ "", "", "", triple);
Index: patches/patch-tools_lld_ELF_Config_h
===
RCS file: patches/patch-tools_lld_ELF_Config_h
diff -N patches/patch-tools_lld_ELF_Config_h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_lld_ELF_Config_h28 Jan 2019 08:09:41 -
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+lld: add -z interpose support
+
+Index: 

UPDATE: LLVM

2019-01-28 Thread Brad Smith
Merge in the other bits I had in the last diff I posted.

- Simplify a patch
- Add -z interpose
- 4 patches from patrick's tree for Clang/lld


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.206
diff -u -p -u -p -r1.206 Makefile
--- Makefile28 Jan 2019 06:27:28 -  1.206
+++ Makefile28 Jan 2019 08:01:05 -
@@ -20,6 +20,7 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
+REVISION-main =0
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
Index: patches/patch-lib_MC_MCParser_AsmParser_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_MC_MCParser_AsmParser_cpp,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-lib_MC_MCParser_AsmParser_cpp
--- patches/patch-lib_MC_MCParser_AsmParser_cpp 28 Jan 2019 06:27:28 -  
1.5
+++ patches/patch-lib_MC_MCParser_AsmParser_cpp 28 Jan 2019 08:08:50 -
@@ -11,22 +11,14 @@ a file directive.
 Index: lib/MC/MCParser/AsmParser.cpp
 --- lib/MC/MCParser/AsmParser.cpp.orig
 +++ lib/MC/MCParser/AsmParser.cpp
-@@ -858,6 +858,8 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
-   AsmCond StartingCondState = TheCondState;
-   SmallVector AsmStrRewrites;
- 
-+  StringRef Filename = getContext().getMainFileName();
-+
-   // If we are generating dwarf for assembly source files save the initial 
text
-   // section.  (Don't use enabledGenDwarfForAssembly() here, as we aren't
-   // emitting any actual debug info yet and haven't had a chance to parse any
-@@ -873,6 +875,9 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
- assert(InsertResult && ".text section should not have debug info yet");
+@@ -874,6 +874,10 @@ bool AsmParser::Run(bool NoInitialTextSection, bool No
  (void)InsertResult;
}
-+
+ 
++  StringRef Filename = getContext().getMainFileName();
 +  if (!Filename.empty() && (Filename.compare(StringRef("-")) != 0))
 +Out.EmitFileDirective(Filename);
- 
++
// While we have input, parse each statement.
while (Lexer.isNot(AsmToken::Eof)) {
+ ParseStatementInfo Info();
Index: patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp
--- patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 28 Jan 2019 
06:27:28 -  1.7
+++ patches/patch-tools_clang_lib_Driver_ToolChains_OpenBSD_cpp 28 Jan 2019 
08:09:12 -
@@ -162,7 +162,7 @@ Index: tools/clang/lib/Driver/ToolChains
 +  case ToolChain::CST_Libcxx:
 +CmdArgs.push_back(Profiling ? "-lc++_p" : "-lc++");
 +CmdArgs.push_back(Profiling ? "-lc++abi_p" : "-lc++abi");
-+CmdArgs.push_back("-lpthread");
++CmdArgs.push_back(Profiling ? "-lpthread_p" : "-lpthread");
 +break;
 +  case ToolChain::CST_Libstdcxx:
 +CmdArgs.push_back("-lestdc++");
Index: patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
===
RCS file: patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
diff -N patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_lib_Frontend_InitHeaderSearch_cpp 28 Jan 2019 
08:06:37 -
@@ -0,0 +1,20 @@
+$OpenBSD$
+
+Index: tools/clang/lib/Frontend/InitHeaderSearch.cpp
+--- tools/clang/lib/Frontend/InitHeaderSearch.cpp.orig
 tools/clang/lib/Frontend/InitHeaderSearch.cpp
+@@ -431,14 +431,6 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths
+   case llvm::Triple::DragonFly:
+ AddPath("/usr/include/c++/5.0", CXXSystem, false);
+ break;
+-  case llvm::Triple::OpenBSD: {
+-std::string t = triple.getTriple();
+-if (t.substr(0, 6) == "x86_64")
+-  t.replace(0, 6, "amd64");
+-AddGnuCPlusPlusIncludePaths("/usr/include/g++",
+-t, "", "", triple);
+-break;
+-  }
+   case llvm::Triple::Minix:
+ AddGnuCPlusPlusIncludePaths("/usr/gnu/include/c++/4.4.3",
+ "", "", "", triple);
Index: patches/patch-tools_lld_ELF_Config_h
===
RCS file: patches/patch-tools_lld_ELF_Config_h
diff -N patches/patch-tools_lld_ELF_Config_h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_lld_ELF_Config_h28 Jan 2019 08:09:41 -
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+lld: add -z interpose support
+
+Index: tools/lld/ELF/Config.h
+--- tools/lld/ELF/Config.h.orig
 tools/lld/ELF/Config.h
+@@ -182,6 +182,7 @@ 

Re: UPDATE: LLVM

2019-01-13 Thread Brad Smith

On 1/13/2019 3:32 PM, Jeremie Courreges-Anglas wrote:


On Sun, Jan 13 2019, Brad Smith  wrote:

Sync in bits from base.

Thanks, tests ongoing.

While here: I plan to work on an update to llvm-7.0.1 soonish (like,
in the next couple of days).  If you or other folks already have a diff,
please let me know. :)


I have had a diff in my tree for awhile but I would have to update / 
re-merge it. Last
time I was playing around the compiler was crashing and I think it was 
something
from base that was causing the crashing, but at the time I didn't spend 
anytime looking
into it. It was more so to see how far I could get merging patches and 
getting it to

build as a first step.



Re: UPDATE: LLVM

2019-01-13 Thread Jeremie Courreges-Anglas
On Sun, Jan 13 2019, Brad Smith  wrote:
> Sync in bits from base.

Thanks, tests ongoing.

While here: I plan to work on an update to llvm-7.0.1 soonish (like,
in the next couple of days).  If you or other folks already have a diff,
please let me know. :)

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE



UPDATE: LLVM

2019-01-13 Thread Brad Smith
Sync in bits from base.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.204
diff -u -p -u -p -r1.204 Makefile
--- Makefile5 Jan 2019 11:38:49 -   1.204
+++ Makefile12 Jan 2019 00:30:58 -
@@ -20,9 +20,9 @@ PKGSPEC-main =llvm-=${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
 PKGNAME-lldb = lldb-${LLVM_V}
-REVISION-main =22
-REVISION-python = 4
-REVISION-lldb =1
+REVISION-main =23
+REVISION-python = 5
+REVISION-lldb =2
 CATEGORIES =   devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
@@ -87,6 +87,15 @@ CONFIGURE_ARGS = -DLLVM_ENABLE_FFI:Bool=
-DLLVM_BUILD_LLVM_DYLIB:Bool=True \
-DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND \
-DBacktrace_LIBRARY=''
+
+# Disable some protections in the compiler to regain performance
+.if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \
+${MACHINE_ARCH} == "i386"
+CXXFLAGS +=-fno-ret-protector
+.endif
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
+CXXFLAGS +=-mno-retpoline
+.endif
 
 # Workaround relocation overflow
 .if ${MACHINE_ARCH} == "powerpc"
Index: patches/patch-lib_Target_X86_X86Subtarget_cpp
===
RCS file: patches/patch-lib_Target_X86_X86Subtarget_cpp
diff -N patches/patch-lib_Target_X86_X86Subtarget_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86Subtarget_cpp   13 Jan 2019 19:37:30 
-
@@ -0,0 +1,22 @@
+$OpenBSD$
+
+Turn on -mretpoline by default in clang on amd64.
+
+Index: lib/Target/X86/X86Subtarget.cpp
+--- lib/Target/X86/X86Subtarget.cpp.orig
 lib/Target/X86/X86Subtarget.cpp
+@@ -207,6 +207,14 @@ void X86Subtarget::initSubtargetFeatures(StringRef CPU
+   FullFS = "+sahf";
+   }
+ 
++  // OpenBSD/amd64 defaults to -mretpoline.
++  if (isTargetOpenBSD() && In64BitMode) {
++if (!FullFS.empty())
++  FullFS = "+retpoline," + FullFS;
++else
++  FullFS = "+retpoline";
++  }
++
+   // Parse features string and set the CPU.
+   ParseSubtargetFeatures(CPUName, FullFS);
+ 
Index: patches/patch-lib_Target_X86_X86Subtarget_h
===
RCS file: patches/patch-lib_Target_X86_X86Subtarget_h
diff -N patches/patch-lib_Target_X86_X86Subtarget_h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_X86_X86Subtarget_h 13 Jan 2019 19:37:40 -
@@ -0,0 +1,15 @@
+$OpenBSD$
+
+Turn on -mretpoline by default in clang on amd64.
+
+Index: lib/Target/X86/X86Subtarget.h
+--- lib/Target/X86/X86Subtarget.h.orig
 lib/Target/X86/X86Subtarget.h
+@@ -603,6 +603,7 @@ class X86Subtarget final : public X86GenSubtargetInfo 
+ 
+   bool isTargetDarwin() const { return TargetTriple.isOSDarwin(); }
+   bool isTargetFreeBSD() const { return TargetTriple.isOSFreeBSD(); }
++  bool isTargetOpenBSD() const { return TargetTriple.isOSOpenBSD(); }
+   bool isTargetDragonFly() const { return TargetTriple.isOSDragonFly(); }
+   bool isTargetSolaris() const { return TargetTriple.isOSSolaris(); }
+   bool isTargetPS4() const { return TargetTriple.isPS4CPU(); }
Index: patches/patch-tools_clang_include_clang_Analysis_Analyses_FormatString_h
===
RCS file: 
patches/patch-tools_clang_include_clang_Analysis_Analyses_FormatString_h
diff -N patches/patch-tools_clang_include_clang_Analysis_Analyses_FormatString_h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_include_clang_Analysis_Analyses_FormatString_h
12 Jan 2019 22:57:25 -
@@ -0,0 +1,22 @@
+$OpenBSD$
+
+The %b printf extension in the kernel is not fixed to a int type. On sparc64
+there are various %llb formats. Adjust the code to handle the length specifiers
+and type check like it is used by the regular case.
+
+Index: tools/clang/include/clang/Analysis/Analyses/FormatString.h
+--- tools/clang/include/clang/Analysis/Analyses/FormatString.h.orig
 tools/clang/include/clang/Analysis/Analyses/FormatString.h
+@@ -227,8 +227,10 @@ class ConversionSpecifier { (public)
+ 
+   bool isIntArg() const { return (kind >= IntArgBeg && kind <= IntArgEnd) ||
+ kind == FreeBSDrArg || kind == FreeBSDyArg; }
+-  bool isUIntArg() const { return kind >= UIntArgBeg && kind <= UIntArgEnd; }
+-  bool isAnyIntArg() const { return kind >= IntArgBeg && kind <= UIntArgEnd; }
++  bool isUIntArg() const { return (kind >= UIntArgBeg && kind <= UIntArgEnd) 
||
++kind == FreeBSDbArg; }
++  bool isAnyIntArg() const { return (kind >= IntArgBeg && kind <= UIntArgEnd) 
||
++kind == FreeBSDbArg; }
+   bool isDoubleArg() const {
+ return kind >= DoubleArgBeg && kind <= DoubleArgEnd;
+   }
Index: 

Re: update llvm to 4.0.0

2017-03-14 Thread Robert Nagy
On (2017-03-14 18:50), Antoine Jacoutot wrote:
> It's been updated minutes before I got your mail :)
> Could you provide a diff to the intree version ?

Haha, sure:

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.138
diff -u -p -u -r1.138 Makefile
--- Makefile14 Mar 2017 17:29:45 -  1.138
+++ Makefile14 Mar 2017 17:56:34 -
@@ -20,6 +20,7 @@ CATEGORIES =  devel
 DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
cfe-${LLVM_V}.src${EXTRACT_SUFX} \
lld-${LLVM_V}.src${EXTRACT_SUFX}
+DIST_SUBDIR =  llvm
 MASTER_SITES = http://www.llvm.org/releases/${LLVM_V}/
 EXTRACT_SUFX = .tar.xz
 
Index: distinfo
===
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.21
diff -u -p -u -r1.21 distinfo
--- distinfo14 Mar 2017 17:29:45 -  1.21
+++ distinfo14 Mar 2017 17:56:34 -
@@ -1,6 +1,6 @@
-SHA256 (cfe-4.0.0.src.tar.xz) = zqX4jr3bMOKWyokTDIO51GwtgzaF4pEjA8goBUxNyYo=
-SHA256 (lld-4.0.0.src.tar.xz) = M+BkV7nOBWPImxHMx8yr+c/3G4NXGYWlv4aEyRUOdQI=
-SHA256 (llvm-4.0.0.src.tar.xz) = jRBRHfluc7j/nnq7+01NQy7b2+ll8fTwevrzcLilM74=
-SIZE (cfe-4.0.0.src.tar.xz) = 10900916
-SIZE (lld-4.0.0.src.tar.xz) = 592728
-SIZE (llvm-4.0.0.src.tar.xz) = 21016340
+SHA256 (llvm/cfe-4.0.0.src.tar.xz) = 
zqX4jr3bMOKWyokTDIO51GwtgzaF4pEjA8goBUxNyYo=
+SHA256 (llvm/lld-4.0.0.src.tar.xz) = 
M+BkV7nOBWPImxHMx8yr+c/3G4NXGYWlv4aEyRUOdQI=
+SHA256 (llvm/llvm-4.0.0.src.tar.xz) = 
jRBRHfluc7j/nnq7+01NQy7b2+ll8fTwevrzcLilM74=
+SIZE (llvm/cfe-4.0.0.src.tar.xz) = 10900916
+SIZE (llvm/lld-4.0.0.src.tar.xz) = 592728
+SIZE (llvm/llvm-4.0.0.src.tar.xz) = 21016340



Re: update llvm to 4.0.0

2017-03-14 Thread Antoine Jacoutot
On March 14, 2017 6:46:17 PM GMT+01:00, Robert Nagy  wrote:
>Hi
>
>This diff updates llvm to 4.0.0 in ports. I've also changed the port to
>use the official distfiles instead of our own crafted one, because I
>prefer it this way.
>
>Index: Makefile
>===
>RCS file: /cvs/ports/devel/llvm/Makefile,v
>retrieving revision 1.137
>diff -u -p -u -r1.137 Makefile
>--- Makefile   1 Mar 2017 08:55:28 -   1.137
>+++ Makefile   14 Mar 2017 17:45:37 -
>@@ -11,16 +11,18 @@ MULTI_PACKAGES =   -main -python
>COMMENT-main = modular, fast C/C++/ObjC compiler, static analyzer and
>tools
> COMMENT-python =  Python bindings for Clang
> 
>-LLVM_V =  4.0.0rc2
>+LLVM_V =  4.0.0
> DISTNAME =llvm-${LLVM_V}.src
> PKGNAME = llvm-${LLVM_V}
> PKGNAME-main =llvm-${LLVM_V}
> PKGNAME-python =  py-llvm-${LLVM_V}
>-REVISION-main =   4
> CATEGORIES =  devel
>-DISTFILES =   llvm-${LLVM_V}.src${EXTRACT_SUFX}
>-MASTER_SITES =http://comstyle.com/source/
>+DISTFILES =   llvm-${LLVM_V}.src${EXTRACT_SUFX} \
>+  cfe-${LLVM_V}.src${EXTRACT_SUFX} \
>+  lld-${LLVM_V}.src${EXTRACT_SUFX}
>+MASTER_SITES =http://releases.llvm.org/${LLVM_V}/
> EXTRACT_SUFX =.tar.xz
>+DIST_SUBDIR = llvm
> 
> SHARED_LIBS = clang   5.0 \
>   LTO 2.0
>@@ -86,6 +88,10 @@ GCC_CONFIG =${MACHINE_ARCH}-unknown-op
> .endif
> CLANG_INCLUDE_PATH =  lib/clang/${LLVM_V:S/rc2//}/include
> SUBST_VARS += CLANG_INCLUDE_PATH LLVM_V GCC_VER GCC_CONFIG
>+
>+post-extract:
>+  @mv ${WRKDIR}/cfe-${LLVM_V}.src ${WRKSRC}/tools/clang
>+  @mv ${WRKDIR}/lld-${LLVM_V}.src ${WRKSRC}/tools/lld
> 
> pre-configure:
>   @${SUBST_CMD} ${WRKSRC}/tools/clang/lib/Driver/ToolChains.cpp \
>Index: distinfo
>===
>RCS file: /cvs/ports/devel/llvm/distinfo,v
>retrieving revision 1.20
>diff -u -p -u -r1.20 distinfo
>--- distinfo   10 Feb 2017 09:37:43 -  1.20
>+++ distinfo   14 Mar 2017 17:45:37 -
>@@ -1,2 +1,6 @@
>-SHA256 (llvm-4.0.0rc2.src.tar.xz) =
>dPSlLc7j5BTaUNB2sugoQMRRI66n4/PC1WmFyzOrk1g=
>-SIZE (llvm-4.0.0rc2.src.tar.xz) = 30756712
>+SHA256 (llvm/cfe-4.0.0.src.tar.xz) =
>zqX4jr3bMOKWyokTDIO51GwtgzaF4pEjA8goBUxNyYo=
>+SHA256 (llvm/lld-4.0.0.src.tar.xz) =
>M+BkV7nOBWPImxHMx8yr+c/3G4NXGYWlv4aEyRUOdQI=
>+SHA256 (llvm/llvm-4.0.0.src.tar.xz) =
>jRBRHfluc7j/nnq7+01NQy7b2+ll8fTwevrzcLilM74=
>+SIZE (llvm/cfe-4.0.0.src.tar.xz) = 10900916
>+SIZE (llvm/lld-4.0.0.src.tar.xz) = 592728
>+SIZE (llvm/llvm-4.0.0.src.tar.xz) = 21016340
>Index: patches/patch-tools_clang_lib_Driver_Tools_cpp
>===
>RCS file:
>/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_Tools_cpp,v
>retrieving revision 1.39
>diff -u -p -u -r1.39 patch-tools_clang_lib_Driver_Tools_cpp
>--- patches/patch-tools_clang_lib_Driver_Tools_cpp 20 Feb 2017 07:04:00
>-  1.39
>+++ patches/patch-tools_clang_lib_Driver_Tools_cpp 14 Mar 2017 17:45:37
>-
>@@ -1,4 +1,4 @@
>-$OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.39 2017/02/20
>07:04:00 ajacoutot Exp $
>+$OpenBSD$
> 
> - Select proper SPARCv9 variant for the external assembler
> - For now, force soft-float on ARM
>@@ -8,8 +8,8 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
> - Always use --eh-frame-hdr on OpenBSD, even for -static
> - Link static PIE programs against rcrt0.o on OpenBSD
> 
> tools/clang/lib/Driver/Tools.cpp.orig Wed Feb  8 20:35:18 2017
>-+++ tools/clang/lib/Driver/Tools.cpp  Sun Feb 19 17:41:04 2017
>+--- tools/clang/lib/Driver/Tools.cpp.orig Tue Feb 21 20:11:22 2017
> tools/clang/lib/Driver/Tools.cpp  Tue Mar 14 17:35:43 2017
>@@ -79,7 +79,7 @@ static const char *getSparcAsmModeForCPU(StringRef
>Nam
>.Case("niagara2", "-Av9b")
>.Case("niagara3", "-Av9d")
>@@ -101,18 +101,7 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
>  CmdArgs.push_back("-Bdynamic");
>  if (Args.hasArg(options::OPT_shared)) {
>CmdArgs.push_back("-shared");
>-@@ -8937,6 +8950,10 @@ void openbsd::Linker::ConstructJob(Compilation
>, con
>-   if (Args.hasArg(options::OPT_pg))
>- CmdArgs.push_back(
>-
>Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o")));
>-+  else if (Args.hasArg(options::OPT_static) &&
>-+   !Args.hasArg(options::OPT_nopie))
>-+CmdArgs.push_back(
>-+   
>Args.MakeArgString(getToolChain().GetFilePath("rcrt0.o")));
>-   else
>- CmdArgs.push_back(
>-
>Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));
>-@@ -8948,15 +8965,17 @@ void openbsd::Linker::ConstructJob(Compilation
>, con
>+@@ -8952,12 +8965,6 @@ void openbsd::Linker::ConstructJob(Compilation
>, con
>  }
>}
>  
>@@ -125,6 +114,21 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
>Args.AddAllArgs(CmdArgs, 

update llvm to 4.0.0

2017-03-14 Thread Robert Nagy
Hi

This diff updates llvm to 4.0.0 in ports. I've also changed the port to
use the official distfiles instead of our own crafted one, because I
prefer it this way.

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.137
diff -u -p -u -r1.137 Makefile
--- Makefile1 Mar 2017 08:55:28 -   1.137
+++ Makefile14 Mar 2017 17:45:37 -
@@ -11,16 +11,18 @@ MULTI_PACKAGES =-main -python
 COMMENT-main = modular, fast C/C++/ObjC compiler, static analyzer and tools
 COMMENT-python =   Python bindings for Clang
 
-LLVM_V =   4.0.0rc2
+LLVM_V =   4.0.0
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 PKGNAME-main = llvm-${LLVM_V}
 PKGNAME-python =   py-llvm-${LLVM_V}
-REVISION-main =4
 CATEGORIES =   devel
-DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX}
-MASTER_SITES = http://comstyle.com/source/
+DISTFILES =llvm-${LLVM_V}.src${EXTRACT_SUFX} \
+   cfe-${LLVM_V}.src${EXTRACT_SUFX} \
+   lld-${LLVM_V}.src${EXTRACT_SUFX}
+MASTER_SITES = http://releases.llvm.org/${LLVM_V}/
 EXTRACT_SUFX = .tar.xz
+DIST_SUBDIR =  llvm
 
 SHARED_LIBS =  clang   5.0 \
LTO 2.0
@@ -86,6 +88,10 @@ GCC_CONFIG = ${MACHINE_ARCH}-unknown-op
 .endif
 CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V:S/rc2//}/include
 SUBST_VARS +=  CLANG_INCLUDE_PATH LLVM_V GCC_VER GCC_CONFIG
+
+post-extract:
+   @mv ${WRKDIR}/cfe-${LLVM_V}.src ${WRKSRC}/tools/clang
+   @mv ${WRKDIR}/lld-${LLVM_V}.src ${WRKSRC}/tools/lld
 
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/lib/Driver/ToolChains.cpp \
Index: distinfo
===
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.20
diff -u -p -u -r1.20 distinfo
--- distinfo10 Feb 2017 09:37:43 -  1.20
+++ distinfo14 Mar 2017 17:45:37 -
@@ -1,2 +1,6 @@
-SHA256 (llvm-4.0.0rc2.src.tar.xz) = 
dPSlLc7j5BTaUNB2sugoQMRRI66n4/PC1WmFyzOrk1g=
-SIZE (llvm-4.0.0rc2.src.tar.xz) = 30756712
+SHA256 (llvm/cfe-4.0.0.src.tar.xz) = 
zqX4jr3bMOKWyokTDIO51GwtgzaF4pEjA8goBUxNyYo=
+SHA256 (llvm/lld-4.0.0.src.tar.xz) = 
M+BkV7nOBWPImxHMx8yr+c/3G4NXGYWlv4aEyRUOdQI=
+SHA256 (llvm/llvm-4.0.0.src.tar.xz) = 
jRBRHfluc7j/nnq7+01NQy7b2+ll8fTwevrzcLilM74=
+SIZE (llvm/cfe-4.0.0.src.tar.xz) = 10900916
+SIZE (llvm/lld-4.0.0.src.tar.xz) = 592728
+SIZE (llvm/llvm-4.0.0.src.tar.xz) = 21016340
Index: patches/patch-tools_clang_lib_Driver_Tools_cpp
===
RCS file: /cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_Tools_cpp,v
retrieving revision 1.39
diff -u -p -u -r1.39 patch-tools_clang_lib_Driver_Tools_cpp
--- patches/patch-tools_clang_lib_Driver_Tools_cpp  20 Feb 2017 07:04:00 
-  1.39
+++ patches/patch-tools_clang_lib_Driver_Tools_cpp  14 Mar 2017 17:45:37 
-
@@ -1,4 +1,4 @@
-$OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.39 2017/02/20 07:04:00 
ajacoutot Exp $
+$OpenBSD$
 
 - Select proper SPARCv9 variant for the external assembler
 - For now, force soft-float on ARM
@@ -8,8 +8,8 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
 - Always use --eh-frame-hdr on OpenBSD, even for -static
 - Link static PIE programs against rcrt0.o on OpenBSD
 
 tools/clang/lib/Driver/Tools.cpp.orig  Wed Feb  8 20:35:18 2017
-+++ tools/clang/lib/Driver/Tools.cpp   Sun Feb 19 17:41:04 2017
+--- tools/clang/lib/Driver/Tools.cpp.orig  Tue Feb 21 20:11:22 2017
 tools/clang/lib/Driver/Tools.cpp   Tue Mar 14 17:35:43 2017
 @@ -79,7 +79,7 @@ static const char *getSparcAsmModeForCPU(StringRef Nam
.Case("niagara2", "-Av9b")
.Case("niagara3", "-Av9d")
@@ -101,18 +101,7 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
  CmdArgs.push_back("-Bdynamic");
  if (Args.hasArg(options::OPT_shared)) {
CmdArgs.push_back("-shared");
-@@ -8937,6 +8950,10 @@ void openbsd::Linker::ConstructJob(Compilation , con
-   if (Args.hasArg(options::OPT_pg))
- CmdArgs.push_back(
- Args.MakeArgString(getToolChain().GetFilePath("gcrt0.o")));
-+  else if (Args.hasArg(options::OPT_static) &&
-+   !Args.hasArg(options::OPT_nopie))
-+CmdArgs.push_back(
-+Args.MakeArgString(getToolChain().GetFilePath("rcrt0.o")));
-   else
- CmdArgs.push_back(
- Args.MakeArgString(getToolChain().GetFilePath("crt0.o")));
-@@ -8948,15 +8965,17 @@ void openbsd::Linker::ConstructJob(Compilation , con
+@@ -8952,12 +8965,6 @@ void openbsd::Linker::ConstructJob(Compilation , con
  }
}
  
@@ -125,6 +114,21 @@ $OpenBSD: patch-tools_clang_lib_Driver_T
Args.AddAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
  options::OPT_e, options::OPT_s, options::OPT_t,
  options::OPT_Z_Flag, options::OPT_r});
+@@ -9067,6 

Re: UPDATE: LLVM 3.4

2014-04-01 Thread Jonathan Gray
On Mon, Jan 06, 2014 at 04:50:03PM -0500, Brad Smith wrote:
 Here is an update to LLVM 3.4.
 
 Any additional testing welcome.
 
 OK?

One thing I wasn't expecting when testing this was the new requirement
of linking against terminfo when linking the llvm libraries.

While this llvm update is apparently stalled due to breaking the build of
firefox on i386, if it were to go ahead in future perhaps it should be with:

-DLLVM_ENABLE_TERMINFO:Bool=False

added to CONFIGURE_ARGS.  Otherwise Mesa radeon drivers built against
llvm won't load due to missing del_curterm/set_curterm/setupterm/tigetnum
symbols.  Linking against the llvm 3.3 libraries did not have this problem.



Re: UPDATE: LLVM 3.4

2014-04-01 Thread Landry Breuil
On Tue, Apr 01, 2014 at 10:38:11PM +1100, Jonathan Gray wrote:
 On Mon, Jan 06, 2014 at 04:50:03PM -0500, Brad Smith wrote:
  Here is an update to LLVM 3.4.
  
  Any additional testing welcome.
  
  OK?
 
 One thing I wasn't expecting when testing this was the new requirement
 of linking against terminfo when linking the llvm libraries.
 
 While this llvm update is apparently stalled due to breaking the build of
 firefox on i386,

It is not, since i386 uses gcc again for firefox...



Re: UPDATE: LLVM 3.4

2014-04-01 Thread Brad Smith

On 01/04/14 7:38 AM, Jonathan Gray wrote:

On Mon, Jan 06, 2014 at 04:50:03PM -0500, Brad Smith wrote:

Here is an update to LLVM 3.4.

Any additional testing welcome.

OK?


One thing I wasn't expecting when testing this was the new requirement
of linking against terminfo when linking the llvm libraries.

While this llvm update is apparently stalled due to breaking the build of
firefox on i386, if it were to go ahead in future perhaps it should be with:


Thunderbird not Firefox, but the issue affects infrastructure common to
both projects.


-DLLVM_ENABLE_TERMINFO:Bool=False

added to CONFIGURE_ARGS.  Otherwise Mesa radeon drivers built against
llvm won't load due to missing del_curterm/set_curterm/setupterm/tigetnum
symbols.  Linking against the llvm 3.3 libraries did not have this problem.





--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Re: UPDATE: LLVM 3.4

2014-01-10 Thread Jonathan Gray
On Mon, Jan 06, 2014 at 04:50:03PM -0500, Brad Smith wrote:
 Here is an update to LLVM 3.4.
 
 Any additional testing welcome.
 
 OK?
 

Here is a diff that lets xenocara build with XENOCARA_BUILD_GALLIUM=llvm
using a commit from mesa git that doesn't seem to be in the 9.2 branch yet:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=749cb8909714fed57b0213f4ad92def3bb24f153

I have only built this on amd64 so far, not yet tested that
swrast (LLVMpipe) and the llvm enabled radeon drivers work.

Index: lib/libGL/gallium/Makefile.inc
===
RCS file: /cvs/xenocara/lib/libGL/gallium/Makefile.inc,v
retrieving revision 1.4
diff -u -p -r1.4 Makefile.inc
--- lib/libGL/gallium/Makefile.inc  5 Sep 2013 15:11:59 -   1.4
+++ lib/libGL/gallium/Makefile.inc  11 Jan 2014 01:43:54 -
@@ -32,7 +32,7 @@ lib${LIB}_pic.a: ${OBJS} ${DPADD}
 .if ${XENOCARA_BUILD_GALLIUM} == llvm
 
 # Remember to keep in sync with LLVM port's version.
-LLVM_VERSION=  0x303   # 3.3 
+LLVM_VERSION=  0x304   # 3.4
 LLVM_CONFIG?=  /usr/local/bin/llvm-config
 
 # ugh...
Index: dist/Mesa/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
===
RCS file: 
/cvs/xenocara/dist/Mesa/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp,v
retrieving revision 1.4
diff -u -p -r1.4 lp_bld_misc.cpp
--- dist/Mesa/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 5 Sep 2013 
13:59:36 -   1.4
+++ dist/Mesa/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 11 Jan 2014 
02:00:58 -
@@ -174,12 +174,14 @@ lp_set_target_options(void)
}
 #endif
 
+#if HAVE_LLVM  0x0304
/*
 * By default LLVM adds a signal handler to output a pretty stack trace.
 * This signal handler is never removed, causing problems when unloading the
 * shared object where the gallium driver resides.
 */
llvm::DisablePrettyStackTrace = true;
+#endif
 
// If we have a native target, initialize it to ensure it is linked in and
// usable by the JIT.



UPDATE: LLVM 3.4

2014-01-06 Thread Brad Smith
Here is an update to LLVM 3.4.

Any additional testing welcome.

OK?


Index: devel/llvm/Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.70
diff -u -p -u -p -r1.70 Makefile
--- devel/llvm/Makefile 16 Dec 2013 20:34:46 -  1.70
+++ devel/llvm/Makefile 6 Jan 2014 06:07:48 -
@@ -8,14 +8,13 @@ DPB_PROPERTIES = parallel
 
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
-LLVM_V =   3.3
-REVISION = 3
+LLVM_V =   3.4
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 CATEGORIES =   devel
 MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
 
-DISTFILES =${DISTNAME}${EXTRACT_SUFX} cfe-${LLVM_V}.src${EXTRACT_SUFX}
+DISTFILES =${DISTNAME}${EXTRACT_SUFX} clang-${LLVM_V}.src${EXTRACT_SUFX}
 
 SHARED_LIBS =  clang   0.0 # 3.2
 
@@ -25,9 +24,9 @@ HOMEPAGE =http://www.llvm.org/
 # BSD
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB =  c m pthread stdc++ z
+WANTLIB =  c curses m pthread stdc++ z
 
-WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}.src
+WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}
 
 MODULES =  devel/cmake \
lang/python
@@ -40,8 +39,7 @@ SEPARATE_BUILD =  Yes
 CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
-DLLVM_REQUIRES_RTTI:Bool=True \
-DCMAKE_BUILD_TYPE:String=Release \
-   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True \
-   -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:String=R600
+   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True
 
 # Workaround relocation overflow
 .if ${MACHINE_ARCH} == powerpc
@@ -54,7 +52,7 @@ CLANG_INCLUDE_PATH =  lib/clang/${LLVM_V}
 SUBST_VARS +=  CLANG_INCLUDE_PATH LLVM_V
 
 post-extract:
-   @mv ${WRKDIR}/cfe-${LLVM_V}.src ${WRKDIST}/tools/clang
+   @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
 
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
Index: devel/llvm/distinfo
===
RCS file: /home/cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 distinfo
--- devel/llvm/distinfo 21 Jun 2013 22:09:12 -  1.12
+++ devel/llvm/distinfo 6 Jan 2014 05:41:14 -
@@ -1,4 +1,4 @@
-SHA256 (cfe-3.3.src.tar.gz) = sbVd5Ks6V9PgMxqD4ChGEBkcd9kk40RkmNkRPQjfuZY=
-SHA256 (llvm-3.3.src.tar.gz) = aHZrHnDQWiXi9QLpl6PLOTcYejKWWVz24Jd9XNZydXg=
-SIZE (cfe-3.3.src.tar.gz) = 9425539
-SIZE (llvm-3.3.src.tar.gz) = 13602421
+SHA256 (clang-3.4.src.tar.gz) = Iql4DbO4Wn8uueoff24A2gJJ49EoUejeoPYvF4MkKxs=
+SHA256 (llvm-3.4.src.tar.gz) = JaVhLWksSEgbmzl+K1X0hw5EeWbWbJbWVSQXAtRKJig=
+SIZE (clang-3.4.src.tar.gz) = 10619607
+SIZE (llvm-3.4.src.tar.gz) = 15920544
Index: devel/llvm/patches/patch-CMakeLists_txt
===
RCS file: /home/cvs/ports/devel/llvm/patches/patch-CMakeLists_txt,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-CMakeLists_txt
--- devel/llvm/patches/patch-CMakeLists_txt 21 Jun 2013 22:09:12 -  
1.3
+++ devel/llvm/patches/patch-CMakeLists_txt 18 Dec 2013 02:04:40 -
@@ -2,14 +2,14 @@ $OpenBSD: patch-CMakeLists_txt,v 1.3 201
 
 Don't confuse scripts who want the version with appended 'svn' goo.
 
 CMakeLists.txt.origMon May  6 12:23:07 2013
-+++ CMakeLists.txt Tue Jun 18 23:00:44 2013
-@@ -13,7 +13,7 @@ set(CMAKE_MODULE_PATH
- set(LLVM_VERSION_MAJOR 3)
- set(LLVM_VERSION_MINOR 3)
+--- CMakeLists.txt.origMon Nov 25 13:34:26 2013
 CMakeLists.txt Wed Dec  4 03:41:41 2013
+@@ -14,7 +14,7 @@ set(LLVM_VERSION_MAJOR 3)
+ set(LLVM_VERSION_MINOR 4)
  
--set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn)
-+set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR})
+ if (NOT PACKAGE_VERSION)
+-  set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn)
++  set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR})
+ endif()
  
- option(LLVM_USE_FOLDERS Enable solution folders in Visual Studio. Disable 
for Express versions. ON)
- if ( LLVM_USE_FOLDERS )
+ option(LLVM_INSTALL_TOOLCHAIN_ONLY Only include toolchain files in the 
'install' target. OFF)
Index: devel/llvm/patches/patch-lib_CodeGen_StackProtector_cpp
===
RCS file: devel/llvm/patches/patch-lib_CodeGen_StackProtector_cpp
diff -N devel/llvm/patches/patch-lib_CodeGen_StackProtector_cpp
--- devel/llvm/patches/patch-lib_CodeGen_StackProtector_cpp 21 Jun 2013 
22:09:12 -  1.3
+++ /dev/null   1 Jan 1970 00:00:00 -
@@ -1,91 +0,0 @@
-$OpenBSD: patch-lib_CodeGen_StackProtector_cpp,v 1.3 2013/06/21 22:09:12 brad 
Exp $
 lib/CodeGen/StackProtector.cpp.origMon Mar  4 20:00:45 2013
-+++ lib/CodeGen/StackProtector.cpp Wed Jun  5 15:41:29 2013
-@@ -25,6 +25,8 @@
- 

Re: UPDATE: LLVM 3.3

2013-07-28 Thread Jonathan Gray
On Fri, Jul 19, 2013 at 03:00:37PM +0100, Stuart Henderson wrote:
 On 2013/07/19 23:39, Jonathan Gray wrote:
  On Thu, Jul 18, 2013 at 10:08:26AM -0700, Matthew Dempsky wrote:
   On Thu, Jul 18, 2013 at 9:56 AM, Stuart Henderson st...@openbsd.org 
   wrote:
   
On 2013/07/18 22:48, Jonathan Gray wrote:
  @comment lib/libgtest.a
  @comment lib/libgtest_main.a
 +lib/libgtest.so
 +lib/libgtest_main.so
   
presumably the above 4 lines want replacing with
   
@comment lib/libgtest.so
@comment lib/libgtest_main.so
   
...?
   
(not sure why this was originally commented, but presumably it should 
stay
commented?)
   
   
   Probably to avoid conflicting with devel/gtest, and I agree it should stay
   commented.
  
  yes, that was from update-plist and wasn't intentional.
  
  It seems using shared libraries may be significantly slowing down
  clang invocation.  Just clang -help seems to take a few seconds,
 
 Is --as-needed likely to help at all?
 
 | # without --as-needed, evolution takes 20 minutes (yes, 20!) to start
 | MODGNOME_LDFLAGS=   -L${X11BASE}/lib 
 -Wl,-rpath,${TRUEPREFIX}/lib/evolution/${R}:${TRUEPREFIX}/lib \
 | -Wl,--as-needed
 
  let alone compiling the  11,000 or so files in chromium...
 
 17 hours and I'm at 7827/11331... last build without this took 2.5 hours.

While I can't build mesa with llvm targets enabled via autotools without
shared llvm libraries it seems a seperate xenocara build of mesa with bsd
style makefiles is happy enough with the r600 parts as static libraries.
So here is diff that just enables the backend with the patch to make it
work on i386 and leaves out shared libraries.

diff -uprN -x CVS -x *.orig llvm-orig/Makefile llvm/Makefile
--- llvm-orig/Makefile  Fri Jun 28 21:14:38 2013
+++ llvm/Makefile   Sun Jul 28 17:22:17 2013
@@ -9,6 +9,7 @@ DPB_PROPERTIES = parallel
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
 LLVM_V =   3.3
+REVISION = 0
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 CATEGORIES =   devel
@@ -46,7 +47,8 @@ SEPARATE_BUILD =  Yes
 CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
-DLLVM_REQUIRES_RTTI:Bool=True \
-DCMAKE_BUILD_TYPE:String=Release \
-   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True
+   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True \
+   -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:String=R600
 
 # Workaround relocation overflow
 .if ${MACHINE_ARCH} == powerpc
diff -uprN -x CVS -x *.orig 
llvm-orig/patches/patch-lib_Target_R600_SIISelLowering_cpp 
llvm/patches/patch-lib_Target_R600_SIISelLowering_cpp
--- llvm-orig/patches/patch-lib_Target_R600_SIISelLowering_cpp  Thu Jan  1 
10:00:00 1970
+++ llvm/patches/patch-lib_Target_R600_SIISelLowering_cpp   Sun Jul 28 
17:22:17 2013
@@ -0,0 +1,28 @@
+$OpenBSD$
+
+llvm svn rev 182446
+
+--- lib/Target/R600/SIISelLowering.cpp.origTue May  7 09:02:15 2013
 lib/Target/R600/SIISelLowering.cpp Sat Jul 20 00:30:00 2013
+@@ -338,7 +338,7 @@ SDValue SITargetLowering::LowerBRCOND(SDValue BRCOND,
+   return Chain;
+ }
+ 
+-#define RSRC_DATA_FORMAT 0xf000
++const uint64_t RSRC_DATA_FORMAT = 0xf000LL;
+ 
+ SDValue SITargetLowering::LowerSTORE(SDValue Op, SelectionDAG DAG) const {
+   StoreSDNode *StoreNode = castStoreSDNode(Op);
+@@ -351,9 +351,9 @@ SDValue SITargetLowering::LowerSTORE(SDValue Op, Selec
+ return SDValue();
+   }
+ 
+-  SDValue SrcSrc = DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128,
+-   DAG.getConstant(0, MVT::i64),
+- DAG.getConstant(RSRC_DATA_FORMAT, MVT::i64));
++  SDValue Zero = DAG.getConstant(0, MVT::i64);
++  SDValue Format = DAG.getConstant(RSRC_DATA_FORMAT, MVT::i64);
++  SDValue SrcSrc = DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128, Zero, Format);
+ 
+   SDValue Ops[2];
+   Ops[0] = DAG.getNode(AMDGPUISD::BUFFER_STORE, DL, MVT::Other, Chain,
diff -uprN -x CVS -x *.orig llvm-orig/pkg/PLIST llvm/pkg/PLIST
--- llvm-orig/pkg/PLIST Sat Jun 22 08:09:12 2013
+++ llvm/pkg/PLIST  Sun Jul 28 17:22:17 2013
@@ -1156,6 +1156,10 @@ lib/libLLVMPowerPCAsmPrinter.a
 lib/libLLVMPowerPCCodeGen.a
 lib/libLLVMPowerPCDesc.a
 lib/libLLVMPowerPCInfo.a
+lib/libLLVMR600AsmPrinter.a
+lib/libLLVMR600CodeGen.a
+lib/libLLVMR600Desc.a
+lib/libLLVMR600Info.a
 lib/libLLVMRuntimeDyld.a
 lib/libLLVMScalarOpts.a
 lib/libLLVMSelectionDAG.a



Re: UPDATE: LLVM 3.3

2013-07-19 Thread Jonathan Gray
On Thu, Jul 18, 2013 at 10:08:26AM -0700, Matthew Dempsky wrote:
 On Thu, Jul 18, 2013 at 9:56 AM, Stuart Henderson st...@openbsd.org wrote:
 
  On 2013/07/18 22:48, Jonathan Gray wrote:
@comment lib/libgtest.a
@comment lib/libgtest_main.a
   +lib/libgtest.so
   +lib/libgtest_main.so
 
  presumably the above 4 lines want replacing with
 
  @comment lib/libgtest.so
  @comment lib/libgtest_main.so
 
  ...?
 
  (not sure why this was originally commented, but presumably it should stay
  commented?)
 
 
 Probably to avoid conflicting with devel/gtest, and I agree it should stay
 commented.

yes, that was from update-plist and wasn't intentional.

It seems using shared libraries may be significantly slowing down
clang invocation.  Just clang -help seems to take a few seconds,
let alone compiling the  11,000 or so files in chromium...



Re: UPDATE: LLVM 3.3

2013-07-19 Thread Stuart Henderson
On 2013/07/19 23:39, Jonathan Gray wrote:
 On Thu, Jul 18, 2013 at 10:08:26AM -0700, Matthew Dempsky wrote:
  On Thu, Jul 18, 2013 at 9:56 AM, Stuart Henderson st...@openbsd.org wrote:
  
   On 2013/07/18 22:48, Jonathan Gray wrote:
 @comment lib/libgtest.a
 @comment lib/libgtest_main.a
+lib/libgtest.so
+lib/libgtest_main.so
  
   presumably the above 4 lines want replacing with
  
   @comment lib/libgtest.so
   @comment lib/libgtest_main.so
  
   ...?
  
   (not sure why this was originally commented, but presumably it should stay
   commented?)
  
  
  Probably to avoid conflicting with devel/gtest, and I agree it should stay
  commented.
 
 yes, that was from update-plist and wasn't intentional.
 
 It seems using shared libraries may be significantly slowing down
 clang invocation.  Just clang -help seems to take a few seconds,

Is --as-needed likely to help at all?

| # without --as-needed, evolution takes 20 minutes (yes, 20!) to start
| MODGNOME_LDFLAGS=   -L${X11BASE}/lib 
-Wl,-rpath,${TRUEPREFIX}/lib/evolution/${R}:${TRUEPREFIX}/lib \
| -Wl,--as-needed

 let alone compiling the  11,000 or so files in chromium...

17 hours and I'm at 7827/11331... last build without this took 2.5 hours.



Re: UPDATE: LLVM 3.3

2013-07-18 Thread Jonathan Gray
On Thu, Jun 20, 2013 at 03:30:17PM +0100, Stuart Henderson wrote:
 On 2013/06/20 23:16, Jonathan Gray wrote:
  On Wed, Jun 19, 2013 at 11:05:30AM -0400, Brad Smith wrote:
   On Tue, Jun 18, 2013 at 10:03:20PM -0400, Brad Smith wrote:
Here is an update to LLVM 3.3.

Comments? OK?
   
   Here is an updated diff with the r600 backend enabled.
  
  Mesa seems to require llvm to be built as series of
  shared libraries, are we trying to avoid that on purpose?
  
 
 When I changed it to use cmake I just went with the default value,
 upstream says this about it (http://llvm.org/docs/CMake.html)
 
 BUILD_SHARED_LIBS:BOOL
 
 Flag indicating is (sic) shared libraries will be built. Its default value
 is OFF. Shared libraries are not supported on Windows and not recommended
 in the other OSes.
 
 There's no further information about the not recommended though..
 

Well this is what I need to compile mesa git with llvm support:

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- Makefile28 Jun 2013 11:14:38 -  1.64
+++ Makefile18 Jul 2013 12:36:39 -
@@ -9,6 +9,7 @@ DPB_PROPERTIES = parallel
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
 LLVM_V =   3.3
+REVISION=  0
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 CATEGORIES =   devel
@@ -46,7 +47,9 @@ SEPARATE_BUILD =  Yes
 CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
-DLLVM_REQUIRES_RTTI:Bool=True \
-DCMAKE_BUILD_TYPE:String=Release \
-   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True
+   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True \
+   -DBUILD_SHARED_LIBS:Bool=True \
+   -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:String=R600
 
 # Workaround relocation overflow
 .if ${MACHINE_ARCH} == powerpc
Index: pkg/PLIST
===
RCS file: /cvs/ports/devel/llvm/pkg/PLIST,v
retrieving revision 1.18
diff -u -p -r1.18 PLIST
--- pkg/PLIST   21 Jun 2013 22:09:12 -  1.18
+++ pkg/PLIST   18 Jul 2013 12:36:39 -
@@ -1089,131 +1089,134 @@ ${CLANG_INCLUDE_PATH}/wmmintrin.h
 ${CLANG_INCLUDE_PATH}/x86intrin.h
 ${CLANG_INCLUDE_PATH}/xmmintrin.h
 ${CLANG_INCLUDE_PATH}/xopintrin.h
-lib/libLLVMAArch64AsmParser.a
-lib/libLLVMAArch64AsmPrinter.a
-lib/libLLVMAArch64CodeGen.a
-lib/libLLVMAArch64Desc.a
-lib/libLLVMAArch64Disassembler.a
-lib/libLLVMAArch64Info.a
-lib/libLLVMAArch64Utils.a
-lib/libLLVMARMAsmParser.a
-lib/libLLVMARMAsmPrinter.a
-lib/libLLVMARMCodeGen.a
-lib/libLLVMARMDesc.a
-lib/libLLVMARMDisassembler.a
-lib/libLLVMARMInfo.a
-lib/libLLVMAnalysis.a
-lib/libLLVMArchive.a
-lib/libLLVMAsmParser.a
-lib/libLLVMAsmPrinter.a
-lib/libLLVMBitReader.a
-lib/libLLVMBitWriter.a
-lib/libLLVMCodeGen.a
-lib/libLLVMCore.a
-lib/libLLVMCppBackendCodeGen.a
-lib/libLLVMCppBackendInfo.a
-lib/libLLVMDebugInfo.a
-lib/libLLVMExecutionEngine.a
-lib/libLLVMHexagonAsmPrinter.a
-lib/libLLVMHexagonCodeGen.a
-lib/libLLVMHexagonDesc.a
-lib/libLLVMHexagonInfo.a
-lib/libLLVMIRReader.a
-lib/libLLVMInstCombine.a
-lib/libLLVMInstrumentation.a
-lib/libLLVMInterpreter.a
-lib/libLLVMJIT.a
-lib/libLLVMLinker.a
-lib/libLLVMMBlazeAsmParser.a
-lib/libLLVMMBlazeAsmPrinter.a
-lib/libLLVMMBlazeCodeGen.a
-lib/libLLVMMBlazeDesc.a
-lib/libLLVMMBlazeDisassembler.a
-lib/libLLVMMBlazeInfo.a
-lib/libLLVMMC.a
-lib/libLLVMMCDisassembler.a
-lib/libLLVMMCJIT.a
-lib/libLLVMMCParser.a
-lib/libLLVMMSP430AsmPrinter.a
-lib/libLLVMMSP430CodeGen.a
-lib/libLLVMMSP430Desc.a
-lib/libLLVMMSP430Info.a
-lib/libLLVMMipsAsmParser.a
-lib/libLLVMMipsAsmPrinter.a
-lib/libLLVMMipsCodeGen.a
-lib/libLLVMMipsDesc.a
-lib/libLLVMMipsDisassembler.a
-lib/libLLVMMipsInfo.a
-lib/libLLVMNVPTXAsmPrinter.a
-lib/libLLVMNVPTXCodeGen.a
-lib/libLLVMNVPTXDesc.a
-lib/libLLVMNVPTXInfo.a
-lib/libLLVMObjCARCOpts.a
-lib/libLLVMObject.a
-lib/libLLVMOption.a
-lib/libLLVMPowerPCAsmParser.a
-lib/libLLVMPowerPCAsmPrinter.a
-lib/libLLVMPowerPCCodeGen.a
-lib/libLLVMPowerPCDesc.a
-lib/libLLVMPowerPCInfo.a
-lib/libLLVMRuntimeDyld.a
-lib/libLLVMScalarOpts.a
-lib/libLLVMSelectionDAG.a
-lib/libLLVMSparcCodeGen.a
-lib/libLLVMSparcDesc.a
-lib/libLLVMSparcInfo.a
-lib/libLLVMSupport.a
-lib/libLLVMSystemZAsmParser.a
-lib/libLLVMSystemZAsmPrinter.a
-lib/libLLVMSystemZCodeGen.a
-lib/libLLVMSystemZDesc.a
-lib/libLLVMSystemZInfo.a
-lib/libLLVMTableGen.a
-lib/libLLVMTarget.a
-lib/libLLVMTransformUtils.a
-lib/libLLVMVectorize.a
-lib/libLLVMX86AsmParser.a
-lib/libLLVMX86AsmPrinter.a
-lib/libLLVMX86CodeGen.a
-lib/libLLVMX86Desc.a
-lib/libLLVMX86Disassembler.a
-lib/libLLVMX86Info.a
-lib/libLLVMX86Utils.a
-lib/libLLVMXCoreAsmPrinter.a
-lib/libLLVMXCoreCodeGen.a
-lib/libLLVMXCoreDesc.a
-lib/libLLVMXCoreDisassembler.a
-lib/libLLVMXCoreInfo.a
-lib/libLLVMipa.a
-lib/libLLVMipo.a

Re: UPDATE: LLVM 3.3

2013-07-18 Thread Stuart Henderson
On 2013/07/18 22:48, Jonathan Gray wrote:
 Well this is what I need to compile mesa git with llvm support:

Last time I tried with R600 support, it broke on i386,

22:01  sthen_ brad: 
/usr/obj/llvm-3.3/llvm-3.3.src/lib/Target/R600/SIISelLowering.cpp:356: error: 
integer constant is too large for 'long' type



Re: UPDATE: LLVM 3.3

2013-07-18 Thread Jonathan Gray
On Thu, Jul 18, 2013 at 02:41:46PM +0100, Stuart Henderson wrote:
 On 2013/07/18 22:48, Jonathan Gray wrote:
  Well this is what I need to compile mesa git with llvm support:
 
 Last time I tried with R600 support, it broke on i386,
 
 22:01  sthen_ brad: 
 /usr/obj/llvm-3.3/llvm-3.3.src/lib/Target/R600/SIISelLowering.cpp:356: error: 
 integer constant is too large for 'long' type

I haven't tried a build, but it seems
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIISelLowering.cpp?r1=182282r2=182446view=patch

might fix that.



Re: UPDATE: LLVM 3.3

2013-07-18 Thread Stuart Henderson
On 2013/07/18 22:48, Jonathan Gray wrote:
  @comment lib/libgtest.a
  @comment lib/libgtest_main.a
 +lib/libgtest.so
 +lib/libgtest_main.so

presumably the above 4 lines want replacing with

@comment lib/libgtest.so
@comment lib/libgtest_main.so

...?

(not sure why this was originally commented, but presumably it should stay 
commented?)

I'm going to put this into an i386 bulk..

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- Makefile28 Jun 2013 11:14:38 -  1.64
+++ Makefile18 Jul 2013 15:05:02 -
@@ -9,6 +9,7 @@ DPB_PROPERTIES = parallel
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
 LLVM_V =   3.3
+REVISION=  0
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
 CATEGORIES =   devel
@@ -46,7 +47,9 @@ SEPARATE_BUILD =  Yes
 CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
-DLLVM_REQUIRES_RTTI:Bool=True \
-DCMAKE_BUILD_TYPE:String=Release \
-   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True
+   -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2:Bool=True \
+   -DBUILD_SHARED_LIBS:Bool=True \
+   -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:String=R600
 
 # Workaround relocation overflow
 .if ${MACHINE_ARCH} == powerpc
Index: patches/patch-lib_Target_R600_SIISelLowering_cpp
===
RCS file: patches/patch-lib_Target_R600_SIISelLowering_cpp
diff -N patches/patch-lib_Target_R600_SIISelLowering_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-lib_Target_R600_SIISelLowering_cpp18 Jul 2013 15:47:09 
-
@@ -0,0 +1,28 @@
+$OpenBSD$
+
+http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIISelLowering.cpp?r1=182282r2=182446view=patchhttp://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/SIISelLowering.cpp?r1=182282r2=182446view=patch
+
+--- lib/Target/R600/SIISelLowering.cpp.origMon May  6 17:02:15 2013
 lib/Target/R600/SIISelLowering.cpp Thu Jul 18 09:47:00 2013
+@@ -338,7 +338,7 @@ SDValue SITargetLowering::LowerBRCOND(SDValue BRCOND,
+   return Chain;
+ }
+ 
+-#define RSRC_DATA_FORMAT 0xf000
++const uint64_t RSRC_DATA_FORMAT = 0xf000LL;
+ 
+ SDValue SITargetLowering::LowerSTORE(SDValue Op, SelectionDAG DAG) const {
+   StoreSDNode *StoreNode = castStoreSDNode(Op);
+@@ -351,9 +351,9 @@ SDValue SITargetLowering::LowerSTORE(SDValue Op, Selec
+ return SDValue();
+   }
+ 
+-  SDValue SrcSrc = DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128,
+-   DAG.getConstant(0, MVT::i64),
+- DAG.getConstant(RSRC_DATA_FORMAT, MVT::i64));
++  SDValue Zero = DAG.getConstant(0, MVT::i64);
++  SDValue Format = DAG.getConstant(RSRC_DATA_FORMAT, MVT::i64);
++  SDValue SrcSrc = DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128, Zero, Format);
+ 
+   SDValue Ops[2];
+   Ops[0] = DAG.getNode(AMDGPUISD::BUFFER_STORE, DL, MVT::Other, Chain,
Index: pkg/PLIST
===
RCS file: /cvs/ports/devel/llvm/pkg/PLIST,v
retrieving revision 1.18
diff -u -p -r1.18 PLIST
--- pkg/PLIST   21 Jun 2013 22:09:12 -  1.18
+++ pkg/PLIST   18 Jul 2013 16:53:14 -
@@ -1089,131 +1089,132 @@ ${CLANG_INCLUDE_PATH}/wmmintrin.h
 ${CLANG_INCLUDE_PATH}/x86intrin.h
 ${CLANG_INCLUDE_PATH}/xmmintrin.h
 ${CLANG_INCLUDE_PATH}/xopintrin.h
-lib/libLLVMAArch64AsmParser.a
-lib/libLLVMAArch64AsmPrinter.a
-lib/libLLVMAArch64CodeGen.a
-lib/libLLVMAArch64Desc.a
-lib/libLLVMAArch64Disassembler.a
-lib/libLLVMAArch64Info.a
-lib/libLLVMAArch64Utils.a
-lib/libLLVMARMAsmParser.a
-lib/libLLVMARMAsmPrinter.a
-lib/libLLVMARMCodeGen.a
-lib/libLLVMARMDesc.a
-lib/libLLVMARMDisassembler.a
-lib/libLLVMARMInfo.a
-lib/libLLVMAnalysis.a
-lib/libLLVMArchive.a
-lib/libLLVMAsmParser.a
-lib/libLLVMAsmPrinter.a
-lib/libLLVMBitReader.a
-lib/libLLVMBitWriter.a
-lib/libLLVMCodeGen.a
-lib/libLLVMCore.a
-lib/libLLVMCppBackendCodeGen.a
-lib/libLLVMCppBackendInfo.a
-lib/libLLVMDebugInfo.a
-lib/libLLVMExecutionEngine.a
-lib/libLLVMHexagonAsmPrinter.a
-lib/libLLVMHexagonCodeGen.a
-lib/libLLVMHexagonDesc.a
-lib/libLLVMHexagonInfo.a
-lib/libLLVMIRReader.a
-lib/libLLVMInstCombine.a
-lib/libLLVMInstrumentation.a
-lib/libLLVMInterpreter.a
-lib/libLLVMJIT.a
-lib/libLLVMLinker.a
-lib/libLLVMMBlazeAsmParser.a
-lib/libLLVMMBlazeAsmPrinter.a
-lib/libLLVMMBlazeCodeGen.a
-lib/libLLVMMBlazeDesc.a
-lib/libLLVMMBlazeDisassembler.a
-lib/libLLVMMBlazeInfo.a
-lib/libLLVMMC.a
-lib/libLLVMMCDisassembler.a
-lib/libLLVMMCJIT.a
-lib/libLLVMMCParser.a
-lib/libLLVMMSP430AsmPrinter.a
-lib/libLLVMMSP430CodeGen.a
-lib/libLLVMMSP430Desc.a
-lib/libLLVMMSP430Info.a
-lib/libLLVMMipsAsmParser.a
-lib/libLLVMMipsAsmPrinter.a
-lib/libLLVMMipsCodeGen.a
-lib/libLLVMMipsDesc.a

Re: UPDATE: LLVM 3.3

2013-07-18 Thread Matthew Dempsky
On Thu, Jul 18, 2013 at 9:56 AM, Stuart Henderson st...@openbsd.org wrote:

 On 2013/07/18 22:48, Jonathan Gray wrote:
   @comment lib/libgtest.a
   @comment lib/libgtest_main.a
  +lib/libgtest.so
  +lib/libgtest_main.so

 presumably the above 4 lines want replacing with

 @comment lib/libgtest.so
 @comment lib/libgtest_main.so

 ...?

 (not sure why this was originally commented, but presumably it should stay
 commented?)


Probably to avoid conflicting with devel/gtest, and I agree it should stay
commented.


Re: UPDATE: LLVM 3.3

2013-06-20 Thread Jonathan Gray
On Wed, Jun 19, 2013 at 11:05:30AM -0400, Brad Smith wrote:
 On Tue, Jun 18, 2013 at 10:03:20PM -0400, Brad Smith wrote:
  Here is an update to LLVM 3.3.
  
  Comments? OK?
 
 Here is an updated diff with the r600 backend enabled.

Mesa seems to require llvm to be built as series of
shared libraries, are we trying to avoid that on purpose?



Re: UPDATE: LLVM 3.3

2013-06-20 Thread Stuart Henderson
On 2013/06/20 23:16, Jonathan Gray wrote:
 On Wed, Jun 19, 2013 at 11:05:30AM -0400, Brad Smith wrote:
  On Tue, Jun 18, 2013 at 10:03:20PM -0400, Brad Smith wrote:
   Here is an update to LLVM 3.3.
   
   Comments? OK?
  
  Here is an updated diff with the r600 backend enabled.
 
 Mesa seems to require llvm to be built as series of
 shared libraries, are we trying to avoid that on purpose?
 

When I changed it to use cmake I just went with the default value,
upstream says this about it (http://llvm.org/docs/CMake.html)

BUILD_SHARED_LIBS:BOOL

Flag indicating is (sic) shared libraries will be built. Its default value
is OFF. Shared libraries are not supported on Windows and not recommended
in the other OSes.

There's no further information about the not recommended though..




Re: UPDATE: LLVM 3.3

2013-06-19 Thread Brad Smith
On Tue, Jun 18, 2013 at 10:03:20PM -0400, Brad Smith wrote:
 Here is an update to LLVM 3.3.
 
 Comments? OK?

Here is an updated diff with the r600 backend enabled.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.62
diff -u -p -r1.62 Makefile
--- Makefile2 May 2013 15:41:57 -   1.62
+++ Makefile19 Jun 2013 01:59:15 -
@@ -7,14 +7,13 @@ ONLY_FOR_ARCHS = ${LLVM_ARCHS}
 
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
-LLVM_V =   3.2
+LLVM_V =   3.3
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
-REVISION = 3
 CATEGORIES =   devel
 MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
 
-DISTFILES =${DISTNAME}${EXTRACT_SUFX} clang-${LLVM_V}.src${EXTRACT_SUFX}
+DISTFILES =${DISTNAME}${EXTRACT_SUFX} cfe-${LLVM_V}.src${EXTRACT_SUFX}
 
 SHARED_LIBS =  clang   0.0 # 3.2
 
@@ -24,7 +23,7 @@ HOMEPAGE =http://www.llvm.org/
 # BSD
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB =  c m pthread stdc++
+WANTLIB =  c m pthread stdc++ z
 
 WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}.src
 
@@ -54,10 +53,10 @@ CONFIGURE_ARGS +=   -DCMAKE_EXE_LINKER_FLA
 .endif
 
 CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
-SUBST_VARS +=  CLANG_INCLUDE_PATH
+SUBST_VARS +=  CLANG_INCLUDE_PATH LLVM_V
 
 post-extract:
-   @mv ${WRKDIR}/clang-${LLVM_V}.src ${WRKDIST}/tools/clang
+   @mv ${WRKDIR}/cfe-${LLVM_V}.src ${WRKDIST}/tools/clang
 
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
Index: distinfo
===
RCS file: /home/cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.11
diff -u -p -r1.11 distinfo
--- distinfo23 Dec 2012 20:49:29 -  1.11
+++ distinfo16 Jun 2013 23:26:38 -
@@ -1,4 +1,4 @@
-SHA256 (clang-3.2.src.tar.gz) = KqrwP3wPaxb+l+zIEkfcK/LUvsdiCnfMdGcLfgf/Vlg=
-SHA256 (llvm-3.2.src.tar.gz) = ElCQxNJnQPHV6YOEd8kx7X2a1w1Zm6Jl9G86QssGY0M=
-SIZE (clang-3.2.src.tar.gz) = 8805311
-SIZE (llvm-3.2.src.tar.gz) = 12275252
+SHA256 (cfe-3.3.src.tar.gz) = sbVd5Ks6V9PgMxqD4ChGEBkcd9kk40RkmNkRPQjfuZY=
+SHA256 (llvm-3.3.src.tar.gz) = aHZrHnDQWiXi9QLpl6PLOTcYejKWWVz24Jd9XNZydXg=
+SIZE (cfe-3.3.src.tar.gz) = 9425539
+SIZE (llvm-3.3.src.tar.gz) = 13602421
Index: patches/patch-CMakeLists_txt
===
RCS file: /home/cvs/ports/devel/llvm/patches/patch-CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt23 Dec 2012 20:49:29 -  1.2
+++ patches/patch-CMakeLists_txt19 Jun 2013 03:00:51 -
@@ -2,14 +2,22 @@ $OpenBSD: patch-CMakeLists_txt,v 1.2 201
 
 Don't confuse scripts who want the version with appended 'svn' goo.
 
 CMakeLists.txt.origFri Sep 28 19:35:20 2012
-+++ CMakeLists.txt Mon Dec 10 19:22:46 2012
+--- CMakeLists.txt.origMon May  6 12:23:07 2013
 CMakeLists.txt Tue Jun 18 23:00:44 2013
 @@ -13,7 +13,7 @@ set(CMAKE_MODULE_PATH
  set(LLVM_VERSION_MAJOR 3)
- set(LLVM_VERSION_MINOR 2)
+ set(LLVM_VERSION_MINOR 3)
  
 -set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn)
 +set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR})
  
  option(LLVM_USE_FOLDERS Enable solution folders in Visual Studio. Disable 
for Express versions. ON)
  if ( LLVM_USE_FOLDERS )
+@@ -83,6 +83,7 @@ set(LLVM_ALL_TARGETS
+   MSP430
+   NVPTX
+   PowerPC
++  R600
+   Sparc
+   SystemZ
+   X86
Index: patches/patch-cmake_modules_LLVMConfig_cmake_in
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-cmake_modules_LLVMConfig_cmake_in,v
retrieving revision 1.1
diff -u -p -r1.1 patch-cmake_modules_LLVMConfig_cmake_in
--- patches/patch-cmake_modules_LLVMConfig_cmake_in 2 May 2013 15:41:57 
-   1.1
+++ patches/patch-cmake_modules_LLVMConfig_cmake_in 8 May 2013 10:21:28 
-
@@ -3,9 +3,9 @@ $OpenBSD: patch-cmake_modules_LLVMConfig
 make it find include file in /usr/local/share/llvm/cmake
 bug reported: http://www.llvm.org/bugs/show_bug.cgi?id=15899
 
 cmake/modules/LLVMConfig.cmake.in.orig Sat Jul  7 05:12:28 2012
-+++ cmake/modules/LLVMConfig.cmake.in  Thu May  2 07:38:57 2013
-@@ -36,6 +36,8 @@ set(LLVM_INCLUDE_DIRS ${LLVM_INSTALL_PREFIX}/include)
+--- cmake/modules/LLVMConfig.cmake.in.orig Tue Apr 23 04:28:39 2013
 cmake/modules/LLVMConfig.cmake.in  Wed May  8 06:14:30 2013
+@@ -39,6 +39,8 @@ set(LLVM_INCLUDE_DIRS ${LLVM_INSTALL_PREFIX}/include)
  set(LLVM_LIBRARY_DIRS ${LLVM_INSTALL_PREFIX}/lib)
  set(LLVM_DEFINITIONS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
  
Index: patches/patch-lib_CodeGen_StackProtector_cpp
===
RCS file: 

UPDATE: LLVM 3.3

2013-06-18 Thread Brad Smith
Here is an update to LLVM 3.3.

Comments? OK?


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.62
diff -u -p -r1.62 Makefile
--- Makefile2 May 2013 15:41:57 -   1.62
+++ Makefile19 Jun 2013 01:59:15 -
@@ -7,14 +7,13 @@ ONLY_FOR_ARCHS = ${LLVM_ARCHS}
 
 COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
 
-LLVM_V =   3.2
+LLVM_V =   3.3
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
-REVISION = 3
 CATEGORIES =   devel
 MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
 
-DISTFILES =${DISTNAME}${EXTRACT_SUFX} clang-${LLVM_V}.src${EXTRACT_SUFX}
+DISTFILES =${DISTNAME}${EXTRACT_SUFX} cfe-${LLVM_V}.src${EXTRACT_SUFX}
 
 SHARED_LIBS =  clang   0.0 # 3.2
 
@@ -24,7 +23,7 @@ HOMEPAGE =http://www.llvm.org/
 # BSD
 PERMIT_PACKAGE_CDROM = Yes
 
-WANTLIB =  c m pthread stdc++
+WANTLIB =  c m pthread stdc++ z
 
 WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}.src
 
@@ -54,10 +53,10 @@ CONFIGURE_ARGS +=   -DCMAKE_EXE_LINKER_FLA
 .endif
 
 CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
-SUBST_VARS +=  CLANG_INCLUDE_PATH
+SUBST_VARS +=  CLANG_INCLUDE_PATH LLVM_V
 
 post-extract:
-   @mv ${WRKDIR}/clang-${LLVM_V}.src ${WRKDIST}/tools/clang
+   @mv ${WRKDIR}/cfe-${LLVM_V}.src ${WRKDIST}/tools/clang
 
 pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
Index: distinfo
===
RCS file: /home/cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.11
diff -u -p -r1.11 distinfo
--- distinfo23 Dec 2012 20:49:29 -  1.11
+++ distinfo16 Jun 2013 23:26:38 -
@@ -1,4 +1,4 @@
-SHA256 (clang-3.2.src.tar.gz) = KqrwP3wPaxb+l+zIEkfcK/LUvsdiCnfMdGcLfgf/Vlg=
-SHA256 (llvm-3.2.src.tar.gz) = ElCQxNJnQPHV6YOEd8kx7X2a1w1Zm6Jl9G86QssGY0M=
-SIZE (clang-3.2.src.tar.gz) = 8805311
-SIZE (llvm-3.2.src.tar.gz) = 12275252
+SHA256 (cfe-3.3.src.tar.gz) = sbVd5Ks6V9PgMxqD4ChGEBkcd9kk40RkmNkRPQjfuZY=
+SHA256 (llvm-3.3.src.tar.gz) = aHZrHnDQWiXi9QLpl6PLOTcYejKWWVz24Jd9XNZydXg=
+SIZE (cfe-3.3.src.tar.gz) = 9425539
+SIZE (llvm-3.3.src.tar.gz) = 13602421
Index: patches/patch-CMakeLists_txt
===
RCS file: /home/cvs/ports/devel/llvm/patches/patch-CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -r1.2 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt23 Dec 2012 20:49:29 -  1.2
+++ patches/patch-CMakeLists_txt8 May 2013 10:21:18 -
@@ -2,11 +2,11 @@ $OpenBSD: patch-CMakeLists_txt,v 1.2 201
 
 Don't confuse scripts who want the version with appended 'svn' goo.
 
 CMakeLists.txt.origFri Sep 28 19:35:20 2012
-+++ CMakeLists.txt Mon Dec 10 19:22:46 2012
+--- CMakeLists.txt.origMon May  6 12:23:07 2013
 CMakeLists.txt Wed May  8 06:14:25 2013
 @@ -13,7 +13,7 @@ set(CMAKE_MODULE_PATH
  set(LLVM_VERSION_MAJOR 3)
- set(LLVM_VERSION_MINOR 2)
+ set(LLVM_VERSION_MINOR 3)
  
 -set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}svn)
 +set(PACKAGE_VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR})
Index: patches/patch-cmake_modules_LLVMConfig_cmake_in
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-cmake_modules_LLVMConfig_cmake_in,v
retrieving revision 1.1
diff -u -p -r1.1 patch-cmake_modules_LLVMConfig_cmake_in
--- patches/patch-cmake_modules_LLVMConfig_cmake_in 2 May 2013 15:41:57 
-   1.1
+++ patches/patch-cmake_modules_LLVMConfig_cmake_in 8 May 2013 10:21:28 
-
@@ -3,9 +3,9 @@ $OpenBSD: patch-cmake_modules_LLVMConfig
 make it find include file in /usr/local/share/llvm/cmake
 bug reported: http://www.llvm.org/bugs/show_bug.cgi?id=15899
 
 cmake/modules/LLVMConfig.cmake.in.orig Sat Jul  7 05:12:28 2012
-+++ cmake/modules/LLVMConfig.cmake.in  Thu May  2 07:38:57 2013
-@@ -36,6 +36,8 @@ set(LLVM_INCLUDE_DIRS ${LLVM_INSTALL_PREFIX}/include)
+--- cmake/modules/LLVMConfig.cmake.in.orig Tue Apr 23 04:28:39 2013
 cmake/modules/LLVMConfig.cmake.in  Wed May  8 06:14:30 2013
+@@ -39,6 +39,8 @@ set(LLVM_INCLUDE_DIRS ${LLVM_INSTALL_PREFIX}/include)
  set(LLVM_LIBRARY_DIRS ${LLVM_INSTALL_PREFIX}/lib)
  set(LLVM_DEFINITIONS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
  
Index: patches/patch-lib_CodeGen_StackProtector_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-lib_CodeGen_StackProtector_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-lib_CodeGen_StackProtector_cpp
--- patches/patch-lib_CodeGen_StackProtector_cpp23 Dec 2012 20:49:29 
-  1.2
+++ patches/patch-lib_CodeGen_StackProtector_cpp5 Jun 2013 19:42:52 
-
@@ -1,46 +1,89 @@
 $OpenBSD: patch-lib_CodeGen_StackProtector_cpp,v 1.2 

Re: UPDATE: LLVM 3.3

2013-06-18 Thread Jonathan Gray
On Tue, Jun 18, 2013 at 10:03:20PM -0400, Brad Smith wrote:
 Here is an update to LLVM 3.3.
 
 Comments? OK?

Can you enable the R600 target as well?  It is still marked
experimental in 3.3 but is required to build support
for the latest radeon chips in mesa (radeonsi gallium target)
and optional for the older parts.



UPDATE: LLVM - update library link spec

2012-08-25 Thread Brad Smith
Re-sync LLVM to mimic the same library link spec as the base compilers.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.50
diff -u -p -r1.50 Makefile
--- Makefile21 Aug 2012 17:51:53 -  1.50
+++ Makefile23 Aug 2012 05:41:09 -
@@ -10,7 +10,7 @@ COMMENT = modular, fast C/C++/ObjC compi
 LLVM_V =   3.1
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
-REVISION = 5
+REVISION = 6
 CATEGORIES =   devel
 
 # packager notes in http://llvm.org/docs/Packaging.html
Index: patches/patch-tools_clang_lib_Driver_Tools_cpp
===
RCS file: 
/home/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Driver_Tools_cpp,v
retrieving revision 1.10
diff -u -p -r1.10 patch-tools_clang_lib_Driver_Tools_cpp
--- patches/patch-tools_clang_lib_Driver_Tools_cpp  21 Aug 2012 17:51:53 
-  1.10
+++ patches/patch-tools_clang_lib_Driver_Tools_cpp  25 Aug 2012 14:30:40 
-
@@ -1,29 +1,27 @@
 $OpenBSD: patch-tools_clang_lib_Driver_Tools_cpp,v 1.10 2012/08/21 17:51:53 
pascal Exp $
 --- tools/clang/lib/Driver/Tools.cpp.orig  Wed Apr 18 17:32:25 2012
-+++ tools/clang/lib/Driver/Tools.cpp   Thu Aug 16 02:23:30 2012
-@@ -4672,14 +4672,20 @@ void openbsd::Link::ConstructJob(Compilation C, const
 tools/clang/lib/Driver/Tools.cpp   Sat Aug 25 10:29:30 2012
+@@ -4672,14 +4672,21 @@ void openbsd::Link::ConstructJob(Compilation C, const
  // the default system libraries. Just mimic this for now.
  CmdArgs.push_back(-lgcc);
  
 -if (Args.hasArg(options::OPT_pthread))
 -  CmdArgs.push_back(-lpthread);
--if (!Args.hasArg(options::OPT_shared)) {
--  if (Args.hasArg(options::OPT_pg)) 
-- CmdArgs.push_back(-lc_p);
 +if (Args.hasArg(options::OPT_pthread)) {
 +  if (!Args.hasArg(options::OPT_shared) 
 +  Args.hasArg(options::OPT_pg))
 + CmdArgs.push_back(-lpthread_p);
-   else
-- CmdArgs.push_back(-lc);
++  else
 + CmdArgs.push_back(-lpthread);
- }
++}
 +
-+if (!Args.hasArg(options::OPT_shared) 
-+Args.hasArg(options::OPT_pg)) 
-+  CmdArgs.push_back(-lc_p);
-+else
-+  CmdArgs.push_back(-lc);
+ if (!Args.hasArg(options::OPT_shared)) {
+-  if (Args.hasArg(options::OPT_pg)) 
++  if (Args.hasArg(options::OPT_pg))
+  CmdArgs.push_back(-lc_p);
+   else
+  CmdArgs.push_back(-lc);
+ }
 +
  CmdArgs.push_back(-lgcc);
}

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Re: UPDATE: LLVM - LLVM_ARCHS

2012-08-24 Thread Brad Smith
On Mon, Aug 13, 2012 at 11:23:29PM -0400, Brad Smith wrote:
 Here is a diff to update LLVM_ARCHS. sparc64 must be removed as
 the compiler doesn't support SPARCv9 and thus what is being built
 now is unusable, but there is support for SPARCv8 so sparc should
 be enabled.

Although the compiler is broken on sparc64 there are some other
components of LLVM that are still useful so I guess we can leave
that enabled as is for now so a revised diff just to enable sparc.


Index: arch-defines.mk
===
RCS file: /home/cvs/ports/infrastructure/mk/arch-defines.mk,v
retrieving revision 1.8
diff -u -p -r1.8 arch-defines.mk
--- arch-defines.mk 21 Aug 2012 16:32:04 -  1.8
+++ arch-defines.mk 21 Aug 2012 20:31:46 -
@@ -27,7 +27,7 @@ GCC3_ARCHS =
 GCC2_ARCHS = aviion luna88k m68k m88k mvme68k mvme88k vax
 # XXX easier for ports that depend on mono
 MONO_ARCHS = amd64 i386
-LLVM_ARCHS = amd64 i386 powerpc sparc64
+LLVM_ARCHS = amd64 i386 powerpc sparc sparc64
 OCAML_NATIVE_ARCHS = i386 sparc amd64 powerpc
 OCAML_NATIVE_DYNLINK_ARCHS = i386 amd64
 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



UPDATE: LLVM - update library link spec for libpthread

2012-08-16 Thread Brad Smith
The diff below updates LLVM/Clang's Driver to mimic the new
link spec behavior from gcc4. Looked over by Matthew and he
thinks it looks good.


Index: Makefile
===
RCS file: /home/cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.48
diff -u -p -r1.48 Makefile
--- Makefile8 Aug 2012 09:35:24 -   1.48
+++ Makefile15 Aug 2012 11:12:22 -
@@ -10,7 +10,7 @@ COMMENT = modular, fast C/C++/ObjC compi
 LLVM_V =   3.1
 DISTNAME = llvm-${LLVM_V}.src
 PKGNAME =  llvm-${LLVM_V}
-REVISION = 3
+REVISION = 4
 CATEGORIES =   devel
 
 # packager notes in http://llvm.org/docs/Packaging.html
Index: patches/patch-tools_clang_lib_Driver_Tools_cpp
===
RCS file: patches/patch-tools_clang_lib_Driver_Tools_cpp
diff -N patches/patch-tools_clang_lib_Driver_Tools_cpp
--- /dev/null   1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_lib_Driver_Tools_cpp  16 Aug 2012 06:23:46 
-
@@ -0,0 +1,30 @@
+$OpenBSD$
+--- tools/clang/lib/Driver/Tools.cpp.orig  Wed Apr 18 17:32:25 2012
 tools/clang/lib/Driver/Tools.cpp   Thu Aug 16 02:23:30 2012
+@@ -4672,14 +4672,20 @@ void openbsd::Link::ConstructJob(Compilation C, const
+ // the default system libraries. Just mimic this for now.
+ CmdArgs.push_back(-lgcc);
+ 
+-if (Args.hasArg(options::OPT_pthread))
+-  CmdArgs.push_back(-lpthread);
+-if (!Args.hasArg(options::OPT_shared)) {
+-  if (Args.hasArg(options::OPT_pg)) 
+- CmdArgs.push_back(-lc_p);
++if (Args.hasArg(options::OPT_pthread)) {
++  if (!Args.hasArg(options::OPT_shared) 
++  Args.hasArg(options::OPT_pg))
++ CmdArgs.push_back(-lpthread_p);
+   else
+- CmdArgs.push_back(-lc);
++ CmdArgs.push_back(-lpthread);
+ }
++
++if (!Args.hasArg(options::OPT_shared) 
++Args.hasArg(options::OPT_pg)) 
++  CmdArgs.push_back(-lc_p);
++else
++  CmdArgs.push_back(-lc);
++
+ CmdArgs.push_back(-lgcc);
+   }
+ 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



UPDATE: LLVM - LLVM_ARCHS

2012-08-13 Thread Brad Smith
Here is a diff to update LLVM_ARCHS. sparc64 must be removed as
the compiler doesn't support SPARCv9 and thus what is being built
now is unusable, but there is support for SPARCv8 so sparc should
be enabled.


Index: arch-defines.mk
===
RCS file: /home/cvs/ports/infrastructure/mk/arch-defines.mk,v
retrieving revision 1.6
diff -u -p -r1.6 arch-defines.mk
--- arch-defines.mk 8 Jul 2012 18:35:48 -   1.6
+++ arch-defines.mk 7 Aug 2012 07:29:34 -
@@ -27,7 +27,7 @@ GCC3_ARCHS =
 GCC2_ARCHS = aviion luna88k m68k m88k mvme68k mvme88k vax
 # XXX easier for ports that depend on mono
 MONO_ARCHS = amd64 i386
-LLVM_ARCHS = amd64 i386 powerpc sparc64
+LLVM_ARCHS = amd64 i386 powerpc sparc
 
 .for PROP in ALL APM BE LE LP64 NO_SHARED GCC4 GCC3 GCC2 MONO LLVM
 .  for A B in ${MACHINE_ARCH} ${ARCH}

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-06 Thread Stuart Henderson
On 2011/12/06 12:41, Sebastian Reitenbach wrote:
 I also found why llvm did not compiled for me with cmake (I reported that 
 before when you sent the rc2 I think):
 In my /etc/mk.conf I had defined:
 DEBUG=-g -O0

-O0 - this could very well explain why it was so slow ...
personally I would usually set this on the command line if I need
it ('make package DEBUG=-g -O0').

Still, this should work, I'll see if I can work out what's going on.
(Looks like there are some -lpthread I need to change to -pthread too).



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-06 Thread Sebastian Reitenbach
 
On Tuesday, December 6, 2011 13:23 CET, David Coppa dco...@gmail.com wrote: 
 
 On Tue, 06 Dec 2011, Sebastian Reitenbach wrote:
 
  It works for me on i386, and also it compiles fast. Whatever made the rc 
  candidates so slow, seems to be gone.
  
  I also found why llvm did not compiled for me with cmake (I reported that 
  before when you sent the rc2 I think):
  In my /etc/mk.conf I had defined:
  DEBUG=-g -O0
  
  With this setting, build ends here:
  
  /usr/include/g++/bits/stl_vector.h:601: undefined reference to 
  `llvm::sys::MutexImpl::acquire()'
  ../../lib/libLLVMSupport.a(Threading.cpp.o)(.gnu.linkonce.t._ZN4llvm3sys10SmartMutexILb0EE7acquireEv+0x19):
   In function `llvm::sys::SmartMutexfalse::acquire()':
  /home/ports/pobj/llvm-3.0/llvm-3.0.src/lib/Support/Threading.cpp:56: 
  undefined reference to `llvm::sys::MutexImpl::acquire()'
  collect2: ld returned 1 exit status
  
  Commenting out this line, it builds as expected.
 
 Try to add the chunk below to Makefile:
 
 .ifdef DEBUG
 CONFIGURE_ARGS += --disable-optimized --enable-debug-symbols
 .endif

doesn't help, its still the same.

Sebastian

 
 Ciao,
 David
 
 
 
 



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-06 Thread Stuart Henderson
On 2011/12/06 13:23, David Coppa wrote:
 Try to add the chunk below to Makefile:
 
 .ifdef DEBUG
 CONFIGURE_ARGS += --disable-optimized --enable-debug-symbols
 .endif
 
 Ciao,
 David

This is only with the cmake build, not the autoconf one ..



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-06 Thread Sebastian Reitenbach
 
On Tuesday, December 6, 2011 15:17 CET, David Coppa dco...@gmail.com wrote: 
 
 On Tue, 06 Dec 2011, Stuart Henderson wrote:
 
  On 2011/12/06 13:23, David Coppa wrote:
   Try to add the chunk below to Makefile:
   
   .ifdef DEBUG
   CONFIGURE_ARGS += --disable-optimized --enable-debug-symbols
   .endif
   
   Ciao,
   David
  
  This is only with the cmake build, not the autoconf one ..
 
 Ops! You're right.
 
 Maybe this has a chance to work:
 
 .ifdef DEBUG
 CONFIGURE_ARGS += -DLLVM_ENABLE_ASSERTIONS:Bool=True 
 -DCMAKE_BUILD_TYPE:String=Debug
 .endif
 
 ...After actually looking at the code, you know :)

sorry, but its still the same:

/usr/include/g++/i386-unknown-openbsd5.0/bits/ctype_base.h: At global scope:
/usr/include/g++/i386-unknown-openbsd5.0/bits/ctype_base.h:55: warning: 
overflow in implicit constant conversion
Linking CXX executable ../../bin/llvm-tblgen
cd /home/ports/pobj/llvm-3.0/build-i386/utils/TableGen  /usr/local/bin/cmake 
-E cmake_link_script CMakeFiles/llvm-tblgen.dir/link.txt --verbose=Yes
/usr/bin/c++   -O2 -pipe -g -O0  -fPIC -DNDEBUG
CMakeFiles/llvm-tblgen.dir/ARMDecoderEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmWriterEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmWriterInst.cpp.o 
CMakeFiles/llvm-tblgen.dir/CallingConvEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeEmitterGen.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenInstruction.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenRegisters.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenTarget.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcher.cpp.o 
CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/EDEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/FastISelEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/FixedLenDecode
 rEmitter.cpp.o CMakeFiles/llvm-tblgen.dir/InstrEnumEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/InstrInfoEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/IntrinsicEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/RegisterInfoEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/SetTheory.cpp.o 
CMakeFiles/llvm-tblgen.dir/StringMatcher.cpp.o 
CMakeFiles/llvm-tblgen.dir/SubtargetEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/TGValueTypes.cpp.o 
CMakeFiles/llvm-tblgen.dir/TableGen.cpp.o 
CMakeFiles/llvm-tblgen.dir/X86DisassemblerTables.cpp.o 
CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o  -o ../../bin/llvm-tblgen 
 -lpthread ../../lib/libLLVMSupport.a ../../lib/libLLVMTableGen.a -lpthread 
../../lib/libLLVMSupport.a -lpthread 
-Wl,-rpath-link,/usr/X11R6/lib:/usr/local/lib 
../../lib/libLLVMSupport.a(Signals.cpp.o)(.gnu.linkonce.t._ZN4llvm3sys10SmartMutexILb1EE7acquireEv+0x22):
 In function `llvm::sys::SmartMutextrue::acquire()':
/usr/include/g++/bits/stl_vector.h:601: undefined reference to 
`llvm::sys::MutexImpl::acquire()'
../../lib/libLLVMSupport.a(Threading.cpp.o)(.gnu.linkonce.t._ZN4llvm3sys10SmartMutexILb0EE7acquireEv+0x19):
 In function `llvm::sys::SmartMutexfalse::acquire()':
/home/ports/pobj/llvm-3.0/llvm-3.0.src/lib/Support/Threading.cpp:56: undefined 
reference to `llvm::sys::MutexImpl::acquire()'
collect2: ld returned 1 exit status

Sebastian

 
 cheers,
 David
 
 
 
 



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-06 Thread Simon Kuhnle
On Sun, Dec 04, 2011 at 09:28:35PM +, Stuart Henderson wrote:
 Updated diff to llvm/clang 3.0 final; I have made a few timings (on amd64) -

FWIW, I successfully built llvm 3.0 on sparc64.

Regards,
Simon



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-12-04 Thread Stuart Henderson
On 2011-11-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
  Hi,

 On Thursday, November 24, 2011 04:21 CET, Jonathan Gray j...@goblin.cx 
 wrote: 
  
 On Tue, Nov 15, 2011 at 09:33:21AM +, Stuart Henderson wrote:
  On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
   attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
   be released in a couple of weeks
  
  release is scheduled for tomorrow; here is an updated diff for rc3,
  also switching the build to cmake.

 I kind of recognized it earlier, but now I started measuring times, and for 
 me, the clang 3.0 is dog slow.
 I compile sth. with clang 2.9, an WIP libobjc2 port (mostly C), and with 
 clang 3.0 it takes more than two times the time to compile it. Also with 
 other gnustep objective-c stuff, its about the same speed difference.
 clang 2.9 is much faster than gcc, but now clang 3.0 is much slower than gcc.

Updated diff to llvm/clang 3.0 final; I have made a few timings (on amd64) -

net/quagga -
gcc5m4.02s real 1m52.13s user 1m11.42s system
2.93m40.45s real 1m19.55s user 0m47.52s system
3.03m34.62s real 1m18.41s user 0m42.63s system

math/calc -
gcc1m0.05s real 0m23.12s user 0m15.56s system
2.90m48.41s real 0m18.34s user 0m12.21s system
3.00m44.68s real 0m16.56s user 0m10.89s system

lang/lua -
gcc0m15.60s real 0m6.65s user 0m4.06s system
2.90m12.83s real 0m5.76s user 0m2.87s system
3.00m11.13s real 0m4.69s user 0m2.58s system

misc/screen -
gcc0m36.67s real 0m16.07s user 0m8.98s system
2.90m31.30s real 0m11.56s user 0m7.68s system
3.00m28.18s real 0m11.44s user 0m6.51s system

I wonder if any additional diagnostics were enabled in betas that
may have reduced speed.


Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile
--- Makefile16 Sep 2011 09:24:52 -  1.34
+++ Makefile4 Dec 2011 21:26:15 -
@@ -1,10 +1,11 @@
 # $OpenBSD: Makefile,v 1.34 2011/09/16 09:24:52 espie Exp $
 
-COMMENT =  Low Level Virtual Machine (LLVM) compiler infrastructure
+SHARED_LIBS +=  libclang  0.0 # 3.0
 
-LLVM_V =   2.9
+COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
+
+LLVM_V =   3.0
 DISTNAME = llvm-${LLVM_V}
-REVISION = 3
 
 CATEGORIES =   devel
 
@@ -12,8 +13,7 @@ CATEGORIES =  devel
 HOMEPAGE = http://www.llvm.org/
 
 VMEM_WARNING = Yes
-ONLY_FOR_ARCHS =${GCC4_ARCHS}
-BROKEN-sparc64 =not yet working on sparc64
+ONLY_FOR_ARCHS = ${GCC4_ARCHS}
 
 # BSD
 PERMIT_PACKAGE_CDROM = Yes
@@ -25,22 +25,16 @@ WANTLIB =   c m pthread stdc++
 
 MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
 
-DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
+DISTFILES =${DISTNAME}${EXTRACT_SUFX} clang-${LLVM_V}${EXTRACT_SUFX}
+WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}.src
 
 post-extract:
-   @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
-
-MODULES =  lang/python
+   @mv ${WRKDIR}/clang-${LLVM_V}.src ${WRKDIST}/tools/clang
 
-# graphviz can be optionally used to draw graphs, but adds heavy build and
-# run dependencies, and this feature is often not needed. lie to autoconf
-# so we can build consistent packages without pulling in a stack of gnome
-# libraries; people wanting to use this can pkg_add graphviz.
-CONFIGURE_ENV =ac_cv_path_DOT=${LOCALBASE}/bin/dot \
-   ac_cv_path_DOTTY=${LOCALBASE}/bin/dotty \
-   ac_cv_path_GV=echo gv
+MODULES =  devel/cmake \
+   lang/python
 
-REGRESS_DEPENDS=devel/dejagnu
+REGRESS_DEPENDS = devel/dejagnu
 
 MAKE_FLAGS =   OPTIMIZE_OPTION=${CFLAGS} \
VERBOSE=Yes \
@@ -49,35 +43,38 @@ MAKE_FLAGS =OPTIMIZE_OPTION=${CFLAGS}
 REGRESS_FLAGS =RUNTESTFLAGS=
 
 SEPARATE_BUILD =   simple
-USE_GMAKE =Yes
 USE_LIBTOOL =  Yes
-USE_GROFF =Yes
 MAKE_ENV = REQUIRES_RTTI=1
 
-# also supports cmake
-CONFIGURE_STYLE =  gnu
-CONFIGURE_ARGS =   --enable-bindings=no \
-   --enable-libffi=no \
-   --enable-optimized
-
-MODGNU_CONFIG_GUESS_DIRS =  ${WRKSRC}/autoconf
+CONFIGURE_STYLE =  cmake
+CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
+   -DCMAKE_BUILD_TYPE:String=Release
 
 CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
-SUBST_VARS +=  CLANG_INCLUDE_PATH
+SUBST_VARS +=  CLANG_INCLUDE_PATH
 
 pre-configure:
@perl -pi -e s,-lpthread,-pthread,g ${WRKSRC}/configure
@${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
-   @ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
+   -@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
+
+post-build:
+   cd ${WRKSRC}/docs/CommandGuide  for i in *.pod; do \
+   pod2man --release

Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-26 Thread Sebastian Reitenbach
 Hi,

On Thursday, November 24, 2011 04:21 CET, Jonathan Gray j...@goblin.cx wrote: 
 
 On Tue, Nov 15, 2011 at 09:33:21AM +, Stuart Henderson wrote:
  On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
   attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
   be released in a couple of weeks
  
  release is scheduled for tomorrow; here is an updated diff for rc3,
  also switching the build to cmake.

I kind of recognized it earlier, but now I started measuring times, and for me, 
the clang 3.0 is dog slow.
I compile sth. with clang 2.9, an WIP libobjc2 port (mostly C), and with clang 
3.0 it takes more than two times the time to compile it. Also with other 
gnustep objective-c stuff, its about the same speed difference.
clang 2.9 is much faster than gcc, but now clang 3.0 is much slower than gcc.

someone else recognized this too?

Sebastian


  
  any opinions on splitting clang off into a separate subpackage? i could
  do so if it might be useful to someone, but haven't seen any point in this
  yet.
 
 Why switch to cmake?  There have been problems updating it in
 the past and gmake works fine.
 
 Anyway here is a quick rc4 port that includes a diff to ignore
 -Wbounded, this doesn't have your changes the Lexer.cpp diff
 isn't yet removed and the various Makefile changes aren't here.
 
 Index: Makefile
 ===
 RCS file: /cvs/ports/devel/llvm/Makefile,v
 retrieving revision 1.34
 diff -u -p -r1.34 Makefile
 --- Makefile  16 Sep 2011 09:24:52 -  1.34
 +++ Makefile  24 Nov 2011 03:03:55 -
 @@ -2,9 +2,8 @@
  
  COMMENT =Low Level Virtual Machine (LLVM) compiler infrastructure
  
 -LLVM_V = 2.9
 +LLVM_V = 3.0rc4
  DISTNAME =   llvm-${LLVM_V}
 -REVISION =   3
  
  CATEGORIES = devel
  
 @@ -23,12 +22,14 @@ PERMIT_DISTFILES_FTP =Yes
  
  WANTLIB =c m pthread stdc++
  
 -MASTER_SITES =   http://llvm.org/releases/${LLVM_V}/
 +#MASTER_SITES =  http://llvm.org/releases/${LLVM_V}/
 +MASTER_SITES =  http://llvm.org/pre-releases/3.0/rc4/
  
 -DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
 +DISTFILES= ${DISTNAME}.src.tar.gz clang-${LLVM_V}.src.tar.gz
 +WRKDIST= ${WRKDIR}/llvm-${LLVM_V}.src
  
  post-extract:
 - @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
 + @mv ${WRKDIR}/clang-${LLVM_V}.src ${WRKDIST}/tools/clang
  
  MODULES =lang/python
  
 @@ -62,7 +63,7 @@ CONFIGURE_ARGS =--enable-bindings=no \
  
  MODGNU_CONFIG_GUESS_DIRS =  ${WRKSRC}/autoconf
  
 -CLANG_INCLUDE_PATH = lib/clang/${LLVM_V}/include
 +CLANG_INCLUDE_PATH = lib/clang/${LLVM_V:C/rc.*$//}/include
  SUBST_VARS +=CLANG_INCLUDE_PATH
  
  pre-configure:
 Index: distinfo
 ===
 RCS file: /cvs/ports/devel/llvm/distinfo,v
 retrieving revision 1.8
 diff -u -p -r1.8 distinfo
 --- distinfo  9 Apr 2011 21:43:39 -   1.8
 +++ distinfo  24 Nov 2011 03:03:55 -
 @@ -1,10 +1,10 @@
 -MD5 (clang-2.9.tgz) = Y03hjQS3pN7RnsTBfSPPyg==
 -MD5 (llvm-2.9.tgz) = eTE4QS0q8sfH9UYV+JQ3cQ==
 -RMD160 (clang-2.9.tgz) = SrecvQ4q0loicubuL7v1RoGNvXM=
 -RMD160 (llvm-2.9.tgz) = yuqgZ/2h6zQZazVqCHZF+Dcxz7c=
 -SHA1 (clang-2.9.tgz) = X9O1zsBQ7BKFjBYCsjzwligq1KQ=
 -SHA1 (llvm-2.9.tgz) = UA9Yf4QBmaxTxPx1coOdCPqdkSM=
 -SHA256 (clang-2.9.tgz) = cMQfP3gqccuqe8jW6in85CY60+hVjf7MbcEc3vF5Cd8=
 -SHA256 (llvm-2.9.tgz) = ZhI2z6F0KLSM+py7mQn3VpxkuOzSGf2R28AOO1V7N3k=
 -SIZE (clang-2.9.tgz) = 6243772
 -SIZE (llvm-2.9.tgz) = 9574781
 +MD5 (clang-3.0rc4.src.tar.gz) = rvN4zb918DT+yAdgxO4Rcg==
 +MD5 (llvm-3.0rc4.src.tar.gz) = A61cynTmYq5lVxp6Hnr4pQ==
 +RMD160 (clang-3.0rc4.src.tar.gz) = /IvLmEtV0Kzbq4c/zxqeSqmbPuc=
 +RMD160 (llvm-3.0rc4.src.tar.gz) = cQISwvoRwBRxMPYErLatf04IN4E=
 +SHA1 (clang-3.0rc4.src.tar.gz) = sTFHq8zIOwUppDvEnH6/XSmnEQs=
 +SHA1 (llvm-3.0rc4.src.tar.gz) = LEKfb4RxNCrUNC5iCLCiyBqTYVA=
 +SHA256 (clang-3.0rc4.src.tar.gz) = 
 pe0GN0jKIaPyMTNq9wiPColF/eNHgzIGXG47LKgUPtg=
 +SHA256 (llvm-3.0rc4.src.tar.gz) = 
 eA6eT5RmbKebyPGju4IbHP7z6NS013t7gaFLR9a72CE=
 +SIZE (clang-3.0rc4.src.tar.gz) = 7308666
 +SIZE (llvm-3.0rc4.src.tar.gz) = 10526647
 Index: patches/patch-tools_clang_lib_Lex_Lexer_cpp
 ===
 RCS file: /cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Lex_Lexer_cpp,v
 retrieving revision 1.6
 diff -u -p -r1.6 patch-tools_clang_lib_Lex_Lexer_cpp
 --- patches/patch-tools_clang_lib_Lex_Lexer_cpp   13 Jan 2011 00:15:50 
 -  1.6
 +++ patches/patch-tools_clang_lib_Lex_Lexer_cpp   24 Nov 2011 03:03:55 
 -
 @@ -1,7 +1,7 @@
  $OpenBSD: patch-tools_clang_lib_Lex_Lexer_cpp,v 1.6 2011/01/13 00:15:50 
 jeremy Exp $
  tools/clang/lib/Lex/Lexer.cpp.orig   Tue Aug 31 09:42:00 2010
 -+++ tools/clang/lib/Lex/Lexer.cppThu Jan  6 11:26:07 2011
 -@@ -1334,6 +1334,7 @@ static bool isEndOfBlockCommentWithEscapedNewLine(cons
 +--- tools/clang/lib/Lex/Lexer.cpp.orig   Sat

Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-24 Thread Sebastian Reitenbach
 
On Thursday, November 24, 2011 04:21 CET, Jonathan Gray j...@goblin.cx wrote: 
 
 On Tue, Nov 15, 2011 at 09:33:21AM +, Stuart Henderson wrote:
  On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
   attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
   be released in a couple of weeks
  
  release is scheduled for tomorrow; here is an updated diff for rc3,
  also switching the build to cmake.
  
  any opinions on splitting clang off into a separate subpackage? i could
  do so if it might be useful to someone, but haven't seen any point in this
  yet.
 
 Why switch to cmake?  There have been problems updating it in
 the past and gmake works fine.
 
 Anyway here is a quick rc4 port that includes a diff to ignore
 -Wbounded, this doesn't have your changes the Lexer.cpp diff
 isn't yet removed and the various Makefile changes aren't here.
 

This rc4 builds fine for me on i386, not like the rc3 from Sthen.
Regression test passes with some failures:

1 warning(s) in tests.
Testing Time: 424.34s

Failing Tests (4):
LLVM :: CodeGen/X86/vec_compare-2.ll
LLVM :: Feature/load_module.ll
LLVM :: MC/ARM/elf-reloc-01.ll
LLVM :: Transforms/LoopStrengthReduce/pr2570.ll

  Expected Passes: 5588
  Expected Failures  : 48
  Unsupported Tests  : 15
  Unexpected Failures: 4

Anyways, I used the rc1, and also tested with a svn trunk checkout past 3.0, to 
build all the x11/gnustep objective-c stuff, which worked well.

I guess it will also not build on sparc64, see this bug I created in their bug 
tracker:
http://llvm.org/bugs/show_bug.cgi?id=11273
Maybe now its possible to use gcc-4.6 from ports on sparc64 to build it 
successfully?


cheers,
Sebastian



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-24 Thread Stuart Henderson
On 2011/11/24 14:21, Jonathan Gray wrote:
 On Tue, Nov 15, 2011 at 09:33:21AM +, Stuart Henderson wrote:
  On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
   attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
   be released in a couple of weeks
  
  release is scheduled for tomorrow; here is an updated diff for rc3,
  also switching the build to cmake.
  
  any opinions on splitting clang off into a separate subpackage? i could
  do so if it might be useful to someone, but haven't seen any point in this
  yet.
 
 Why switch to cmake?  There have been problems updating it in
 the past and gmake works fine.

The cmake build produces a correctly versioned liblibclang.so which
the autoconf build doesn't

+@lib lib/liblibclang.so.${LIBlibclang_VERSION}

vs

lib/libclang.so

 Anyway here is a quick rc4 port that includes a diff to ignore
 -Wbounded,

I'll merge this in



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-24 Thread Stuart Henderson
On 2011/11/24 09:47, Sebastian Reitenbach wrote:
 This rc4 builds fine for me on i386, not like the rc3 from Sthen.

rc4 builds fine on i386 with cmake too.

 I guess it will also not build on sparc64, see this bug I created in their 
 bug tracker:

I tested rc3 build on sparc64, that does work (but sparc64
is not targetted for code production so it's of limited use)



Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-23 Thread Jonathan Gray
On Tue, Nov 15, 2011 at 09:33:21AM +, Stuart Henderson wrote:
 On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
  attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
  be released in a couple of weeks
 
 release is scheduled for tomorrow; here is an updated diff for rc3,
 also switching the build to cmake.
 
 any opinions on splitting clang off into a separate subpackage? i could
 do so if it might be useful to someone, but haven't seen any point in this
 yet.

Why switch to cmake?  There have been problems updating it in
the past and gmake works fine.

Anyway here is a quick rc4 port that includes a diff to ignore
-Wbounded, this doesn't have your changes the Lexer.cpp diff
isn't yet removed and the various Makefile changes aren't here.

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile
--- Makefile16 Sep 2011 09:24:52 -  1.34
+++ Makefile24 Nov 2011 03:03:55 -
@@ -2,9 +2,8 @@
 
 COMMENT =  Low Level Virtual Machine (LLVM) compiler infrastructure
 
-LLVM_V =   2.9
+LLVM_V =   3.0rc4
 DISTNAME = llvm-${LLVM_V}
-REVISION = 3
 
 CATEGORIES =   devel
 
@@ -23,12 +22,14 @@ PERMIT_DISTFILES_FTP =  Yes
 
 WANTLIB =  c m pthread stdc++
 
-MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
+#MASTER_SITES =http://llvm.org/releases/${LLVM_V}/
+MASTER_SITES =  http://llvm.org/pre-releases/3.0/rc4/
 
-DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
+DISTFILES= ${DISTNAME}.src.tar.gz clang-${LLVM_V}.src.tar.gz
+WRKDIST= ${WRKDIR}/llvm-${LLVM_V}.src
 
 post-extract:
-   @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
+   @mv ${WRKDIR}/clang-${LLVM_V}.src ${WRKDIST}/tools/clang
 
 MODULES =  lang/python
 
@@ -62,7 +63,7 @@ CONFIGURE_ARGS =  --enable-bindings=no \
 
 MODGNU_CONFIG_GUESS_DIRS =  ${WRKSRC}/autoconf
 
-CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
+CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V:C/rc.*$//}/include
 SUBST_VARS +=  CLANG_INCLUDE_PATH
 
 pre-configure:
Index: distinfo
===
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- distinfo9 Apr 2011 21:43:39 -   1.8
+++ distinfo24 Nov 2011 03:03:55 -
@@ -1,10 +1,10 @@
-MD5 (clang-2.9.tgz) = Y03hjQS3pN7RnsTBfSPPyg==
-MD5 (llvm-2.9.tgz) = eTE4QS0q8sfH9UYV+JQ3cQ==
-RMD160 (clang-2.9.tgz) = SrecvQ4q0loicubuL7v1RoGNvXM=
-RMD160 (llvm-2.9.tgz) = yuqgZ/2h6zQZazVqCHZF+Dcxz7c=
-SHA1 (clang-2.9.tgz) = X9O1zsBQ7BKFjBYCsjzwligq1KQ=
-SHA1 (llvm-2.9.tgz) = UA9Yf4QBmaxTxPx1coOdCPqdkSM=
-SHA256 (clang-2.9.tgz) = cMQfP3gqccuqe8jW6in85CY60+hVjf7MbcEc3vF5Cd8=
-SHA256 (llvm-2.9.tgz) = ZhI2z6F0KLSM+py7mQn3VpxkuOzSGf2R28AOO1V7N3k=
-SIZE (clang-2.9.tgz) = 6243772
-SIZE (llvm-2.9.tgz) = 9574781
+MD5 (clang-3.0rc4.src.tar.gz) = rvN4zb918DT+yAdgxO4Rcg==
+MD5 (llvm-3.0rc4.src.tar.gz) = A61cynTmYq5lVxp6Hnr4pQ==
+RMD160 (clang-3.0rc4.src.tar.gz) = /IvLmEtV0Kzbq4c/zxqeSqmbPuc=
+RMD160 (llvm-3.0rc4.src.tar.gz) = cQISwvoRwBRxMPYErLatf04IN4E=
+SHA1 (clang-3.0rc4.src.tar.gz) = sTFHq8zIOwUppDvEnH6/XSmnEQs=
+SHA1 (llvm-3.0rc4.src.tar.gz) = LEKfb4RxNCrUNC5iCLCiyBqTYVA=
+SHA256 (clang-3.0rc4.src.tar.gz) = pe0GN0jKIaPyMTNq9wiPColF/eNHgzIGXG47LKgUPtg=
+SHA256 (llvm-3.0rc4.src.tar.gz) = eA6eT5RmbKebyPGju4IbHP7z6NS013t7gaFLR9a72CE=
+SIZE (clang-3.0rc4.src.tar.gz) = 7308666
+SIZE (llvm-3.0rc4.src.tar.gz) = 10526647
Index: patches/patch-tools_clang_lib_Lex_Lexer_cpp
===
RCS file: /cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Lex_Lexer_cpp,v
retrieving revision 1.6
diff -u -p -r1.6 patch-tools_clang_lib_Lex_Lexer_cpp
--- patches/patch-tools_clang_lib_Lex_Lexer_cpp 13 Jan 2011 00:15:50 -  
1.6
+++ patches/patch-tools_clang_lib_Lex_Lexer_cpp 24 Nov 2011 03:03:55 -
@@ -1,7 +1,7 @@
 $OpenBSD: patch-tools_clang_lib_Lex_Lexer_cpp,v 1.6 2011/01/13 00:15:50 jeremy 
Exp $
 tools/clang/lib/Lex/Lexer.cpp.orig Tue Aug 31 09:42:00 2010
-+++ tools/clang/lib/Lex/Lexer.cpp  Thu Jan  6 11:26:07 2011
-@@ -1334,6 +1334,7 @@ static bool isEndOfBlockCommentWithEscapedNewLine(cons
+--- tools/clang/lib/Lex/Lexer.cpp.orig Sat Oct 15 12:18:56 2011
 tools/clang/lib/Lex/Lexer.cpp  Thu Nov 24 12:32:48 2011
+@@ -1853,6 +1853,7 @@ static bool isEndOfBlockCommentWithEscapedNewLine(cons
return true;
  }
  
Index: patches/patch-tools_clang_lib_Sema_AttributeList_cpp
===
RCS file: 
/cvs/ports/devel/llvm/patches/patch-tools_clang_lib_Sema_AttributeList_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-tools_clang_lib_Sema_AttributeList_cpp
--- patches/patch-tools_clang_lib_Sema_AttributeList_cpp13 Jan 2011 
00:15:50 -  1.1
+++ patches/patch-tools_clang_lib_Sema_AttributeList_cpp

Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-22 Thread Sebastian Reitenbach
Hi,
 
On Tuesday, November 15, 2011 10:33 CET, Stuart Henderson 
s...@spacehopper.org wrote: 
 
 On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
  attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
  be released in a couple of weeks
 
 release is scheduled for tomorrow; here is an updated diff for rc3,
 also switching the build to cmake.
 
 any opinions on splitting clang off into a separate subpackage? i could
 do so if it might be useful to someone, but haven't seen any point in this
 yet.

The rc3 fails to build for me on i386:

[  7%] Building CXX object 
utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o
cd /home/ports/pobj/llvm-3.0rc3.src/build-i386/utils/TableGen  /usr/bin/c++   
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS 
-DI_WAS_HERE  -fPIC -DNDEBUG 
-I/home/ports/pobj/llvm-3.0rc3.src/build-i386/utils/TableGen 
-I/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen 
-I/home/ports/pobj/llvm-3.0rc3.src/build-i386/include 
-I/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/include-Wall -W 
-Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -o 
CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o -c 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/X86RecognizableInstr.cpp
In file included from /usr/include/g++/memory:60,
 from /usr/include/g++/string:48,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/X86DisassemblerShared.h:13,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/X86RecognizableInstr.cpp:17:
/usr/include/g++/limits: In static member function 'static char 
std::numeric_limitschar::min()':
/usr/include/g++/limits:375: warning: overflow in implicit constant conversion
/usr/include/g++/limits: In static member function 'static wchar_t 
std::numeric_limitswchar_t::max()':
/usr/include/g++/limits:530: warning: overflow in implicit constant conversion
In file included from /usr/include/g++/bits/locale_facets.h:47,
 from /usr/include/g++/bits/basic_ios.h:44,
 from /usr/include/g++/ios:50,
 from /usr/include/g++/ostream:45,
 from /usr/include/g++/iterator:70,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/include/llvm/ADT/SmallVector.h:23,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/include/llvm/ADT/SmallSet.h:17,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/include/llvm/ADT/SetVector.h:23,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/SetTheory.h:51,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/CodeGenRegisters.h:18,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/CodeGenTarget.h:20,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/X86RecognizableInstr.h:22,
 from 
/home/ports/pobj/llvm-3.0rc3.src/llvm-3.0rc3.src/utils/TableGen/X86RecognizableInstr.cpp:18:
/usr/include/g++/i386-unknown-openbsd5.0/bits/ctype_base.h: At global scope:
/usr/include/g++/i386-unknown-openbsd5.0/bits/ctype_base.h:55: warning: 
overflow in implicit constant conversion
Linking CXX executable ../../bin/llvm-tblgen
cd /home/ports/pobj/llvm-3.0rc3.src/build-i386/utils/TableGen  
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/llvm-tblgen.dir/link.txt 
--verbose=Yes
/usr/bin/c++   -DI_WAS_HERE  -fPIC -DNDEBUG
CMakeFiles/llvm-tblgen.dir/ARMDecoderEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmWriterEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/AsmWriterInst.cpp.o 
CMakeFiles/llvm-tblgen.dir/CallingConvEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeEmitterGen.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenInstruction.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenRegisters.cpp.o 
CMakeFiles/llvm-tblgen.dir/CodeGenTarget.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o 
CMakeFiles/llvm-tblgen.dir/DAGISelMatcher.cpp.o 
CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/EDEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/FastISelEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/FixedLenDecoderEmi
 tter.cpp.o CMakeFiles/llvm-tblgen.dir/InstrEnumEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/InstrInfoEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/IntrinsicEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/RegisterInfoEmitter.cpp.o 
CMakeFiles/llvm-tblgen.dir/SetTheory.cpp.o 
CMakeFiles/llvm-tblgen.dir/StringMatcher.cpp.o 
CMakeFiles/llvm-tblgen.dir/SubtargetEmitter.cpp.o 
CMakeFiles/llvm

Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-15 Thread Stuart Henderson
On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
 attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
 be released in a couple of weeks

release is scheduled for tomorrow; here is an updated diff for rc3,
also switching the build to cmake.

any opinions on splitting clang off into a separate subpackage? i could
do so if it might be useful to someone, but haven't seen any point in this
yet.

Index: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.34
diff -u -p -r1.34 Makefile
--- Makefile16 Sep 2011 09:24:52 -  1.34
+++ Makefile15 Nov 2011 09:29:15 -
@@ -1,10 +1,11 @@
 # $OpenBSD: Makefile,v 1.34 2011/09/16 09:24:52 espie Exp $
 
-COMMENT =  Low Level Virtual Machine (LLVM) compiler infrastructure
+SHARED_LIBS +=  libclang  0.0 # 3.0
 
-LLVM_V =   2.9
-DISTNAME = llvm-${LLVM_V}
-REVISION = 3
+COMMENT =  modular, fast C/C++/ObjC compiler, static analyzer and tools
+
+LLVM_V =   3.0
+DISTNAME = llvm-${LLVM_V}rc3.src
 
 CATEGORIES =   devel
 
@@ -23,14 +24,18 @@ PERMIT_DISTFILES_FTP =  Yes
 
 WANTLIB =  c m pthread stdc++
 
-MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
+#MASTER_SITES =http://llvm.org/releases/${LLVM_V}/
+MASTER_SITES = http://llvm.org/pre-releases/3.0/rc3/
 
-DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
+DISTFILES =${DISTNAME}.tar.gz clang-${LLVM_V}rc3.src.tar.gz
+WRKDIST =  ${WRKDIR}/llvm-${LLVM_V}rc3.src
 
 post-extract:
-   @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
+   @rm ${WRKDIST}/tools/clang
+   @mv ${WRKDIR}/clang-${LLVM_V}rc3.src ${WRKDIST}/tools/clang
 
-MODULES =  lang/python
+MODULES =  devel/cmake \
+   lang/python
 
 # graphviz can be optionally used to draw graphs, but adds heavy build and
 # run dependencies, and this feature is often not needed. lie to autoconf
@@ -49,18 +54,13 @@ MAKE_FLAGS =OPTIMIZE_OPTION=${CFLAGS}
 REGRESS_FLAGS =RUNTESTFLAGS=
 
 SEPARATE_BUILD =   simple
-USE_GMAKE =Yes
 USE_LIBTOOL =  Yes
-USE_GROFF =Yes
 MAKE_ENV = REQUIRES_RTTI=1
 
 # also supports cmake
-CONFIGURE_STYLE =  gnu
-CONFIGURE_ARGS =   --enable-bindings=no \
-   --enable-libffi=no \
-   --enable-optimized
-
-MODGNU_CONFIG_GUESS_DIRS =  ${WRKSRC}/autoconf
+CONFIGURE_STYLE =  cmake
+CONFIGURE_ARGS =   -DLLVM_ENABLE_FFI:Bool=False \
+   -DCMAKE_BUILD_TYPE:String=Release
 
 CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
 SUBST_VARS +=  CLANG_INCLUDE_PATH
@@ -70,14 +70,23 @@ pre-configure:
@${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
@ln -s ${MODPY_BIN} ${WRKDIR}/bin/python
 
+post-build:
+   cd ${WRKSRC}/docs/CommandGuide  for i in *.pod; do \
+   pod2man --release=CVS --center=LLVM Command Guide \
+   $$i man/man1/$${i%.pod}.1; \
+   done
+   pod2man --release=CVS --center=LLVM Command Guide \
+   ${WRKSRC}/tools/clang/docs/tools/clang.pod \
+   ${WRKSRC}/docs/CommandGuide/man/man1/clang.1
+
 post-install:
-   @${INSTALL_DATA_DIR} ${PREFIX}/share/llvm
-   @${INSTALL_DATA_DIR} ${WRKINST}/${MODPY_SITEPKG}
-   @${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \
+   ${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/c++-analyzer \
${WRKSRC}/tools/clang/tools/scan-build/scan-build ${PREFIX}/bin
-   @${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \
+   ${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \
${WRKSRC}/tools/clang/tools/scan-build/scanview.css \
${PREFIX}/share/llvm
+   ${INSTALL_DATA} ${WRKSRC}/docs/CommandGuide/man/man1/* \
+   ${PREFIX}/man/man1
 
 .include bsd.port.mk
Index: distinfo
===
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.8
diff -u -p -r1.8 distinfo
--- distinfo9 Apr 2011 21:43:39 -   1.8
+++ distinfo15 Nov 2011 09:29:15 -
@@ -1,10 +1,10 @@
-MD5 (clang-2.9.tgz) = Y03hjQS3pN7RnsTBfSPPyg==
-MD5 (llvm-2.9.tgz) = eTE4QS0q8sfH9UYV+JQ3cQ==
-RMD160 (clang-2.9.tgz) = SrecvQ4q0loicubuL7v1RoGNvXM=
-RMD160 (llvm-2.9.tgz) = yuqgZ/2h6zQZazVqCHZF+Dcxz7c=
-SHA1 (clang-2.9.tgz) = X9O1zsBQ7BKFjBYCsjzwligq1KQ=
-SHA1 (llvm-2.9.tgz) = UA9Yf4QBmaxTxPx1coOdCPqdkSM=
-SHA256 (clang-2.9.tgz) = cMQfP3gqccuqe8jW6in85CY60+hVjf7MbcEc3vF5Cd8=
-SHA256 (llvm-2.9.tgz) = ZhI2z6F0KLSM+py7mQn3VpxkuOzSGf2R28AOO1V7N3k=
-SIZE (clang-2.9.tgz) = 6243772
-SIZE (llvm-2.9.tgz) = 9574781
+MD5 (clang-3.0rc3.src.tar.gz) = idnrV1x/UKcEGn70DlZdiw==
+MD5 (llvm-3.0rc3.src.tar.gz) = hIxSHreenVZTq8dGSbOuRg==
+RMD160 (clang-3.0rc3.src.tar.gz

Re: UPDATE: llvm-3.0rc1 just for testing...

2011-11-15 Thread Amit Kulkarni
On Tue, Nov 15, 2011 at 3:33 AM, Stuart Henderson s...@spacehopper.org wrote:
 On 2011-10-26, Sebastian Reitenbach sebas...@l00-bugdead-prods.de wrote:
 attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to
 be released in a couple of weeks

 release is scheduled for tomorrow; here is an updated diff for rc3,
 also switching the build to cmake.

 any opinions on splitting clang off into a separate subpackage? i could
 do so if it might be useful to someone, but haven't seen any point in this
 yet.

Stuart,

Its good that we are finally removing the Lex_Lexer SSE2 patch for i386.

I have saved matthew@ diff to our base gcc which allows clang++ to
compile and run programs without problems, can that go in with
everybody's consent?

thanks

http://www.mail-archive.com/ports@openbsd.org/msg32672.html
or
http://marc.info/?l=openbsd-portsm=129783295016631w=2 (same post but
different server)


 Index: Makefile
 ===
 RCS file: /cvs/ports/devel/llvm/Makefile,v
 retrieving revision 1.34
 diff -u -p -r1.34 Makefile
 --- Makefile    16 Sep 2011 09:24:52 -      1.34
 +++ Makefile    15 Nov 2011 09:29:15 -
 @@ -1,10 +1,11 @@
  # $OpenBSD: Makefile,v 1.34 2011/09/16 09:24:52 espie Exp $

 -COMMENT =      Low Level Virtual Machine (LLVM) compiler infrastructure
 +SHARED_LIBS +=  libclang                  0.0 # 3.0

 -LLVM_V =       2.9
 -DISTNAME =     llvm-${LLVM_V}
 -REVISION =     3
 +COMMENT =      modular, fast C/C++/ObjC compiler, static analyzer and tools
 +
 +LLVM_V =       3.0
 +DISTNAME =     llvm-${LLVM_V}rc3.src

  CATEGORIES =   devel

 @@ -23,14 +24,18 @@ PERMIT_DISTFILES_FTP =      Yes

  WANTLIB =      c m pthread stdc++

 -MASTER_SITES = http://llvm.org/releases/${LLVM_V}/
 +#MASTER_SITES =        http://llvm.org/releases/${LLVM_V}/
 +MASTER_SITES = http://llvm.org/pre-releases/3.0/rc3/

 -DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
 +DISTFILES =    ${DISTNAME}.tar.gz clang-${LLVM_V}rc3.src.tar.gz
 +WRKDIST =      ${WRKDIR}/llvm-${LLVM_V}rc3.src

  post-extract:
 -       @mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
 +       @rm ${WRKDIST}/tools/clang
 +       @mv ${WRKDIR}/clang-${LLVM_V}rc3.src ${WRKDIST}/tools/clang

 -MODULES =      lang/python
 +MODULES =      devel/cmake \
 +               lang/python

  # graphviz can be optionally used to draw graphs, but adds heavy build and
  # run dependencies, and this feature is often not needed. lie to autoconf
 @@ -49,18 +54,13 @@ MAKE_FLAGS =        OPTIMIZE_OPTION=${CFLAGS}
  REGRESS_FLAGS =        RUNTESTFLAGS=

  SEPARATE_BUILD =       simple
 -USE_GMAKE =            Yes
  USE_LIBTOOL =          Yes
 -USE_GROFF =            Yes
  MAKE_ENV =             REQUIRES_RTTI=1

  # also supports cmake
 -CONFIGURE_STYLE =      gnu
 -CONFIGURE_ARGS =       --enable-bindings=no \
 -                       --enable-libffi=no \
 -                       --enable-optimized
 -
 -MODGNU_CONFIG_GUESS_DIRS =  ${WRKSRC}/autoconf
 +CONFIGURE_STYLE =      cmake
 +CONFIGURE_ARGS =       -DLLVM_ENABLE_FFI:Bool=False \
 +                       -DCMAKE_BUILD_TYPE:String=Release

  CLANG_INCLUDE_PATH =   lib/clang/${LLVM_V}/include
  SUBST_VARS +=  CLANG_INCLUDE_PATH
 @@ -70,14 +70,23 @@ pre-configure:
        @${SUBST_CMD} ${WRKSRC}/tools/clang/tools/scan-build/scan-build
        @ln -s ${MODPY_BIN} ${WRKDIR}/bin/python

 +post-build:
 +       cd ${WRKSRC}/docs/CommandGuide  for i in *.pod; do \
 +       pod2man --release=CVS --center=LLVM Command Guide \
 +           $$i man/man1/$${i%.pod}.1; \
 +       done
 +       pod2man --release=CVS --center=LLVM Command Guide \
 +           ${WRKSRC}/tools/clang/docs/tools/clang.pod \
 +           ${WRKSRC}/docs/CommandGuide/man/man1/clang.1
 +
  post-install:
 -       @${INSTALL_DATA_DIR} ${PREFIX}/share/llvm
 -       @${INSTALL_DATA_DIR} ${WRKINST}/${MODPY_SITEPKG}
 -       @${INSTALL_SCRIPT} 
 ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer \
 +       ${INSTALL_SCRIPT} ${WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer 
 \
            ${WRKSRC}/tools/clang/tools/scan-build/c++-analyzer \
            ${WRKSRC}/tools/clang/tools/scan-build/scan-build ${PREFIX}/bin
 -       @${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \
 +       ${INSTALL_DATA} ${WRKSRC}/tools/clang/tools/scan-build/sorttable.js \
            ${WRKSRC}/tools/clang/tools/scan-build/scanview.css \
            ${PREFIX}/share/llvm
 +       ${INSTALL_DATA} ${WRKSRC}/docs/CommandGuide/man/man1/* \
 +           ${PREFIX}/man/man1

  .include bsd.port.mk
 Index: distinfo
 ===
 RCS file: /cvs/ports/devel/llvm/distinfo,v
 retrieving revision 1.8
 diff -u -p -r1.8 distinfo
 --- distinfo    9 Apr 2011 21:43:39 -       1.8
 +++ distinfo    15 Nov 2011 09:29:15 -
 @@ -1,10 +1,10 @@
 -MD5 (clang-2.9.tgz) = Y03hjQS3pN7RnsTBfSPPyg==
 -MD5 (llvm-2.9.tgz) = eTE4QS0q8sfH9UYV+JQ3cQ==
 -RMD160 (clang

UPDATE: llvm-3.0rc1 just for testing...

2011-10-26 Thread Sebastian Reitenbach
Hi,

attached patch to update llvm to 3.0 rc1. The 3.0 is supposed to be released in 
a couple of weeks, so I thought, good time to test, and report back 
regressions, so that they maybe get fixed for the release.

report bugs/problems there:
http://www.llvm.org/bugs/

I use it to test compiling x11/gnustep with it, instead of using gcc, and 
actually found some regressions. The port is ugly, so I don't ask whether this 
can go in, but I hope its maybe useful for someone.

cheers,
SebastianIndex: Makefile
===
RCS file: /cvs/ports/devel/llvm/Makefile,v
retrieving revision 1.34
diff -u -r1.34 Makefile
--- Makefile	16 Sep 2011 09:24:52 -	1.34
+++ Makefile	26 Oct 2011 11:46:10 -
@@ -2,9 +2,8 @@
 
 COMMENT =	Low Level Virtual Machine (LLVM) compiler infrastructure
 
-LLVM_V =	2.9
-DISTNAME =	llvm-${LLVM_V}
-REVISION =	3
+LLVM_V =	3.0rc1
+DISTNAME =	llvm-${LLVM_V}.src
 
 CATEGORIES =	devel
 
@@ -23,11 +22,14 @@
 
 WANTLIB =	c m pthread stdc++
 
-MASTER_SITES =	http://llvm.org/releases/${LLVM_V}/
+#MASTER_SITES =	http://llvm.org/pre-releases/${LLVM_V}/
+MASTER_SITES =	http://llvm.org/pre-releases/3.0/rc1/sources/
 
-DISTFILES= ${DISTNAME}.tgz clang-${LLVM_V}.tgz
+DISTFILES= ${DISTNAME}.tar.gz clang-${LLVM_V}.src.tar.gz
+WRKDIST =	${WRKDIR}/llvm-${LLVM_V} 
 
 post-extract:
+	@rm ${WRKDIST}/tools/clang
 	@mv ${WRKDIR}/clang-${LLVM_V} ${WRKDIST}/tools/clang
 
 MODULES =	lang/python
Index: distinfo
===
RCS file: /cvs/ports/devel/llvm/distinfo,v
retrieving revision 1.8
diff -u -r1.8 distinfo
--- distinfo	9 Apr 2011 21:43:39 -	1.8
+++ distinfo	26 Oct 2011 11:46:10 -
@@ -1,10 +1,10 @@
-MD5 (clang-2.9.tgz) = Y03hjQS3pN7RnsTBfSPPyg==
-MD5 (llvm-2.9.tgz) = eTE4QS0q8sfH9UYV+JQ3cQ==
-RMD160 (clang-2.9.tgz) = SrecvQ4q0loicubuL7v1RoGNvXM=
-RMD160 (llvm-2.9.tgz) = yuqgZ/2h6zQZazVqCHZF+Dcxz7c=
-SHA1 (clang-2.9.tgz) = X9O1zsBQ7BKFjBYCsjzwligq1KQ=
-SHA1 (llvm-2.9.tgz) = UA9Yf4QBmaxTxPx1coOdCPqdkSM=
-SHA256 (clang-2.9.tgz) = cMQfP3gqccuqe8jW6in85CY60+hVjf7MbcEc3vF5Cd8=
-SHA256 (llvm-2.9.tgz) = ZhI2z6F0KLSM+py7mQn3VpxkuOzSGf2R28AOO1V7N3k=
-SIZE (clang-2.9.tgz) = 6243772
-SIZE (llvm-2.9.tgz) = 9574781
+MD5 (clang-3.0rc1.src.tar.gz) = xTkDnpi7VeZwjMKT8zmpKQ==
+MD5 (llvm-3.0rc1.src.tar.gz) = 6UGBf/Y32MG19cKb01yiHw==
+RMD160 (clang-3.0rc1.src.tar.gz) = 5zN4XLq59SmokiIRmV+P+0lFDuM=
+RMD160 (llvm-3.0rc1.src.tar.gz) = hMmlkR4ODkJDeEucb2yOG/GK/Vk=
+SHA1 (clang-3.0rc1.src.tar.gz) = vcujb6Bt/+S5I1sT6ndA8woEwj0=
+SHA1 (llvm-3.0rc1.src.tar.gz) = BVou+Bzau44DJfTLpWNVK1e7DMA=
+SHA256 (clang-3.0rc1.src.tar.gz) = 7OIKfSrMMTQ3heyQmxeigfMYrlyEcwbKOrBMqBgDlPY=
+SHA256 (llvm-3.0rc1.src.tar.gz) = gA1nQT+EbnBZwFsXSDmEV+A6d4U5PAxWW8+1JI1Q7fQ=
+SIZE (clang-3.0rc1.src.tar.gz) = 7230982
+SIZE (llvm-3.0rc1.src.tar.gz) = 10348118
Index: patches/patch-Makefile_config_in
===
RCS file: /cvs/ports/devel/llvm/patches/patch-Makefile_config_in,v
retrieving revision 1.4
diff -u -r1.4 patch-Makefile_config_in
--- patches/patch-Makefile_config_in	13 Jan 2011 00:15:50 -	1.4
+++ patches/patch-Makefile_config_in	26 Oct 2011 11:46:10 -
@@ -1,6 +1,6 @@
 $OpenBSD: patch-Makefile_config_in,v 1.4 2011/01/13 00:15:50 jeremy Exp $
 Makefile.config.in.orig	Tue Aug  3 15:53:22 2010
-+++ Makefile.config.in	Thu Jan  6 11:26:07 2011
+--- Makefile.config.in.orig	Thu Oct 13 19:27:34 2011
 Makefile.config.in	Tue Oct 25 01:14:45 2011
 @@ -83,11 +83,11 @@ LLVMMAKE := $(LLVM_SRC_ROOT)/make
  PROJ_bindir := $(PROJ_prefix)/bin
  PROJ_libdir := $(PROJ_prefix)/lib
Index: patches/patch-tools_clang_lib_CodeGen_CGObjCGNU_cpp
===
RCS file: patches/patch-tools_clang_lib_CodeGen_CGObjCGNU_cpp
diff -N patches/patch-tools_clang_lib_CodeGen_CGObjCGNU_cpp
--- /dev/null	1 Jan 1970 00:00:00 -
+++ patches/patch-tools_clang_lib_CodeGen_CGObjCGNU_cpp	26 Oct 2011 11:46:10 -
@@ -0,0 +1,58 @@
+$OpenBSD$
+
+fix bug in objc compilation
+
+--- tools/clang/lib/CodeGen/CGObjCGNU.cpp.orig	Sat Oct  8 10:54:36 2011
 tools/clang/lib/CodeGen/CGObjCGNU.cpp	Tue Oct 25 01:15:53 2011
+@@ -1361,8 +1361,8 @@ llvm::Constant *CGObjCGNU::GenerateClassStructure(
+   LongTy, // abi_version
+   IvarOffsets-getType(), // ivar_offsets
+   Properties-getType(),  // properties
+-  Int64Ty,// strong_pointers
+-  Int64Ty,// weak_pointers
++  IntPtrTy,   // strong_pointers
++  IntPtrTy,   // weak_pointers
+   NULL);
+   llvm::Constant *Zero = llvm::ConstantInt::get(LongTy, 0);
+   // Fill in the structure
+@@ -1723,12 +1723,14 @@ void CGObjCGNU::GenerateProtocolHolderCategory(void) {
+ /// bitfield / with the 63rd bit set will be 164.
+ llvm::Constant *CGObjCGNU::MakeBitField(llvm::SmallVectorImplbool bits) {
+   int bitCount