From: Henry N. <hen...@ya...> - 2010-06-20 16:03:35
|
Hello, in the 32 bit build environment a simple include like >>> cat check.c >>> #include <ddk/ntddk.h> <<< end check.c <<< works with that command line: i686-pc-mingw32-gcc -c check.c With the 64 bit toolchain (20100604_sezero) and headers from mingw-w64/experimental/ddk_test SVN 2511: x86_64-w64-mingw32-gcc -c check.c this fails with missing headers, for example: .../x86_64-w64-mingw32/include/ddk/ntddk.h:38:17: error: wdm.h: No such file or directory .../x86_64-w64-mingw32/include/ddk/ntddk.h:42:17: error: mce.h: No such file or directory I know, that I can set "-I$PREFIX/x86_64-w64-mingw32/include/ddk". But, the $PREFIX is a problem in this case. This needs an absolute path. The toolchain I can install somewhere and simple set the variable PATH for the binaries is enough to work. But now, for the DDK headers I need to know the absolute PATH of toolchin in the project Makefile for the the include path. :-( Any ideas? Is using "#include <ddk/ntddk.h>" a generally foul, and I needs to use "#include <ntddk.h>"? -- Henry N. |
From: Doug S. <dou...@gm...> - 2010-06-20 16:43:25
|
On Sun, Jun 20, 2010 at 12:03 PM, Henry N. <hen...@ya...> wrote: > Hello, > > in the 32 bit build environment a simple include like > > >>> cat check.c >>> > #include <ddk/ntddk.h> > <<< end check.c <<< > > works with that command line: > > i686-pc-mingw32-gcc -c check.c > > With the 64 bit toolchain (20100604_sezero) and headers from > mingw-w64/experimental/ddk_test SVN 2511: > > x86_64-w64-mingw32-gcc -c check.c > > this fails with missing headers, for example: > .../x86_64-w64-mingw32/include/ddk/ntddk.h:38:17: error: wdm.h: No such > file or directory > .../x86_64-w64-mingw32/include/ddk/ntddk.h:42:17: error: mce.h: No such > file or directory > > I know, that I can set "-I$PREFIX/x86_64-w64-mingw32/include/ddk". But, > the $PREFIX is a problem in this case. This needs an absolute path. The > toolchain I can install somewhere and simple set the variable PATH for > the binaries is enough to work. But now, for the DDK headers I need to > know the absolute PATH of toolchin in the project Makefile for the the > include path. :-( > > Any ideas? > > Is using "#include <ddk/ntddk.h>" a generally foul, and I needs to use > "#include <ntddk.h>"? > > -- If I remember correctly, even the MS DDK suffers this "problem". However the reason that you don't see it is that the batch file that is used to set up the build environment includes the install location in the include path. I really don't know the best way to handle it, because if you #include <ddk/ntddk.h> I don't think you'll pick up the files properly when building under msvc. I'll have to think about this... |
From: Henry N. <hen...@ya...> - 2010-07-24 11:56:27
|
On 20.06.2010 18:43, Doug Semler wrote: > On Sun, Jun 20, 2010 at 12:03 PM, Henry N.<hen...@ya...> wrote: >> Hello, >> >> in the 32 bit build environment a simple include like >> >> >>> cat check.c>>> >> #include<ddk/ntddk.h> >> <<< end check.c<<< >> >> works with that command line: >> >> i686-pc-mingw32-gcc -c check.c >> >> With the 64 bit toolchain (20100604_sezero) and headers from >> mingw-w64/experimental/ddk_test SVN 2511: >> >> x86_64-w64-mingw32-gcc -c check.c >> >> this fails with missing headers, for example: >> .../x86_64-w64-mingw32/include/ddk/ntddk.h:38:17: error: wdm.h: No such >> file or directory >> .../x86_64-w64-mingw32/include/ddk/ntddk.h:42:17: error: mce.h: No such >> file or directory >> >> I know, that I can set "-I$PREFIX/x86_64-w64-mingw32/include/ddk". But, >> the $PREFIX is a problem in this case. This needs an absolute path. The >> toolchain I can install somewhere and simple set the variable PATH for >> the binaries is enough to work. But now, for the DDK headers I need to >> know the absolute PATH of toolchin in the project Makefile for the the >> include path. :-( >> >> Any ideas? >> >> Is using "#include<ddk/ntddk.h>" a generally foul, and I needs to use >> "#include<ntddk.h>"? >> >> -- > > If I remember correctly, even the MS DDK suffers this "problem". > However the reason that you don't see it is that the batch file that > is used to set up the build environment includes the install location > in the include path. > > I really don't know the best way to handle it, because if you #include > <ddk/ntddk.h> I don't think you'll pick up the files properly when > building under msvc. > > I'll have to think about this... > https://sourceforge.net/tracker/?func=detail&atid=983354&aid=3033864&group_id=202880, Sezero wrote in Bug #3033864: > Note #2: Do you still have a problem with ntddscsi.h or is it solved too? The problem is porting older source from mingw32-w32 (older 32 bit toolchain) and make it able to build for 64 bit now, and a wish to use the same source for 32 bit again. Under 32 bit the ntddscsi.h exist only under .../include/ddk/ntddscsi.h, and now it exist under .../include/ntddscsi.h Under mingw32-w32 have not set extra path for ddk-headers, and must use includes for kernel driver in such way: #include <ddk/ntddscsi.h> For mingw32-w64 I must add include path for ddk headers to gcc options and must remove diretory "ddk/" from include statement: #include <ntddscsi.h> As result I have such code lines now: #include <ddk/ntddk.h> #ifndef WIN64 #include <ddk/ntapi.h> #endif #include <ddk/ntifs.h> #include <ddk/ntdddisk.h> #ifdef WIN64 #include <ntddscsi.h> #else #include <ddk/ntddscsi.h> #endif -- Henry N. |
From: Ozkan S. <se...@gm...> - 2010-07-24 12:02:45
|
On Sat, Jul 24, 2010 at 2:56 PM, Henry N. <hen...@ya...> wrote: > On 20.06.2010 18:43, Doug Semler wrote: >> >> On Sun, Jun 20, 2010 at 12:03 PM, Henry N.<hen...@ya...> >> wrote: >>> >>> Hello, >>> >>> in the 32 bit build environment a simple include like >>> >>> >>> cat check.c>>> >>> #include<ddk/ntddk.h> >>> <<< end check.c<<< >>> >>> works with that command line: >>> >>> i686-pc-mingw32-gcc -c check.c >>> >>> With the 64 bit toolchain (20100604_sezero) and headers from >>> mingw-w64/experimental/ddk_test SVN 2511: >>> >>> x86_64-w64-mingw32-gcc -c check.c >>> >>> this fails with missing headers, for example: >>> .../x86_64-w64-mingw32/include/ddk/ntddk.h:38:17: error: wdm.h: No such >>> file or directory >>> .../x86_64-w64-mingw32/include/ddk/ntddk.h:42:17: error: mce.h: No such >>> file or directory >>> >>> I know, that I can set "-I$PREFIX/x86_64-w64-mingw32/include/ddk". But, >>> the $PREFIX is a problem in this case. This needs an absolute path. The >>> toolchain I can install somewhere and simple set the variable PATH for >>> the binaries is enough to work. But now, for the DDK headers I need to >>> know the absolute PATH of toolchin in the project Makefile for the the >>> include path. :-( >>> >>> Any ideas? >>> >>> Is using "#include<ddk/ntddk.h>" a generally foul, and I needs to use >>> "#include<ntddk.h>"? >>> >>> -- >> >> If I remember correctly, even the MS DDK suffers this "problem". >> However the reason that you don't see it is that the batch file that >> is used to set up the build environment includes the install location >> in the include path. >> >> I really don't know the best way to handle it, because if you #include >> <ddk/ntddk.h> I don't think you'll pick up the files properly when >> building under msvc. >> >> I'll have to think about this... >> > > https://sourceforge.net/tracker/?func=detail&atid=983354&aid=3033864&group_id=202880, > Sezero wrote in Bug #3033864: >> >> Note #2: Do you still have a problem with ntddscsi.h or is it solved too? > > The problem is porting older source from mingw32-w32 (older 32 bit > toolchain) and make it able to build for 64 bit now, and a wish to use the > same source for 32 bit again. Under 32 bit the ntddscsi.h exist only under > .../include/ddk/ntddscsi.h, and now it exist under .../include/ntddscsi.h > > Under mingw32-w32 have not set extra path for ddk-headers, and must use > includes for kernel driver in such way: > > #include <ddk/ntddscsi.h> > > For mingw32-w64 I must add include path for ddk headers to gcc options and > must remove diretory "ddk/" from include statement: > > #include <ntddscsi.h> > > As result I have such code lines now: > > #include <ddk/ntddk.h> > #ifndef WIN64 > #include <ddk/ntapi.h> > #endif > #include <ddk/ntifs.h> > #include <ddk/ntdddisk.h> > #ifdef WIN64 > #include <ntddscsi.h> > #else > #include <ddk/ntddscsi.h> > #endif > > -- > Henry N. > IIRC, recent sdks moved several files out of ddk/ therefore those ddk/ntddscsi.h layout from mingw.org may well be outdated. |