On Mon, Dec 16, 2013 at 10:18 AM, Alin Serdean
<aserd...@cloudbasesolutions.com> wrote:
>>> +//Disable warnings and runtime checks
>>> +#pragma warning( disable : 4116 4090 4700 4005 4133 4028 4098 4293 4715 
>>> 4047)
>>> +#pragma runtime_checks( "", off )
>>> +#pragma warning( disable : 4996 ) //deprecated functions
>>> +#pragma warning( disable : 4244 ) //possible loss of data
>>> +#pragma warning( disable : 4146 ) //unary minus operator applied to 
>>> unsigned type, result still unsigned
>>> +#pragma warning( disable : 4018 ) //'>=' : signed/unsigned mismatch
>>
>>Why are we disabling the warnings? Some of them look like may actually
>>help with bugs. Worst case of not disabling them is that we will seem
>>them during compilation right?
>>
> Majority of them are the same as the onex being passed in gcc 
> (-Wno-sign-compare -Wunused-parameter etc. ) but I have no problem removing 
> them it will just be a longer log to look at :).

I see. Instead of starting with a large list, how about we start with
a smaller list and then add things to it in the future as we see
issues?
The 2 warnings that are disabled while using gcc are -Wno-sign-compare
and -Wno-format-zero-length. Can you add the corresponding error
numbers with a descriptive comment of the form /* */ in a separate
line and not "//" (You can look at CodingStyle for the accepted way of
commenting).

I would have preferred to add the conversion of warnings in
build-aux/cccl in the case statement, but it is possible that there is
no 1-1 mapping between gcc and cl warnings.

> Although this pragma: #pragma runtime_checks( "", off ) if not there will be 
> runtime checks if there are local variables used but not set.
Is it not disabled by default and only enabled with /RTC as a
compilation option? (I could be wrong).

>>
>>> +#pragma comment(lib, "dbghelp.lib")
>>> +#pragma comment(lib, "Advapi32.lib")
>>> +#pragma comment (lib, "MsWSock.Lib")
>>> +#pragma comment (lib, "WS2_32.Lib")
>>
>>Should we only add the above in a commit that includes code changes
>>that needs any of these libraries. Otherwise, when any of the
>>functions that use these libraries are actually removed in the future,
>>we won't know to remove these libraries. For example, I do not know
>>why we need the dbghelp.lib. But, if you add it to this file at the
>>same time you make a change in code which needs this library, I will
>>know.
>>
> Agreed. I will remove them when I send the new patch.
>>I looked at doing this with autoconf's AC_SEARCH_LIBS, but it doesn't
>>work for windows. We can do this with AC_LINK_IFELSE(), but I am not
>>sure if it has any extra advantages compared to #pragma comment.
>>
>>> +#define caddr_t char*
>>I see that caddr_t is only used in lib/netdev-linux.c. If we don't
>>compile that file for Windows, we won't need the above #define.
> I will remove it in the new patch.
>>> +#define ssize_t int
>>I see some recommendations of using SSIZE_T from BaseTsd.h. Would that
>>make sense?
> Totally makes sense and will change it in the new patch.
>>
>>> +#define LOG_EMERG   1
>>> +#define LOG_ALERT   1
>>> +#define LOG_CRIT    1
>>> +#define LOG_ERR     4
>>> +#define LOG_WARNING 5
>>> +#define LOG_NOTICE  6
>>> +#define LOG_INFO    6
>>> +#define LOG_DEBUG   6
>>> +#define LOG_NDELAY  6
>>> +#define LOG_DAEMON  6
>>
>>Is there any reason for redefinition of the above a little differently
>>than what we have for Linux? Why not use the
>>http://en.wikipedia.org/wiki/Syslog#Severity_levels
>>
> You are totally right. What do you think of the following:
> #define LOG_EMERG       0       /* system is unusable */
> #define LOG_ALERT       1       /* action must be taken immediately */
> #define LOG_CRIT                2       /* critical conditions */
> #define LOG_ERR         3       /* error conditions */
> #define LOG_WARNING     4       /* warning conditions */
> #define LOG_NOTICE      5       /* normal but significant condition */
> #define LOG_INFO                6       /* informational */
> #define LOG_DEBUG       7       /* debug-level messages */
> #define     LOG_NDELAY     8      /* don't delay open */
> #define     LOG_DAEMON   24    /* system daemons */

Okay. Please format it correctly when you add it. Instead of defining
the above in windefs.h and making this file huge, I think we can
create a new file called syslog.h and add it to include/windows. Since
we -I include/windows, the #include <syslog.h> in the code base should
work.

>>> +
>>> +//Force undefines from config.h
>>> +#undef HAVE_EXECINFO_H
>>> +#undef VLOG_MODULE
>>> +#undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
>>> +#undef HAVE_MNTENT_H
>>> +#undef HAVE_SYS_STATVFS_H
>>> +#undef HAVE_STATVFS
>>> +#undef __CHECKER__
>>> +#undef USE_LINKER_SECTIONS
>>> +#undef DELETE
>>> +#undef HAVE_BACKTRACE
>>> +#undef HAVE_MALLOC_HOOKS
>>I don't think we have to do the config.h undefs. Autoconf should take
>>care and undef the above automatically.
>>I also see VLOG_MODULE being undef'd. I see that on windows, autoconf
>>will generate vlog-modules.def automatically and vlog logic works
>>correctly. Don't you see that?
> Sorry about that :), artefacts from my former port we can remove them.
>
> If there are no further remarks I will send in the updated version.
>
> Alin.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to