Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-27 Thread Dimitry Andric via cfe-commits
dim added a comment.

Tried this with trunk r256465, but I get the following test failure:

  FAIL: Clang :: Driver/dragonfly.c (3997 of 30174)
   TEST 'Clang :: Driver/dragonfly.c' FAILED 

  Script:
  --
  /home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/clang  
-no-canonical-prefixes -target x86_64-pc-dragonfly 
/share/dim/src/llvm/trunk/tools/clang/test/Driver/dragonfly.c -### 2> 
/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/tools/clang/test/Driver/Output/dragonfly.c.tmp.log
  
/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/FileCheck 
-input-file 
/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/tools/clang/test/Driver/Output/dragonfly.c.tmp.log
 /share/dim/src/llvm/trunk/tools/clang/test/Driver/dragonfly.c
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  /share/dim/src/llvm/trunk/tools/clang/test/Driver/dragonfly.c:5:11: 
error: expected string not found in input
  // CHECK: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" 
"/usr/libexec/ld-elf.so.{{.*}}" "--hash-style=gnu" "-o" "a.out" "{{.*}}crt1.o" 
"{{.*}}crti.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-L{{.*}}gcc{{.*}}" "-rpath" 
"{{.*}}gcc{{.*}}" "-lc" "-lgcc" "{{.*}}crtend.o" "{{.*}}crtn.o"
  ^
  
/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/tools/clang/test/Driver/Output/dragonfly.c.tmp.log:5:115:
 note: scanning from here
   
"/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/clang" 
"-cc1" "-triple" "x86_64-pc-dragonfly" "-emit-obj" "-mrelax-all" 
"-disable-free" "-main-file-name" "dragonfly.c" "-mrelocation-model" "static" 
"-mthread-model" "posix" "-mdisable-fp-elim" "-masm-verbose" 
"-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" 
"-dwarf-column-info" "-debugger-tuning=gdb" "-resource-dir" 
"/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/../lib/clang/3.8.0"
 "-fdebug-compilation-dir" 
"/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/tools/clang/test/Driver"
 "-ferror-limit" "19" "-fmessage-length" "0" "-fobjc-runtime=gcc" 
"-fdiagnostics-show-option" "-o" "/tmp/dragonfly-a045e8.o" "-x" "c" 
"/share/dim/src/llvm/trunk/tools/clang/test/Driver/dragonfly.c"

  ^

@jrmarino, any idea?  The actual output of the script was:

  clang version 3.8.0 (trunk 256465)
  Target: x86_64-pc-dragonfly
  Thread model: posix
  InstalledDir: 
/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin
   "/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/clang" 
"-cc1" "-triple" "x86_64-pc-dragonfly" "-emit-obj" "-mrelax-all" 
"-disable-free" "-main-file-name" "dragonfly.c" "-mrelocation-model" "static" 
"-mthread-model" "posix" "-mdisable-fp-elim" "-masm-verbose" 
"-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" 
"-dwarf-column-info" "-debugger-tuning=gdb" "-resource-dir" 
"/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/./bin/../lib/clang/3.8.0"
 "-fdebug-compilation-dir" 
"/home/dim/obj/llvm-256465M-trunk-freebsd11-i386-ninja-rel-1/tools/clang/test/Driver"
 "-ferror-limit" "19" "-fmessage-length" "0" "-fobjc-runtime=gcc" 
"-fdiagnostics-show-option" "-o" "/tmp/dragonfly-a045e8.o" "-x" "c" 
"/share/dim/src/llvm/trunk/tools/clang/test/Driver/dragonfly.c"
   "/usr/local/bin/ld" "--eh-frame-hdr" "-dynamic-linker" 
"/usr/libexec/ld-elf.so.2" "--hash-style=gnu" "--enable-new-dtags" "-o" "a.out" 
"/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" 
"/tmp/dragonfly-a045e8.o" "-L/usr/lib/gcc50" "-rpath" "/usr/lib/gcc50" "-lc" 
"-lgcc" "--as-needed" "-lgcc_pic" "--no-as-needed" "/usr/lib/crtend.o" 
"/usr/lib/crtn.o"


http://reviews.llvm.org/D15166



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-27 Thread Dimitry Andric via cfe-commits
dim updated this revision to Diff 43654.
dim added a comment.

Fix the test to check for --enable-new-dtags.


http://reviews.llvm.org/D15166

Files:
  lib/Driver/ToolChains.cpp
  lib/Driver/Tools.cpp
  lib/Frontend/InitHeaderSearch.cpp
  test/Driver/dragonfly.c

Index: test/Driver/dragonfly.c
===
--- test/Driver/dragonfly.c
+++ test/Driver/dragonfly.c
@@ -2,6 +2,6 @@
 // RUN: FileCheck -input-file %t.log %s
 
 // CHECK: clang{{.*}}" "-cc1" "-triple" "x86_64-pc-dragonfly"
-// CHECK: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/usr/libexec/ld-elf.so.{{.*}}" "--hash-style=both" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-L{{.*}}gcc4{{.*}}" "-rpath" "{{.*}}gcc4{{.*}}" "-lc" "-lgcc" "{{.*}}crtend.o" "{{.*}}crtn.o"
+// CHECK: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/usr/libexec/ld-elf.so.{{.*}}" "--hash-style=gnu" "--enable-new-dtags" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-L{{.*}}gcc{{.*}}" "-rpath" "{{.*}}gcc{{.*}}" "-lc" "-lgcc" "{{.*}}crtend.o" "{{.*}}crtn.o"
 
 
Index: lib/Frontend/InitHeaderSearch.cpp
===
--- lib/Frontend/InitHeaderSearch.cpp
+++ lib/Frontend/InitHeaderSearch.cpp
@@ -410,10 +410,7 @@
 }
 break;
   case llvm::Triple::DragonFly:
