Checking if your kit is complete... Looks good Writing Makefile for Win32::ShutDown cp lib/Win32/ShutDown.pm blib/lib/Win32/ShutDown.pm /home/cpanrun/ia64-lp64/build/5.8.2/bin/perl /home/cpanrun/ia64-lp64/build/5.8.2/lib/5.8.2/ExtUtils/xsubpp -typemap /home/cpanrun/ia64-lp64/build/5.8.2/lib/5.8.2/ExtUtils/typemap ShutDown.xs > ShutDown.xsc && mv ShutDown.xsc ShutDown.c Please specify prototyping behavior for ShutDown.xs (see perlxs manual) cc -c -I. -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -DNO_HASH_SEED -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fast +DSitanium2 +Ofltacc=strict -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" +Z "-I/home/cpanrun/ia64-lp64/build/5.8.2/lib/5.8.2/IA64.ARCHREV_0-thread-multi-LP64/CORE" ShutDown.c Error 419: "ShutDown.xs", line 20 # 'OSVERSIONINFO' is used as a type, but has not been defined as a type. OSVERSIONINFO osvi; ^^^^^^^^^^^^^ Error 419: "ShutDown.xs", line 21 # 'BOOL' is used as a type, but has not been defined as a type. BOOL bval; ^^^^ Error 186: "ShutDown.xs", line 22 # Left side of '.' requires a struct object; type found was 'int'. osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); ^^^^ Error 186: "ShutDown.xs", line 26 # Left side of '.' requires a struct object; type found was 'int'. if(osvi.dwPlatformId==VER_PLATFORM_WIN32_NT) ^^^^ Error 186: "ShutDown.xs", line 30 # Left side of '.' requires a struct object; type found was 'int'. else if(osvi.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) ^^^^ Error 419: "ShutDown.xs", line 41 # 'HANDLE' is used as a type, but has not been defined as a type. HANDLE hToken; ^^^^^^ Error 419: "ShutDown.xs", line 42 # 'TOKEN_PRIVILEGES' is used as a type, but has not been defined as a type. TOKEN_PRIVILEGES tkp; ^^^^^^^^^^^^^^^^ Error 172: "ShutDown.xs", line 44 # Undeclared variable 'TOKEN_ADJUST_PRIVILEGES'. if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) ^^^^^^^^^^^^^^^^^^^^^^^ Error 186: "ShutDown.xs", line 49 # Left side of '.' requires a struct object; type found was 'int'. if(!LookupPrivilegeValue( 0L , SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)) ^^^ Error 186: "ShutDown.xs", line 54 # Left side of '.' requires a struct object; type found was 'int'. tkp.PrivilegeCount = 1; ^^^ Error 186: "ShutDown.xs", line 56 # Left side of '.' requires a struct object; type found was 'int'. tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; ^^^ Error 419: "ShutDown.xs", line 58 # 'PTOKEN_PRIVILEGES' is used as a type, but has not been defined as a type. AdjustTokenPrivileges(hToken, (0) , &tkp, 0,(PTOKEN_PRIVILEGES) 0L , 0); ^^^^^^^^^^^^^^^^^ Error 699: "ShutDown.xs", line 58 # Error limit reached; halting compilation. AdjustTokenPrivileges(hToken, (0) , &tkp, 0,(PTOKEN_PRIVILEGES) 0L , 0); ^^^^^^^^^^^^^^^^^ make: *** [ShutDown.o] Error 2