]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
libtool: Discard "-mllvm $arg" options when linking.
authorBrooks Moses <bmoses@google.com>
Wed, 9 Oct 2013 19:32:48 +0000 (12:32 -0700)
committerBrooks Moses <bmoses@google.com>
Wed, 9 Oct 2013 19:32:48 +0000 (12:32 -0700)
Clang accepts options of the form "-mllvm $arg", and passes the
argument as an option to LLVM.  These options caused problems
for Libtool when linking; in some cases, the -mllvm option is
passed through but the corresponding argument is dropped.  (See
for example http://llvm.org/bugs/show_bug.cgi?id=14716.)

This patch resolves the issue by explicitly matching -mllvm and
taking an argument.  Since Clang never uses LLVM for linking,
the matched "-mllvm $arg" option is irrelevant for the link
step, and we can simply discard it once we've recognized it.

Co-authored-by: Johannes Obermayr <johannesobermayr@gmx.de>
Copyright-paperwork-exempt: Yes

build-aux/ltmain.in

index f22ac05ca61b476f23f33f1658e31c31d26046cd..363ce9bb346163ea42c5d647bdd2899170f07d30 100644 (file)
@@ -4739,6 +4739,12 @@ func_mode_link ()
          prev=
          continue
          ;;
+       mllvm)
+         # Clang does not use LLVM to link, so we can simply discard any
+         # '-mllvm $arg' options when doing the link step.
+         prev=
+         continue
+         ;;
        objectlist)
          if test -f "$arg"; then
            save_arg=$arg
@@ -5077,6 +5083,11 @@ func_mode_link ()
        continue
        ;;
 
+      -mllvm)
+       prev=mllvm
+       continue
+       ;;
+
       -module)
        module=yes
        continue