Thread overview | |||||
---|---|---|---|---|---|
|
January 23, 2005 Internal Error type 600 | ||||
---|---|---|---|---|
| ||||
I've been trying to build Allegro 4.1.17 with DMC (along with DJGPP to build the ASM sources), and it has resulted in an internal error when trying to build src/i396/asmdef.c. I would like to provide more information about the error, but apparently the error in happening in the preprocessor because the generated listing file (-e -l) doesn't not contain the full source, but stops (presumably) at the point of the internal error. That makes isolating the problem difficult for me. Any suggestions? Other than this error, everything seems to progressing well with getting allegro to build under dmc. |
January 23, 2005 Re: Internal Error type 600 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Eric E. King, EIT | In article <csv7eg$27sd$1@digitaldaemon.com>, Eric E. King, EIT says... >src/i386/asmdef.c >apparently the error is happening >listing file (-e -l) doesn't contain >seems to be progressing well Sheesh, sorry about the typos. I guess I should get some sleep. |
January 29, 2005 Re: Internal Error type 600 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Eric E. King, EIT | Your email address fails, so I can only reply here: -------------------------------------------------- The failing example boils down to: typedef int (*DIALOG_PROC)(int); struct DIALOG { DIALOG_PROC proc; }; __declspec(dllimport) int d_clear_proc(int); struct DIALOG test = { d_clear_proc }; The trouble is stemming from the __declspec(dllimport). The way this works on Windows is that calls to an import go through a level of indirection, but that level isn't a constant, hence the error. The way to fix this is to use an import library to connect to the DLL, and then remove the __declspec(dllimport) from the declarations. Your source: /* describe how function prototypes look to DMC */ #if (defined ALLEGRO_STATICLINK) || (defined ALLEGRO_SRC) #define _AL_DLL #else #define _AL_DLL __declspec(dllimport) #endif should be written to something like: #if (defined ALLEGRO_STATICLINK) || (defined ALLEGRO_SRC) || defined (USE_IMPORT_LIBRARY) #define _AL_DLL #else #define _AL_DLL __declspec(dllimport) #endif -Walter |
Copyright © 1999-2021 by the D Language Foundation