On Fri, Jul 29, 2011 at 6:24 PM, Jie Zhang <jzhang...@gmail.com> wrote:
> On Fri, Jun 24, 2011 at 3:14 PM, Jie Zhang <jzhang...@gmail.com> wrote: > > On Mon, Jun 20, 2011 at 6:50 AM, Steve Bennett <ste...@workware.net.au> > wrote: > >> The default is -Werror, so warnings become errors > >> and stop the build. > >> Might be better to simply #define FT_STATUS instead. > >> > >> - LOG_ERROR("FT_Write returned: %lu", status); > >> + LOG_ERROR("FT_Write returned: %lu", (unsigned > long)status); > > > > The type of status is ULONG, which is "unsigned long" on Windows but > > is "unsigned int" on Linux in FTD2XX driver. So the problem is "%lu" > > is not right for status on Linux. If we don't want cast, I think we > > can do something like: > > > > #ifdef __WINDOWS_TYPES__ /* if FTD2XX WinTypes.h is included */ > > #define PRulong "u" > > #else > > #define PRulong "lu" > > #endif > > > > LOG_ERROR("FT_Write returned: %"PRulong, status); > > > Another fix would be not trying to print the status as a numeric > value. We can print it as an error message, so we don't need to handle > this tricky situation. Like > > LOG_ERROR("FT_Write failed:%s\n", > ftd2xx_status_string(status)); > > That sounds *way* better. And more helpful to the user, too. If it's available in all recent ftd2xx versions on all platforms, I'd say it's a go. Any takers for putting together the patch? /Andreas
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development