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