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
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
continue
;;
+ -mllvm)
+ prev=mllvm
+ continue
+ ;;
+
-module)
module=yes
continue