# HG changeset patch # User Christian Kamm # Date 1241888241 -7200 # Node ID b3674ad4026d85a187ecec69a3b2cffd429b4271 # Parent c74dfdcc5043ea48379ddf04276d29754489385b Strip metadata for -singleobj as a workaround to a LLVM linking bug. diff -r c74dfdcc5043 -r b3674ad4026d gen/main.cpp --- a/gen/main.cpp Sat May 09 18:57:00 2009 +0200 +++ b/gen/main.cpp Sat May 09 18:57:21 2009 +0200 @@ -36,6 +36,7 @@ #include "gen/linker.h" #include "gen/irstate.h" #include "gen/toobj.h" +#include "gen/passes/Passes.h" #include "gen/llvm-version.h" #include "gen/cl_options.h" @@ -869,6 +870,12 @@ std::string errormsg; for (int i = 0; i < llvmModules.size(); i++) { + //FIXME: workaround for llvm metadata bug: + // the LinkInModule call asserts with metadata unstripped + llvm::ModulePass* stripMD = createStripMetaData(); + stripMD->runOnModule(*llvmModules[i]); + delete stripMD; + if(linker.LinkInModule(llvmModules[i], &errormsg)) error(errormsg.c_str()); delete llvmModules[i];