From 69071442f08cb7075af13870c8a4320367d72eda Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Thu, 26 Jun 2014 01:08:54 +0000 Subject: [PATCH] Forward -u to the linker on gnutools toolchains Summary: The BSDs and Darwin all forward the whole 'u' group, but gcc only forwards -u so far as I can tell. I only forward -u, since that's a minimal change, and many people object to magically recognizing and forwarding linker arguments. Reviewers: chandlerc, joerg Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4304 llvm-svn: 211756 --- clang/lib/Driver/Tools.cpp | 1 + clang/test/Driver/linux-ld.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index f652fad..1f89d39 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -7158,6 +7158,7 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, } Args.AddAllArgs(CmdArgs, options::OPT_L); + Args.AddAllArgs(CmdArgs, options::OPT_u); const ToolChain::path_list Paths = ToolChain.getFilePaths(); diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c index c476ec2..6cc143f 100644 --- a/clang/test/Driver/linux-ld.c +++ b/clang/test/Driver/linux-ld.c @@ -1119,3 +1119,9 @@ // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ // RUN: | FileCheck --check-prefix=CHECK-PG %s // CHECK-PG: gcrt1.o + +// GCC forwards -u to the linker. +// RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ +// RUN: | FileCheck --check-prefix=CHECK-u %s +// CHECK-u: "-u" "asdf" -- 2.7.4