Undefined identifier WIN32_FILE_ATTRIBUTE_DATA
Martin Drasar
drasar at ics.muni.cz
Wed Nov 14 07:37:19 PST 2012
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
More information about the Digitalmars-d
mailing list