Ivan Leo Puoti ivanleo@gmail.com writes:
@@ -469,8 +469,10 @@ /* get the default entry point for a given spec file */ static const char *get_default_entry_point( const DLLSPEC *spec ) {
- if (spec->subsystem == IMAGE_SUBSYSTEM_NATIVE && spec->characteristics & IMAGE_FILE_DLL)
return "__wine_spec_drv_entry";
- if (spec->subsystem == IMAGE_SUBSYSTEM_NATIVE) return "__wine_spec_exe_nentry";
Native drivers are not supposed to be dlls.
@@ -322,9 +322,15 @@ ORDDEF *odp = &spec->entry_points[i]; if (odp->type != TYPE_STUB) continue; fprintf( outfile, "#ifdef __GNUC__\n" );
fprintf( outfile, "extern void __wine_spec_unimplemented_stub( const char *module, const char *func ) __attribute__((noreturn));\n" );
if(spec->subsystem == IMAGE_SUBSYSTEM_NATIVE)
fprintf( outfile, "extern void __wine_spec_nunimplemented_stub( const char *module, const char *func ) __attribute__((noreturn));\n" );
else
fprintf( outfile, "extern void __wine_spec_unimplemented_stub( const char *module, const char *func ) __attribute__((noreturn));\n" ); fprintf( outfile, "#else\n" );
fprintf( outfile, "extern void __wine_spec_unimplemented_stub( const char *module, const char *func );\n" );
if(spec->subsystem == IMAGE_SUBSYSTEM_NATIVE)
fprintf( outfile, "extern void __wine_spec_nunimplemented_stub( const char *module, const char *func ) __attribute__((noreturn));\n" );
else
fprintf( outfile, "extern void __wine_spec_unimplemented_stub( const char *module, const char *func );\n" );
You should provide your own handling of stubs inside ntoskrnl, like ntdll does.