On 14.11.2012 15:28, Regan Heath wrote: > Well.. druntime is built into a lib, and phobos is built using that > lib. So, the only way I can imagine reproducing this error is by > altering dmd2\src\druntime\import\core\sys\windows\windows.d, rebuilding > druntime, then rebuilding phobos and replacing the phobos.lib in > dmd2\windows\lib. > > BUT, doing so fails at the rebuild of phobos, giving the error: > std\file.d(530): Error: undefined identifier WIN32_FILE_ATTRIBUTE_DATA, > did you mean struct xxWIN32_FILE_ATTRIBUTE_DATA? > > So.. it's almost like in your case the rdmd/dmd command line is not > using the pre-built phobos.lib, but trying to recompile std.file itself. > > I assume you have a dmd2\windows\lib\phobos.lib? What are the dates on > various files.. is it possible you are time shifted in such a way which > is confusing the compiler into ignoring phobos.lib and rebuilding from > source?
Yes, I have it. Times are normal. All files are from yesterday when I installed the dmd. > What happens if you run dumpobj (dmc\dm\bin) on phobos.lib, .e.g > dumpobj -p phobos.lib > output.txt > > then open output.txt and look for WIN32_FILE_ATTRIBUTE_DATA. Bear in > mind the output wraps the symbol names as needed so simply searching for > "WIN32_FILE_ATTRIBUTE_DATA" wont find anything. > 81499 PUB386 1 4 3e 5f 44 34 63 6f 72 65 33 73 79 73 37 77 > ..>_D4core3sys7w > 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 73 32 35 > indows7windows25 > 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 54 52 49 > WIN32_FILE_ATTRI > 42 55 54 45 5f 44 41 54 41 36 5f 5f 69 6e 69 74 > BUTE_DATA6__init > 5a 0 0 0 0 0 Z..... > > 87599 LNAMES 4a 5f 44 36 32 54 79 70 65 49 6e 66 6f 5f 53 34 > J_D62TypeInfo_S4 > 63 6f 72 65 33 73 79 73 37 77 69 6e 64 6f 77 73 > core3sys7windows > 37 77 69 6e 64 6f 77 73 32 35 57 49 4e 33 32 5f > 7windows25WIN32_ > 46 49 4c 45 5f 41 54 54 52 49 42 55 54 45 5f 44 > FILE_ATTRIBUTE_D > 41 54 41 36 5f 5f 69 6e 69 74 5a ATA6__initZ > > 8776f CMD386 0 10 0 0 0 0 0 0 1 2 a 0 0 0 0 0 > ................ > 0 0 0 32 0 0 0 3c 0 0 0 24 0 0 0 0 > ...2...<...$.... > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 > ................ > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 > ................ > 0 0 0 0 0 0 0 63 6f 72 65 2e 73 79 73 2e > .......core.sys. > 77 69 6e 64 6f 77 73 2e 77 69 6e 64 6f 77 73 2e > windows.windows. > 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 54 52 49 > WIN32_FILE_ATTRI > 42 55 54 45 5f 44 41 54 41 0 BUTE_DATA. ^ These three I have the same. > 1bba05 LNAMES 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > [_D3std4file20ge > 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 57 > tFileAttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 > s7windows7window > 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 > s25WIN32_FILE_AT > 54 52 49 42 55 54 45 5f 44 41 54 41 TRIBUTE_DATA > > 1bba6b LNAMES 7a 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > z_D3std4file20ge > 74 46 80 83 89 41 74 74 72 69 62 75 74 65 73 57 > tF...AttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 ff 73 32 35 57 49 4e 33 > s7window.s25WIN3 > 32 5f 46 49 4c 45 5f 41 54 54 52 49 42 55 54 45 > 2_FILE_ATTRIBUTE > 5f 44 41 54 41 31 35 5f 5f 64 67 6c 69 74 65 72 > _DATA15__dgliter > 61 6c 32 32 36 38 4d 46 5a 43 36 6f 62 6a 65 63 > al2268MFZC6objec > 74 39 54 68 72 6f 77 61 62 6c 65 t9Throwable ^ These two - the same content, but the address (or offset or what it is) is different. 1b8685 and 1b86eb respectively. > 1bc1f1 EXTDEF 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > [_D3std4file20ge > 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 57 > tFileAttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 > s7windows7window > 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 > s25WIN32_FILE_AT > 54 52 49 42 55 54 45 5f 44 41 54 41 0 TRIBUTE_DATA. > > 1bc58c EXTDEF 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > [_D3std4file20ge > 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 57 > tFileAttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 > s7windows7window > 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 > s25WIN32_FILE_AT > 54 52 49 42 55 54 45 5f 44 41 54 41 0 TRIBUTE_DATA. > > 1bf00e EXTDEF 17 5f 44 31 31 54 79 70 65 49 6e 66 6f 5f 41 61 > ._D11TypeInfo_Aa > 36 5f 5f 69 6e 69 74 5a 0 5b 5f 44 33 73 74 64 > 6__initZ.[_D3std > 34 66 69 6c 65 32 30 67 65 74 46 69 6c 65 41 74 > 4file20getFileAt > 74 72 69 62 75 74 65 73 57 69 6e 46 78 41 61 5a > tributesWinFxAaZ > 53 34 63 6f 72 65 33 73 79 73 37 77 69 6e 64 6f > S4core3sys7windo > 77 73 37 77 69 6e 64 6f 77 73 32 35 57 49 4e 33 > ws7windows25WIN3 > 32 5f 46 49 4c 45 5f 41 54 54 52 49 42 55 54 45 > 2_FILE_ATTRIBUTE > 5f 44 41 54 41 0 _DATA. ^ These three are different when I do the dump: > 1b8df4 EXTDEF 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > [_D3std4file20ge > 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 57 > tFileAttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 > s7windows7window > 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 > s25WIN32_FILE_AT > 54 52 49 42 55 54 45 5f 44 41 54 41 0 77 5f 44 > TRIBUTE_DATA.w_D > 33 73 74 64 38 64 61 74 65 74 69 6d 65 31 37 46 > 3std8datetime17F > 49 4c 45 54 49 4d 45 54 6f 53 79 73 54 69 6d 65 > ILETIMEToSysTime > 46 78 50 53 34 63 6f 72 65 33 73 79 73 37 77 69 > FxPS4core3sys7wi > 6e 64 6f 77 73 37 77 69 6e 64 6f 77 73 38 46 49 > ndows7windows8FI > 4c 45 54 49 4d 45 79 43 33 73 74 64 38 64 61 74 > LETIMEyC3std8dat > 65 74 69 6d 65 38 54 69 6d 65 5a 6f 6e 65 5a 53 > etime8TimeZoneZS > 33 73 74 64 38 64 61 74 65 74 69 6d 65 37 53 79 > 3std8datetime7Sy > 73 54 69 6d 65 0 sTime. > > 1b918f EXTDEF 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 30 67 65 > [_D3std4file20ge > 74 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 57 > tFileAttributesW > 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 33 73 79 > inFxAaZS4core3sy > 73 37 77 69 6e 64 6f 77 73 37 77 69 6e 64 6f 77 > s7windows7window > 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 > s25WIN32_FILE_AT > 54 52 49 42 55 54 45 5f 44 41 54 41 0 77 5f 44 > TRIBUTE_DATA.w_D > 33 73 74 64 38 64 61 74 65 74 69 6d 65 31 37 46 > 3std8datetime17F > 49 4c 45 54 49 4d 45 54 6f 53 79 73 54 69 6d 65 > ILETIMEToSysTime > 46 78 50 53 34 63 6f 72 65 33 73 79 73 37 77 69 > FxPS4core3sys7wi > 6e 64 6f 77 73 37 77 69 6e 64 6f 77 73 38 46 49 > ndows7windows8FI > 4c 45 54 49 4d 45 79 43 33 73 74 64 38 64 61 74 > LETIMEyC3std8dat > 65 74 69 6d 65 38 54 69 6d 65 5a 6f 6e 65 5a 53 > etime8TimeZoneZS > 33 73 74 64 38 64 61 74 65 74 69 6d 65 37 53 79 > 3std8datetime7Sy > 73 54 69 6d 65 0 sTime. > > 1bbc31 EXTDEF 17 5f 44 31 31 54 79 70 65 49 6e 66 6f 5f 41 75 > ._D11TypeInfo_Au > 36 5f 5f 69 6e 69 74 5a 0 3f 5f 44 33 73 74 64 > 6__initZ.?_D3std > 38 64 61 74 65 74 69 6d 65 39 4c 6f 63 61 6c 54 > 8datetime9LocalT > 69 6d 65 36 6f 70 43 61 6c 6c 46 4e 61 4e 62 5a > ime6opCallFNaNbZ > 79 43 33 73 74 64 38 64 61 74 65 74 69 6d 65 39 > yC3std8datetime9 > 4c 6f 63 61 6c 54 69 6d 65 0 7 5f 77 63 73 6c > LocalTime.._wcsl > 65 6e 0 5b 5f 44 33 73 74 64 34 66 69 6c 65 32 > en.[_D3std4file2 > 30 67 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 > 0getFileAttribut > 65 73 57 69 6e 46 78 41 61 5a 53 34 63 6f 72 65 > esWinFxAaZS4core > 33 73 79 73 37 77 69 6e 64 6f 77 73 37 77 69 6e > 3sys7windows7win > 64 6f 77 73 32 35 57 49 4e 33 32 5f 46 49 4c 45 > dows25WIN32_FILE > 5f 41 54 54 52 49 42 55 54 45 5f 44 41 54 41 0 > _ATTRIBUTE_DATA. I had to do the dump on linux, because I could not found the dumpobj binary where you said it should be. I hope this gives a hint where the problem might be. Thanks, Martin