[LLVMdev] llvm-ranlib: Bus Error in regressions + fix

Evan Jones ejones at uwaterloo.ca
Wed Nov 23 19:35:40 PST 2005


On Nov 23, 2005, at 18:17, Reid Spencer wrote:
>> So this comment means that I should attempt to theoretically support 
>> Windows, and close the current archive file before updating it?
> If you use sys::Path, it is not "theoretically" supported, it is 
> supported.

Well, except of course that it isn't currently possible to build LLVM 
on Windows. Hence this is a somewhat theoretical issue.

> Sounds good. We can change to the two-pass reading (when building a 
> symbol table) some other time. I'm sure you just want to get this 
> little issue done and over with :)

I have a problem sometimes: I need to find *why* something goes wrong.

At any rate, I've attached the latest version of my patch. It has some 
interesting details:

1. Before replacing the original archive file, it invalidates all the 
members of the current Archive instance. This required me to refactor 
the destructor code into a separate function. This should make this 
code work on Windows.

2. I fixed a memory leak in the Archive destructor. The "foreignST" 
member was never deleted.

3. There are now two temporary files created if we need to build the 
symbol table, and they are moved over top of the original archive once 
the process is complete.

Let me know if there are any comments. The part where the second 
temporary file is kind of gross, since it needs to catch exceptions and 
be erased if it crashes.

Evan Jones

-------------- next part --------------
A non-text attachment was scrubbed...
Name: archive.patch
Type: application/octet-stream
Size: 5977 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20051123/71374df4/attachment.obj>
-------------- next part --------------

--
Evan Jones
http://evanjones.ca/


More information about the llvm-dev mailing list