Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - 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. Jan 22 2005
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 Jan 22 2005
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 Jan 28 2005
|