On Thu, 2010-05-20 at 15:38 -0700, Inaky Perez-Gonzalez wrote: > On Thu, 2010-05-20 at 13:28 -0700, Dan Williams wrote: > > Misc 64-bit fixes. Need to use 'z' when printing out size_t and > > ssize_t. > > > > Signed-off-by: Dan Williams <dcbw at redhat.com> > > Merged > > Thank you Dan, I forgot to cross compile this one to check those issues. I dont' event want to start talking about the wimax-ns... besides the fact that it uses 32-bit only registers for some of backtrace stuff in GenericConsole.c [1], there are tons of warnings about the autogenerated stuff for pointer size comparisons too [2]. Given how that piece is developed, is it even worth me submitting 64-bit correctness patches for it? Note that stuff like Bitman2Base would also need to be fixed up for 64-bit Linux since we're not supposed to edit files like BasicBitmanTypes.h. Somehow I doubt that will happen but I'd be pleasantly surprised if it did. For example: #define BM_Little_Flag_value_GET_POS( base_ptr, base_bitoff, out_ptr, out_bitoff )\ {\ /*lint --e{*} */\ out_ptr = base_ptr;\ out_bitoff = base_bitoff;\ } here base_ptr is a void* while base_bitoff is a UINT32. On 64-bit that will generate a compiler warning that is probably harmless but is *very* annoying in the logs (since it happens a few times for every line in SourceControl/BitmanCommon.c). Dan [1] trace[1] = (void *) uc->uc_mcontext.gregs[REG_EIP]; REG_EIP is a 32-bit only register and should be REG_RIP on x86-64, but certainly this isn't portable to any other platform either and it should be... [2] ../../../../InfraStack/OSDependent/Linux/L4Generated/L4BufMan_L3L4DmStructs.c:403: warning: cast from pointer to integer of different size which corresponds to BM_MonitorBuffer_List_CURRENT_L3L4_BurstStatus_L3_BurstStatus_L3_totalDlSdusSize_GET( base_ptr, cur_ptr, cur_bitoff, pMsg->L3L4_BurstStatus_L3.BurstStatus_L3.totalDlSdusSize );