// This file implements the ReadArchiveFile interface, which allows a linker to
// read all of the LLVM bytecode files contained in a .a file. This file
// understands the standard system .a file format. This can only handle the .a
-// variant prevelant on linux systems so far, but may be extended. See
+// variant prevalent on Linux systems so far, but may be extended. See
// information in this source file for more information:
// http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/archive.c?cvsroot=src
//
}
-static bool ReadArchiveBuffer(unsigned char *Buffer, unsigned Length,
+static bool ReadArchiveBuffer(const std::string &Filename,
+ unsigned char *Buffer, unsigned Length,
std::vector<Module*> &Objects,
std::string *ErrorStr) {
if (Length < 8 || memcmp(Buffer, "!<arch>\n", 8))
return true;
break;
case UserObject: {
- Module *M = ParseBytecodeBuffer(Buffer+sizeof(ar_hdr), Size, ErrorStr);
+ Module *M = ParseBytecodeBuffer(Buffer+sizeof(ar_hdr), Size,
+ Filename+":somefile", ErrorStr);
if (!M) return true;
Objects.push_back(M);
break;
return Error(ErrorStr, "Error mmapping file!");
// Parse the archive files we mmap'ped in
- bool Result = ReadArchiveBuffer(Buffer, Length, Objects, ErrorStr);
+ bool Result = ReadArchiveBuffer(Filename, Buffer, Length, Objects, ErrorStr);
// Unmmap the archive...
munmap((char*)Buffer, Length);