-if (llvm::sys::fs::exists("/usr/lib/gcc47"))
-  AddPath("/usr/include/c++/4.7", CXXSystem, false);
-else
-  AddPath("/usr/include/c++/4.4", CXXSystem, false);
+AddPath("/usr/include/c++/5.0", CXXSystem, false);
 break;
   case llvm::Triple::OpenBSD: {
 std::string t = triple.getTriple();
Index: lib/Driver/Tools.cpp
===
--- lib/Driver/Tools.cpp
+++ lib/Driver/Tools.cpp
@@ -9192,7 +9192,6 @@
  const char *LinkingOutput) const {
   const Driver  = getToolChain().getDriver();
   ArgStringList CmdArgs;
-  bool UseGCC47 = llvm::sys::fs::exists("/usr/lib/gcc47");
 
   if (!D.SysRoot.empty())
 CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
@@ -9209,7 +9208,8 @@
   CmdArgs.push_back("-dynamic-linker");
   CmdArgs.push_back("/usr/libexec/ld-elf.so.2");
 }
-CmdArgs.push_back("--hash-style=both");
+CmdArgs.push_back("--hash-style=gnu");
+CmdArgs.push_back("--enable-new-dtags");
   }
 
   // When building 32-bit code on DragonFly/pc64, we have to explicitly
@@ -9255,21 +9255,11 @@
   AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs);
 
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
-// FIXME: GCC passes on -lgcc, -lgcc_pic and a whole lot of
-// rpaths
-if (UseGCC47)
-  CmdArgs.push_back("-L/usr/lib/gcc47");
-else
-  CmdArgs.push_back("-L/usr/lib/gcc44");
+CmdArgs.push_back("-L/usr/lib/gcc50");
 
 if (!Args.hasArg(options::OPT_static)) {
-  if (UseGCC47) {
-CmdArgs.push_back("-rpath");
-CmdArgs.push_back("/usr/lib/gcc47");
-  } else {
-CmdArgs.push_back("-rpath");
-CmdArgs.push_back("/usr/lib/gcc44");
-  }
+  CmdArgs.push_back("-rpath");
+  CmdArgs.push_back("/usr/lib/gcc50");
 }
 
 if (D.CCCIsCXX()) {
@@ -9284,28 +9274,20 @@
   CmdArgs.push_back("-lc");
 }
 
-if (UseGCC47) {
-  if (Args.hasArg(options::OPT_static) ||
-  Args.hasArg(options::OPT_static_libgcc)) {
+if (Args.hasArg(options::OPT_static) ||
+Args.hasArg(options::OPT_static_libgcc)) {
 CmdArgs.push_back("-lgcc");
 CmdArgs.push_back("-lgcc_eh");
-  } else {
-if (Args.hasArg(options::OPT_shared_libgcc)) {
+} else {
+  if (Args.hasArg(options::OPT_shared_libgcc)) {
   CmdArgs.push_back("-lgcc_pic");
   if (!Args.hasArg(options::OPT_shared))
 CmdArgs.push_back("-lgcc");
-} else {
+  } else {
   CmdArgs.push_back("-lgcc");
   CmdArgs.push_back("--as-needed");
   CmdArgs.push_back("-lgcc_pic");
   CmdArgs.push_back("--no-as-needed");
-}
-  }
-} else {
-  if (Args.hasArg(options::OPT_shared)) {
-CmdArgs.push_back("-lgcc_pic");
-  } else {
-CmdArgs.push_back("-lgcc");
   }
 }
   }
Index: lib/Driver/ToolChains.cpp
===
--- lib/Driver/ToolChains.cpp
+++ lib/Driver/ToolChains.cpp
@@ -4175,10 +4175,7 @@
 
   getFilePaths().push_back(getDriver().Dir + "/../lib");
   getFilePaths().push_back("/usr/lib");
-  if (D.getVFS().exists("/usr/lib/gcc47"))
-getFilePaths().push_back("/usr/lib/gcc47");
-  else
-getFilePaths().push_back("/usr/lib/gcc44");
+  getFilePaths().push_back("/usr/lib/gcc50");
 }
 
 Tool *DragonFly::buildAssembler() const {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org

Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-22 Thread Davide Italiano via cfe-commits
davide added a subscriber: davide.
davide accepted this revision.
davide added a reviewer: davide.
davide added a comment.
This revision is now accepted and ready to land.

The patch looks good, and the changes are localized to the DflyBSD driver so if 
you tested and works, I'm fine with it. I'll comit that unless objections rise.


http://reviews.llvm.org/D15166



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-22 Thread John Marino via cfe-commits
jrmarino added a subscriber: jrmarino.
jrmarino added a comment.

Hi, can someone take a look at http://reviews.llvm.org/D15166? 
It's a simple patch but critical for DragonFly.


http://reviews.llvm.org/D15166



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-22 Thread John Marino via cfe-commits
jrmarino added a comment.

Hi Davide,

Yes, the patch is tested it.  We are carrying them in FreeBSD ports (which 
DragonFly uses), so they are being used now.


http://reviews.llvm.org/D15166



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases

2015-12-02 Thread Joerg Sonnenberger via cfe-commits
On Thu, Dec 03, 2015 at 12:15:25AM +, Dimitry Andric wrote:
> This patch updates the Clang driver to use libstdc++ from GCC 5.2

What about the abi tag mess? Or do you actually mean GCC 5.0?

Joerg
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits