I didn't try to compile each module separately, but here's the patch to the makefile splitting the compilation into two parts to bring the unittests back to live. (Though I was hoping that the occurrence of this nasty bug with the phobos unittests would have encouraged Walter to fix it in the linker... ;-) )

Rainer

Shin Fujishiro wrote:
Then, could anyone refactor win32.mak so that each module's tests run
individually like posix.mak?  I can't write/test digitalmars' makefile.


Shin

Rainer Schuetze <[email protected]> wrote:
Yes, it's reproducible, but the effect can vary easily by adding/removing symbols to/from the object file. I get "access violation" or "Win32 exception" after an update.

The latest svn revision produces 16784 symbols causing any symbols above 16384 to be relocated as the first symbols in the object file. See http://d.puremagic.com/issues/show_bug.cgi?id=3372

A workaround is to split the compilation into two steps producing smaller object files.

Rainer

Brad Roberts wrote:
I just updated that auto-tester to the 8.00.8 version of link.exe (I'd moved
stuff around and reverted to the .5 version that comes with the dmc.zip that I
have been using accidentally).  Run 900 and beyond use .8, but it doesn't help
with this bug.

Is anyone else able to reproduce this?

Later,
Brad

On 9/26/2010 4:42 AM, SHOO wrote:
 Maybe, this problem is caused by OPTLINK.

See also: http://d.puremagic.com/issues/show_bug.cgi?id=4904

(2010/09/26 17:40), Brad Roberts wrote:
The automated win32 phobos tests started failing at the 22:20 test run.  Linux
is fine still.

The error:
     http://d.puremagic.com/test-results/test_data.ghtml?dataid=5766

     unittest
     object.Error: Privileged Instruction

The changes between this run and the previously successful run:
     http://www.dsource.org/projects/dmd/changeset/689
     http://www.dsource.org/projects/phobos/changeset/2049

Later,
Brad

Index: win32.mak
===================================================================
--- win32.mak   (revision 2051)
+++ win32.mak   (working copy)
@@ -98,7 +98,7 @@
 
 #      ti_bit.obj ti_Abit.obj
 
-SRCS= std\math.d std\stdio.d std\dateparse.d std\date.d std\datetime.d \
+SRCS_1 = std\math.d std\stdio.d std\dateparse.d std\date.d std\datetime.d \
        std\uni.d std\string.d std\base64.d std\md5.d std\xml.d std\bigint.d \
        std\regexp.d std\compiler.d std\cpuid.d std\format.d std\demangle.d \
        std\path.d std\file.d std\outbuffer.d std\utf.d std\uri.d \
@@ -114,7 +114,10 @@
        std\intrinsic.d \
        std\process.d \
        std\system.d \
-       std\encoding.d std\variant.d \
+       std\encoding.d 
+       
+SRCS_2 = \
+       std\variant.d \
        std\stream.d std\socket.d std\socketstream.d \
        std\perf.d std\container.d std\conv.d \
        std\zip.d std\cstream.d std\loader.d \
@@ -144,8 +147,8 @@
        std\windows\registry.d \
        std\windows\syserror.d
 
+SRCS = $(SRCS_1) $(SRCS_2)
 
-
 DOCS=  $(DOC)\object.html \
        $(DOC)\core_atomic.html \
        $(DOC)\core_bitop.html \
@@ -327,7 +330,8 @@
                etc\c\zlib\zlib.lib $(DRUNTIMELIB)
 
 unittest : $(SRCS) phobos.lib
-       $(DMD) $(UDFLAGS) -L/co -unittest unittest.d $(SRCS) phobos.lib
+       $(DMD) $(UDFLAGS) -L/co -c -unittest -ofunittest1.obj $(SRCS_1)
+       $(DMD) $(UDFLAGS) -L/co -unittest unittest.d $(SRCS_2) unittest1.obj 
$(DRUNTIMELIB)
        unittest
 
 #unittest : unittest.exe
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to