Enrico Granata Computer Science & Engineering Department (EBU3B) - Room 3240 office phone 858 534 9914 University of California, San Diego On Jan 27, 2011, at 12:20 AM, prabhu wrote:
Mandeep Sandhu wrote:
I guess a 64bit processor does need 64bit addresses to reference memory. But at the same time, if 32 bit programs are to run unmodified on 64 bit architectures there needs to be ways in which 32bit pointers can still work. So, I am almost 100% sure that compiling 32bit code, even on a 64bit processor, should yield 4 for sizeof(void*)
You are 100% right. Tried this on 2 laptops:
printf("Is this a %s-bit machine?\n", ((sizeof(void*) == 4) ? "32" : "64"));
32-Bit ubuntu (10.10) on 64-bit proc: "Is this a 32-bit machine?"
64-Bit ubuntu (10.10) on 64-bit proc: "Is this a 64-bit machine?"
Regards, -mandeep
Hi Mandeep,
Thanks a lot.
So is there any other way available to identify the processor architecture using c code?? . The program needs to return correct processor architecture(32bit or 64bit) irrespective to the OS architecture.
Thanks, Prabhu
Enrico Granata Computer Science & Engineering Department (EBU3B) - Room 3240 office phone 858 534 9914 University of California, San Diego
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Someone already hinted at it, I guess:
64-bit processors have lm ("long mode") in the flags section of cpuinfo whereas 32-bit processors have not. regards Dharmvir Kumar