Re: [PATCH] D15166: Fix C++ support on recent DragonFly BSD releases
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
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
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
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
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
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